4 * Copyright 2012 Samsung Electronics Co., Ltd
6 * Licensed under the Flora License, Version 1.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.tizenopensource.org/license
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 #include <vconf-keys.h>
22 #include <efl_assist.h>
23 #include <app_control_internal.h>
24 #include <efl_extension.h>
27 #include "view_advanced.h"
28 #include "i18nmanager.h"
29 #include "viewer_manager.h"
30 #include "winset_popup.h"
31 #include "common_utils.h"
33 #define VCONF_SLEEP_POLICY "file/private/wifi/sleep_policy"
34 #define VCONF_SMART_SWITCHING "file/private/wifi/smart_switching"
35 #define VCONF_SMART_SWITCH_CB "file/private/wifi/smart_switch_checkbox"
38 VCONF_SMART_SWITCH_OFF = 0x00,
39 VCONF_SMART_SWITCH_ON,
40 } VCONF_SMART_SWITCH_OPTIONS;
42 struct _private_data {
44 Elm_Object_Item *item_smart_switch;
45 Evas_Object *smart_popup;
46 Elm_Object_Item *item_network_noti;
47 Elm_Object_Item *item_keep_wifi_switch;
48 Evas_Object *keep_wifi_radio_group;
49 Evas_Object *keep_wifi_popup;
51 Elm_Object_Item *item_sort_by;
52 Evas_Object *sort_by_radio_group;
53 Evas_Object *sort_by_popup;
55 Elm_Object_Item *item_install_cert;
58 struct _private_data g_pd;
61 static char *_gl_text_get(void *data, Evas_Object *obj, const char *part);
62 static char *_gl_network_notification_text_get(void *data, Evas_Object *obj, const char *part);
63 static char *_gl_sort_by_text_get(void *data, Evas_Object *obj, const char *part);
64 static char *_gl_sort_by_sub_text_get(void *data, Evas_Object *obj, const char *part);
65 static char *_gl_never_text_get(void *data, Evas_Object *obj,const char *part);
66 static char *_gl_keep_wifi_on_during_sleep_text_get(void *data, Evas_Object *obj,const char *part);
67 static Evas_Object *_gl_content_get_network_noti(void *data, Evas_Object *obj, const char *part);
68 static Evas_Object *_gl_content_get_keep_wifi_sub(void *data, Evas_Object *obj, const char *part);
69 static Evas_Object *_gl_content_get_sort_by_sub(void *data, Evas_Object *obj, const char *part);
70 static char *_gl_install_certificate_text_get(void *data, Evas_Object *obj, const char *part);
72 /* Global variables for elm_genlist itc */
73 static Elm_Genlist_Item_Class itc_network_noti = {
74 .item_style = "multiline_sub.main.1icon",
75 .func.text_get = _gl_network_notification_text_get,
76 .func.content_get = _gl_content_get_network_noti
79 static Elm_Genlist_Item_Class itc_keep_wifi = {
80 .item_style = "2line.top",
81 .func.text_get = _gl_keep_wifi_on_during_sleep_text_get,
84 static Elm_Genlist_Item_Class itc_keep_wifi_sub = {
85 .item_style = "1line",
86 .func.text_get = _gl_text_get,
87 .func.content_get = _gl_content_get_keep_wifi_sub,
90 static Elm_Genlist_Item_Class itc_keep_wifi_sub_never = {
91 .item_style = "2line.top",
92 .func.text_get = _gl_never_text_get,
93 .func.content_get = _gl_content_get_keep_wifi_sub,
96 static Elm_Genlist_Item_Class itc_sort_by = {
97 .item_style = "2line.top",
98 .func.text_get = _gl_sort_by_text_get,
101 static Elm_Genlist_Item_Class itc_sort_by_sub = {
102 .item_style = "1line",
103 .func.text_get = _gl_sort_by_sub_text_get,
104 .func.content_get = _gl_content_get_sort_by_sub,
107 static Elm_Genlist_Item_Class itc_install_cert = {
108 .item_style = "1line",
109 .func.text_get = _gl_install_certificate_text_get,
112 static char *_gl_install_certificate_text_get(void *data, Evas_Object *obj,
117 if (!g_strcmp0(part, "elm.text.main.left")) {
118 snprintf(buf, 1023, "%s", sc(PACKAGE, I18N_TYPE_Install_certificate));
124 static void _launch_cert_select_app(void)
126 int ret = APP_CONTROL_ERROR_NONE;
127 app_control_h app_control;
129 app_control_create(&app_control);
130 app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
131 app_control_set_window(app_control, elm_win_xwindow_get(ug_get_window()));
132 app_control_set_app_id(app_control, "setting-manage-certificates-efl");
134 ret = app_control_send_launch_request(app_control, NULL, NULL);
135 if(ret == APP_CONTROL_ERROR_NONE) {
136 INFO_LOG(UG_NAME_NORMAL, "Launch Cert Success");
138 ERROR_LOG(UG_NAME_NORMAL, "Fail to launch Cert");
141 app_control_destroy(app_control);
144 static void _gl_cert_sel_cb(void *data, Evas_Object *obj, void *event_info)
146 _launch_cert_select_app();
148 elm_genlist_item_selected_set(g_pd.item_install_cert, EINA_FALSE);
151 static int _convert_wifi_keep_value_to_vconf(int i18n_key)
154 case I18N_TYPE_Always:
157 case I18N_TYPE_Plugged:
160 case I18N_TYPE_Donot_Use:
167 static int _convert_vconf_to_wifi_keep_value(int vconf_value)
169 switch (vconf_value) {
171 return I18N_TYPE_Always;
174 return I18N_TYPE_Plugged;
177 return I18N_TYPE_Donot_Use;
183 int _convert_sort_by_value_to_vconf(int i18n_key)
186 case I18N_TYPE_Alphabetical:
189 case I18N_TYPE_Signal_Strength:
196 int _convert_vconf_to_sort_by_value(int vconf_value)
198 switch (vconf_value) {
200 return I18N_TYPE_Alphabetical;
203 return I18N_TYPE_Signal_Strength;
209 static char *_gl_sort_by_text_get(void *data, Evas_Object *obj,
213 if (!g_strcmp0(part, "elm.text.main.left.top")||!g_strcmp0(part, "elm.text.main.left")) {
214 if ((int) data != 0) {
215 snprintf(buf, 1023, "%s", sc(PACKAGE, (int) data));
218 } else if (!g_strcmp0(part, "elm.text.sub.left.bottom")) {
221 value = _convert_vconf_to_sort_by_value(
222 common_util_get_system_registry(VCONF_SORT_BY));
224 snprintf(buf, 1023, "%s", sc(PACKAGE, value));
232 static char *_gl_sort_by_sub_text_get(void *data, Evas_Object *obj, const char *part)
235 if (!g_strcmp0(part, "elm.text.main.left")) {
236 if ((int) data != 0) {
237 snprintf(buf, 1023, "%s", sc(PACKAGE, (int) data));
244 static char *_gl_network_notification_text_get(void *data, Evas_Object *obj, const char *part)
248 if (!g_strcmp0(part, "elm.text.main")) {
249 snprintf(buf, 1023, "%s", sc(PACKAGE, I18N_TYPE_Network_notification));
251 } else if (!g_strcmp0(part, "elm.text.multiline")) {
252 snprintf(buf, 1023, "%s", sc(PACKAGE, I18N_TYPE_Network_notify_me_later));
258 static char *_gl_text_get(void *data, Evas_Object *obj,
262 if (!g_strcmp0(part, "elm.text.main.left")) {
263 if ((int) data != 0) {
264 snprintf(buf, 1023, "%s", sc(PACKAGE, (int) data));
272 static char *_gl_keep_wifi_on_during_sleep_text_get(void *data, Evas_Object *obj, const char *part)
276 if(!strcmp(part, "elm.text.main.left.top")) {
277 snprintf(buf, 1023, "%s", sc(PACKAGE, I18N_TYPE_Keep_WIFI_on_during_sleep));
281 if(!strcmp(part, "elm.text.sub.left.bottom")) {
283 value = _convert_vconf_to_wifi_keep_value(
284 common_util_get_system_registry(VCONF_SLEEP_POLICY));
286 if (value == I18N_TYPE_Donot_Use) {
287 snprintf(buf, 1023, "%s", sc(PACKAGE, I18N_TYPE_Donot_Use));
290 snprintf(buf, 1023, "%s", sc(PACKAGE, value));
297 static char *_gl_never_text_get(void *data, Evas_Object *obj,
300 if (!g_strcmp0(part, "elm.text.main.left.top")) {
301 return g_strdup(sc(PACKAGE, I18N_TYPE_Donot_Use));
302 } else if (!g_strcmp0(part, "elm.text.sub.left.bottom")) {
303 return g_strdup(sc(PACKAGE, I18N_TYPE_Increases_Data_Usage));
309 static void _gl_changed_network_noti(void *data, Evas_Object *obj,
313 const char *object_type;
315 __COMMON_FUNC_ENTER__;
317 object_type = evas_object_type_get(obj);
319 INFO_LOG(UG_NAME_SCAN, "object_type is NULL");
323 value = common_util_get_system_registry(VCONFKEY_WIFI_ENABLE_QS);
325 if (g_strcmp0(object_type, "elm_check") == 0) {
326 Eina_Bool check_enable = elm_check_state_get(obj);
328 if (check_enable == TRUE) {
329 value = VCONFKEY_WIFI_QS_ENABLE;
331 value = VCONFKEY_WIFI_QS_DISABLE;
333 } else if (g_strcmp0(object_type, "elm_genlist") == 0) {
334 if (value == VCONFKEY_WIFI_QS_ENABLE) {
335 value = VCONFKEY_WIFI_QS_DISABLE;
337 value = VCONFKEY_WIFI_QS_ENABLE;
341 common_util_set_system_registry(VCONFKEY_WIFI_ENABLE_QS, value);
343 if(g_pd.item_network_noti != NULL)
344 elm_genlist_item_update(g_pd.item_network_noti);
345 elm_genlist_item_selected_set(g_pd.item_network_noti, EINA_FALSE);
347 __COMMON_FUNC_EXIT__;
350 static Evas_Object *_gl_content_get_network_noti(void *data,
351 Evas_Object *obj, const char *part)
353 Evas_Object *toggle_btn = NULL;
357 if (!strncmp(part, "elm.icon", strlen(part))) {
358 toggle_btn = elm_check_add(obj);
359 evas_object_size_hint_align_set(toggle_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
360 evas_object_size_hint_weight_set(toggle_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
362 elm_object_style_set(toggle_btn, "on&off");
363 evas_object_propagate_events_set(toggle_btn, EINA_FALSE);
364 #ifdef ACCESSIBLITY_FEATURE
365 Evas_Object *ao = NULL;
367 ao = elm_object_item_access_object_get(g_pd.item_network_noti);
369 g_snprintf(buf, sizeof(buf), "%s%s%s",
370 sc(PACKAGE, I18N_TYPE_On),
371 sc(PACKAGE, I18N_TYPE_Off),
372 sc(PACKAGE, I18N_TYPE_Button));
373 elm_access_info_set(ao, ELM_ACCESS_TYPE, buf);
376 ret = common_util_get_system_registry(VCONFKEY_WIFI_ENABLE_QS);
379 #ifdef ACCESSIBLITY_FEATURE
381 elm_access_info_set(ao, ELM_ACCESS_STATE,
382 sc(PACKAGE, I18N_TYPE_On));
384 elm_check_state_set(toggle_btn, EINA_TRUE);
385 evas_object_smart_callback_add(toggle_btn, "changed",
386 _gl_changed_network_noti, NULL);
389 #ifdef ACCESSIBLITY_FEATURE
391 elm_access_info_set(ao, ELM_ACCESS_STATE,
392 sc(PACKAGE, I18N_TYPE_Off));
394 elm_check_state_set(toggle_btn, EINA_FALSE);
395 evas_object_smart_callback_add(toggle_btn, "changed",
396 _gl_changed_network_noti, NULL);
399 ERROR_LOG(COMMON_NAME_ERR, "Setting fail!!");
406 static void _gl_changed_keep_wifi_sub(void *data, Evas_Object *obj,
409 Elm_Object_Item *item;
410 const char *object_type;
412 Elm_Object_Item *parent = NULL;
414 __COMMON_FUNC_ENTER__;
416 item = (Elm_Object_Item *) event_info;
417 object_type = evas_object_type_get(obj);
419 INFO_LOG(UG_NAME_SCAN, "object_type is NULL");
423 value = _convert_wifi_keep_value_to_vconf((int) data);
426 common_util_set_system_registry(VCONF_SLEEP_POLICY, value);
429 if (g_strcmp0(object_type, "elm_genlist") == 0) {
430 elm_radio_value_set(g_pd.keep_wifi_radio_group, (int) data);
434 elm_genlist_item_update(item);
435 elm_genlist_item_selected_set(item, EINA_FALSE);
437 parent = elm_genlist_item_parent_get(item);
439 elm_genlist_item_update(parent);
442 if(g_pd.item_keep_wifi_switch != NULL)
443 elm_genlist_item_update(g_pd.item_keep_wifi_switch);
445 evas_object_del(g_pd.keep_wifi_popup);
446 __COMMON_FUNC_EXIT__;
449 static Evas_Object *_gl_content_get_keep_wifi_sub(void *data,
450 Evas_Object *obj, const char *part)
452 __COMMON_FUNC_ENTER__;
455 Evas_Object *content = elm_layout_add(obj);
457 if (!g_pd.keep_wifi_radio_group) {
458 g_pd.keep_wifi_radio_group = elm_radio_add(obj);
459 elm_radio_state_value_set (g_pd.keep_wifi_radio_group, -1);
462 if (!g_strcmp0(part, "elm.icon.2")) {
463 elm_layout_theme_set(content, "layout", "list/C/type.2", "default");
464 radio = elm_radio_add(content);
465 #ifdef ACCESSIBLITY_FEATURE
466 elm_access_object_unregister(radio);
468 elm_radio_state_value_set(radio, (int) data);
469 elm_radio_group_add(radio, g_pd.keep_wifi_radio_group);
471 elm_layout_content_set(content, "elm.swallow.content", radio);
473 value = _convert_vconf_to_wifi_keep_value(
474 common_util_get_system_registry(VCONF_SLEEP_POLICY));
475 if (value == (int) data) {
476 elm_radio_value_set(g_pd.keep_wifi_radio_group, (int) data);
479 evas_object_smart_callback_add(radio, "changed", _gl_changed_keep_wifi_sub, data);
482 __COMMON_FUNC_EXIT__;
486 static void _gl_changed_sort_by_sub(void *data, Evas_Object *obj,
489 Elm_Object_Item *item;
490 const char *object_type;
492 Elm_Object_Item *parent = NULL;
494 __COMMON_FUNC_ENTER__;
496 item = (Elm_Object_Item *) event_info;
497 object_type = evas_object_type_get(obj);
499 INFO_LOG(UG_NAME_SCAN, "object_type is NULL");
503 value = _convert_sort_by_value_to_vconf((int) data);
505 common_util_set_system_registry(VCONF_SORT_BY, value);
508 if (g_strcmp0(object_type, "elm_genlist") == 0) {
509 elm_radio_value_set(g_pd.sort_by_radio_group, (int) data);
513 elm_genlist_item_update(item);
514 elm_genlist_item_selected_set(item, EINA_FALSE);
516 parent = elm_genlist_item_parent_get(item);
518 elm_genlist_item_update(parent);
521 if(g_pd.item_sort_by != NULL)
522 elm_genlist_item_update(g_pd.item_sort_by);
524 evas_object_del(g_pd.sort_by_popup);
526 __COMMON_FUNC_EXIT__;
529 static Evas_Object *_gl_content_get_sort_by_sub(void *data,
530 Evas_Object *obj, const char *part)
532 __COMMON_FUNC_ENTER__;
536 Evas_Object *content = elm_layout_add(obj);
538 if (!g_pd.sort_by_radio_group) {
539 g_pd.sort_by_radio_group = elm_radio_add(obj);
540 elm_radio_state_value_set (g_pd.sort_by_radio_group, -1);
543 if (!g_strcmp0(part, "elm.icon.2")) {
544 elm_layout_theme_set(content, "layout", "list/C/type.2", "default");
545 radio = elm_radio_add(content);
546 #ifdef ACCESSIBLITY_FEATURE
547 elm_access_object_unregister(radio);
549 elm_radio_state_value_set(radio, (int) data);
550 elm_radio_group_add(radio, g_pd.sort_by_radio_group);
552 elm_layout_content_set(content, "elm.swallow.content", radio);
554 value = _convert_vconf_to_sort_by_value(
555 common_util_get_system_registry(VCONF_SORT_BY));
557 if (value == (int) data) {
558 elm_radio_value_set(g_pd.sort_by_radio_group, (int) data);
561 evas_object_smart_callback_add(radio, "changed",
562 _gl_changed_sort_by_sub, data);
565 __COMMON_FUNC_EXIT__;
569 static void _block_clicked_cb(void *data, Evas_Object *obj,
572 Evas_Object *popup = (Evas_Object *)data;
575 evas_object_del(popup);
579 static void _gl_keep_wifi(void *data, Evas_Object *obj, void *event_info)
581 __COMMON_FUNC_ENTER__;
582 Evas_Object *genlist;
584 g_pd.keep_wifi_popup = elm_popup_add(obj);
585 eext_object_event_callback_add(g_pd.keep_wifi_popup, EA_CALLBACK_BACK, eext_popup_back_cb, NULL);
586 elm_object_domain_translatable_part_text_set(g_pd.keep_wifi_popup,
587 "title,text", PACKAGE, "IDS_ST_BODY_KEEP_WI_FI_ON_DURING_SLEEP");
588 elm_popup_align_set(g_pd.keep_wifi_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
589 evas_object_size_hint_weight_set(g_pd.keep_wifi_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
590 evas_object_smart_callback_add(g_pd.keep_wifi_popup, "block,clicked",
591 _block_clicked_cb, g_pd.keep_wifi_popup);
594 genlist = elm_genlist_add(g_pd.keep_wifi_popup);
595 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
596 evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
597 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
598 elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
601 g_pd.keep_wifi_radio_group = elm_radio_add(genlist);
602 evas_object_data_set(genlist, "radio", g_pd.keep_wifi_radio_group);
604 elm_genlist_item_append(genlist, &itc_keep_wifi_sub,
605 (const void *) I18N_TYPE_Always, NULL, ELM_GENLIST_ITEM_NONE,
606 _gl_changed_keep_wifi_sub, (const void *)I18N_TYPE_Always);
608 elm_genlist_item_append(genlist, &itc_keep_wifi_sub,
609 (const void *) I18N_TYPE_Plugged, NULL, ELM_GENLIST_ITEM_NONE,
610 _gl_changed_keep_wifi_sub, (const void *)I18N_TYPE_Plugged);
612 elm_genlist_item_append(genlist, &itc_keep_wifi_sub_never,
613 (const void *) I18N_TYPE_Donot_Use, NULL, ELM_GENLIST_ITEM_NONE,
614 _gl_changed_keep_wifi_sub, (const void *)I18N_TYPE_Donot_Use);
616 evas_object_show(genlist);
617 elm_object_content_set(g_pd.keep_wifi_popup, genlist);
618 evas_object_show(g_pd.keep_wifi_popup);
620 elm_genlist_item_selected_set(g_pd.item_keep_wifi_switch, EINA_FALSE);
621 __COMMON_FUNC_EXIT__;
624 static void _gl_sort_by(void *data, Evas_Object *obj, void *event_info)
626 __COMMON_FUNC_ENTER__;
627 Evas_Object *genlist = NULL;
629 g_pd.sort_by_popup = elm_popup_add(obj);
630 eext_object_event_callback_add(g_pd.sort_by_popup, EA_CALLBACK_BACK, eext_popup_back_cb, NULL);
631 elm_object_domain_translatable_part_text_set(g_pd.sort_by_popup,
632 "title,text", PACKAGE, "IDS_WIFI_BODY_SORT_BY");
633 elm_popup_align_set(g_pd.sort_by_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
634 evas_object_size_hint_weight_set(g_pd.sort_by_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
635 evas_object_smart_callback_add(g_pd.sort_by_popup, "block,clicked",
636 _block_clicked_cb, g_pd.sort_by_popup);
639 genlist = elm_genlist_add(g_pd.sort_by_popup);
640 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
641 evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
642 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
643 elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
646 g_pd.sort_by_radio_group = elm_radio_add(genlist);
647 evas_object_data_set(genlist, "radio", g_pd.sort_by_radio_group);
649 elm_genlist_item_append(genlist, &itc_sort_by_sub,
650 (const void *) I18N_TYPE_Alphabetical, NULL, ELM_GENLIST_ITEM_NONE,
651 _gl_changed_sort_by_sub, (const void *)I18N_TYPE_Alphabetical);
653 elm_genlist_item_append(genlist, &itc_sort_by_sub,
654 (const void *) I18N_TYPE_Signal_Strength, NULL, ELM_GENLIST_ITEM_NONE,
655 _gl_changed_sort_by_sub, (const void *)I18N_TYPE_Signal_Strength);
657 evas_object_show(genlist);
658 elm_object_content_set(g_pd.sort_by_popup, genlist);
659 evas_object_show(g_pd.sort_by_popup);
661 elm_genlist_item_selected_set(g_pd.item_sort_by, EINA_FALSE);
662 __COMMON_FUNC_EXIT__;
665 static Evas_Object *_create_list(Evas_Object *parent)
670 vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state);
671 INFO_LOG(UG_NAME_NORMAL, "Wi-Fi state %d", wifi_state);
673 gl = elm_genlist_add(parent);
674 assertm_if(NULL == gl, "NULL!!");
676 elm_object_style_set(gl, "dialogue");
677 elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
679 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
680 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
682 elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
684 /* Network Notification */
685 g_pd.item_network_noti = elm_genlist_item_append(gl, &itc_network_noti,
686 (const void *) I18N_TYPE_Network_notification, NULL,
687 ELM_GENLIST_ITEM_NONE, _gl_changed_network_noti, NULL);
689 /* Keep WI-FI on during sleep */
690 g_pd.item_keep_wifi_switch = elm_genlist_item_append(gl, &itc_keep_wifi,
691 (const void *) I18N_TYPE_Keep_WIFI_on_during_sleep, NULL,
692 ELM_GENLIST_ITEM_NONE, _gl_keep_wifi, NULL);
695 g_pd.item_sort_by= elm_genlist_item_append(gl, &itc_sort_by,
696 (const void *) I18N_TYPE_Sort_by, NULL,
697 ELM_GENLIST_ITEM_NONE, _gl_sort_by, NULL);
699 /* Install Certificate */
700 g_pd.item_install_cert = elm_genlist_item_append(gl, &itc_install_cert,
701 NULL, NULL, ELM_GENLIST_ITEM_NONE, _gl_cert_sel_cb, NULL);
703 evas_object_show(gl);
708 static void __vconf_noti_change_cb(keynode_t *node, void *user_data)
712 vconf_get_int(VCONFKEY_WIFI_ENABLE_QS, &state);
713 INFO_LOG(UG_NAME_NORMAL, "New notification option - %d", state);
715 if (g_pd.item_network_noti != NULL) {
716 elm_genlist_item_update(g_pd.item_network_noti);
720 static void __vconf_sleep_change_cb(keynode_t *node, void *user_data)
724 vconf_get_int(VCONF_SLEEP_POLICY, &state);
725 INFO_LOG(UG_NAME_NORMAL, "New sleep policy - %d", state);
727 if (g_pd.item_keep_wifi_switch != NULL) {
728 elm_genlist_item_update(g_pd.item_keep_wifi_switch);
732 static void __vconf_sort_change_cb(keynode_t *node, void *user_data)
736 vconf_get_int(VCONF_SORT_BY, &state);
737 INFO_LOG(UG_NAME_NORMAL, "New sort by option - %d", state);
739 if (g_pd.item_sort_by != NULL) {
740 elm_genlist_item_update(g_pd.item_sort_by);
744 static void __vconf_smart_switch_change_cb(keynode_t *node, void *user_data)
748 vconf_get_int(VCONF_SMART_SWITCHING, &state);
749 INFO_LOG(UG_NAME_NORMAL, "New smart switch option - %d", state);
751 if (g_pd.item_smart_switch != NULL) {
752 elm_genlist_item_update(g_pd.item_smart_switch);
756 static Eina_Bool __back_key_cb(void *data, Elm_Object_Item *it)
758 __COMMON_FUNC_ENTER__;
760 /* Delete vconf listeners for the different options */
761 vconf_ignore_key_changed(VCONFKEY_WIFI_ENABLE_QS, __vconf_noti_change_cb);
762 vconf_ignore_key_changed(VCONF_SLEEP_POLICY, __vconf_sleep_change_cb);
763 vconf_ignore_key_changed(VCONF_SORT_BY, __vconf_sort_change_cb);
764 vconf_ignore_key_changed(VCONF_SMART_SWITCHING,
765 __vconf_smart_switch_change_cb);
767 __COMMON_FUNC_EXIT__;
772 void view_advanced(void)
774 Evas_Object *layout = NULL;
775 Evas_Object *navi_frame = NULL;
776 Elm_Object_Item *navi_it = NULL;
779 __COMMON_FUNC_ENTER__;
781 memset (&g_pd, 0, sizeof(struct _private_data));
783 navi_frame = viewer_manager_get_naviframe();
784 if (navi_frame == NULL) {
785 ERROR_LOG(UG_NAME_NORMAL, "Failed to get naviframe");
789 layout = common_utils_create_layout(navi_frame);
790 evas_object_show(layout);
792 g_pd.list = _create_list(layout);
793 assertm_if(NULL == g_pd.list, "_create_list failed");
795 elm_object_part_content_set(layout, "elm.swallow.content", g_pd.list);
797 g_strlcpy(title, "IDS_WIFI_BODY_ADVANCED_SETTINGS", sizeof(title));
798 navi_it = elm_naviframe_item_push(navi_frame, title, NULL, NULL,
800 elm_object_item_domain_text_translatable_set(navi_it, PACKAGE, EINA_TRUE);
802 evas_object_data_set(navi_frame, SCREEN_TYPE_ID_KEY,
803 (void *) VIEW_MANAGER_VIEW_TYPE_ADVANCED);
805 elm_naviframe_item_pop_cb_set(navi_it, __back_key_cb, NULL);
807 /* Add vconf listeners for the different options */
808 vconf_notify_key_changed(VCONFKEY_WIFI_ENABLE_QS, __vconf_noti_change_cb,
810 vconf_notify_key_changed(VCONF_SLEEP_POLICY, __vconf_sleep_change_cb,
812 vconf_notify_key_changed(VCONF_SORT_BY, __vconf_sort_change_cb,
814 vconf_notify_key_changed(VCONF_SMART_SWITCHING,
815 __vconf_smart_switch_change_cb, NULL);
817 __COMMON_FUNC_EXIT__;