Disable Wi-fi / Tethering / Network menu in calling,disable 'Network' when flight...
authorKairong Yin <kairong78.yin@samsung.com>
Tue, 18 Sep 2012 09:19:22 +0000 (02:19 -0700)
committerKairong Yin <kairong78.yin@samsung.com>
Tue, 18 Sep 2012 09:19:22 +0000 (02:19 -0700)
Change-Id: I84229a3349738db21912996121110c51e3c25047

include/setting.h
setting-network/src/setting-network-main.c
src/setting-main.c
src/setting.c

index ad6118c..142f7a0 100755 (executable)
@@ -150,6 +150,9 @@ typedef struct _setting_main_appdata {
        Setting_GenGroupItem_Data *data_moreConnect;
        Setting_GenGroupItem_Data *data_nfc;
 
+       //following are not for update..
+       Setting_GenGroupItem_Data *data_network;
+
        Setting_View_Type view_type;
 
        Evas_Object *main_genlist;                              /**< 'Setting main' in main page */
index 8bd8031..2d53d1d 100755 (executable)
@@ -354,56 +354,49 @@ static int setting_network_main_create(void *cb)
 
        /* (void)setting_create_Gendial_field_titleItem(scroller, &(ad->itc_group_item), speciliztion, NULL); */
 
-       /*  check flight mode */
-       int flight_mode, err;
-       setting_get_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE, &flight_mode,
-                                &err);
-       /** @todo check 'err' variable for exception handling */
-       SETTING_TRACE("flight_mode:%d", flight_mode);
-       char *sub_des = NULL;
-       if (flight_mode == 0) {
-               /*  ***BEGIN***  Fixed the problem of word twinkle  SAMSUNG 2010/7/21 add */
-               ad->sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
-               ad->sel_act = TAPI_NETWORK_SYSTEM_NO_SRV;
-               vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &ad->sel_net);
-               vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, &ad->sel_act);
-
-               FREE(ad->sel_network);
-               ad->sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);
-               SETTING_TRACE("pa_sel_net_name:%s", ad->sel_network);
-               if (isEmptyStr(ad->sel_network)) {
-                   ad->sel_network = strndup("IDS_ST_BODY_NOSERVICE", strlen("IDS_ST_BODY_NOSERVICE")+1);
-               }
-               SETTING_TRACE("pa_net_name:%s", ad->sel_network);
-               SETTING_TRACE("old act:%d", ad->sel_act);
-               SETTING_TRACE("old network mode:%d", ad->sel_net);
-
-               char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
-               if (TAPI_NETWORK_SELECTIONMODE_MANUAL == value) {
-                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
-                                "%s, %s (%s)", _("IDS_COM_BODY_MANUAL"), _(ad->sel_network),
-                                setting_network_get_act_str(ad->sel_act));
-               }
-               else{
-                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
-                                "%s, %s", _("IDS_COM_BODY_AUTOMATIC"), _(ad->sel_network));
-               }
+       /*  Don't need to check flight mode,if flight mode is on, thw whole Network function will be disable*/
+       /*  ***BEGIN***  Fixed the problem of word twinkle  SAMSUNG 2010/7/21 add */
+       ad->sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
+       ad->sel_act = TAPI_NETWORK_SYSTEM_NO_SRV;
+       vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &ad->sel_net);
+       vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, &ad->sel_act);
+
+       FREE(ad->sel_network);
+       ad->sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);
+       SETTING_TRACE("pa_sel_net_name:%s", ad->sel_network);
+       if (isEmptyStr(ad->sel_network)) {
+           ad->sel_network = strndup("IDS_ST_BODY_NOSERVICE", strlen("IDS_ST_BODY_NOSERVICE")+1);
+       }
+       SETTING_TRACE("pa_net_name:%s", ad->sel_network);
+       SETTING_TRACE("old act:%d", ad->sel_act);
+       SETTING_TRACE("old network mode:%d", ad->sel_net);
+
+       char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
+       if (TAPI_NETWORK_SELECTIONMODE_MANUAL == value) {
+               snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
+                        "%s, %s (%s)", _("IDS_COM_BODY_MANUAL"), _(ad->sel_network),
+                        setting_network_get_act_str(ad->sel_act));
+       }
+       else{
+               snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
+                        "%s, %s", _("IDS_COM_BODY_AUTOMATIC"), _(ad->sel_network));
+       }
 
-               ad->data_sel_net = setting_create_Gendial_field_def(scroller,
-                                            &itc_2text_3,
-                                            setting_network_main_item_Gendial_mouse_up_cb,
-                                            ad, SWALLOW_Type_INVALID,
-                                            NULL, NULL, 0,
-                                            "IDS_ST_BODY_SELECT_NETWORK",
-                                            sel_network_desc, NULL);
-               if (ad->data_sel_net) {
-                       ad->data_sel_net->userdata = ad;
-               } else {
-                       SETTING_TRACE_ERROR("ad->data_sel_net is NULL");
-               }
+       ad->data_sel_net = setting_create_Gendial_field_def(scroller,
+                                    &itc_2text_3,
+                                    setting_network_main_item_Gendial_mouse_up_cb,
+                                    ad, SWALLOW_Type_INVALID,
+                                    NULL, NULL, 0,
+                                    "IDS_ST_BODY_SELECT_NETWORK",
+                                    sel_network_desc, NULL);
+       if (ad->data_sel_net) {
+               ad->data_sel_net->userdata = ad;
+       } else {
+               SETTING_TRACE_ERROR("ad->data_sel_net is NULL");
        }
        /*  ***BEGIN***  Fixed the problem of word twinkle  SAMSUNG 2010/7/21 add */
        /* hide NETWORK MODE in Emulator*/
