From acad0b557f108d2b1e7e99fb18d331b0b3542ebd Mon Sep 17 00:00:00 2001 From: Kairong Yin Date: Tue, 18 Sep 2012 02:19:22 -0700 Subject: [PATCH] Disable Wi-fi / Tethering / Network menu in calling,disable 'Network' when flight mode is on Change-Id: I84229a3349738db21912996121110c51e3c25047 --- include/setting.h | 3 ++ setting-network/src/setting-network-main.c | 85 ++++++++++++++---------------- src/setting-main.c | 4 +- src/setting.c | 51 +++++++++++++++--- 4 files changed, 88 insertions(+), 55 deletions(-) diff --git a/include/setting.h b/include/setting.h index ad6118c..142f7a0 100755 --- a/include/setting.h +++ b/include/setting.h @@ -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 */ diff --git a/setting-network/src/setting-network-main.c b/setting-network/src/setting-network-main.c index 8bd8031..2d53d1d 100755 --- a/setting-network/src/setting-network-main.c +++ b/setting-network/src/setting-network-main.c @@ -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); diff --git a/src/setting-main.c b/src/setting-main.c index c38efd0..5c448af 100755 --- a/src/setting-main.c +++ b/src/setting-main.c @@ -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) diff --git a/src/setting.c b/src/setting.c index 09c4112..3dcc060 100755 --- a/src/setting.c +++ b/src/setting.c @@ -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[]) -- 2.7.4