4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-network-main.h>
23 #define MOBILE_DATA_WITHOUT_WIFI_STR "IDS_ST_BODY_MOBILE_DATA_WILL_BE_USED_IF_YOU_DOWNLOAD_OR_UPLOAD_DATA_WITHOUT_WI_FI_CONNECTION"
24 #define UMTS_MODE_WORK_OUTSIDE_STR "IDS_ST_BODY_UMTS_MODE_ONLY_WORKS_INSIDE_3G_COVERAGE_AREA"
25 #define BAND_OPERATE_OUTSIDE_USA_CANADA_STR "IDS_ST_BODY_THIS_BAND_MAY_NOT_WORK_OUTSIDE_THE_USA_AND_CANADA"
27 static int setting_network_main_create(void *cb);
28 static int setting_network_main_destroy(void *cb);
29 static int setting_network_main_update(void *cb);
30 static int setting_network_main_cleanup(void *cb);
32 setting_view setting_view_network_main = {
33 .create = setting_network_main_create,
34 .destroy = setting_network_main_destroy,
35 .update = setting_network_main_update,
36 .cleanup = setting_network_main_cleanup,
39 static void setting_network_main_item_Gendial_mouse_up_cb(void *data,
42 static void setting_network_main_click_softkey_help_cb(void *data,
45 static void setting_network_main_click_softkey_back_cb(void *data,
48 static void setting_network_main_chk_btn_cb(void *data, Evas_Object *obj,
50 static void setting_network_use_packet_resp_cb(void *data, Evas_Object *obj,
52 static void __setting_network_data_roaming_resp_cb(void *data, Evas_Object *obj,
56 /* ***************************************************
60 ***************************************************/
62 static void __ask_create_gsm_resp_cb(void *data, Evas_Object *obj,
67 SettingNetworkUG *ad = (SettingNetworkUG *) data;
69 int response_type = btn_type(obj);
70 bool rollback_flag = FALSE;
71 if (POPUP_RESPONSE_OK == response_type) {
72 int tapi_ret = TAPI_API_INVALID_INPUT;
74 //async: TAPI_EVENT_NETWORK_SETNWBAND_CNF
76 tel_set_network_band(ad->handle, TAPI_NETWORK_BAND_MODE_ONLY,
77 TAPI_NETWORK_BAND_TYPE_GSM_850_1900,
78 setting_tapi_set_band_cb, ad);
79 if (tapi_ret != TAPI_API_SUCCESS) {
81 ("%s*** [ERR] tel_set_network_band. tapi_ret=%d ***%s",
82 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
87 } else if (POPUP_RESPONSE_CANCEL == response_type) {
94 int value = TAPI_NETWORK_BAND_TYPE_ANY;
95 if (ad->data_net_mode) {
96 setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
98 /** @todo check 'err' variable for exception handling */
99 elm_radio_value_set(ad->data_net_mode->rgd, value);
102 evas_object_del(ad->pop_gsm);
107 void __network_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
111 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
112 ret_if(NULL == data);
113 SettingNetworkUG *ad = (SettingNetworkUG *) data;
114 Elm_Object_Item *subitem = (Elm_Object_Item *) event_info;
115 elm_genlist_item_selected_set(subitem, 0);
116 Setting_GenGroupItem_Data *data_subItem = elm_object_item_data_get(subitem);
117 if (data_subItem->chk_status == elm_radio_value_get(ad->data_net_mode->rgd))
121 elm_radio_value_set(ad->data_net_mode->rgd, data_subItem->chk_status);
123 int tapi_ret = TAPI_API_INVALID_INPUT;
124 TelNetworkBand_t band = TAPI_NETWORK_BAND_TYPE_ANY;
126 switch (data_subItem->chk_status) {
128 case TAPI_NETWORK_BAND_TYPE_ANY:
129 band = TAPI_NETWORK_BAND_TYPE_ANY;
132 case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
133 band = TAPI_NETWORK_BAND_TYPE_GSM_900_1800;
136 case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
137 /*ad->pop_gsm = setting_create_popup_with_btn(ad,
139 NULL, _(BAND_OPERATE_OUTSIDE_USA_CANADA_STR),
140 __ask_create_gsm_resp_cb,
141 0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
143 setting_create_popup_without_btn(ad, ad->win_get, NULL, _(BAND_OPERATE_OUTSIDE_USA_CANADA_STR), NULL, POPUP_INTERVAL, FALSE, FALSE);
146 case TAPI_NETWORK_BAND_TYPE_WCDMA:
147 setting_create_popup_without_btn(ad, ad->win_get, NULL, _(UMTS_MODE_WORK_OUTSIDE_STR), NULL, POPUP_INTERVAL, FALSE, FALSE);
148 band = TAPI_NETWORK_BAND_TYPE_WCDMA;
151 SETTING_TRACE("Unknown Tel-Net band type");
155 //async: TAPI_EVENT_NETWORK_SETNWBAND_CNF
157 tel_set_network_band(ad->handle, TAPI_NETWORK_BAND_MODE_ONLY, band,
158 setting_tapi_set_band_cb, ad);
159 if (tapi_ret != TAPI_API_SUCCESS) {
161 ("%s*** [ERR] tel_set_network_band. tapi_ret=%d ***%s",
162 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
166 int value = TAPI_NETWORK_BAND_TYPE_ANY;
167 setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
169 /** @todo check 'err' variable for exception handling */
170 elm_radio_value_set(ad->data_net_mode->rgd, value);
177 __setting_network_main_exp_cb(void *data, Evas_Object *obj, void *event_info)
179 ret_if(NULL == data || NULL == event_info);
181 SettingNetworkUG *ad = (SettingNetworkUG *) data;
182 Elm_Object_Item *parentItem = event_info; /* parent item */
183 Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem); /* parent data */
184 Evas_Object *scroller = elm_object_item_widget_get(parentItem);
187 if (data_parentItem == ad->data_net_mode) {
188 rgd = elm_radio_add(scroller);
189 elm_radio_value_set(rgd, -1);
191 setting_create_Gendial_exp_sub_field(scroller,
192 &itc_1icon_1text_sub,
193 __network_sub_list_sel_cb,
195 SWALLOW_Type_1RADIO, rgd,
196 TAPI_NETWORK_BAND_TYPE_ANY,
197 "IDS_COM_BODY_AUTOMATIC", NULL);
199 setting_create_Gendial_exp_sub_field(scroller,
200 &itc_1icon_1text_sub,
201 __network_sub_list_sel_cb,
203 SWALLOW_Type_1RADIO, rgd,
204 TAPI_NETWORK_BAND_TYPE_GSM_900_1800,
205 STR_SETTING_GSM_900_1800, NULL);
207 setting_create_Gendial_exp_sub_field(scroller,
208 &itc_1icon_1text_sub,
209 __network_sub_list_sel_cb,
211 SWALLOW_Type_1RADIO, rgd,
212 TAPI_NETWORK_BAND_TYPE_GSM_850_1900,
213 STR_SETTING_GSM_850_1900, NULL);
215 setting_create_Gendial_exp_sub_field(scroller,
216 &itc_1icon_1text_sub,
217 __network_sub_list_sel_cb,
219 SWALLOW_Type_1RADIO, rgd,
220 TAPI_NETWORK_BAND_TYPE_WCDMA,
221 STR_SETTING_UMTS, NULL);
223 data_parentItem->rgd = rgd;
224 setting_update_chk_status(rgd, data_parentItem->int_slp_setting_binded);
229 static int setting_network_main_create(void *cb)
232 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
234 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
235 /* ***BEGIN*** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
238 /* ****END**** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
241 if(ad->mdm_server_state == MDM_RESULT_SUCCESS)
243 ad->roaming_policy_status = mdm_get_allow_roaming_data();
244 if(ad->roaming_policy_status == MDM_STATUS_ERROR)
246 SETTING_TRACE_DEBUG(">>>>>> function error - mdm_get_allow_roaming_data() ");
250 SETTING_TRACE_DEBUG("function success - mdm_get_allow_roaming_data() --> %d ", ad->roaming_policy_status );
252 if (ad->roaming_policy_status == MDM_ALLOWED)
254 SETTING_TRACE_DEBUG(">>> MDM ALLOWED ");
256 else if (ad->roaming_policy_status == MDM_RESTRICTED)
258 SETTING_TRACE_DEBUG(">>> MDM RESTRICTED ");
264 Evas_Object *scroller;
267 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
269 _("IDS_ST_BODY_NETWORK"),
270 dgettext("sys_string",
271 "IDS_COM_BODY_BACK"),
272 NULL,//_("IDS_COM_BODY_HELP"),
273 setting_network_main_click_softkey_back_cb,
274 setting_network_main_click_softkey_help_cb,
278 setting_enable_expandable_genlist(scroller, ad,
279 __setting_network_main_exp_cb, NULL);
280 Elm_Object_Item *item = NULL;;
283 elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
284 ELM_GENLIST_ITEM_NONE, NULL, NULL);
285 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
287 int value_use_packet;
289 setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
290 &value_use_packet, &err_use_packet);
291 /** @todo check 'err_use_packet' variable for exception handling */
292 ad->data_use_packet =
293 setting_create_Gendial_field_def(scroller, &itc_1text_1icon,
294 setting_network_main_item_Gendial_mouse_up_cb,
295 ad, SWALLOW_Type_1TOGGLE, NULL,
296 NULL, value_use_packet,
297 KeyStr_UsePacketData, NULL,
298 setting_network_main_chk_btn_cb);
299 if (ad->data_use_packet) {
300 ad->data_use_packet->userdata = ad;
302 SETTING_TRACE_ERROR("ad->data_use_packet is NULL");
305 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
306 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
307 NULL, NULL, 0, Data_packet_Desc, NULL,
309 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
310 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
313 int value_data_roaming = 0;
314 int err_data_roaming = 0;
315 setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
316 &value_data_roaming, &err_data_roaming);
317 if (err_data_roaming != 0) {
318 SETTING_TRACE_ERROR("get vconf failed");
320 ad->data_roaming = setting_create_Gendial_field_def(scroller, &itc_1text_1icon,
321 setting_network_main_item_Gendial_mouse_up_cb,
322 ad, SWALLOW_Type_1TOGGLE, NULL,
323 NULL, value_data_roaming,
324 KeyStr_DataRoaming, NULL,
325 setting_network_main_chk_btn_cb);
326 if (ad->data_roaming) {
327 ad->data_roaming->userdata = ad;
329 if(ad->mdm_server_state == MDM_RESULT_SUCCESS)
331 if (ad->roaming_policy_status == MDM_ALLOWED)
333 setting_enable_genlist_item(ad->data_roaming->item);
335 else if (ad->roaming_policy_status == MDM_RESTRICTED)
337 setting_disable_genlist_item(ad->data_roaming->item);
338 setting_create_popup_without_btn(ad, ad->ly_main, NULL, MDM_POLICY_DATA_ROAMING_RESTRICTED_STR,
339 NULL, POPUP_INTERVAL, FALSE, FALSE);
344 SETTING_TRACE_ERROR("ad->data_roaming is NULL");
347 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
348 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
349 NULL, NULL, 0, SETTING_NETWORK_DATA_ROMING_DESC, NULL,
351 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
352 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
355 /* (void)setting_create_Gendial_field_titleItem(scroller, &(ad->itc_group_item), speciliztion, NULL); */
357 /* check flight mode */
358 int flight_mode, err;
359 setting_get_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE, &flight_mode,
361 /** @todo check 'err' variable for exception handling */
362 SETTING_TRACE("flight_mode:%d", flight_mode);
363 char *sub_des = NULL;
364 if (flight_mode == 0) {
365 /* ***BEGIN*** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
366 ad->sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
367 ad->sel_act = TAPI_NETWORK_SYSTEM_NO_SRV;
368 vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &ad->sel_net);
369 vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, &ad->sel_act);
371 FREE(ad->sel_network);
372 ad->sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);
373 SETTING_TRACE("pa_sel_net_name:%s", ad->sel_network);
374 if (isEmptyStr(ad->sel_network)) {
375 ad->sel_network = strndup("IDS_ST_BODY_NOSERVICE", strlen("IDS_ST_BODY_NOSERVICE")+1);
377 SETTING_TRACE("pa_net_name:%s", ad->sel_network);
378 SETTING_TRACE("old act:%d", ad->sel_act);
379 SETTING_TRACE("old network mode:%d", ad->sel_net);
381 char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
382 if (TAPI_NETWORK_SELECTIONMODE_MANUAL == value) {
383 snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
384 "%s, %s (%s)", _("IDS_COM_BODY_MANUAL"), _(ad->sel_network),
385 setting_network_get_act_str(ad->sel_act));
388 snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
389 "%s, %s", _("IDS_COM_BODY_AUTOMATIC"), _(ad->sel_network));
392 ad->data_sel_net = setting_create_Gendial_field_def(scroller,
394 setting_network_main_item_Gendial_mouse_up_cb,
395 ad, SWALLOW_Type_INVALID,
397 "IDS_ST_BODY_SELECT_NETWORK",
398 sel_network_desc, NULL);
399 if (ad->data_sel_net) {
400 ad->data_sel_net->userdata = ad;
402 SETTING_TRACE_ERROR("ad->data_sel_net is NULL");
405 /* ***BEGIN*** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
406 /* hide NETWORK MODE in Emulator*/
407 k = vconf_get_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, &value);
409 SETTING_TRACE("value:%d", value);
411 case TAPI_NETWORK_BAND_TYPE_ANY:
412 sub_des = _("IDS_COM_BODY_AUTOMATIC");
414 case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
415 sub_des = _(STR_SETTING_GSM_900_1800);
417 case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
418 sub_des = _(STR_SETTING_GSM_850_1900);
420 case TAPI_NETWORK_BAND_TYPE_WCDMA:
421 sub_des = _(STR_SETTING_UMTS);
429 setting_create_Gendial_exp_parent_field(scroller,
432 SWALLOW_Type_INVALID,
433 "IDS_ST_BODY_NETWORK_MODE",
435 if (ad->data_net_mode) {
436 ad->data_net_mode->int_slp_setting_binded =
437 INT_SLP_SETTING_NETWORK_MODE;
438 ad->data_net_mode->userdata = ad;
440 SETTING_TRACE_ERROR("ad->data_back is NULL");
443 setting_create_Gendial_field_def(scroller, &itc_1text,
444 setting_network_main_item_Gendial_mouse_up_cb,
445 ad, SWALLOW_Type_INVALID, NULL, NULL,
449 setting_create_Gendial_field_def(scroller, &itc_1text,
450 setting_network_main_item_Gendial_mouse_up_cb,
451 ad, SWALLOW_Type_INVALID, NULL, NULL,
452 0, "IDS_ST_BODY_INTERNET_CONNECTION",
454 setting_create_Gendial_field_def(scroller, &itc_1text,
455 setting_network_main_item_Gendial_mouse_up_cb,
456 ad, SWALLOW_Type_INVALID, NULL, NULL,
457 0, STR_SETTING_MMS_CONNECTIONS, NULL,
459 #ifdef ENABLED_PREFERRED_NETWORKS
460 setting_create_Gendial_field_def(scroller, &itc_1text,
461 setting_network_main_item_Gendial_mouse_up_cb,
462 ad, SWALLOW_Type_INVALID, NULL, NULL,
463 0, "IDS_ST_BODY_PREFERRED_NETWORKS",
466 #ifdef ENABLED_2G3G_NETWORK
467 /* create 3g connection option */
468 setting_create_Gendial_field_def(scroller, &itc_1text,
469 setting_network_main_item_Gendial_mouse_up_cb,
470 ad, SWALLOW_Type_INVALID, NULL, NULL,
471 0, "2G/3G Connection", NULL, NULL);
473 /* add blank rectangle */
477 item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
478 ELM_GENLIST_ITEM_NONE, NULL, NULL);
479 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
481 setting_view_network_main.is_create = 1;
482 return SETTING_RETURN_SUCCESS;
485 static int setting_network_main_destroy(void *cb)
488 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
490 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
492 if (ad->ly_main != NULL) {
493 evas_object_del(ad->ly_main);
495 ad->data_sel_net = NULL;//reset NULL after genlis destoryed with ly_main.
497 setting_view_network_main.is_create = 0;
498 return SETTING_RETURN_SUCCESS;
501 static int setting_network_main_update(void *cb)
505 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
507 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
509 if (ad->ly_main != NULL) {
511 evas_object_show(ad->ly_main);
515 return SETTING_RETURN_SUCCESS;
518 static int setting_network_main_cleanup(void *cb)
521 /* retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); */
523 /* SettingNetworkUG *ad = (SettingNetworkUG *)cb; */
525 /* all the view in view stack shared the ad->ly_main, it cannot be hided!!! */
526 /* if(ad->ly_main != NULL) */
528 /* evas_object_hide(ad->ly_main); */
531 return SETTING_RETURN_SUCCESS;
534 /* ***************************************************
538 ***************************************************/
540 /* ***************************************************
544 ***************************************************/
547 setting_network_main_click_softkey_help_cb(void *data, Evas_Object *obj,
552 retm_if(data == NULL, "Data parameter is NULL");
554 SettingNetworkUG *ad = (SettingNetworkUG *) data;
555 setting_view_change(&setting_view_network_main,
556 &setting_view_network_main_help, ad);
560 setting_network_main_click_softkey_back_cb(void *data, Evas_Object *obj,
565 retm_if(data == NULL, "Data parameter is NULL");
567 SettingNetworkUG *ad = (SettingNetworkUG *) data;
568 /* Send destroy request */
569 ug_destroy_me(ad->ug);
573 setting_network_main_item_Gendial_mouse_up_cb(void *data, Evas_Object *obj,
578 setting_retm_if(data == NULL, "Data parameter is NULL");
579 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
580 elm_genlist_item_selected_set(item, 0);
581 Setting_GenGroupItem_Data *list_item =
582 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
584 SettingNetworkUG *ad = (SettingNetworkUG *) data;
586 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
589 if (!safeStrCmp("IDS_ST_BODY_SELECT_NETWORK", list_item->keyStr)) {
591 setting_view_change(&setting_view_network_main,
592 &setting_view_network_select_network,
596 ("IDS_ST_BODY_INTERNET_CONNECTION", list_item->keyStr)) {
598 ad->con_type = NET_SERVICE_INTERNET;
600 setting_view_change(&setting_view_network_main,
601 &setting_view_network_connection_create,
603 } else if (!safeStrCmp(STR_SETTING_MMS_CONNECTIONS, list_item->keyStr)) {
604 ad->con_type = NET_SERVICE_MMS;
607 setting_view_change(&setting_view_network_main,
608 &setting_view_network_connection_create,
611 #ifdef ENABLED_PREFERRED_NETWORKS
612 else if (!safeStrCmp("IDS_ST_BODY_PREFERRED_NETWORKS",
613 list_item->keyStr)) {
618 setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value,
620 /** @todo check 'err' variable for exception handling */
621 SETTING_TRACE("INT_SLP_SETTING_SIM_SLOT value:%d", value);
623 case VCONFKEY_TELEPHONY_SIM_INSERTED:
624 /* To Recreate the view in order to search the perferred network again. */
625 /* ret = setting_view_destroy(&setting_view_network_preferred_network, ad); */
627 setting_view_change(&setting_view_network_main,
628 &setting_view_network_preferred_network,
633 case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
635 setting_create_simple_popup(NULL, ad->win_get,
636 NULL, _("IDS_ST_SECURITY_BODY_NOIMSI"));
638 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
639 SETTING_FONT_RED, value, SETTING_FONT_BLACK);
644 case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
645 case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
647 setting_create_simple_popup(NULL, ad->win_get,
648 NULL, _("IDS_COM_BODY_INVALID_SIM_CARD"));
650 ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
651 SETTING_FONT_RED, value, SETTING_FONT_BLACK);
656 SETTING_TRACE("Unknown SIM information from vconf");
661 #ifdef ENABLED_2G3G_NETWORK
662 else if (!safeStrCmp("2G/3G Connection", list_item->keyStr)) {
664 setting_view_change(&setting_view_network_main,
665 &setting_view_network_3gcon, ad);
668 else if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
669 int old_status = elm_check_state_get(list_item->eo_check);
671 list_item->chk_status = !old_status;
672 elm_check_state_set(list_item->eo_check, list_item->chk_status);
673 if (!list_item->chk_status) {
675 setting_create_popup_with_btn(ad, ad->win_get,
676 NULL, _(SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC),
677 setting_network_use_packet_resp_cb,
678 0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
681 setting_create_popup_with_btn(ad, ad->win_get,
682 NULL, _(SETTING_NETWORK_USE_PACKET_DATA_ON_DESC),
683 setting_network_use_packet_resp_cb,
684 0, 1, _("IDS_COM_SK_OK"));
687 } else if (!safeStrCmp(KeyStr_DataRoaming, list_item->keyStr)) {
688 int old_status = elm_check_state_get(list_item->eo_check);
690 list_item->chk_status = !old_status;
691 elm_check_state_set(list_item->eo_check, list_item->chk_status);
693 char *notify_str = NULL;
694 if (!list_item->chk_status) {
695 notify_str = SETTING_NETWORK_DATA_ROMING_OFF_DESC;
696 ad->popup = setting_create_popup_with_btn(ad, ad->win_get,
698 __setting_network_data_roaming_resp_cb, 0,
699 1, _("IDS_COM_SK_OK"));
702 setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
703 SETTING_ON_OFF_BTN_ON, &err);
704 setting_retm_if(err != 0, "set vconf failed");
706 /* should set use_packet_data as same as the status of data_roming */
708 setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &value, &err);
709 setting_retm_if(err != 0, "get vconf failed");
711 setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
712 SETTING_ON_OFF_BTN_ON, &err);
713 setting_retm_if(err != 0, "set vconf failed");
715 elm_check_state_set(ad->data_use_packet->eo_check, 1);
716 ad->data_use_packet->chk_status = 1;
719 } else if(!safeStrCmp(CONNECTION_DSC, list_item->keyStr)) {
720 ret = setting_view_change(&setting_view_network_main,
721 &setting_view_network_con, ad);
726 setting_network_main_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
730 retm_if(data == NULL, "Data parameter is NULL");
731 SettingNetworkUG *ad = NULL;
732 Setting_GenGroupItem_Data *list_item =
733 (Setting_GenGroupItem_Data *) data;
734 ad = list_item->userdata;
735 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
737 if (obj == ad->data_use_packet->eo_check) {
738 if (!list_item->chk_status) {
740 setting_create_popup_with_btn(ad, ad->win_get,
741 NULL, _(SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC),
742 setting_network_use_packet_resp_cb,
743 0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
746 setting_create_popup_with_btn(ad, ad->win_get,
747 NULL, _(SETTING_NETWORK_USE_PACKET_DATA_ON_DESC),
748 setting_network_use_packet_resp_cb,
749 0, 1, _("IDS_COM_SK_OK"));
751 }else if (obj == ad->data_roaming->eo_check) {
752 char *notify_str = NULL;
753 if (!list_item->chk_status) {
754 notify_str = SETTING_NETWORK_DATA_ROMING_OFF_DESC;
755 ad->popup = setting_create_popup_with_btn(ad, ad->win_get,
757 __setting_network_data_roaming_resp_cb, 0,
758 1, _("IDS_COM_SK_OK"));
761 setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
762 SETTING_ON_OFF_BTN_ON, &err);
763 setting_retm_if(err != 0, "set vconf failed");
765 /* should set use_packet_data as same as the status of data_roming */
767 setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &value, &err);
768 setting_retm_if(err != 0, "get vconf failed");
770 setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
771 SETTING_ON_OFF_BTN_ON, &err);
772 setting_retm_if(err != 0, "set vconf failed");
774 elm_check_state_set(ad->data_use_packet->eo_check, 1);
775 ad->data_use_packet->chk_status = 1;
782 setting_network_use_packet_resp_cb(void *data, Evas_Object *obj,
786 retm_if(data == NULL, "Data parameter is NULL");
788 SettingNetworkUG *ad = (SettingNetworkUG *) data;
789 int err = 0; /* error check */
790 int response_type = btn_type(obj);
793 setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &value, &err);
794 setting_retm_if(err != 0, "get vconf failed");
795 SETTING_TRACE("value = %d", value);
796 if (POPUP_RESPONSE_OK == response_type) {
798 setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
799 SETTING_ON_OFF_BTN_ON, &err);
800 setting_retm_if(err != 0, "set vconf failed");
802 elm_check_state_set(ad->data_use_packet->eo_check, 1);
803 ad->data_use_packet->chk_status = 1;
805 /* if called by other apps, destroy ug */
806 if (!safeStrCmp(ad->view_type_string, "DATA_ROAMING")) {
808 evas_object_del(ad->popup);
811 ug_destroy_me(ad->ug);
815 setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
816 SETTING_ON_OFF_BTN_OFF, &err);
817 setting_retm_if(err != 0, "set vconf failed");
819 elm_check_state_set(ad->data_use_packet->eo_check, 0);
820 ad->data_use_packet->chk_status = 0;
822 /* should set data_roming as same as status of use_packet_data */
823 int data_roaming_value = 0;
824 setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, &data_roaming_value, &err);
825 setting_retm_if(err != 0, "get vconf failed");
826 if (data_roaming_value) {
827 setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
828 SETTING_ON_OFF_BTN_OFF, &err);
829 setting_retm_if(err != 0, "set vconf failed");
831 elm_check_state_set(ad->data_roaming->eo_check, 0);
832 ad->data_roaming->chk_status = 0;
835 } else if (POPUP_RESPONSE_CANCEL == response_type) {
838 setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
839 SETTING_ON_OFF_BTN_ON, &err);
840 setting_retm_if(err != 0, "set vconf failed");
841 elm_check_state_set(ad->data_use_packet->eo_check, 1);
842 ad->data_use_packet->chk_status = 1;
847 evas_object_del(ad->popup);
853 static void __setting_network_data_roaming_resp_cb(void *data, Evas_Object *obj,
857 retm_if(data == NULL, "Data parameter is NULL");
859 SettingNetworkUG *ad = (SettingNetworkUG *) data;
860 int response_type = btn_type(obj);
861 SETTING_TRACE("elm_object_parent_widget_get(obj):%p", elm_object_parent_widget_get(obj));
862 SETTING_TRACE("obj:%p", obj);
863 if (POPUP_RESPONSE_OK == response_type) {
866 setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, &value, &err);
869 setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
870 SETTING_ON_OFF_BTN_ON, &err);
871 setting_retm_if(err != 0, "set vconf failed");
873 elm_check_state_set(ad->data_roaming->eo_check, 1);
874 ad->data_roaming->chk_status = 1;
876 /* if called by other apps, destroy ug */
877 if (!safeStrCmp(ad->view_type_string, "DATA_ROAMING")) {
880 evas_object_del(ad->popup);
883 ug_destroy_me(ad->ug);
887 setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
888 SETTING_ON_OFF_BTN_OFF, &err);
889 setting_retm_if(err != 0, "set vconf failed");
891 elm_check_state_set(ad->data_roaming->eo_check, 0);
892 ad->data_roaming->chk_status = 0;
898 evas_object_del(ad->popup);