+       char *sub_des = NULL;
        k = vconf_get_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, &value);
        if (-1 != k) {
                SETTING_TRACE("value:%d", value);
index c38efd0..5c448af 100755 (executable)
@@ -432,7 +432,7 @@ static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, c
 {
        setting_main_appdata *ad = (setting_main_appdata *)data;
 
-       Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
+       ad->data_network = setting_create_Gendial_field_groupitem(genlist,
                                                                       &(ad->itc[GENDIAL_Type_1text_1icon_2]),
                                                                       NULL,
                                                                       setting_main_click_list_network_ug_cb,
@@ -444,7 +444,7 @@ static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, c
                                                                       NULL,
                                                                       NULL);
 
-       return obj;
+       return ad->data_network;
 }
 
 static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
index 09c4112..3dcc060 100755 (executable)
@@ -419,6 +419,19 @@ static void setting_other_vconf_change_cb(keynode_t *key, void *data)
                item_to_update->chk_status = status;
                //do not need delay for checks
                elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+
+               //Flight mode is ON : Network menu dimmed
+               if (ad->data_network)
+               {
+                       if (status)
+                       {
+                               setting_disable_genlist_item(ad->data_network->item);
+                       }
+                       else
+                       {
+                               setting_enable_genlist_item(ad->data_network->item);
+                       }
+               }
                return;
        } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL)) {
                item_to_update = ad->data_rotationMode;
@@ -428,8 +441,6 @@ static void setting_other_vconf_change_cb(keynode_t *key, void *data)
                vconf_get_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &status);
 
                item_to_update->chk_status = !status;
-               SETTING_TRACE("ad->bAppPause:%d", ad->bAppPause);
-               SETTING_TRACE("ad->ug:%p", ad->ug);
                //do not need delay for checks
                elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
                return;
@@ -497,6 +508,22 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
                        elm_object_item_data_set(item_to_update->item, item_to_update);
                        elm_genlist_item_update(item_to_update->item);
                }
+       }
+       else if (!safeStrCmp(vconf_name, VCONFKEY_CALL_STATE)) {
+               //In call situation : Wi-fi / Tethering / Network menu dimmed
+               if (VCONFKEY_CALL_OFF != status)
+               {
+                       if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
+                       if (ad->data_wifi) setting_disable_genlist_item(ad->data_wifi->item);
+                       if (ad->data_mobileApp) setting_disable_genlist_item(ad->data_mobileApp->item);
+               }
+               else
+               {
+                       if (ad->data_network) setting_enable_genlist_item(ad->data_network->item);
+                       if (ad->data_wifi) setting_enable_genlist_item(ad->data_wifi->item);
+                       if (ad->data_mobileApp) setting_enable_genlist_item(ad->data_mobileApp->item);
+               }
+
        } else if (!safeStrCmp(vconf_name, VCONFKEY_BT_STATUS)) {
                item_to_update = ad->data_bt;
                retm_if(!item_to_update, "ad->data_bt is NULL");
@@ -884,6 +911,7 @@ static int setting_main_app_reset(service_h service, void *data)
        cb = setting_int_vconf_change_cb;
        REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_BT_STATUS, cb, data);
        REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_WIFI_STATE, cb, ad);
+       REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_CALL_STATE, cb, ad);
        //do need to disable 'Brightness' menu,just disable sub-items in 'Brightness' menu
        //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, cb, ad);
        REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, cb, data);
@@ -904,12 +932,21 @@ static int setting_main_app_reset(service_h service, void *data)
 
        ecore_idler_add(setting_on_idle_lazy, ad);
 
-       //fprintf(stderr, "[TIME] 5. app_create -> app_resume (first display) : %d msec\n", appcore_measure_time());
-       //SETTING_TRACE("[TIME] 5. app_create -> app_resume (first display) : %d msec", appcore_measure_time());
-       //fprintf(stderr, "[TIME] Total. aul_launch -> app_resume (first display) : %d msec\n", appcore_measure_time_from("APP_START_TIME"));
-       //SETTING_TRACE("[TIME] Total. aul_launch -> app_resume (first display) : %d msec", appcore_measure_time_from("APP_START_TIME"));
+       int flight_mode = 0;
+       vconf_get_bool(VCONFKEY_SETAPPL_FLIGHT_MODE_BOOL, &flight_mode);
+       if (flight_mode)
+       {
+               if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
+       }
 
-       //return 0;
+       int call_status = VCONFKEY_CALL_OFF;
+       vconf_get_int(VCONFKEY_CALL_STATE, &call_status);
+       if (VCONFKEY_CALL_OFF != call_status)
+       {
+               if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
+               if (ad->data_wifi) setting_disable_genlist_item(ad->data_wifi->item);
+               if (ad->data_mobileApp) setting_disable_genlist_item(ad->data_mobileApp->item);
+       }
 }
 
 int main(int argc, char *argv[])