/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
+ * setting
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
#include <setting-network-main.h>
+#define MOBILE_DATA_WITHOUT_WIFI_STR "IDS_ST_BODY_MOBILE_DATA_WILL_BE_USED_IF_YOU_DOWNLOAD_OR_UPLOAD_DATA_WITHOUT_WI_FI_CONNECTION"
+#define UMTS_MODE_WORK_OUTSIDE_STR "IDS_ST_BODY_UMTS_MODE_ONLY_WORKS_INSIDE_3G_COVERAGE_AREA"
+#define BAND_OPERATE_OUTSIDE_USA_CANADA_STR "IDS_ST_BODY_THIS_BAND_MAY_NOT_WORK_OUTSIDE_THE_USA_AND_CANADA"
+
static int setting_network_main_create(void *cb);
static int setting_network_main_destroy(void *cb);
static int setting_network_main_update(void *cb);
void *event_info);
static void setting_network_use_packet_resp_cb(void *data, Evas_Object *obj,
void *event_info);
+static void __setting_network_data_roaming_resp_cb(void *data, Evas_Object *obj,
+ void *event_info);
+
/* ***************************************************
*
*basic func
*
***************************************************/
-static void __ask_create_gsm_resp_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
-
- SettingNetworkUG *ad = (SettingNetworkUG *) data;
- ret_if(NULL == data);
- int response_type = btn_type(obj);
- bool rollback_flag = FALSE;
- if (POPUP_RESPONSE_OK == response_type) {
- int tapi_ret = TAPI_API_INVALID_INPUT;
- int request_id;
-
- //async: TAPI_EVENT_NETWORK_SETNWBAND_CNF
- tapi_ret =
- tel_set_network_band(TAPI_NETWORK_BAND_MODE_ONLY,
- TAPI_NETWORK_BAND_TYPE_GSM_850_1900,
- &request_id);
- if (tapi_ret != TAPI_API_SUCCESS) {
- SETTING_TRACE_DEBUG
- ("%s*** [ERR] tel_set_network_band. tapi_ret=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- rollback_flag = TRUE;
-
- }
-
- } else if (POPUP_RESPONSE_CANCEL == response_type) {
- rollback_flag = TRUE;
- }
- if (rollback_flag)
- {
- //rollback
- int err;
- int value = TAPI_NETWORK_BAND_TYPE_ANY;
- setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
- &(value), &err);
- /** @todo check 'err' variable for exception handling */
- elm_radio_value_set(ad->data_net_mode->rgd, value);
- }
- evas_object_del(ad->pop_gsm);
- ad->pop_gsm = NULL;
-
-}
void __network_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
Elm_Object_Item *subitem = (Elm_Object_Item *) event_info;
elm_genlist_item_selected_set(subitem, 0);
Setting_GenGroupItem_Data *data_subItem = elm_object_item_data_get(subitem);
+ SETTING_TRACE("data_subItem->chk_status:%d", data_subItem->chk_status);
+ SETTING_TRACE("elm_radio_value_get(ad->data_net_mode->rgd):%d", elm_radio_value_get(ad->data_net_mode->rgd));
if (data_subItem->chk_status == elm_radio_value_get(ad->data_net_mode->rgd))
{
return;
}
elm_radio_value_set(ad->data_net_mode->rgd, data_subItem->chk_status);
- int tapi_ret = TAPI_API_INVALID_INPUT;
- int request_id = 0;
- TelNetworkBand_t band = TAPI_NETWORK_BAND_TYPE_ANY;
-
- switch (data_subItem->chk_status) {
-
- case TAPI_NETWORK_BAND_TYPE_ANY:
- band = TAPI_NETWORK_BAND_TYPE_ANY;
- break;
-
- case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
- band = TAPI_NETWORK_BAND_TYPE_GSM_900_1800;
- break;
-
- case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
- ad->pop_gsm = setting_create_popup_with_btn(ad,
- ad->win_get,
- _("This band may not operate<br>outside the USA or Canada"),
- NULL,
- __ask_create_gsm_resp_cb,
- 0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
- return;
-
- case TAPI_NETWORK_BAND_TYPE_WCDMA:
- setting_network_popup_create(ad,
- _("UTMS mode works inside <br>3G coverage area only"),
- FALSE);
- band = TAPI_NETWORK_BAND_TYPE_WCDMA;
- break;
- default:
- SETTING_TRACE("Unknown Tel-Net band type");
- break;
- }
-
- //async: TAPI_EVENT_NETWORK_SETNWBAND_CNF
- tapi_ret =
- tel_set_network_band(TAPI_NETWORK_BAND_MODE_ONLY, band,
- &request_id);
+ ad->net_mode = data_subItem->chk_status;
+ int tapi_ret = tel_set_network_mode(ad->handle, data_subItem->chk_status, setting_tapi_set_band_cb, ad);
if (tapi_ret != TAPI_API_SUCCESS) {
SETTING_TRACE_DEBUG
- ("%s*** [ERR] tel_set_network_band. tapi_ret=%d ***%s",
+ ("%s*** [ERR] tel_set_network_mode. tapi_ret=%d ***%s",
SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
-
+ setting_create_popup_without_btn(ad, ad->win_get, NULL, _(Invok_API_Failed_Desc), NULL, POPUP_INTERVAL, FALSE, FALSE);
//rollback
int err;
- int value = TAPI_NETWORK_BAND_TYPE_ANY;
setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
- &(value), &err);
+ &(ad->net_mode), &err);
/** @todo check 'err' variable for exception handling */
- elm_radio_value_set(ad->data_net_mode->rgd, value);
+ elm_radio_value_set(ad->data_net_mode->rgd, ad->net_mode);
return;
}
+
+ //it will be deleted in callback set by tel_set_network_mode(that is setting_tapi_set_band_cb.)
+ ad->network_ug_pop = setting_create_popup_without_btn(ad, ad->win_get, NULL,
+ _("IDS_COM_POP_PROCESSING"), NULL,
+ 0.0, TRUE, TRUE);
}
elm_radio_value_set(rgd, -1);
setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __network_sub_list_sel_cb,
- ad, parentItem,
- SWALLOW_Type_1RADIO, rgd,
- TAPI_NETWORK_BAND_TYPE_ANY,
- "IDS_COM_BODY_AUTOMATIC", NULL);
-
- setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __network_sub_list_sel_cb,
+ &itc_1icon_1text_sub,
+ __network_sub_list_sel_cb,
ad, parentItem,
SWALLOW_Type_1RADIO, rgd,
- TAPI_NETWORK_BAND_TYPE_GSM_900_1800,
- STR_SETTING_GSM_900_1800, NULL);
+ TAPI_NETWORK_MODE_AUTO,
+ Keystr_NetBrand_Auto, NULL);
setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __network_sub_list_sel_cb,
+ &itc_1icon_1text_sub,
+ __network_sub_list_sel_cb,
ad, parentItem,
SWALLOW_Type_1RADIO, rgd,
- TAPI_NETWORK_BAND_TYPE_GSM_850_1900,
- STR_SETTING_GSM_850_1900, NULL);
+ TAPI_NETWORK_MODE_GSM,
+ Keystr_NetBrand_GSM, NULL);
setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __network_sub_list_sel_cb,
+ &itc_1icon_1text_sub,
+ __network_sub_list_sel_cb,
ad, parentItem,
SWALLOW_Type_1RADIO, rgd,
- TAPI_NETWORK_BAND_TYPE_WCDMA,
- STR_SETTING_UMTS, NULL);
+ TAPI_NETWORK_MODE_WCDMA,
+ Keystr_NetBrand_WCDMA, NULL);
data_parentItem->rgd = rgd;
setting_update_chk_status(rgd, data_parentItem->int_slp_setting_binded);
}
}
+#define __switch_radio_state(cur_data, dst_state, dst_key) do { \
+ if (cur_data)\
+ {\
+ old_status = cur_data->chk_status;\
+ cur_data->chk_status = dst_state;\
+ elm_radio_state_value_set(cur_data->eo_check, cur_data->chk_status);\
+ if (sel_mode == old_status)\
+ {\
+ sel_item_data = cur_data;\
+ }\
+ \
+ G_FREE(cur_data->keyStr);\
+ cur_data->keyStr = g_strdup(dst_key);\
+ elm_genlist_item_fields_update(cur_data->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);\
+ }\
+} while (0);
+
+static void __3g_change_cb(keynode_t *key, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(NULL == data);
+ SettingNetworkUG *ad = data;
+ int status = vconf_keynode_get_bool(key);
+ char *vconf_name = vconf_keynode_get_name(key);
+ SETTING_TRACE("vconf_name:%s, status:%d", vconf_name, status);
+
+ if (!safeStrCmp(vconf_name, VCONFKEY_3G_ENABLE)) {
+ if(ad->data_use_packet)
+ {
+ ad->data_use_packet->chk_status = status;
+ elm_check_state_set(ad->data_use_packet->eo_check, ad->data_use_packet->chk_status);
+ }
+ }
+}
+static void __data_roaming_change_cb(keynode_t *key, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(NULL == data);
+ SettingNetworkUG *ad = data;
+ int status = vconf_keynode_get_bool(key);
+ char *vconf_name = vconf_keynode_get_name(key);
+ SETTING_TRACE("vconf_name:%s, status:%d", vconf_name, status);
+
+ if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL) && ad->data_roaming) {
+ ad->data_roaming->chk_status = status;
+ elm_check_state_set(ad->data_roaming->eo_check, ad->data_roaming->chk_status);
+ if (status)
+ {
+ int value = 0;
+ int err = 0;
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &value, &err);
+ setting_retm_if(err != 0, "get vconf failed");
+ if (!value) {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
+ SETTING_ON_OFF_BTN_ON, &err);
+ }
+ }
+ }
+}
-#define Data_packet_Desc _("IDS_ST_BODY_MOBILE_DATA_WILL_BE_USED_IF_YOU_DOWNLOAD_OR_UPLOAD_DATA_WITHOUT_WI_FI_CONNECTION")
static int setting_network_main_create(void *cb)
{
SETTING_TRACE_BEGIN;
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingNetworkUG *ad = (SettingNetworkUG *) cb;
-
+ /* ***BEGIN*** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
int value = 0;
int k = -1;
+ /* ****END**** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
Evas_Object *scroller;
- int tapi_ret;
- int request_id = 0;
-
ad->ly_main =
setting_create_layout_navi_bar_genlist(ad->win_main_layout,
ad->win_get,
_("IDS_ST_BODY_NETWORK"),
dgettext("sys_string",
"IDS_COM_BODY_BACK"),
- dgettext("sys_string",
- "IDS_COM_BODY_HELP"),
+ NULL,//_("IDS_COM_BODY_HELP"),
setting_network_main_click_softkey_back_cb,
setting_network_main_click_softkey_help_cb,
ad, &scroller,
&ad->navi_bar);
-
+
setting_enable_expandable_genlist(scroller, ad,
__setting_network_main_exp_cb, NULL);
+
Elm_Object_Item *item = NULL;;
item =
- elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
+ elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
&value_use_packet, &err_use_packet);
/** @todo check 'err_use_packet' variable for exception handling */
- // Under emulator environment, it fails to control data network connections
- if (!isEmulBin()) {
- ad->data_use_packet =
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
+ ad->data_use_packet =
+ setting_create_Gendial_field_def(scroller, &itc_1text_1icon,
setting_network_main_item_Gendial_mouse_up_cb,
ad, SWALLOW_Type_1TOGGLE, NULL,
NULL, value_use_packet,
KeyStr_UsePacketData, NULL,
setting_network_main_chk_btn_cb);
- if (ad->data_use_packet) {
- ad->data_use_packet->userdata = ad;
- } else {
- SETTING_TRACE_ERROR("ad->data_use_packet is NULL");
- }
+ if (ad->data_use_packet) {
+ ad->data_use_packet->userdata = ad;
+ } else {
+ SETTING_TRACE_ERROR("ad->data_use_packet is NULL");
+ }
- setting_create_Gendial_field_def(scroller, &(ad->itc_bg_1icon), NULL,
- ad, SWALLOW_Type_LAYOUT_SPECIALIZTION,
+ setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
+ ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
NULL, NULL, 0, Data_packet_Desc, NULL,
NULL);
+ elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* data roaming */
+ int value_data_roaming = 0;
+ int err_data_roaming = 0;
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ &value_data_roaming, &err_data_roaming);
+ if (err_data_roaming != 0) {
+ SETTING_TRACE_ERROR("get vconf failed");
}
-
- char *sub_des = NULL;
- /* NO flight mode - default */
- tapi_ret = tel_get_network_selection_mode(&request_id);
- if (tapi_ret != TAPI_API_SUCCESS) {
- SETTING_TRACE
- ("%s*** [ERR] tel_get_network_selection_mode. tapi_ret=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- sub_des = _("IDS_COM_BODY_AUTOMATIC");
+ ad->data_roaming = setting_create_Gendial_field_def(scroller, &itc_1text_1icon,
+ setting_network_main_item_Gendial_mouse_up_cb,
+ ad, SWALLOW_Type_1TOGGLE, NULL,
+ NULL, value_data_roaming,
+ KeyStr_DataRoaming, NULL,
+ setting_network_main_chk_btn_cb);
+ if (ad->data_roaming) {
+ ad->data_roaming->userdata = ad;
+ } else {
+ SETTING_TRACE_ERROR("ad->data_roaming is NULL");
}
- k = vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &value);
- if (-1 != k) {
- switch (value) {
- case TAPI_NETWORK_SELECTIONMODE_AUTOMATIC:
- {
- sub_des = _("IDS_COM_BODY_AUTOMATIC");
- break;
- }
- case TAPI_NETWORK_SELECTIONMODE_MANUAL:
- {
- sub_des = _("IDS_COM_BODY_MANUAL");
- break;
- }
- default:
- {
- break;
- }
- }
+ setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
+ ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
+ NULL, NULL, 0, SETTING_NETWORK_DATA_ROMING_DESC, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+
+ /* (void)setting_create_Gendial_field_titleItem(scroller, &(ad->itc_group_item), speciliztion, NULL); */
+
+ /* 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);
+ ad->sel_network = get_pa_select_network();
+ SETTING_TRACE("pa_sel_net_name:%s", ad->sel_network);
+ if (isEmptyStr(ad->sel_network)) {
+ ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK, strlen(Keystr_UNKNOWN_NETWORK)+1);
}
- ad->sel_net = value;
- const char *pa_net_name = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);
- SETTING_TRACE("pa_net_name:%s", pa_net_name);
- if (NULL == pa_net_name) {
- pa_net_name = "IDS_ST_BODY_NOSERVICE";
- }
-
+ 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, };
- snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
- "%s. %s", sub_des, _(pa_net_name));
- FREE(pa_net_name);
+ 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,
- &(ad->itc_2text_2),
- setting_network_main_item_Gendial_mouse_up_cb,
- ad, SWALLOW_Type_INVALID,
- NULL, NULL, 0,
- "IDS_ST_BODY_SELECT_NETWORK",
- sel_network_desc, NULL);
+ &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");
}
-
- tapi_ret = tel_get_network_band(&request_id);
- if (tapi_ret != TAPI_API_SUCCESS) {
- SETTING_TRACE
- ("%s*** [ERR] tel_get_network_band. tapi_ret=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- sub_des = _("IDS_COM_BODY_AUTOMATIC");
- }
-
+ /* ***BEGIN*** Fixed the problem of word twinkle SAMSUNG 2010/7/21 add */
+ /* hide NETWORK MODE in Emulator*/
+ char *sub_des = NULL;
+ value = TAPI_NETWORK_MODE_AUTO;
k = vconf_get_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, &value);
if (-1 != k) {
- SETTING_TRACE("value:%d", value);
+ SETTING_TRACE("VCONFKEY_SETAPPL_NETWORK_MODE_INT value:%d", value);
switch (value) {
- case TAPI_NETWORK_BAND_TYPE_ANY:
- sub_des = _("IDS_COM_BODY_AUTOMATIC");
+ case TAPI_NETWORK_MODE_AUTO:
+ case TAPI_NETWORK_MODE_LTE|TAPI_NETWORK_MODE_GSM|TAPI_NETWORK_MODE_WCDMA:
+ {
+ sub_des = _(Keystr_NetBrand_Auto);
break;
- case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
- sub_des = _(STR_SETTING_GSM_900_1800);
+ }
+
+ case TAPI_NETWORK_MODE_GSM:
+ sub_des = _(Keystr_NetBrand_GSM);
break;
- case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
- sub_des = _(STR_SETTING_GSM_850_1900);
+ case TAPI_NETWORK_MODE_WCDMA:
+ sub_des = _(Keystr_NetBrand_WCDMA);
break;
- case TAPI_NETWORK_BAND_TYPE_WCDMA:
- sub_des = _(STR_SETTING_UMTS);
+ case TAPI_NETWORK_MODE_LTE|TAPI_NETWORK_MODE_WCDMA:
+ sub_des = _(Keystr_NetBrand_LTE_WCDMA);
+ break;
+ case TAPI_NETWORK_MODE_GSM|TAPI_NETWORK_MODE_WCDMA:
+ sub_des = _(Keystr_NetBrand_Auto_WCDMA_GSM);
break;
default:
break;
ad->data_net_mode =
setting_create_Gendial_exp_parent_field(scroller,
- &(ad->itc_2text_3_parent),
+ &itc_2text_3_parent,
NULL, NULL,
SWALLOW_Type_INVALID,
"IDS_ST_BODY_NETWORK_MODE",
SETTING_TRACE_ERROR("ad->data_back is NULL");
}
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+ setting_create_Gendial_field_def(scroller, &itc_1text,
setting_network_main_item_Gendial_mouse_up_cb,
ad, SWALLOW_Type_INVALID, NULL, NULL,
- 0, "IDS_ST_BODY_INTERNET_CONNECTION",
+ 0, CONNECTION_DSC,
NULL, NULL);
-#ifdef ENABLED_PREFERRED_NETWORKS
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
- setting_network_main_item_Gendial_mouse_up_cb,
- ad, SWALLOW_Type_INVALID, NULL, NULL,
- 0, "IDS_ST_BODY_PREFERRED_NETWORKS",
- NULL, NULL);
-#endif
-#ifdef ENABLED_2G3G_NETWORK
- /* create 3g connection option */
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
- setting_network_main_item_Gendial_mouse_up_cb,
- ad, SWALLOW_Type_INVALID, NULL, NULL,
- 0, "2G/3G Connection", NULL, NULL);
- /* add blank rectangle */
-#endif
+ item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ vconf_notify_key_changed(VCONFKEY_3G_ENABLE, __3g_change_cb, ad);
+ vconf_notify_key_changed(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, __data_roaming_change_cb, ad);
+
setting_view_network_main.is_create = 1;
+ setting_view_update(&setting_view_network_main, ad);
return SETTING_RETURN_SUCCESS;
}
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingNetworkUG *ad = (SettingNetworkUG *) cb;
+ vconf_ignore_key_changed(VCONFKEY_3G_ENABLE, __3g_change_cb);
+ vconf_ignore_key_changed(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, __data_roaming_change_cb);
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
}
+ if(ad->network_ug_pop)
+ {
+ evas_object_del(ad->network_ug_pop);
+ ad->network_ug_pop = NULL;
+ }
ad->data_sel_net = NULL;//reset NULL after genlis destoryed with ly_main.
setting_view_network_main.is_create = 0;
static int setting_network_main_cleanup(void *cb)
{
+ /* error check */
+ /* retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); */
+
+ /* SettingNetworkUG *ad = (SettingNetworkUG *)cb; */
+
+ /* all the view in view stack shared the ad->ly_main, it cannot be hided!!! */
+ /* if(ad->ly_main != NULL) */
+ /* { */
+ /* evas_object_hide(ad->ly_main); */
+ /* } */
+
return SETTING_RETURN_SUCCESS;
}
setting_view_change(&setting_view_network_main,
&setting_view_network_select_network,
ad);
- } else
- if (!safeStrCmp
- ("IDS_ST_BODY_INTERNET_CONNECTION", list_item->keyStr)) {
-
- ad->con_type = NET_SERVICE_INTERNET;
- ret =
- setting_view_change(&setting_view_network_main,
- &setting_view_network_connection_create,
- ad);
}
-#ifdef ENABLED_PREFERRED_NETWORKS
- else if (!safeStrCmp("IDS_ST_BODY_PREFERRED_NETWORKS",
- list_item->keyStr)) {
-
- int value = -1;
- int err = -1;
- ret =
- setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value,
- &err);
- /** @todo check 'err' variable for exception handling */
- SETTING_TRACE("INT_SLP_SETTING_SIM_SLOT value:%d", value);
- switch (value) {
- case VCONFKEY_TELEPHONY_SIM_INSERTED:
- /* To Recreate the view in order to search the perferred network again. */
- /* ret = setting_view_destroy(&setting_view_network_preferred_network, ad); */
- ret =
- setting_view_change(&setting_view_network_main,
- &setting_view_network_preferred_network,
- ad);
-
- break;
-
- case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
-
- setting_create_popup_without_title(NULL, ad->win_get,
- _
- ("IDS_ST_SECURITY_BODY_NOIMSI"));
- SETTING_TRACE_DEBUG
- ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
- SETTING_FONT_RED, value, SETTING_FONT_BLACK);
- return;
-
- break;
-
- case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
- case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
-
- setting_create_popup_without_title(NULL, ad->win_get,
- _
- ("IDS_COM_BODY_INVALID_SIM_CARD"));
- SETTING_TRACE_DEBUG
- ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
- SETTING_FONT_RED, value, SETTING_FONT_BLACK);
- return;
-
- break;
- default:
- SETTING_TRACE("Unknown SIM information from vconf");
- break;
- }
- }
-#endif
-#ifdef ENABLED_2G3G_NETWORK
- else if (!safeStrCmp("2G/3G Connection", list_item->keyStr)) {
- ret =
- setting_view_change(&setting_view_network_main,
- &setting_view_network_3gcon, ad);
- }
-#endif
else if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
int old_status = elm_check_state_get(list_item->eo_check);
/* new status */
list_item->chk_status = !old_status;
elm_check_state_set(list_item->eo_check, list_item->chk_status);
- int err = 0;
if (!list_item->chk_status) {
- setting_set_bool_slp_key
- (BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_OFF, &err);
- /** @todo check 'err' variable for exception handling */
- } else {
ad->popup =
setting_create_popup_with_btn(ad, ad->win_get,
- _("Data packet through 3G network will be consumed, if you use data download or upload without Wi-Fi connection.Continue?"),
- NULL,
+ NULL, _(SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC),
setting_network_use_packet_resp_cb,
0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
+ } else {
+ ad->popup =
+ setting_create_popup_with_btn(ad, ad->win_get,
+ NULL, _(SETTING_NETWORK_USE_PACKET_DATA_ON_DESC),
+ setting_network_use_packet_resp_cb,
+ 0, 1, _("IDS_COM_SK_OK"));
+ }
+
+ } else if (!safeStrCmp(KeyStr_DataRoaming, list_item->keyStr)) {
+ int old_status = elm_check_state_get(list_item->eo_check);
+ /* new status */
+ list_item->chk_status = !old_status;
+ elm_check_state_set(list_item->eo_check, list_item->chk_status);
+
+ char *notify_str = NULL;
+ if (!list_item->chk_status) {
+ notify_str = SETTING_NETWORK_DATA_ROMING_OFF_DESC;
+ ad->popup = setting_create_popup_with_btn(ad, ad->win_get,
+ NULL, notify_str,
+ __setting_network_data_roaming_resp_cb, 0,
+ 1, _("IDS_COM_SK_OK"));
+ } else {
+ int err = 0;
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ SETTING_ON_OFF_BTN_ON, &err);
}
+ } else if(!safeStrCmp(CONNECTION_DSC, list_item->keyStr)) {
+ ret = setting_view_change(&setting_view_network_main,
+ &setting_view_network_con, ad);
}
}
list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
if (obj == ad->data_use_packet->eo_check) {
- int err;
- /* int value; */
- if (list_item->chk_status) {
+ if (!list_item->chk_status) {
ad->popup =
setting_create_popup_with_btn(ad, ad->win_get,
- _("Data packet through 3G network will be consumed, if you use data download or upload without Wi-Fi connection.Continue?"),
- NULL,
+ NULL, _(SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC),
setting_network_use_packet_resp_cb,
0, 2, _("IDS_COM_SK_YES"),_("IDS_COM_SK_NO"));
} else {
- setting_set_bool_slp_key
- (BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_OFF, &err);
- /** @todo check 'err' variable for exception handling */
- elm_check_state_set(ad->data_use_packet->eo_check, 0);
- ad->data_use_packet->chk_status = 0;
+ ad->popup =
+ setting_create_popup_with_btn(ad, ad->win_get,
+ NULL, _(SETTING_NETWORK_USE_PACKET_DATA_ON_DESC),
+ setting_network_use_packet_resp_cb,
+ 0, 1, _("IDS_COM_SK_OK"));
+ }
+ }else if (obj == ad->data_roaming->eo_check) {
+ char *notify_str = NULL;
+ if (!list_item->chk_status) {
+ notify_str = SETTING_NETWORK_DATA_ROMING_OFF_DESC;
+ ad->popup = setting_create_popup_with_btn(ad, ad->win_get,
+ NULL, notify_str,
+ __setting_network_data_roaming_resp_cb, 0,
+ 1, _("IDS_COM_SK_OK"));
+ } else {
+ int err = 0;
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ SETTING_ON_OFF_BTN_ON, &err);
}
}
}
retm_if(data == NULL, "Data parameter is NULL");
SettingNetworkUG *ad = (SettingNetworkUG *) data;
- int err; /* error check */
+ int err = 0; /* error check */
int response_type = btn_type(obj);
+
+ int value = 0;
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &value, &err);
+ setting_retm_if(err != 0, "get vconf failed");
+ SETTING_TRACE("value = %d", value);
if (POPUP_RESPONSE_OK == response_type) {
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_ON, &err);
- /** @todo check 'err' variable for exception handling */
- elm_check_state_set(ad->data_use_packet->eo_check, 1);
- ad->data_use_packet->chk_status = 1;
+ if (value == 0) {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
+ SETTING_ON_OFF_BTN_ON, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+
+ elm_check_state_set(ad->data_use_packet->eo_check, 1);
+ ad->data_use_packet->chk_status = 1;
+
+ /* if called by other apps, destroy ug */
+ if (!safeStrCmp(ad->view_type_string, "DATA_ROAMING")) {
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ug_destroy_me(ad->ug);
+ return;
+ }
+ } else {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
+ SETTING_ON_OFF_BTN_OFF, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+
+ elm_check_state_set(ad->data_use_packet->eo_check, 0);
+ ad->data_use_packet->chk_status = 0;
+
+ /* should set data_roming as same as status of use_packet_data */
+ int data_roaming_value = 0;
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, &data_roaming_value, &err);
+ setting_retm_if(err != 0, "get vconf failed");
+ if (data_roaming_value) {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ SETTING_ON_OFF_BTN_OFF, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+
+ elm_check_state_set(ad->data_roaming->eo_check, 0);
+ ad->data_roaming->chk_status = 0;
+ }
+ }
} else if (POPUP_RESPONSE_CANCEL == response_type) {
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_OFF, &err);
- /** @todo check 'err' variable for exception handling */
- elm_check_state_set(ad->data_use_packet->eo_check, 0);
- ad->data_use_packet->chk_status = 0;
+ /* rollback */
+ if (value == 1) {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
+ SETTING_ON_OFF_BTN_ON, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+ elm_check_state_set(ad->data_use_packet->eo_check, 1);
+ ad->data_use_packet->chk_status = 1;
+ }
}
if (ad->popup)
{
}
}
+
+static void __setting_network_data_roaming_resp_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ retm_if(data == NULL, "Data parameter is NULL");
+
+ SettingNetworkUG *ad = (SettingNetworkUG *) data;
+ int response_type = btn_type(obj);
+ SETTING_TRACE("elm_object_parent_widget_get(obj):%p", elm_object_parent_widget_get(obj));
+ SETTING_TRACE("obj:%p", obj);
+ if (POPUP_RESPONSE_OK == response_type) {
+ int value = 0;
+ int err = 0;
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, &value, &err);
+
+ if (value == 0) {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ SETTING_ON_OFF_BTN_ON, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+
+ elm_check_state_set(ad->data_roaming->eo_check, 1);
+ ad->data_roaming->chk_status = 1;
+
+ /* if called by other apps, destroy ug */
+ if (!safeStrCmp(ad->view_type_string, "DATA_ROAMING")) {
+ if (ad->popup)
+ {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ug_destroy_me(ad->ug);
+ return;
+ }
+ } else {
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING,
+ SETTING_ON_OFF_BTN_OFF, &err);
+ setting_retm_if(err != 0, "set vconf failed");
+
+ elm_check_state_set(ad->data_roaming->eo_check, 0);
+ ad->data_roaming->chk_status = 0;
+ }
+ }
+
+ if (ad->popup)
+ {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+}
+