1 #include <setting-handler.h>
2 #include <setting-helper.h>
9 static Setting_GenGroupItem_Data * __flightmode_handler(void* data, char* keyStr, char* icon_path, char* ug_name, Evas_Object *genlist, Elm_Object_Item *parent)
11 //SETTING_TRACE_BEGIN;
12 // NOT UG --> it's just UI drawing
14 setting_main_appdata *ad = (setting_main_appdata *)data;
16 setting_get_bool_slp_key (BOOL_SLP_SETTING_FLIGHT_MODE, &value, &err);
18 /* create flight_mode */
19 ad->data_flight = setting_create_Gendial_field_groupitem(genlist,
20 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
22 setting_main_click_Gendial_list_flight_mode_cb,
24 SWALLOW_Type_1ICON_1RADIO,
30 setting_main_click_list_flight_mode_cb);
31 __BACK_POINTER_SET(ad->data_flight);
33 return ad->data_flight;
36 static Setting_GenGroupItem_Data * __netrestrictionmode_handler(void* data, char* keyStr, char* icon_path, char* ug_name, Evas_Object *genlist, Elm_Object_Item *parent)
38 //SETTING_TRACE_BEGIN;
39 // NOT UG --> it's just UI drawing
41 setting_main_appdata *ad = (setting_main_appdata *)data;
44 setting_get_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, &value, &err );
46 /* create restriction mode */
47 ad->data_netrestrictionmode = setting_create_Gendial_field_groupitem(genlist,
48 &(ad->itc[GENDIAL_Type_1text_2icon]),
50 setting_main_click_list_net_restriction_mode_cb,
52 SWALLOW_Type_1ICON_1RADIO,
53 IMG_NetRestrictionMode,
58 setting_main_click_list_check_net_restriction_mode_cb );
59 __BACK_POINTER_SET(ad->data_netrestrictionmode);
64 setting_disable_genlist_item( ad->data_wifi->item );
67 return ad->data_netrestrictionmode;
70 static Setting_GenGroupItem_Data * __wifi_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
72 //SETTING_TRACE_BEGIN;
73 setting_main_appdata *ad = (setting_main_appdata *)data;
77 setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
79 preference_set_boolean(WIFI_LAST_ON_OFF_STATE, (value ? 1 : 0));
80 ad->data_wifi = setting_create_Gendial_field_groupitem(genlist,
82 //&(ad->itc[GENDIAL_Type_1text_2icon_divider]),
83 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
85 setting_main_click_list_ex_ug_cb,
87 SWALLOW_Type_1ICON_1RADIO,
93 setting_main_click_list_wifi_mode_cb);
94 __BACK_POINTER_SET(ad->data_wifi);
97 ad->data_wifi->userdata = ad;
100 return ad->data_wifi;
103 static Setting_GenGroupItem_Data * __bluetooth_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
105 //SETTING_TRACE_BEGIN;
106 setting_main_appdata *ad = (setting_main_appdata *)data;
108 setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
110 ad->data_bt = setting_create_Gendial_field_groupitem(genlist,
111 //&(ad->itc[GENDIAL_Type_1text_2icon_divider]),
112 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
114 setting_main_click_list_ex_ug_cb,
116 SWALLOW_Type_1ICON_1RADIO,
122 setting_main_click_list_bt_mode_cb);
123 __BACK_POINTER_SET(ad->data_bt);
126 ad->data_bt->userdata = ad;
132 static Setting_GenGroupItem_Data * __mobileap_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
134 //SETTING_TRACE_BEGIN;
135 setting_main_appdata *ad = (setting_main_appdata *)data;
137 ad->data_mobileApp = setting_create_Gendial_field_groupitem(genlist,
138 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
140 setting_main_click_list_ex_ug_cb,
142 SWALLOW_Type_INVALID,
149 __BACK_POINTER_SET(ad->data_mobileApp);
150 if(ad->data_mobileApp)
152 ad->data_mobileApp->userdata = ad;
155 return ad->data_mobileApp;
158 static Setting_GenGroupItem_Data * __allshare_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
160 //SETTING_TRACE_BEGIN;
161 setting_main_appdata *ad = (setting_main_appdata *)data;
163 Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
164 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
166 setting_main_click_list_default_ug_cb,
168 SWALLOW_Type_INVALID,
177 static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
179 //SETTING_TRACE_BEGIN;
180 setting_main_appdata *ad = (setting_main_appdata *)data;
182 ad->data_network = setting_create_Gendial_field_groupitem(genlist,
183 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
185 setting_main_click_list_network_ug_cb,
187 SWALLOW_Type_INVALID,
195 vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight_mode);
198 if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
201 __BACK_POINTER_SET(ad->data_network);
202 return ad->data_network;
206 static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
208 //SETTING_TRACE_BEGIN;
209 if(!is_NFC_feature_supported()){
210 SETTING_TRACE("!is_NFC_feature_supported");
213 setting_main_appdata *ad = (setting_main_appdata *)data;
216 setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &value, &err);
218 ad->data_nfc = setting_create_Gendial_field_groupitem(genlist,
219 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
220 //&(ad->itc[GENDIAL_Type_1text_2icon]),
222 setting_main_click_list_ex_ug_cb,
224 SWALLOW_Type_1ICON_1RADIO,
230 setting_main_click_list_nfc_mode_cb);
231 __BACK_POINTER_SET(ad->data_nfc);
234 ad->data_nfc->userdata = ad;
241 static Setting_GenGroupItem_Data * __adjust_screen_tone_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
244 setting_main_appdata *ad = (setting_main_appdata *)data;
245 Setting_GenGroupItem_Data * obj = NULL;
248 vconf_get_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, &value);
249 obj = setting_create_Gendial_field_groupitem(genlist,
250 &(ad->itc[GENDIAL_Type_1text_2icon]),
252 setting_main_display_list_cb,
254 SWALLOW_Type_1ICON_1RADIO,
260 setting_main_display_auto_adjust_chk_btn_cb);
264 __BACK_POINTER_SET(obj);
266 ad->data_screentone = obj;
271 static Setting_GenGroupItem_Data * __landscape_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
274 setting_main_appdata *ad = (setting_main_appdata *)data;
275 Setting_GenGroupItem_Data * obj = NULL;
278 vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
279 obj = setting_create_Gendial_field_groupitem(genlist,
280 &(ad->itc[GENDIAL_Type_1text_2icon]),
282 setting_main_display_list_cb,
284 SWALLOW_Type_1ICON_1RADIO,
290 setting_main_display_auto_rotate_chk_btn_cb);
294 __BACK_POINTER_SET(obj);
296 ad->data_landscape = obj;
305 static Setting_GenGroupItem_Data * __multiwindow_mode_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
308 setting_main_appdata *ad = (setting_main_appdata *)data;
309 Setting_GenGroupItem_Data * obj = NULL;
312 int ret = vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &value);
314 SETTING_TRACE_ERROR("get multi-window vconf failed");
317 SETTING_TRACE("multi-window vconf value=%d\n",value);
319 setting_create_Gendial_field_groupitem(genlist,
320 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
322 setting_main_click_list_ex_ug_cb,
324 SWALLOW_Type_1ICON_1RADIO,
330 setting_main_list_mouse_up_cb);
334 __BACK_POINTER_SET(obj);
336 ad->data_multi_window = obj;
342 static Setting_GenGroupItem_Data * __brightness_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
345 setting_main_appdata *ad = (setting_main_appdata *)data;
346 Setting_GenGroupItem_Data * obj = NULL;
348 char* pa_bright = get_brightness_mode_str();
350 setting_create_Gendial_field_groupitem(genlist,
351 &(ad->itc[GENDIAL_Type_1icon_2text]),
353 setting_main_click_list_ex_ug_cb,
355 SWALLOW_Type_INVALID,
365 __BACK_POINTER_SET(obj);
367 ad->data_bright = obj;
372 #if SUPPORT_BLOCKINGMODE
373 static Setting_GenGroupItem_Data * __blocking_mode_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
376 setting_main_appdata *ad = (setting_main_appdata *)data;
377 Setting_GenGroupItem_Data * obj = NULL;
380 int ret = vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &value);
382 SETTING_TRACE_ERROR("get vconf failed");
385 obj = setting_create_Gendial_field_groupitem(genlist,
386 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
387 //&(ad->itc[GENDIAL_Type_1text_2icon]),
389 setting_main_click_list_ex_ug_cb,
391 SWALLOW_Type_1ICON_1RADIO,
397 setting_main_list_mouse_up_cb);
400 __BACK_POINTER_SET(obj);
402 ad->data_blocking = obj;
409 static Setting_GenGroupItem_Data * __personal_mode_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
412 setting_main_appdata *ad = (setting_main_appdata *)data;
413 Setting_GenGroupItem_Data * obj = NULL;
416 int ret = vconf_get_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, &value);
418 SETTING_TRACE_ERROR("get vconf failed");
421 obj = setting_create_Gendial_field_groupitem(genlist,
422 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
423 //&(ad->itc[GENDIAL_Type_1text_2icon]),
425 setting_main_click_list_ex_personal_mode_cb,
427 SWALLOW_Type_1ICON_1RADIO,
433 setting_main_list_mouse_up_cb);
436 __BACK_POINTER_SET(obj);
438 ad->data_personalpage = obj;
445 static Setting_GenGroupItem_Data * __hightouch_sens_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
448 setting_main_appdata *ad = (setting_main_appdata *)data;
449 Setting_GenGroupItem_Data * obj = NULL;
452 int entouch = display_get_enhanced_touch();
460 vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, value); //sync to vconf
462 /* create high touch sensitivity */
463 obj = setting_create_Gendial_field_groupitem(genlist,
464 &(ad->itc[GENDIAL_Type_1text_2icon]),
466 setting_main_mouse_up_Gendial_list_sensitivity_cb,
468 SWALLOW_Type_1ICON_1RADIO,
472 KeyStr_HighTouchSens,
474 setting_main_high_touch_sens_chk_btn_cb);
478 __BACK_POINTER_SET(obj);
480 ad->data_high_touch_sensitivity = obj;
486 //__screen_mode_handler
487 static Setting_GenGroupItem_Data * __screen_mode_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
490 setting_main_appdata *ad = (setting_main_appdata *)data;
492 mainlist_entry* entry = settinig_drawer_hash_find(ad, keyStr);
494 Setting_GenGroupItem_Data *item_data = NULL;
497 item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, parent);
498 entry->item_data = item_data;
501 char* pa_screenmode = get_pa_screen_mode_str();
503 Setting_GenGroupItem_Data * obj = NULL;
505 setting_create_Gendial_field_groupitem(genlist,
506 &(ad->itc[GENDIAL_Type_1icon_2text]),
508 setting_main_click_list_ex_ug_cb,
510 SWALLOW_Type_INVALID,
517 G_FREE(pa_screenmode);
518 __BACK_POINTER_SET(obj);
522 ad->data_screenmode = obj;
531 static Setting_GenGroupItem_Data * __battery_percent_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
534 setting_main_appdata *ad = (setting_main_appdata *)data;
535 Setting_GenGroupItem_Data * obj = NULL;
538 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &value);
539 obj = setting_create_Gendial_field_groupitem(genlist,
540 &(ad->itc[GENDIAL_Type_1text_2icon]),
542 setting_main_display_list_cb,
544 SWALLOW_Type_1ICON_1RADIO,
550 setting_main_display_battery_chk_btn_cb);
551 __BACK_POINTER_SET(obj);
555 ad->data_battery = obj;
561 static Setting_GenGroupItem_Data * __backlight_time_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
564 setting_main_appdata *ad = (setting_main_appdata *)data;
565 Setting_GenGroupItem_Data * obj = NULL;
567 char* pa_backlight = get_pa_backlight_time_str();
568 obj = setting_create_Gendial_field_groupitem(genlist,
569 &(ad->itc[GENDIAL_Type_1icon_2text]),
571 setting_main_click_list_ex_ug_cb,
573 SWALLOW_Type_INVALID,
580 G_FREE(pa_backlight);
581 __BACK_POINTER_SET(obj);
585 ad->data_backlight = obj;
591 static Setting_GenGroupItem_Data * __nearby_device_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
594 setting_main_appdata *ad = (setting_main_appdata *)data;
595 Setting_GenGroupItem_Data * obj = NULL;
597 Cfg_Item_State state = Cfg_Item_Error;
598 Setting_Cfg_Node_T* pnode = get_cfg_node_by_keystr( _(keyStr) );
599 if (pnode && pnode->tfunc && pnode->tfunc->get_item_state) {
600 pnode->tfunc->get_item_state(&state, NULL);
603 obj = setting_create_Gendial_field_groupitem(genlist,
604 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
605 //&(ad->itc[GENDIAL_Type_1text_2icon]),
607 setting_main_click_list_ex_ug_cb,
609 SWALLOW_Type_1ICON_1RADIO,
615 setting_main_click_list_nearby_devices_cb);
616 __BACK_POINTER_SET(obj);
621 ad->data_nearby_devices = obj;
627 static Setting_GenGroupItem_Data * __developer_option_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
630 setting_main_appdata *ad = (setting_main_appdata *)data;
631 Setting_GenGroupItem_Data * obj = NULL;
632 #ifdef BINARY_RELEASE_TYPE_ENG
633 /*for eng binary: always show <developer option>*/
634 obj = setting_create_Gendial_field_groupitem(genlist,
635 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
637 setting_main_click_list_ex_ug_cb,
639 SWALLOW_Type_INVALID,
647 /*for user binary: need to check develop_option_state vconf value*/
648 int dev_op_state = 0;
650 ret = vconf_get_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE,&dev_op_state);
652 SETTING_TRACE_ERROR("Failed to ger vconf value %d",ret);
655 obj = setting_create_Gendial_field_groupitem(genlist,
656 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
658 setting_main_click_list_ex_ug_cb,
660 SWALLOW_Type_INVALID,
667 SETTING_TRACE("dev_op_state is 0");
674 static Setting_GenGroupItem_Data * __joyn_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
677 setting_main_appdata *ad = (setting_main_appdata *)data;
678 if (vcui_doc_rcs_get_install_status() == EINA_TRUE) {
679 ad->data_joyn = setting_create_Gendial_field_groupitem(genlist,
680 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
682 setting_main_click_list_ex_ug_cb,
684 SWALLOW_Type_INVALID,
690 __BACK_POINTER_SET(ad->data_joyn);
693 ad->data_joyn->userdata = ad;
695 return ad->data_joyn;
697 SETTING_TRACE("Joyn account is NOT available");
703 static Setting_GenGroupItem_Data * __sbeam_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
705 //SETTING_TRACE_BEGIN;
706 if(!is_NFC_feature_supported()){
707 SETTING_TRACE("!is_NFC_feature_supported");
710 setting_main_appdata *ad = (setting_main_appdata *)data;
714 setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_SBEAM, &value, &err);
716 ad->data_sbeam = setting_create_Gendial_field_groupitem(genlist,
717 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
718 //&(ad->itc[GENDIAL_Type_1text_2icon]),
720 setting_main_click_list_ex_ug_cb,
722 SWALLOW_Type_1ICON_1RADIO,
728 setting_main_click_list_sbeam_mode_cb);
729 __BACK_POINTER_SET(ad->data_sbeam);
732 ad->data_sbeam->userdata = ad;
735 return ad->data_sbeam;
739 static Setting_GenGroupItem_Data * __default_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist, Elm_Object_Item *parent)
741 //SETTING_TRACE_BEGIN;
742 setting_main_appdata *ad = (setting_main_appdata *)data;
743 Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
744 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
746 setting_main_click_list_ex_ug_cb,
748 SWALLOW_Type_INVALID,
758 static Setting_GenGroupItem_Data * __powersaving_handler(void* data, char* keyStr, char* icon_path, char* ug_name, Evas_Object *genlist, Elm_Object_Item *parent)
760 // NOT UG --> it's just UI drawing
761 setting_main_appdata *ad = (setting_main_appdata *)data;
763 Setting_GenGroupItem_Data *item_data = NULL;
765 #if SUPPORT_POWERSAVING
767 int ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, &value);
769 SETTING_TRACE_ERROR("get vconf failed");
772 ad->data_powersaving = setting_create_Gendial_field_groupitem(genlist,
773 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
774 //&(ad->itc[GENDIAL_Type_1text_2icon]),
776 setting_main_click_list_ex_ug_cb,
778 SWALLOW_Type_1ICON_1RADIO,
784 setting_main_list_mouse_up_cb);
785 __BACK_POINTER_SET(ad->data_powersaving);
786 item_data = ad->data_powersaving;
790 ad->data_powersaving = setting_create_Gendial_field_groupitem(genlist,
791 &(ad->itc[GENDIAL_Type_1text_1icon_2]),
793 setting_main_click_list_ex_ug_cb,
795 SWALLOW_Type_INVALID,
802 __BACK_POINTER_SET(ad->data_powersaving);
803 item_data = ad->data_powersaving;
805 int ret = vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight_key);
807 SETTING_TRACE_ERROR("get vconf failed");
811 if (ad->data_powersaving) {
813 setting_disable_genlist_item(ad->data_powersaving->item);
820 static Setting_GenGroupItem_Data * __driving_handler(void* data, char* keyStr, char* icon_path, char* ug_name, Evas_Object *genlist, Elm_Object_Item *parent)
822 // NOT UG --> it's just UI drawing
824 setting_main_appdata *ad = (setting_main_appdata *)data;
826 int ret = vconf_get_bool(VCONFKEY_SETAPPL_DM_DRIVING_MODE, &value);
828 SETTING_TRACE_ERROR("get vconf failed");
831 ad->data_driving = setting_create_Gendial_field_groupitem(genlist,
832 &(ad->itc[GENDIAL_Type_1text_2icon_divider]),
833 //&(ad->itc[GENDIAL_Type_1text_2icon]),
835 setting_main_click_list_ex_ug_cb,
837 SWALLOW_Type_1ICON_1RADIO,
843 setting_main_list_mouse_up_cb);
844 __BACK_POINTER_SET(ad->data_driving);
845 return ad->data_driving;
848 //////////////////////////////////////////////////////////////////////////////////////////////
850 static mainlist_entry mainlist_table[] = {
851 {KeyStr_FlightMode, __default_handler, UG_HANDLE, NULL}, // 0 --> NOT UG
852 {KeyStr_NetRestrictionMode, __netrestrictionmode_handler, UI_PROC, NULL}, // 0 --> NOT UG
853 {KeyStr_WiFi, __default_handler, UI_PROC, NULL}, // 1 --> UG
854 {KeyStr_Bluetooth, __default_handler, UI_PROC, NULL},
855 {KeyStr_MobileAP, __mobileap_handler,UG_HANDLE, NULL}, // 1 --> UG
856 {KeyStr_AllShare, __allshare_handler, UI_PROC, NULL}, // NOT UG
857 {KeyStr_Location, __default_handler,UI_PROC, NULL}, // 1 --> UG
858 {KeyStr_Network, __default_handler,UG_HANDLE, NULL}, // 1 --> UG
860 {KeyStr_NFC, __nfc_handler,UG_HANDLE, NULL}, // 1 --> UG
861 {KeyStr_SBeam, __sbeam_handler,UG_HANDLE, NULL}, // 1 --> UG
863 {KeyStr_Powersaving, __powersaving_handler, UI_PROC, NULL}, // 1 --> UG
864 {keystr_Drivingmode, __driving_handler, UI_PROC, NULL}, // 1 --> UG
865 {KeyStr_Joyn, __joyn_handler,UI_PROC, NULL},
866 {KeyStr_DeveloperOption, __developer_option_handler,UI_PROC, NULL},
867 {KeyStr_BacklightTime, __backlight_time_handler,UI_PROC, NULL},
868 {KeyStr_BatteryPercent, __battery_percent_handler,UG_HANDLE, NULL},
869 {Keystr_ScreenMode, __screen_mode_handler, UG_HANDLE, NULL},
870 {KeyStr_HighTouchSens, __default_handler, UI_PROC, NULL},
871 //{KeyStr_Guestmode, __guest_mode_handler,UI_PROC, NULL},
872 {keystr_Personalmode, __personal_mode_handler,UI_PROC, NULL},
873 #if SUPPORT_BLOCKINGMODE
874 {keystr_Blockingmode, __blocking_mode_handler,UI_PROC, NULL},
876 {KeyStr_Brightness, __brightness_handler,UI_PROC, NULL},
877 {KeyStr_MultiWindowMode, __multiwindow_mode_handler,UI_PROC, NULL},
878 {KeyStr_Landscape, __landscape_handler, UG_HANDLE, NULL},
879 {KeyStr_AdjustScreenTone, __adjust_screen_tone_handler, UI_PROC, NULL},
880 {"Default", __default_handler, DEFAULT_UI, NULL}, // 1 --> UG
882 //--------------------------------------------------------------
883 {NULL, NULL, ERROR_STATE, NULL},
886 //-----------------------------------------------------------------------------------------
887 // hash table utility
888 static void __list_hash_free_cb(void *obj)
891 //const char *name = key;
892 //const char *number = data;
893 //printf("%s: %s\n", name, number);
897 // hash table utility
898 void settinig_drawer_hash_init(void *cb)
902 setting_main_appdata *ad = (setting_main_appdata *) cb;
905 mainlist_entry* pnode = NULL;
906 ad->main_list_hash = eina_hash_string_superfast_new(__list_hash_free_cb);
908 for (pnode = &mainlist_table[0]; pnode->title != NULL; pnode++)
910 eina_hash_add(ad->main_list_hash , pnode->title, pnode);
911 //SETTING_TRACE("init and add data to hash : %s ", pnode->title);
915 // hash table utility
916 mainlist_entry* settinig_drawer_hash_find(void *cb, char* search_str)
918 //SETTING_TRACE_BEGIN;
919 //SETTING_TRACE("------------------ HASH SEARCH ----------------------, %s", search_str);
920 setting_main_appdata *ad = (setting_main_appdata *) cb;
921 mainlist_entry* pnode = NULL;
923 pnode = eina_hash_find(ad->main_list_hash, search_str);
924 return pnode; // statically allocated
926 //-----------------------------------------------------------------------------------------
929 /* ***************************************************
933 ***************************************************/
936 /* obj is the layout clicked */
938 setting_main_click_list_item_ug_cb(void *data, Evas_Object *obj,
939 char *ug_to_load, app_control_h svc,
943 setting_main_appdata *ad = (setting_main_appdata *) data;
945 setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
948 SETTING_TRACE("to create libug-%s.so", ug_to_load);
949 elm_object_tree_focus_allow_set(ad->ly_main, EINA_FALSE);
951 //setting_conformant_keypad_state(ad->win_main, TRUE);
952 ad->ug = setting_ug_create(NULL, ug_to_load, UG_MODE_FULLVIEW, svc, cbs);
954 ad->isInUGMode = TRUE;
956 elm_object_tree_focus_allow_set(ad->ly_main, EINA_TRUE);
957 evas_object_show(ad->ly_main);
958 //don't going to access globle var errno
959 //SETTING_TRACE_ERROR("errno:%d", errno);
960 //SETTING_TRACE_ERROR("Failed to load /usr/ug/lib/libug-%s.so", ug_to_load);
961 //SETTING_TRACE_ERROR("Failed to load lib-%s.so", ug_to_load);
962 setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
966 void /* obj is the layout clicked */
967 setting_main_click_grid_item_ug_cb(void *data, Evas_Object *obj,
968 char *ug_to_load, app_control_h svc,
972 setting_main_appdata *ad = (setting_main_appdata *) data;
974 setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
978 SETTING_TRACE("to create libug-%s.so", ug_to_load);
979 elm_object_tree_focus_allow_set(ad->ly_main, EINA_FALSE);
981 //setting_conformant_keypad_state(ad->win_main, TRUE);
982 ad->ug = setting_ug_create(NULL, ug_to_load, UG_MODE_FULLVIEW, svc, cbs);
984 ad->isInUGMode = TRUE;
986 elm_object_tree_focus_allow_set(ad->ly_main, EINA_TRUE);
987 evas_object_show(ad->ly_main);
989 SETTING_TRACE_ERROR("errno:%d", errno);
994 void setting_main_click_list_default_ug_cb(void *data, Evas_Object *obj, void *event_info)
996 setting_main_appdata *ad = data;
997 setting_create_simple_popup(ad, ad->win_main, NULL,
1001 void setting_main_click_list_usb_cb(void *data, Evas_Object *obj, void *event_info)
1003 SETTING_TRACE_BEGIN;
1004 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
1008 char *str_text = USB_NEED_OFF;
1010 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
1012 setting_get_int_slp_key(INT_SLP_SETTING_MOBILE_AP_STATUS, &value, &err);
1015 SETTING_TRACE_ERROR("FAIL: VCONFKEY_MOBILE_HOTSPOT_MODE may not exist\n");
1016 setting_main_click_list_ex_ug_cb(data, obj, item);
1020 /* If mobile hotspot is on, going USB utilties is blocked by a popup*/
1021 if (value & VCONFKEY_MOBILE_HOTSPOT_MODE_USB)
1023 elm_genlist_item_selected_set(item, EINA_FALSE);
1024 setting_create_simple_popup(g_main_ad, g_main_ad->win_main, NULL, str_text);
1028 setting_main_click_list_ex_ug_cb(data, obj, item);
1032 void setting_main_kies_via_wifi_care_resp_cb(void *data, Evas_Object *obj,
1035 SETTING_TRACE_BEGIN;
1036 setting_retm_if(NULL == data, "NULL == data");
1037 setting_main_appdata *ad = g_main_ad;
1038 int response_type = btn_type(obj);
1040 if (POPUP_RESPONSE_OK == response_type)
1043 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1044 setting_retm_if(!cbs, "calloc failed");
1045 cbs->layout_cb = setting_main_layout_ug_cb;
1046 cbs->result_cb = setting_main_result_ug_cb;
1047 cbs->destroy_cb = setting_main_destroy_ug_cb;
1048 cbs->priv = (void *)ad;
1050 char *path = get_ug_path_from_ug_args(data);
1051 app_control_h svc = get_bundle_from_ug_args(data);
1052 setting_main_click_list_item_ug_cb(ad, obj, path, svc, cbs);
1063 app_control_destroy(svc);
1065 else if (POPUP_RESPONSE_CANCEL == response_type)
1067 SETTING_TRACE(" cancel - do nothing ");
1069 SETTING_TRACE(" NOT REACHABLE -- response_type : %d", response_type);
1071 evas_object_del(ad->popup_kies_via_wifi);
1072 ad->popup_kies_via_wifi = NULL;
1074 void setting_main_kies_via_wifi_warn_resp_cb(void *data, Evas_Object *obj,
1077 setting_retm_if(NULL == data, "NULL == data");
1078 setting_main_appdata *ad = g_main_ad;
1079 evas_object_del(ad->popup_kies_via_wifi);
1080 ad->popup_kies_via_wifi = NULL;
1086 void setting_main_click_list_ex_personal_mode_cb(void *data, Evas_Object *obj,
1089 SETTING_TRACE_BEGIN;
1090 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
1091 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
1093 elm_genlist_item_selected_set(item, EINA_FALSE);
1095 bool is_running = FALSE;
1096 app_manager_is_running("org.tizen.setting.personal", &is_running);
1099 elm_object_tree_focus_allow_set(g_main_ad->ly_main, EINA_FALSE);
1101 if(app_control_create(&svc))
1106 app_control_set_app_id(svc, "org.tizen.setting.personal");
1107 app_control_set_window(svc, elm_win_xwindow_get(g_main_ad->win_main));
1108 app_control_set_operation(svc, APP_CONTROL_OPERATION_DEFAULT);
1109 app_control_send_launch_request(svc, NULL, NULL);
1110 app_control_destroy(svc);
1114 void setting_main_click_list_ex_ug_cb(void *data, Evas_Object *obj,
1117 SETTING_TRACE_BEGIN;
1118 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
1119 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
1121 elm_genlist_item_selected_set(item, EINA_FALSE);
1124 SETTING_TRACE("g_main_ad->isInUGMode:%d", g_main_ad->isInUGMode);
1125 SETTING_TRACE("g_main_ad->ug:%p", g_main_ad->ug);
1126 if (g_main_ad->isInUGMode && g_main_ad->ug) {
1128 ("[ad->ug non-NULL]skip genlist click event!!");
1130 //SETTING_TRACE_END;
1134 setting_main_appdata *ad = g_main_ad;
1136 /* if UG is created by Setting app, setting_main_click_list_ex_ug_cb is diabled. */
1137 if (ad->isInUGMode) {
1138 SETTING_TRACE("isInUGMode : TRUE - another UG is running now.");
1139 ad->isInUGMode = FALSE;
1140 //SETTING_TRACE_END;
1144 ("isInUGMode : FALSE - another UG is NOT running now.")
1147 Setting_GenGroupItem_Data *selected_item_data =
1148 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
1149 setting_main_click_list_item_reset_data(ad, obj);
1150 const char *item_name = _(selected_item_data->keyStr);
1151 SETTING_TRACE("item_name:%s", item_name);
1154 if (!safeStrCmp(KeyStr_KeisOverWifi, selected_item_data->keyStr)) {
1155 int status = VCONFKEY_MOBEX_ENGINE_STATUS_NOT_CONNECT;
1156 int methord = VCONFKEY_MOBEX_ENGIN_NONE;
1157 vconf_get_int(VCONFKEY_MOBEX_ENGINE_STATUS_INT, &status);
1158 vconf_get_int(VCONFKEY_MOBEX_ENGINE_CONNECTION_METHOD_INT, &methord);
1160 if (status != VCONFKEY_MOBEX_ENGINE_STATUS_NOT_CONNECT
1161 && methord == VCONFKEY_MOBEX_ENGIN_USB)
1163 ad->popup_kies_via_wifi =
1164 setting_create_popup_with_btn(data, ad->win_main,
1165 NULL, Kies_Warrning_Str,
1166 setting_main_kies_via_wifi_warn_resp_cb,
1167 0, 1, "IDS_COM_SK_OK");
1171 ad->popup_kies_via_wifi = setting_create_popup_with_btn(data,
1173 NULL,_(Kies_Caring_Str),
1174 setting_main_kies_via_wifi_care_resp_cb,
1175 0, 2, "IDS_COM_SK_OK","IDS_COM_SK_CANCEL");
1181 if (safeStrCmp(selected_item_data->keyStr, KeyStr_MoreDisplay) == 0) {
1185 if ( !safeStrCmp(selected_item_data->keyStr, KeyStr_Call)
1186 || !safeStrCmp(selected_item_data->keyStr, keystr_Blockingmode)
1187 || !safeStrCmp(selected_item_data->keyStr, keystr_Drivingmode)
1188 || !safeStrCmp(selected_item_data->keyStr, KeyStr_SimMgr)
1189 || !safeStrCmp(selected_item_data->keyStr, KeyStr_WiFi)
1190 || !safeStrCmp(selected_item_data->keyStr, KeyStr_Location)
1191 || !safeStrCmp(selected_item_data->keyStr, KeyStr_Bluetooth)
1192 || !safeStrCmp(selected_item_data->keyStr, KeyStr_MobileAP)
1193 || !safeStrCmp(selected_item_data->keyStr, KeyStr_WiFiDirect)
1194 || !safeStrCmp(selected_item_data->keyStr, KeyStr_Wallpaper)
1197 if(app_launcher(data) == 0)
1199 ad->event_freeze_timer = ecore_timer_add(1, setting_main_freeze_event_timer_cb, ad);
1200 evas_object_freeze_events_set(ad->navibar_main, EINA_TRUE);
1202 int click_times = setting_cfg_get_click_times(selected_item_data->keyStr);
1203 setting_cfg_set_click_times(selected_item_data->keyStr, ++click_times);
1208 //1.powersaving cannot work when Flightmode on
1209 if (safeStrCmp(selected_item_data->keyStr, KeyStr_Powersaving) == 0) {
1211 vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
1214 setting_create_simple_popup(NULL, ad->win_main,
1215 NULL, "IDS_IM_POP_THIS_FEATURE_IS_NOT_AVAILABLE_WHILE_FLIGHT_MODE_IS_ON");
1220 //2.Quick command cannot work when TTS on
1222 vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &tts_state);
1225 if (!safeStrCmp(selected_item_data->keyStr, KeyStr_QUICK_CMD))
1227 char noti_str[MAX_SPECIALIZITION_LEN + 1] = { 0, };
1228 snprintf(noti_str, sizeof(noti_str), _(FEATURE_UNAVALIABLE_WHILE_TTS_ON), _(KeyStr_QUICK_CMD));
1229 setting_create_popup_without_btn(NULL, ad->win_main, NULL, _(noti_str),
1230 NULL, 0.0, TRUE, FALSE);
1235 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1236 setting_retm_if(!cbs, "calloc failed");
1237 cbs->layout_cb = setting_main_layout_ug_cb;
1238 cbs->result_cb = setting_main_result_ug_cb;
1239 cbs->destroy_cb = setting_main_destroy_ug_cb;
1240 cbs->priv = (void *)ad;
1242 char *path = get_ug_path_from_ug_args(data);
1243 app_control_h svc = get_bundle_from_ug_args(data);
1244 setting_main_click_list_item_ug_cb(ad, obj, path, svc, cbs);
1255 app_control_destroy(svc);
1259 #if SUPPORT_BLOCKINGMODE
1261 ___blocking_mode_resp_cb(void *data, Evas_Object *obj, void *event_info)
1263 SETTING_TRACE_BEGIN;
1264 setting_retm_if(obj == NULL, "obj parameter is NULL");
1265 setting_retm_if(data == NULL, "Data parameter is NULL");
1266 int reposnse_type = btn_type(obj);
1267 if (g_main_ad->popup_blocking_mode)
1269 evas_object_del(g_main_ad->popup_blocking_mode);
1270 g_main_ad->popup_blocking_mode = NULL;
1272 switch (reposnse_type) {
1273 case POPUP_RESPONSE_OK:
1275 if (g_main_ad->isInUGMode && g_main_ad->ug) {
1276 SETTING_TRACE("[ad->ug non-NULL]skip genlist click event!!");
1281 setting_main_appdata *ad = g_main_ad;
1283 /* if UG is created by Setting app, setting_main_click_list_ex_ug_cb is diabled. */
1284 if (ad->isInUGMode) {
1285 SETTING_TRACE("isInUGMode : TRUE - another UG is running now.");
1286 ad->isInUGMode = FALSE;
1290 ("isInUGMode : FALSE - another UG is NOT running now.")
1293 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1294 SETTING_TRACE("process item [%s]", list_item->keyStr);
1295 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
1297 if (!list_item->chk_status) {
1298 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, !list_item->chk_status);
1301 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1302 setting_retm_if(!cbs, "calloc failed");
1303 cbs->layout_cb = setting_main_layout_ug_cb;
1304 cbs->result_cb = setting_main_result_ug_cb;
1305 cbs->destroy_cb = setting_main_destroy_ug_cb;
1306 cbs->priv = (void *)ad;
1307 char *ug_args = NULL;
1309 char *keyStr = NULL;
1312 for (i = 0; i < setting_cfg_get_category_length(); i++) {
1313 for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
1314 keyStr = setting_cfg_get_keyname_idx(i, j);
1315 if (!safeStrCmp(keystr_Blockingmode, keyStr)) {
1316 ug_args = setting_cfg_get_ug_args_idx(i, j);
1324 setting_create_quickpannel_notification("setting-blockingmode-efl",
1325 NOTIFICATION_TYPE_ONGOING,
1326 NOTIFICATION_LY_ONGOING_EVENT,
1327 "IDS_ST_BODY_BLOCKING_MODE",
1328 "IDS_ST_BODY_BLOCKING_MODE_IS_ENABLED",
1329 IMG_BlockingMode, &ad->noti_id);
1330 char *path = get_ug_path_from_ug_args(ug_args);
1331 app_control_h svc = get_bundle_from_ug_args(ug_args);
1332 setting_main_click_list_item_ug_cb(ad, obj, path, svc, cbs);
1334 app_control_destroy(svc);
1337 SETTING_TRACE("blocking mode not found");
1348 #if SUPPORT_DRIVINGMODE
1350 ___driving_mode_resp_cb(void *data, Evas_Object *obj, void *event_info)
1352 SETTING_TRACE_BEGIN;
1353 setting_retm_if(obj == NULL, "obj parameter is NULL");
1354 setting_retm_if(data == NULL, "Data parameter is NULL");
1355 int reposnse_type = btn_type(obj);
1356 if (g_main_ad->driving_mode_popup)
1358 evas_object_del(g_main_ad->driving_mode_popup);
1359 g_main_ad->driving_mode_popup = NULL;
1361 switch (reposnse_type) {
1362 case POPUP_RESPONSE_OK:
1364 if (g_main_ad->isInUGMode && g_main_ad->ug) {
1365 SETTING_TRACE("[ad->ug non-NULL]skip genlist click event!!");
1370 setting_main_appdata *ad = g_main_ad;
1372 /* if UG is created by Setting app, setting_main_click_list_ex_ug_cb is diabled. */
1373 if (ad->isInUGMode) {
1374 SETTING_TRACE("isInUGMode : TRUE - another UG is running now.");
1375 ad->isInUGMode = FALSE;
1379 ("isInUGMode : FALSE - another UG is NOT running now.");
1382 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1383 if(list_item && list_item->keyStr){
1384 SETTING_TRACE("process item [%s]", list_item->keyStr);
1386 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
1388 if (!list_item->chk_status) {
1389 vconf_set_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, !list_item->chk_status);
1392 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1393 setting_retm_if(!cbs, "calloc failed");
1394 cbs->layout_cb = setting_main_layout_ug_cb;
1395 cbs->result_cb = setting_main_result_ug_cb;
1396 cbs->destroy_cb = setting_main_destroy_ug_cb;
1397 cbs->priv = (void *)ad;
1398 char *ug_args = NULL;
1400 char *keyStr = NULL;
1403 for (i = 0; i < setting_cfg_get_category_length(); i++) {
1404 for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
1405 keyStr = setting_cfg_get_keyname_idx(i, j);
1406 if (!safeStrCmp(keystr_Drivingmode, keyStr)) {
1407 ug_args = setting_cfg_get_ug_args_idx(i, j);
1415 //__driving_mode_create_noti(ad,"IDS_ST_BODY_INCOMING_CALLS_AND_NEW_NOTIFICATIONS_WILL_BE_READ_OUT_AUTOMATICALLY");
1416 setting_create_quickpannel_notification("setting-drivingmode-efl",
1417 NOTIFICATION_TYPE_ONGOING,
1418 NOTIFICATION_LY_ONGOING_EVENT,
1420 "IDS_ST_BODY_INCOMING_CALLS_AND_NEW_NOTIFICATIONS_WILL_BE_READ_OUT_AUTOMATICALLY",
1421 IMG_DrivingMode, &ad->noti_id);
1423 char *path = get_ug_path_from_ug_args(ug_args);
1424 app_control_h svc = get_bundle_from_ug_args(ug_args);
1425 setting_main_click_list_item_ug_cb(ad, obj, path, svc, cbs);
1427 app_control_destroy(svc);
1430 SETTING_TRACE("driving mode not found");
1445 static void __personal_mode_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
1447 SETTING_TRACE_BEGIN;
1450 Setting_GenGroupItem_Data *item = (Setting_GenGroupItem_Data*)user_data;
1452 /* Rollback toggle before applying */
1454 vconf_get_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, &status);
1455 item->chk_status = status;
1456 elm_check_state_set(item->eo_check, item->chk_status);
1459 void setting_main_list_mouse_up_cb(void *data, Evas_Object *eo,
1462 //SETTING_TRACE_BEGIN;
1463 retm_if(data == NULL, "Data parameter is NULL");
1464 Setting_GenGroupItem_Data *list_item =
1465 (Setting_GenGroupItem_Data *) data;
1466 SETTING_TRACE("process item [%s]", list_item->keyStr);
1467 list_item->chk_status = elm_check_state_get(eo); /* for update new state */
1469 SETTING_TRACE("change radio[%s], status is:%d", _(list_item->keyStr),
1470 list_item->chk_status);
1471 setting_main_appdata *ad = g_main_ad;
1473 if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
1475 if (elm_check_state_get(eo)) {
1476 setting_set_bool_slp_key
1477 (BOOL_SLP_SETTING_USE_PACKET_DATA,
1478 SETTING_ON_OFF_BTN_ON, &err);
1480 setting_set_bool_slp_key
1481 (BOOL_SLP_SETTING_USE_PACKET_DATA,
1482 SETTING_ON_OFF_BTN_OFF, &err);
1484 #if SUPPORT_DRIVINGMODE
1485 } else if (!safeStrCmp(keystr_Drivingmode, list_item->keyStr)) {
1486 //if set on, need to add popup
1487 if (list_item->chk_status) {
1488 if (!check_drivingmode_sub_item()) {
1489 g_main_ad->driving_mode_popup = setting_create_popup_with_btn(list_item, ad->win_main,
1490 NULL,"IDS_ST_POP_TO_ENABLE_HANDS_FREE_MODE_ENABLE_AT_LEAST_ONE_RELEVANT_FUNCTION",
1491 ___driving_mode_resp_cb, 0,
1492 2, "IDS_COM_SK_OK","IDS_COM_SK_CANCEL");
1493 list_item->chk_status = !list_item->chk_status;
1494 elm_genlist_item_update(list_item->item);
1501 vconf_set_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, list_item->chk_status);
1503 // call the set_state
1504 Setting_Cfg_Node_T* pnode = get_cfg_node_by_keystr(_(list_item->keyStr));
1505 if (pnode && pnode->tfunc && pnode->tfunc->set_item_state) {
1506 pnode->tfunc->set_item_state(list_item->chk_status, NULL, ad);
1509 #if SUPPORT_BLOCKINGMODE
1510 } else if (!safeStrCmp(keystr_Blockingmode, list_item->keyStr)) {
1512 if (list_item->chk_status) {
1513 if (!check_blockingmode_sub_item()) {
1514 g_main_ad->popup_blocking_mode = setting_create_popup_with_btn(ad, ad->win_main,
1515 NULL,"IDS_ST_BODY_TO_ENABLE_BLOCKING_MODE_ENABLE_AT_LEAST_ONE_OPTION",
1516 ___blocking_mode_resp_cb, 0,
1517 2, "IDS_COM_SK_OK","IDS_COM_SK_CANCEL");
1518 list_item->chk_status = !list_item->chk_status;
1519 elm_genlist_item_update(list_item->item);
1523 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, FALSE);
1524 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, FALSE);
1525 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, FALSE);
1526 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, FALSE);
1528 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, list_item->chk_status);
1530 Setting_Cfg_Node_T* pnode = get_cfg_node_by_keystr(_(list_item->keyStr));
1532 if (pnode && pnode->tfunc && pnode->tfunc->set_item_state) {
1533 pnode->tfunc->set_item_state(list_item->chk_status, NULL, ad);
1536 #if SUPPORT_PERSONALPAGE
1537 } else if (!safeStrCmp(keystr_Personalmode, list_item->keyStr)) {
1538 //personalmode_toggle_set_state(list_item->chk_status, NULL, ad);
1539 if (Cfg_Item_Error == list_item->chk_status) return;
1541 bool is_running = FALSE;
1542 app_manager_is_running("org.tizen.setting.personal", &is_running);
1545 elm_object_tree_focus_allow_set(ad->ly_main, EINA_FALSE);
1547 if(app_control_create(&svc))
1551 // verify current key
1552 app_control_add_extra_data(svc, "viewtype", "unlock_method");
1553 app_control_set_app_id(svc, "org.tizen.setting.personal");
1554 app_control_set_window(svc, elm_win_xwindow_get(ad->win_main));
1555 app_control_set_operation(svc, APP_CONTROL_OPERATION_DEFAULT);
1556 app_control_send_launch_request(svc, __personal_mode_cb, ad->data_temp);
1557 app_control_destroy(svc);
1561 #if SUPPORT_GUESTMODE
1562 } else if (!safeStrCmp(KeyStr_Guestmode, list_item->keyStr)) {
1563 vconf_set_bool(VCONFKEY_SETAPPL_GM_GUEST_MODE, list_item->chk_status);
1566 #if SUPPORT_POWERSAVING
1567 } else if (!safeStrCmp(KeyStr_Powersaving, list_item->keyStr)) {
1568 if (list_item->chk_status) {
1569 if (!check_powersaving_sub_item()) {
1570 setting_create_popup_without_btn(ad, ad->win_main, NULL,
1571 "IDS_ST_BODY_TO_ENABLE_POWER_SAVING_MODE_ENABLE_AT_LEAST_ONE_FUNCTION",
1572 NULL, POPUP_INTERVAL, FALSE, FALSE);
1573 list_item->chk_status = !list_item->chk_status;
1576 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, list_item->chk_status);
1577 vconf_set_int(VCONFKEY_SETAPPL_PSMODE, list_item->chk_status);
1578 } else if(!safeStrCmp(KeyStr_MultiWindowMode, list_item->keyStr)){
1579 //Multi window toggle action
1580 //elm_genlist_item_update(list_item->item);
1581 int ret = vconf_set_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, list_item->chk_status);
1583 SETTING_TRACE_ERROR("Set multi window vconf failed.");
1593 static void ___wifi_activated_cb(wifi_error_e result, void* user_data)
1595 SETTING_TRACE_BEGIN;
1596 if (result == WIFI_ERROR_NONE)
1598 SETTING_TRACE("Wi-Fi Activation Succeeded");
1602 SETTING_TRACE("Wi-Fi Activation Failed! error : %d", result);
1605 (void)wifi_deinitialize();
1608 #if SUPPORT_TETHERING
1609 static void __tethering_disabled_cb(tethering_error_e error, tethering_type_e type, tethering_disabled_cause_e code, void *data)
1614 tethering_h th = (tethering_h)data;
1615 tethering_destroy(th);
1618 ret = wifi_initialize();
1619 setting_retm_if(ret < 0, "*** [ERR] wifi_initialize() ***");
1621 ret = wifi_activate(___wifi_activated_cb, NULL);
1623 SETTING_TRACE_ERROR("*** [ERR] wifi_activate() ***");
1624 (void)wifi_deinitialize();
1630 static Eina_Bool __wifi_timeout(void *data)
1632 //SETTING_TRACE_BEGIN;
1633 retvm_if(!data, ECORE_CALLBACK_CANCEL, "Invalid argument: data is NULL");
1634 Setting_GenGroupItem_Data *list_item = data;
1636 setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &status, &err);
1637 SETTING_TRACE("value:%d", status);
1640 for (i = VIEW_All_List; i < VIEW_Max; i++)
1642 list_item = g_main_ad->gl_data_item[i][GL_WiFi];
1645 list_item->chk_status = status;
1646 list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1647 elm_object_item_data_set(list_item->item, list_item);
1648 elm_genlist_item_update(list_item->item);
1651 setting_main_appdata *ad = list_item->userdata;
1652 ad->wifi_timer = NULL;
1654 return ECORE_CALLBACK_CANCEL;
1657 static void __tethering_turn_off_resp_cb(void *data, Evas_Object *obj, void *event_info)
1659 setting_retm_if(NULL == obj, "NULL == obj");
1660 int response_type = btn_type(obj);
1661 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
1665 evas_object_del(g_main_ad->popup_wifi_mode);
1666 g_main_ad->popup_wifi_mode = NULL;
1670 Setting_GenGroupItem_Data *update_item = NULL;
1671 if (POPUP_RESPONSE_OK == response_type)
1673 //add timeout strategy..
1674 ret_if(!list_item->userdata);
1675 setting_main_appdata *ad = list_item->userdata;
1676 if (ad->wifi_timer) {
1677 ecore_timer_del(ad->wifi_timer);
1678 ad->wifi_timer = NULL;
1680 ad->wifi_timer = ecore_timer_add(5.0, (Ecore_Task_Cb) __wifi_timeout, list_item);
1682 #if SUPPORT_TETHERING
1683 int type = tethering_is_enabled(NULL, TETHERING_TYPE_WIFI)?TETHERING_TYPE_WIFI:TETHERING_TYPE_WIFI_AP;
1685 tethering_h th = NULL;
1686 tethering_error_e ret = TETHERING_ERROR_NONE;
1688 ret = tethering_create(&th);
1689 if (ret != TETHERING_ERROR_NONE) {
1690 for (i = VIEW_All_List; i < VIEW_Max; i++)
1692 update_item = ad->gl_data_item[i][GL_WiFi];
1695 update_item->chk_status = EINA_FALSE;
1696 update_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1697 elm_object_item_data_set(update_item->item, update_item);
1698 elm_genlist_item_update(update_item->item);
1703 ret = tethering_set_disabled_cb(th, type, __tethering_disabled_cb, th);
1704 if (ret != TETHERING_ERROR_NONE) {
1705 for (i = VIEW_All_List; i < VIEW_Max; i++)
1707 update_item = ad->gl_data_item[i][GL_WiFi];
1710 update_item->chk_status = EINA_FALSE;
1711 update_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1712 elm_object_item_data_set(update_item->item, update_item);
1713 elm_genlist_item_update(update_item->item);
1717 tethering_destroy(th);
1721 (void) tethering_disable(th, type);
1724 else if (POPUP_RESPONSE_CANCEL == response_type)
1726 for (i = VIEW_All_List; i < VIEW_Max; i++)
1728 update_item = g_main_ad->gl_data_item[i][GL_WiFi];
1731 update_item->chk_status = EINA_FALSE;
1732 update_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1733 elm_object_item_data_set(update_item->item, update_item);
1734 elm_genlist_item_update(update_item->item);
1741 void __alternate_wifi_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
1743 //SETTING_TRACE_BEGIN;
1745 Eina_Bool status = elm_check_state_get(check);
1746 SETTING_TRACE("wifi mode status : %d", status);
1750 Setting_GenGroupItem_Data* item_to_update = NULL;
1752 #if SUPPORT_TETHERING
1753 if (tethering_is_enabled(NULL, TETHERING_TYPE_WIFI)
1754 || tethering_is_enabled(NULL, TETHERING_TYPE_WIFI_AP)) {
1755 for (i = VIEW_All_List; i < VIEW_Max; i++)
1757 item_to_update = g_main_ad->gl_data_item[i][GL_WiFi];
1760 item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
1761 elm_object_item_data_set(item_to_update->item, item_to_update);
1762 elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
1766 g_main_ad->popup_wifi_mode = setting_create_popup_with_btn(list_item,
1767 g_main_ad->win_main, NULL,
1768 "IDS_MOBILEAP_POP_TURNING_ON_WI_FI_WILL_DISABLE_MOBILE_HOTSPOT_CONTINUE_Q_VZW",
1769 __tethering_turn_off_resp_cb,
1770 0, 2, "IDS_COM_SK_OK", "IDS_COM_SK_CANCEL");
1774 int wifi_state = VCONFKEY_WIFI_OFF;
1775 vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state);
1776 DBusMessageIter iter;
1777 DBusMessage *message = NULL;
1778 DBusConnection *connection = NULL;
1779 SETTING_TRACE("status:%d", status);
1781 if (wifi_state != VCONFKEY_WIFI_OFF) {
1783 SETTING_TRACE("Wi-Fi is already enabled");
1786 connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
1787 if (connection == NULL) {
1788 SETTING_TRACE_ERROR("Failed to get system bus");
1792 message = dbus_message_new_method_call(NETCONFIG_SERVICE, NETCONFIG_WIFI_PATH,
1793 NETCONFIG_WIFI_INTERFACE, "LoadDriver");
1794 if (message == NULL) {
1795 SETTING_TRACE_ERROR("Failed DBus method call");
1796 dbus_connection_unref(connection);
1800 g_main_ad->wifi_op = OP_WIFI_TURNING_ON;
1802 dbus_message_iter_init_append(message, &iter);
1803 dbus_bool_t val = FALSE;
1804 dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &val);
1806 dbus_connection_send_with_reply(connection, message, NULL, 10000);
1808 dbus_message_unref(message);
1809 dbus_connection_unref(connection);
1812 if (wifi_state == VCONFKEY_WIFI_OFF) {
1813 // Wi-Fi is disabled
1814 SETTING_TRACE("Wi-Fi is already disabled");
1818 connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
1819 if (connection == NULL) {
1820 SETTING_TRACE_ERROR("Failed to get system bus");
1824 message = dbus_message_new_method_call(NETCONFIG_SERVICE, NETCONFIG_WIFI_PATH,
1825 NETCONFIG_WIFI_INTERFACE, "RemoveDriver");
1826 if (message == NULL) {
1827 SETTING_TRACE_ERROR("Failed DBus method call");
1828 dbus_connection_unref(connection);
1831 g_main_ad->wifi_op = OP_WIFI_TURNING_OFF;
1833 dbus_connection_send_with_reply(connection, message, NULL, 10000);
1835 dbus_message_unref(message);
1836 dbus_connection_unref(connection);
1840 for (i = VIEW_All_List; i < VIEW_Max; i++)
1842 item_to_update = g_main_ad->gl_data_item[i][GL_WiFi];
1845 item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
1846 elm_object_item_data_set(item_to_update->item, item_to_update);
1847 elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
1852 //add timeout strategy..
1853 ret_if(!list_item->userdata);
1854 setting_main_appdata *ad = list_item->userdata;
1855 if (ad->wifi_timer) {
1856 ecore_timer_del(ad->wifi_timer);
1857 ad->wifi_timer = NULL;
1859 ad->wifi_timer = ecore_timer_add(5.0, (Ecore_Task_Cb) __wifi_timeout, list_item);
1863 static Eina_Bool __bt_timeout(void *data)
1865 //SETTING_TRACE_BEGIN;
1866 retvm_if(!data, ECORE_CALLBACK_CANCEL, "Invalid argument: data is NULL");
1868 setting_get_bool_slp_key(INT_SLP_SETTING_BT_STATUS, &status, &err);
1869 SETTING_TRACE("value:%d", status);
1871 setting_main_appdata *ad = data;
1872 Setting_GenGroupItem_Data *item_to_update;
1874 for (i = VIEW_All_List; i < VIEW_Max; i++)
1876 item_to_update = ad->gl_data_item[i][GL_BT];
1877 SETTING_TRACE("[%d]item_to_update:%p", i, item_to_update);
1880 item_to_update->chk_status = status;
1881 item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1882 elm_object_item_data_set(item_to_update->item, item_to_update);
1883 //elm_genlist_item_fields_update(item_to_update->item, "*", ELM_GENLIST_ITEM_FIELD_STATE);
1884 elm_genlist_item_update(item_to_update->item);
1889 ad->bt_timer = NULL;
1890 return ECORE_CALLBACK_CANCEL;
1893 void __alternate_bt_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
1895 //SETTING_TRACE_BEGIN;
1897 Eina_Bool status = elm_check_state_get(check);
1898 SETTING_TRACE("bt mode status : %d", status);
1900 bt_adapter_state_e value;
1901 ret = bt_initialize();
1902 if (bt_adapter_get_state(&value) != BT_ERROR_NONE)
1904 SETTING_TRACE_ERROR("bt_adapter_get_state() failed ");
1908 setting_main_appdata *ad = g_main_ad;
1910 if (status == value)
1912 SETTING_TRACE("status == value");
1914 for (i = VIEW_All_List; i < VIEW_Max; i++)
1916 setting_force_update_gl_item_chk_status(ad->gl_data_item[i][GL_BT], value);
1922 //add timeout strategy..
1923 Setting_GenGroupItem_Data *item_to_update;
1925 for (i = VIEW_All_List; i < VIEW_Max; i++)
1927 item_to_update = ad->gl_data_item[i][GL_BT];
1928 SETTING_TRACE("[%d]item_to_update:%p", i, item_to_update);
1931 item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
1932 elm_object_item_data_set(item_to_update->item, item_to_update);
1933 //elm_genlist_item_update(list_item->item);
1934 elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
1937 SETTING_TRACE("1111");
1939 ecore_timer_del(ad->bt_timer);
1940 ad->bt_timer = NULL;
1942 ad->bt_timer = ecore_timer_add(5.0, (Ecore_Task_Cb) __bt_timeout, ad);
1948 status ? (ret = bt_adapter_enable()) : (ret = bt_adapter_disable());
1953 ret = bt_deinitialize();
1964 setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &val, &err);
1965 setting_force_update_gl_item_chk_status(list_item, val);
1968 static Eina_Bool __nfc_timeout(void *data)
1970 //SETTING_TRACE_BEGIN;
1971 retvm_if(!data, ECORE_CALLBACK_CANCEL, "Invalid argument: data is NULL");
1972 setting_main_appdata *ad = data;
1973 Setting_GenGroupItem_Data *list_item = NULL;
1975 setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &status, &err);
1976 SETTING_TRACE("value:%d", status);
1980 for (i = VIEW_All_List; i < VIEW_Max; i++)
1982 list_item = ad->gl_data_item[i][GL_NFC];
1985 list_item->chk_status = status;
1986 list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
1987 elm_object_item_data_set(list_item->item, list_item);
1988 elm_genlist_item_update(list_item->item);
1991 list_item = ad->gl_data_item[i][GL_SBeam];
1992 setting_genlist_item_disabled_set(list_item, 0);
1996 ad->nfc_timer = NULL;
1997 return ECORE_CALLBACK_CANCEL;
2001 static void __nfc_activation_completed_cb(nfc_error_e error, void *data)
2003 SETTING_TRACE_BEGIN;
2004 setting_main_appdata *ad = data;
2005 if (error == NFC_ERROR_NONE) {
2006 Setting_GenGroupItem_Data *list_item;
2008 vconf_get_bool(VCONFKEY_NFC_STATE, &status);
2009 SETTING_TRACE("value:%d", status);
2012 for (i = VIEW_All_List; i < VIEW_Max; i++)
2014 list_item = ad->gl_data_item[i][GL_NFC];
2017 list_item->chk_status = status;
2018 list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
2019 elm_object_item_data_set(list_item->item, list_item);
2020 elm_genlist_item_fields_update(list_item->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
2025 if (nfc_manager_deinitialize() != NFC_ERROR_NONE)
2027 SETTING_TRACE_ERROR("failed on nfc_manager_deinitialize");
2030 ad->nfc_try_activate_running = EINA_FALSE;
2031 //SETTING_TRACE("nfc_try_activate_running - FALSE");
2033 Evas_Object *old_list = elm_object_part_content_get(ad->ly_topview, "content");
2034 if (old_list == ad->search_genlist)
2036 SETTING_TRACE("Already be in search mode");
2037 elm_genlist_realized_items_update(ad->search_genlist);
2041 Setting_GenGroupItem_Data *item_to_update;
2042 for (i = VIEW_All_List; i < VIEW_Max; i++)
2044 item_to_update = ad->gl_data_item[i][GL_SBeam];
2045 setting_genlist_item_disabled_set(item_to_update, 0);
2051 void setting_alternate_nfc_mode(Setting_GenGroupItem_Data *list_item, Eina_Bool status)
2053 SETTING_TRACE_BEGIN;
2054 setting_main_appdata *ad = g_main_ad;
2056 SETTING_TRACE(".......nfc mode status : %d", status);
2057 SETTING_TRACE("nfc_manager_is_activated:%d", nfc_manager_is_activated());
2059 if (status == nfc_manager_is_activated())
2064 ad->nfc_try_activate_running = EINA_TRUE;
2065 //SETTING_TRACE("nfc_try_activate_running - TRUE");
2068 Setting_GenGroupItem_Data *item_to_update;
2071 for (i = VIEW_All_List; i < VIEW_Max; i++)
2073 item_to_update = ad->gl_data_item[i][GL_SBeam];
2074 setting_genlist_item_disabled_set(item_to_update, 1);
2077 ret = nfc_manager_initialize(NULL, NULL);
2078 if(ret != NFC_ERROR_NONE)
2081 SETTING_TRACE_ERROR("failed on nfc_manager_initialize");
2084 ret = nfc_manager_set_activation(status, __nfc_activation_completed_cb, ad);
2085 if (ret != NFC_ERROR_NONE)
2088 SETTING_TRACE_ERROR("failed on nfc_manager_set_activation");
2092 for (i = 0; i < VIEW_Max; i++)
2094 item_to_update = ad->gl_data_item[i][GL_NFC];
2097 item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
2098 elm_object_item_data_set(item_to_update->item, item_to_update);
2099 elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
2103 //add timeout strategy..
2104 if (ad->nfc_timer) {
2105 ecore_timer_del(ad->nfc_timer);
2106 ad->nfc_timer = NULL;
2108 ad->nfc_timer = ecore_timer_add(5.0, (Ecore_Task_Cb) __nfc_timeout, ad);
2112 ad->nfc_try_activate_running = EINA_TRUE;
2114 setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &state, &err);
2115 SETTING_TRACE("value:%d", state);
2116 for (i = VIEW_All_List; i < VIEW_Max; i++)
2119 item_to_update = ad->gl_data_item[i][GL_SBeam];
2120 setting_genlist_item_disabled_set(item_to_update, 0);
2122 item_to_update = ad->gl_data_item[i][GL_NFC];
2125 item_to_update->chk_status = state;
2126 item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
2127 elm_object_item_data_set(item_to_update->item, item_to_update);
2128 elm_genlist_item_update(item_to_update->item);
2133 static void __nfc_activation_completed_cb_when_enbale_sbeam(nfc_error_e error, void *data)
2135 SETTING_TRACE_BEGIN;
2136 setting_main_appdata *ad = g_main_ad;
2138 if (error == NFC_ERROR_NONE) {
2139 Setting_GenGroupItem_Data *list_item;
2141 vconf_get_bool(VCONFKEY_NFC_STATE, &status);
2142 SETTING_TRACE("value:%d", status);
2145 Evas_Object *old_list = elm_object_part_content_get(ad->ly_topview, "content");
2146 if (old_list == ad->search_genlist)
2148 SETTING_TRACE("Already be in search mode");
2149 elm_genlist_realized_items_update(ad->search_genlist);
2153 ret = nfc_manager_deinitialize();
2155 vconf_get_bool(VCONFKEY_NFC_STATE, &status);
2156 SETTING_TRACE_DEBUG("nfc status : %d", status);
2159 vconf_set_bool(VCONFKEY_NFC_SBEAM, !status);
2163 for (i = VIEW_All_List; i < VIEW_Max; i++)
2165 list_item = ad->gl_data_item[i][GL_NFC];
2168 list_item->chk_status = status;
2169 list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
2170 elm_object_item_data_set(list_item->item, list_item);
2171 elm_genlist_item_fields_update(list_item->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
2174 setting_genlist_item_disabled_set(list_item, 0);
2177 SETTING_TRACE("error code %d",error);
2182 void setting_alternate_sbeam_mode(Setting_GenGroupItem_Data *list_item, Eina_Bool status)
2184 //SETTING_TRACE_BEGIN;
2185 setting_main_appdata *ad = g_main_ad;
2186 //Eina_Bool status = elm_check_state_get(check);
2187 SETTING_TRACE("wifi mode status : %d", status);
2189 vconf_set_bool(VCONFKEY_NFC_SBEAM, status);
2193 vconf_get_bool(VCONFKEY_NFC_STATE, &nfc_status);
2195 bool is_nfc_exist = FALSE;
2196 Setting_GenGroupItem_Data *item_to_update;
2198 for (i = VIEW_All_List; i < VIEW_Max; i++)
2200 item_to_update = ad->gl_data_item[i][GL_NFC];
2201 if (!item_to_update) continue;
2202 setting_genlist_item_disabled_set(item_to_update, 1);
2204 is_nfc_exist = TRUE;
2210 ret = nfc_manager_initialize(NULL, NULL);
2212 vconf_get_bool(VCONFKEY_NFC_STATE, &nfc_status);
2213 SETTING_TRACE_DEBUG("nfc status : %d", nfc_status);
2216 vconf_set_bool(VCONFKEY_NFC_SBEAM, !status);
2219 setting_retm_if(ret < 0, "*** [ERR] nfc_manager_initialize() ***");
2221 ret = nfc_manager_set_activation(!nfc_status, __nfc_activation_completed_cb_when_enbale_sbeam, ad);
2223 vconf_get_bool(VCONFKEY_NFC_STATE, &nfc_status);
2224 SETTING_TRACE_DEBUG("nfc status : %d", nfc_status);
2227 vconf_set_bool(VCONFKEY_NFC_SBEAM, !status);
2230 setting_retm_if(ret < 0, "*** [ERR] nfc_manager_set_activation() ***");
2232 for (i = VIEW_All_List; i < VIEW_Max; i++)
2234 item_to_update = ad->gl_data_item[i][GL_NFC];
2235 if (item_to_update && item_to_update->item) {
2236 item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
2237 elm_object_item_data_set(item_to_update->item, item_to_update);
2238 elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
2241 //add timeout strategy..
2242 if (ad->nfc_timer) {
2243 ecore_timer_del(ad->nfc_timer);
2244 ad->nfc_timer = NULL;
2246 ad->nfc_timer = ecore_timer_add(5.0, (Ecore_Task_Cb) __nfc_timeout, ad);
2255 void setting_main_click_list_network_ug_cb(void *data, Evas_Object *obj, void *event_info)
2257 SETTING_TRACE_BEGIN;
2258 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
2259 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
2261 elm_genlist_item_selected_set(item, EINA_FALSE);
2263 if (g_main_ad->isInUGMode && g_main_ad->ug) {
2265 ("[ad->ug non-NULL]skip genlist click event!!");
2267 //SETTING_TRACE_END;
2271 int flight_mode = 0;
2272 vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight_mode);
2275 setting_create_simple_popup(NULL, g_main_ad->win_main,
2276 NULL, "IDS_IM_POP_THIS_FEATURE_IS_NOT_AVAILABLE_WHILE_FLIGHT_MODE_IS_ON");
2280 setting_main_appdata *ad = g_main_ad;
2281 setting_main_click_list_item_reset_data(ad, obj);
2285 setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
2286 SETTING_TRACE("value:%d", value);
2288 case VCONFKEY_TELEPHONY_SIM_INSERTED:
2290 struct ug_cbs *cbs =
2291 (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
2292 setting_retm_if(!cbs, "calloc failed");
2293 cbs->layout_cb = setting_main_layout_ug_cb;
2294 cbs->result_cb = setting_main_result_ug_cb;
2295 cbs->destroy_cb = setting_main_destroy_ug_cb;
2296 cbs->priv = (void *)ad;
2297 setting_main_click_list_item_ug_cb(ad, obj,
2298 "setting-network-efl",
2303 case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
2304 setting_create_simple_popup(NULL, ad->win_main,
2305 NULL, "IDS_ST_POP_INSERT_SIM_CARD_TO_ACCESS_NETWORK_SERVICES");
2306 SETTING_TRACE("%s*** [ERR] No SIM. sim_slot_type=%d ***%s",
2307 SETTING_FONT_RED, value, SETTING_FONT_BLACK);
2310 case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
2311 case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
2312 setting_create_simple_popup(NULL, ad->win_main,
2313 NULL,"IDS_ST_POP_INSERT_SIM_CARD_TO_ACCESS_NETWORK_SERVICES");
2314 SETTING_TRACE("%s*** [ERR] Invalid SIM. sim_slot_type=%d ***%s",
2315 SETTING_FONT_RED, value, SETTING_FONT_BLACK);
2325 void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *data, void *user_data)
2327 SETTING_TRACE_BEGIN;
2329 setting_main_appdata *ad = user_data;
2330 ad->b_fm_requesting = FALSE;
2331 SETTING_TRACE("result:%d", result);
2335 case TAPI_POWER_FLIGHT_MODE_RESP_ON:
2337 setting_set_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE,
2338 SETTING_ON_OFF_BTN_ON, &err);
2340 //If Setting has validate operation (fm_waiting_op == FM_LEAVE) to process, process it.
2341 //Otherwise, do nothing
2342 if (FM_LEAVE == ad->fm_waiting_op)
2344 //Send the latest operation
2345 ad->fm_waiting_op = FM_INVALID;
2346 err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
2347 setting_retm_if(err != TAPI_API_SUCCESS,
2348 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
2351 ad->b_fm_requesting = TRUE;
2356 case TAPI_POWER_FLIGHT_MODE_RESP_OFF:
2358 setting_set_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE,
2359 SETTING_ON_OFF_BTN_OFF, &err);
2361 //If Setting has validate operation (here, fm_waiting_op == FM_ENTER) to process,process it.
2362 //Otherwise, do nothing
2363 if (FM_ENTER == ad->fm_waiting_op)
2365 //Send the latest operation
2366 ad->fm_waiting_op = FM_INVALID;
2367 err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
2368 setting_retm_if(err != TAPI_API_SUCCESS,
2369 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
2372 ad->b_fm_requesting = TRUE;
2377 case TAPI_POWER_FLIGHT_MODE_RESP_FAIL:
2378 //Setting has a validate operation to process, Send the operation request
2379 if (FM_ENTER == ad->fm_waiting_op)
2381 ad->fm_waiting_op = FM_INVALID;
2382 err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
2384 setting_retm_if(err != TAPI_API_SUCCESS,
2385 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
2386 ad->b_fm_requesting = TRUE;
2388 else if (FM_LEAVE == ad->fm_waiting_op)
2390 ad->fm_waiting_op = FM_INVALID;
2391 err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
2393 setting_retm_if(err != TAPI_API_SUCCESS,
2394 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
2395 ad->b_fm_requesting = TRUE;
2397 else //Current requset is the last one, Setting needs to notify user
2399 setting_create_popup_without_btn(ad, ad->win_main,
2400 "IDS_COM_POP_ERROR",
2401 "IDS_ST_POP_UNABLE_TO_TURN_ON_FLIGHT_MODE_VODA",
2402 NULL, POPUP_INTERVAL,
2405 //It is need to rollback the status,
2406 Setting_GenGroupItem_Data *item_to_update;
2408 for (i = VIEW_All_List; i < VIEW_Max; i++)
2410 item_to_update = ad->gl_data_item[i][GL_FlightMode];
2413 setting_update_gl_item_chk_status(item_to_update, !(item_to_update->chk_status));
2421 ad->b_fm_requesting = TRUE;
2425 case TAPI_POWER_FLIGHT_MODE_RESP_MAX:
2426 setting_create_popup_without_btn(ad, ad->win_main,
2427 "IDS_COM_POP_ERROR",
2428 "IDS_COM_POP_UNEXPECTED_ERROR",
2429 NULL, POPUP_INTERVAL, FALSE, FALSE);
2431 //It is need to rollback the status,
2432 Setting_GenGroupItem_Data *item_to_update;
2434 for (i = VIEW_All_List; i < VIEW_Max; i++)
2436 item_to_update = ad->gl_data_item[i][GL_FlightMode];
2439 setting_update_gl_item_chk_status(item_to_update, !(item_to_update->chk_status));
2450 void setting_main_alternate_flight_mode(int status)
2452 SETTING_TRACE_BEGIN;
2453 setting_main_appdata *ad = g_main_ad;
2455 //Check whether some requestion is processing by TAPI
2456 if (ad->b_fm_requesting)
2458 //Do nothing, just mark the lastest operation..
2459 SETTING_TRACE("Some requestion is processing by TAPI, wait to process");
2460 ad->fm_waiting_op = status ? FM_ENTER : FM_LEAVE;
2464 //otherwise, invalid waiting operation and send requsetion to TAPI:
2465 ad->fm_waiting_op = FM_INVALID;
2467 ret = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
2468 setting_retm_if(ret != TAPI_API_SUCCESS,
2469 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
2471 ret = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
2472 setting_retm_if(ret != TAPI_API_SUCCESS,
2473 "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
2477 ad->b_fm_requesting = TRUE;
2481 void setting_flightmode_turn_on_resp_cb(void *data, Evas_Object *obj, void *event_info)
2483 setting_retm_if(NULL == obj, "NULL == obj");
2484 //setting_retm_if(NULL == data, "NULL == data");
2485 SETTING_TRACE_BEGIN;
2486 int response_type = btn_type(obj);
2487 //Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
2491 evas_object_del(g_main_ad->popup_flight_mode);
2492 g_main_ad->popup_flight_mode = NULL;
2494 if (POPUP_RESPONSE_OK == response_type)
2496 setting_update_gl_item_chk_status(g_main_ad->data_flight, EINA_TRUE);
2497 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_All_List][GL_FlightMode], EINA_TRUE);
2498 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_Common][GL_FlightMode], EINA_TRUE);
2499 setting_main_alternate_flight_mode(1);
2502 vconf_get_bool(VCONFKEY_SETAPPL_FIREWALL_KEY, &firewall_state);
2505 setting_remove_quickpannel_notification("setting-firewall-efl", NOTIFICATION_TYPE_ONGOING, &g_main_ad->noti_id);
2508 else if (POPUP_RESPONSE_CANCEL == response_type)
2510 setting_update_gl_item_chk_status(g_main_ad->data_flight, EINA_FALSE);
2511 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_All_List][GL_FlightMode], EINA_FALSE);
2512 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_Common][GL_FlightMode], EINA_FALSE);
2517 void setting_flightmode_turn_off_resp_cb(void *data, Evas_Object *obj, void *event_info)
2519 setting_retm_if(NULL == obj, "NULL == obj");
2520 //setting_retm_if(NULL == data, "NULL == data");
2521 SETTING_TRACE_BEGIN;
2522 int response_type = btn_type(obj);
2523 //Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
2527 evas_object_del(g_main_ad->popup_flight_mode);
2528 g_main_ad->popup_flight_mode = NULL;
2531 if (POPUP_RESPONSE_OK == response_type)
2533 setting_update_gl_item_chk_status(g_main_ad->data_flight, EINA_FALSE);
2534 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_All_List][GL_FlightMode], EINA_FALSE);
2535 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_Common][GL_FlightMode], EINA_FALSE);
2536 setting_main_alternate_flight_mode(0);
2539 vconf_get_bool(VCONFKEY_SETAPPL_FIREWALL_KEY, &firewall_state);
2542 setting_create_quickpannel_notification("setting-firewall-efl",
2543 NOTIFICATION_TYPE_ONGOING,
2544 NOTIFICATION_LY_ONGOING_EVENT,
2545 "IDS_ST_BODY_FIREWALL_ENABLED_ABB",
2546 "IDS_ST_BODY_CONFIGURE_FIREWALL_SETTINGS",
2547 IMG_Firewall, &g_main_ad->noti_id);
2550 //remove quickpannel warning
2551 //setting_remove_quickpannel_notification("setting-flightmode-efl", NOTIFICATION_TYPE_ONGOING, &g_main_ad->flight_noti_id);
2553 else if (POPUP_RESPONSE_CANCEL == response_type)
2555 setting_update_gl_item_chk_status(g_main_ad->data_flight, EINA_TRUE);
2556 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_All_List][GL_FlightMode], EINA_TRUE);
2557 setting_update_gl_item_chk_status(g_main_ad->gl_data_item[VIEW_Common][GL_FlightMode], EINA_TRUE);
2565 void setting_main_click_Gendial_list_flight_mode_cb(void *data, Evas_Object *obj, void *event_info)
2568 setting_retm_if(data == NULL, "Data parameter is NULL");
2570 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
2571 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
2572 elm_genlist_item_selected_set(item, 0);
2573 Setting_GenGroupItem_Data *list_item =
2574 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
2575 int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
2584 g_main_ad->popup_flight_mode = setting_create_popup_with_btn(list_item,
2585 g_main_ad->win_main, "IDS_ST_POP_ENABLE_FLIGHT_MODE"/*KeyStr_FlightMode*/,
2586 ENABLE_FLIGHT_MODE_MSG,
2587 setting_flightmode_turn_on_resp_cb,
2588 0, 2, "IDS_ST_BUTTON_ENABLE", "IDS_COM_SK_CANCEL");
2590 g_main_ad->popup_flight_mode = setting_create_popup_with_btn(list_item,
2591 g_main_ad->win_main, KeyStr_FlightMode,
2592 "IDS_COM_POP_FLIGHT_MODE_WILL_BE_DISABLED",
2593 setting_flightmode_turn_off_resp_cb,
2594 0, 2, "IDS_COM_SK_OK", "IDS_COM_SK_CANCEL");
2598 void setting_main_click_Gendial_list_multi_window_mode_cb(void *data, Evas_Object *obj, void *event_info)
2600 SETTING_TRACE_BEGIN;
2601 setting_retm_if(data == NULL, "Data parameter is NULL");
2603 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
2604 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
2605 elm_genlist_item_selected_set(item, 0);
2606 Setting_GenGroupItem_Data *list_item =
2607 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
2608 int new_status = !list_item->chk_status;
2609 setting_update_gl_item_chk_status(list_item, new_status);
2610 int ret = vconf_set_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, new_status);
2612 SETTING_TRACE_ERROR("Set multi window vconf failed.");
2617 setting_main_mouse_up_Gendial_list_sensitivity_cb(void *data, Evas_Object *obj,
2621 setting_retm_if(data == NULL, "Data parameter is NULL");
2623 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
2624 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
2625 elm_genlist_item_selected_set(item, 0);
2626 Setting_GenGroupItem_Data *list_item =
2627 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
2629 if (!safeStrCmp(KeyStr_HighTouchSens, list_item->keyStr)) {
2630 display_set_enhanced_touch(!list_item->chk_status);
2632 int status = display_get_enhanced_touch();
2633 SETTING_TRACE("display_get_enhanced_touch():%d", status);
2636 vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, (1 == status)); //sync to vconf
2640 setting_create_simple_popup(NULL, g_main_ad->win_main,
2641 NULL, "IDS_COM_POP_UNEXPECTED_ERROR");
2647 void setting_main_high_touch_sens_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
2649 //SETTING_TRACE_BEGIN;
2651 retm_if(data == NULL, "Data parameter is NULL");
2652 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
2654 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
2655 display_set_enhanced_touch(list_item->chk_status);
2657 int status = display_get_enhanced_touch();
2658 SETTING_TRACE("display_get_enhanced_touch():%d", status);
2661 vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, (1 == status)); //sync to vconf
2665 setting_create_simple_popup(NULL, g_main_ad->win_main,
2666 NULL, "IDS_COM_POP_UNEXPECTED_ERROR");
2669 for (i = VIEW_All_List; i < VIEW_Max; i++)
2671 setting_force_update_gl_item_chk_status(g_main_ad->gl_data_item[i][GL_TouchSens], !(list_item->chk_status));
2678 * toggle cb for flight-mode
2680 void setting_main_click_list_flight_mode_cb(void *data, Evas_Object *obj,
2683 //SETTING_TRACE_BEGIN;
2684 retm_if(data == NULL, "Data parameter is NULL");
2685 Setting_GenGroupItem_Data *list_item =
2686 (Setting_GenGroupItem_Data *) data;
2687 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
2688 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
2689 list_item->chk_status);
2691 if(g_main_ad && list_item->chk_status) {
2692 g_main_ad->popup_flight_mode = setting_create_popup_with_btn(list_item,
2693 g_main_ad->win_main, "IDS_ST_POP_ENABLE_FLIGHT_MODE"/*KeyStr_FlightMode*/,
2694 ENABLE_FLIGHT_MODE_MSG,
2695 setting_flightmode_turn_on_resp_cb,
2696 0, 2, "IDS_ST_BUTTON_ENABLE", "IDS_COM_SK_CANCEL");
2698 //setting_main_alternate_flight_mode(list_item->chk_status);
2699 g_main_ad->popup_flight_mode = setting_create_popup_with_btn(list_item,
2700 g_main_ad->win_main, KeyStr_FlightMode,
2701 "IDS_COM_POP_FLIGHT_MODE_WILL_BE_DISABLED",
2702 setting_flightmode_turn_off_resp_cb,
2703 0, 2, "IDS_COM_SK_OK", "IDS_COM_SK_CANCEL");
2708 * genlist touch cb for network restriction mode
2711 setting_main_click_list_net_restriction_mode_cb( void *data, Evas_Object *obj, void *event_info )
2714 setting_retm_if(data == NULL, "Data parameter is NULL");
2715 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
2716 setting_main_appdata *ad = g_main_ad;
2718 Elm_Object_Item *item = (Elm_Object_Item *)event_info;
2719 elm_genlist_item_selected_set(item, 0);
2720 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get( item );
2721 int old_status = list_item->chk_status;
2726 ad->popup_net_restriction_mode = setting_create_popup_with_btn( NULL,
2728 "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
2729 "IDS_QP_POP_IN_NETWORK_RESTRICTION_MODE_YOU_CAN_USE_ALL_YOUR_APPLICATIONS_WITHOUT_CONNECTING_TO_THE_NETWORK_YOU_CAN_ALSO_RECEIVE_CALLS_AND_SMS_MESSAGES_MSG_JPN" ,
2730 setting_main_net_restriction_mode_turn_on_resp_cb,
2734 "IDS_COM_SK_CANCEL" );
2739 ad->popup_net_restriction_mode = setting_create_popup_with_btn( NULL,
2741 "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
2742 "IDS_QP_POP_NETWORK_RESTRICTION_MODE_WILL_BE_DISABLED_JPN",
2743 setting_main_net_restriction_mode_turn_off_resp_cb,
2747 "IDS_COM_SK_CANCEL" );
2754 * check(on/off) cb for network restriction mode
2757 setting_main_click_list_check_net_restriction_mode_cb( void *data, Evas_Object *obj, void *event_info )
2759 retm_if( data == NULL, "Data parameter is NULL" );
2761 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
2762 setting_main_appdata *ad = g_main_ad;
2764 list_item->chk_status = elm_check_state_get( obj ); /* for update new state */
2765 SETTING_TRACE( "process item [%s], status:%d", _(list_item->keyStr), list_item->chk_status );
2767 if (list_item->chk_status )
2770 ad->popup_net_restriction_mode = setting_create_popup_with_btn( NULL,
2772 "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
2773 "IDS_QP_POP_IN_NETWORK_RESTRICTION_MODE_YOU_CAN_USE_ALL_YOUR_APPLICATIONS_WITHOUT_CONNECTING_TO_THE_NETWORK_YOU_CAN_ALSO_RECEIVE_CALLS_AND_SMS_MESSAGES_MSG_JPN",
2774 setting_main_net_restriction_mode_turn_on_resp_cb,
2778 "IDS_COM_SK_CANCEL");
2783 ad->popup_net_restriction_mode = setting_create_popup_with_btn( NULL,
2785 "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
2786 "IDS_QP_POP_NETWORK_RESTRICTION_MODE_WILL_BE_DISABLED_JPN",
2787 setting_main_net_restriction_mode_turn_off_resp_cb,
2791 "IDS_COM_SK_CANCEL" );
2797 * turn on popup cb for network restriction mode
2800 setting_main_net_restriction_mode_turn_on_resp_cb( void *data, Evas_Object *obj, void *event_info )
2802 SETTING_TRACE_BEGIN;
2805 setting_retm_if(NULL == obj, "NULL == obj");
2806 int response_type = btn_type( obj );
2807 setting_main_appdata *ad = g_main_ad;
2808 int status, err = 0;
2813 if ( ad->popup_net_restriction_mode )
2815 evas_object_del( ad->popup_net_restriction_mode );
2816 ad->popup_net_restriction_mode = NULL;
2820 if ( response_type == POPUP_RESPONSE_OK )
2823 setting_set_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, SETTING_ON_OFF_BTN_ON, &err );
2825 else if ( response_type == POPUP_RESPONSE_CANCEL )
2827 setting_get_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, &status, &err );
2830 Setting_GenGroupItem_Data *item_to_update;
2832 for (i = VIEW_All_List; i < VIEW_Max; i++)
2834 item_to_update =ad->gl_data_item[i][GL_NetRestriction];
2835 setting_update_gl_item_chk_status(item_to_update, status );
2838 Evas_Object *old_list = elm_object_part_content_get(ad->ly_topview, "content");
2839 if (old_list == ad->search_genlist)
2841 SETTING_TRACE("Already be in search mode");
2842 elm_genlist_realized_items_update(ad->search_genlist);
2849 * turn off popup cb for network restriction mode
2852 setting_main_net_restriction_mode_turn_off_resp_cb( void *data, Evas_Object *obj, void *event_info )
2854 SETTING_TRACE_BEGIN;
2857 setting_retm_if(NULL == obj, "NULL == obj");
2859 int response_type = btn_type( obj );
2860 setting_main_appdata *ad = g_main_ad;
2861 int status, err = 0;
2866 if ( ad->popup_net_restriction_mode )
2868 evas_object_del( ad->popup_net_restriction_mode );
2869 ad->popup_net_restriction_mode = NULL;
2872 if ( response_type == POPUP_RESPONSE_OK )
2874 status = EINA_FALSE;
2875 setting_set_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, SETTING_ON_OFF_BTN_OFF, &err );
2876 SETTING_TRACE("BOOL_SLP_SETTING_NET_RESTRICTION_MODE - off");
2878 else if ( response_type == POPUP_RESPONSE_CANCEL )
2880 setting_get_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, &status, &err );
2882 SETTING_TRACE("BOOL_SLP_SETTING_NET_RESTRICTION_MODE - update UI by getting vconf");
2884 Setting_GenGroupItem_Data *item_to_update;
2886 for (i = VIEW_All_List; i < VIEW_Max; i++)
2888 item_to_update = ad->gl_data_item[i][GL_NetRestriction];
2889 setting_update_gl_item_chk_status(item_to_update, status );
2892 Evas_Object *old_list = elm_object_part_content_get(ad->ly_topview, "content");
2893 if (old_list == ad->search_genlist)
2895 SETTING_TRACE("Already be in search mode");
2896 elm_genlist_realized_items_update(ad->search_genlist);
2905 void setting_main_click_list_wifi_mode_cb(void *data, Evas_Object *obj,
2908 //SETTING_TRACE_BEGIN;
2909 retm_if(data == NULL, "Data parameter is NULL");
2910 Setting_GenGroupItem_Data *list_item =
2911 (Setting_GenGroupItem_Data *) data;
2912 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
2913 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
2914 list_item->chk_status);
2916 __alternate_wifi_mode(list_item, obj);
2919 void setting_main_click_list_motion_cb(void *data, Evas_Object *obj,
2922 //SETTING_TRACE_BEGIN;
2923 retm_if(data == NULL, "Data parameter is NULL");
2924 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
2925 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
2926 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
2927 list_item->chk_status);
2930 int ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_MOTION_ACTIVATION, list_item->chk_status, &err);
2931 if (0 != ret) //rollback
2933 setting_update_gl_item_chk_status(list_item, !(list_item->chk_status));
2937 /* If motion activation changes to OFF when screen lock type is motion unlock, screen lock type should be set SWIPE automatically */
2938 if(!list_item->chk_status)
2940 int screen_lock_type = 0;
2941 vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &screen_lock_type);
2942 if(screen_lock_type == SETTING_SCREEN_LOCK_TYPE_MOTION)
2943 vconf_set_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_SWIPE);
2947 void setting_main_click_list_nearby_devices_cb(void *data, Evas_Object *obj,
2950 //SETTING_TRACE_BEGIN;
2951 retm_if(data == NULL, "Data parameter is NULL");
2952 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
2953 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
2954 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr), list_item->chk_status);
2956 int chk_status = list_item->chk_status;
2961 //app_launcher("setting-allshare-efl|mode:on");
2963 setting_update_gl_item_chk_status(list_item, VCONFKEY_ALLSHARE_DISABLE);
2965 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
2966 setting_retm_if(!cbs, "calloc failed");
2967 cbs->layout_cb = setting_main_layout_ug_cb;
2968 cbs->result_cb = setting_main_result_ug_cb;
2969 cbs->destroy_cb = setting_main_destroy_ug_cb;
2970 cbs->priv = (void *)g_main_ad;
2972 app_control_h svc = NULL;
2973 app_control_create(&svc);
2974 app_control_add_extra_data(svc, "mode", "on");
2975 setting_main_click_list_item_ug_cb(g_main_ad, obj, "setting-allshare-efl", svc, cbs);
2981 app_control_destroy(svc);
2987 ret = vconf_set_int(VCONFKEY_ALLSHARE_STATUS, VCONFKEY_ALLSHARE_DISABLE);
2988 if (0 != ret) //rollback
2990 setting_update_gl_item_chk_status(list_item, VCONFKEY_ALLSHARE_ENABLE);
2999 void setting_main_click_list_bt_mode_cb(void *data, Evas_Object *obj,
3002 retm_if(data == NULL, "Data parameter is NULL");
3003 Setting_GenGroupItem_Data *list_item =
3004 (Setting_GenGroupItem_Data *) data;
3005 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
3006 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
3007 list_item->chk_status);
3009 __alternate_bt_mode(list_item, obj);
3016 void setting_main_click_list_nfc_mode_cb(void *data, Evas_Object *obj,
3019 retm_if(data == NULL, "Data parameter is NULL");
3020 Setting_GenGroupItem_Data *list_item =
3021 (Setting_GenGroupItem_Data *) data;
3022 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
3023 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
3024 list_item->chk_status);
3026 Eina_Bool status = elm_check_state_get(obj);
3027 setting_alternate_nfc_mode(list_item, status);
3033 void setting_main_click_list_sbeam_mode_cb(void *data, Evas_Object *obj,
3036 retm_if(data == NULL, "Data parameter is NULL");
3037 setting_main_appdata *ad = g_main_ad;
3038 Setting_GenGroupItem_Data *list_item =
3039 (Setting_GenGroupItem_Data *) data;
3040 list_item->chk_status = elm_check_state_get(obj); /* for update new state */
3041 SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
3042 list_item->chk_status);
3044 if (ad->nfc_try_activate_running)
3046 SETTING_TRACE("CHECK : nfc state update is in progress. DON'T DO ANY MORE !!!!!!!!!!!!!!!!!!!!!!!");
3047 elm_check_state_set(obj, !list_item->chk_status);
3051 SETTING_TRACE("CHECK : nfc state update is NOT in progress. - GO AHEAD !!!");
3052 Eina_Bool status = elm_check_state_get(obj);
3053 setting_alternate_sbeam_mode(list_item, status);
3058 void setting_main_display_auto_adjust_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
3060 SETTING_TRACE_BEGIN;
3062 retm_if(data == NULL, "Data parameter is NULL");
3063 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
3065 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
3066 vconf_set_bool(VCONFKEY_SETAPPL_LCD_AUTO_DISPLAY_ADJUSTMENT, list_item->chk_status);
3067 //setting_display_set_auto_adjust_tone(list_item->chk_status); //todo:copy it from display
3070 void setting_main_display_auto_rotate_chk_btn_cb(void *data, Evas_Object *obj, void *event_info)
3072 SETTING_TRACE_BEGIN;
3074 retm_if(data == NULL, "Data parameter is NULL");
3075 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
3076 setting_main_appdata *ad = g_main_ad;
3078 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
3080 if(list_item->chk_status == 1)
3082 int angle = elm_win_rotation_get(ad->win_main);
3083 elm_win_rotation_with_resize_set(ad->win_main, angle);
3087 elm_win_rotation_with_resize_set(ad->win_main, 0);
3090 vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, list_item->chk_status);
3094 void setting_main_display_battery_chk_btn_cb(void *data, Evas_Object *obj,
3097 SETTING_TRACE_BEGIN;
3099 retm_if(data == NULL, "Data parameter is NULL");
3100 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
3102 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
3103 vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
3106 void setting_main_display_list_cb(void *data, Evas_Object *obj, void *event_info)
3109 setting_retm_if(data == NULL, "Data parameter is NULL");
3111 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
3112 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
3113 elm_genlist_item_selected_set(item, 0);
3114 Setting_GenGroupItem_Data *list_item =
3115 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
3117 setting_main_appdata *ad = data;
3119 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
3120 if (!safeStrCmp(KeyStr_BatteryPercent, list_item->keyStr)) {
3121 setting_update_gl_item_chk_status(list_item, !list_item->chk_status);
3122 vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, list_item->chk_status);
3124 #if SUPPORT_AUTO_ADJUST_SCREEN_TONE
3125 else if (!safeStrCmp(KeyStr_AdjustScreenTone, list_item->keyStr)) {
3126 setting_update_gl_item_chk_status(list_item, !list_item->chk_status);
3127 vconf_set_bool(VCONFKEY_SETAPPL_LCD_AUTO_DISPLAY_ADJUSTMENT, list_item->chk_status);
3131 else if (!safeStrCmp(KeyStr_Landscape, list_item->keyStr)) {
3132 setting_update_gl_item_chk_status(list_item, !list_item->chk_status);
3133 if(list_item->chk_status == 1)
3135 int angle = elm_win_rotation_get(ad->win_main);
3136 elm_win_rotation_with_resize_set(ad->win_main, angle);
3140 elm_win_rotation_with_resize_set(ad->win_main, 0);
3143 vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, list_item->chk_status);