/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.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://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * 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-select-network.h>
*basic func
*
***************************************************/
+static void
+__network_main_gl_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data || !event_info);
+ SettingNetworkUG *ad = (SettingNetworkUG *) data;
+ Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+ Elm_Object_Item *selected_item = elm_genlist_at_xy_item_get(ad->genlist_sel_network, ev->output.x, ev->output.y, NULL);
+ ret_if(!selected_item);
+ Setting_GenGroupItem_Data *data_Item = elm_object_item_data_get(selected_item);
+ ret_if(!data_Item);
+ if (!safeStrCmp(data_Item->keyStr, "IDS_COM_BODY_SELECT_AUTOMATICALLY"))
+ {
+ SETTING_TRACE("ev->output.x:%d, ev->output.y:%d", ev->output.x, ev->output.y);
+ Evas_Coord x, y, w, h;
+ evas_object_geometry_get(ad->data_auto_network_item->eo_check, &x, &y, &w, &h);
+ SETTING_TRACE("x:%d, y:%d, w:%d, h:%d", x, y, w ,h);
+ if (x <= ev->output.x && ev->output.x <= (x + w) && y <= ev->output.y && ev->output.y <= (y + h))
+ {
+ return;
+ }
+ if (ad->data_auto_network_item->chk_status)
+ {
+ char *sub_text = setting_customize_text(ad->data_auto_network_item->sub_desc, 0, BLUE_COLOR, NULL);
+ FREE(ad->data_auto_network_item->sub_desc);
+ ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ FREE(sub_text);
+ }
+ else
+ {
+ char *sub_text = setting_customize_text(ad->data_auto_network_item->sub_desc, 0, GRAY_COLOR, NULL);
+ FREE(ad->data_auto_network_item->sub_desc);
+ ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ FREE(sub_text);
+ }
+
+ elm_genlist_item_fields_update(ad->data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+}
+static void
+__network_main_gl_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data || !event_info);
+ SettingNetworkUG *ad = (SettingNetworkUG *) data;
+ Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down*)event_info;
+ ad->point_down.x = ev->output.x;
+ ad->point_down.y = ev->output.y;
+ Elm_Object_Item *selected_item = elm_genlist_at_xy_item_get(ad->genlist_sel_network, ev->output.x, ev->output.y, NULL);
+ ret_if(!selected_item);
+ Setting_GenGroupItem_Data *data_Item = elm_object_item_data_get(selected_item);
+ ret_if(!data_Item);
+ if (!safeStrCmp(data_Item->keyStr, "IDS_COM_BODY_SELECT_AUTOMATICALLY"))
+ {
+ SETTING_TRACE("ev->output.x:%d, ev->output.y:%d", ev->output.x, ev->output.y);
+ Evas_Coord x, y, w, h;
+ evas_object_geometry_get(ad->data_auto_network_item->eo_check, &x, &y, &w, &h);
+ SETTING_TRACE("x:%d, y:%d, w:%d, h:%d", x, y, w ,h);
+ if (x <= ev->output.x && ev->output.x <= (x + w) && y <= ev->output.y && ev->output.y <= (y + h))
+ {
+ return;
+ }
+
+ char *sub_text = setting_customize_text(ad->data_auto_network_item->sub_desc, 0, WHITE_COLOR, NULL);
+ FREE(ad->data_auto_network_item->sub_desc);
+ ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ FREE(sub_text);
+ elm_genlist_item_fields_update(ad->data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+
+}
+static void
+__network_main_gl_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ //SETTING_TRACE_BEGIN;
+ ret_if(!data || !event_info);
+ SettingNetworkUG *ad = (SettingNetworkUG *) data;
+ Evas_Event_Mouse_Move*ev = (Evas_Event_Mouse_Move*)event_info;
+ int x_offset = ev->cur.output.x - ad->point_down.x;
+ int y_offset = ev->cur.output.y - ad->point_down.y;
+ if(x_offset < 0) x_offset = -x_offset;
+ if(y_offset < 0) y_offset = -y_offset;
+ //SETTING_TRACE("x_offset:%d, y_offset:%d", x_offset, y_offset);
+ if (x_offset <= MIN_MOVE_DISTANCE && y_offset <= MIN_MOVE_DISTANCE)
+ {
+ return;
+ }
+
+ //SETTING_TRACE("xxxxxxxxxx");
+ if (ad->data_auto_network_item->chk_status)
+ {
+ char *sub_text = setting_customize_text(ad->data_auto_network_item->sub_desc, 0, BLUE_COLOR, NULL);
+ FREE(ad->data_auto_network_item->sub_desc);
+ ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ FREE(sub_text);
+ }
+ else
+ {
+ char *sub_text = setting_customize_text(ad->data_auto_network_item->sub_desc, 0, GRAY_COLOR, NULL);
+ FREE(ad->data_auto_network_item->sub_desc);
+ ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ FREE(sub_text);
+ }
+
+ elm_genlist_item_fields_update(ad->data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+}
static int setting_network_select_network_create(void *cb)
{
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingNetworkUG *ad = (SettingNetworkUG *) cb;
- ad->net_restore = NET_RESTORE_NONE;
-
- setting_push_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get,
- _("IDS_ST_BODY_SELECT_NETWORK"),
- _("IDS_COM_BODY_BACK"),
- NULL,
- setting_network_select_network_click_softkey_cancel_cb,
- NULL,
- ad, &ad->genlist_sel_network, ad->navi_bar);
-
+ if (ad->view_to_load == &setting_view_network_select_network) {
+ ad->ly_main = setting_create_layout_navi_bar_genlist(ad->win_main_layout,
+ ad->win_get,
+ "IDS_COM_BODY_NETWORK_OPERATORS",
+ _("IDS_COM_BODY_BACK"), NULL,
+ setting_network_select_network_click_softkey_cancel_cb, NULL,
+ ad, &ad->genlist_sel_network, &ad->navi_bar);
+ } else {
+ setting_push_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get,
+ "IDS_COM_BODY_NETWORK_OPERATORS",
+ _("IDS_COM_BODY_BACK"),
+ NULL,
+ setting_network_select_network_click_softkey_cancel_cb,
+ NULL,
+ ad, &ad->genlist_sel_network, ad->navi_bar);
+ }
Elm_Object_Item *item = elm_genlist_item_append(ad->genlist_sel_network,
&(itc_seperator), NULL, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
//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)) {
+ if (!ad->sel_network) {
ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK, strlen(Keystr_UNKNOWN_NETWORK)+1);
}
+ elm_genlist_mode_set(ad->genlist_sel_network, ELM_LIST_COMPRESS); /* resolve abnormal height issue */
+
+ evas_object_event_callback_add(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_UP, __network_main_gl_mouse_up, ad);
+ evas_object_event_callback_add(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_DOWN, __network_main_gl_mouse_down, ad);
+ evas_object_event_callback_add(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_MOVE, __network_main_gl_mouse_move, ad);
+
if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == ad->sel_net) {
ad->data_auto_network_item = setting_create_Gendial_field_1radio(
ad->genlist_sel_network,
- &(itc_2text_1icon_7),
+ //&(itc_2text_1icon_7),
+ &(itc_1text_1icon),
setting_network_Gendial_select_plmn_cb,
ad, SWALLOW_Type_1TOGGLE,
NULL, TRUE,
- "IDS_COM_BODY_AUTOMATIC",
+ "IDS_COM_BODY_SELECT_AUTOMATICALLY",
setting_network_select_network_chk_changed);
setting_retvm_if(NULL == ad->data_auto_network_item,
SETTING_RETURN_FAIL, "Failed to calloc memory");
ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
FREE(sub_text);
ad->data_auto_network_item->userdata = ad;
+ //setting_genlist_item_groupstyle_set(ad->data_auto_network_item, SETTING_GROUP_STYLE_TOP);
} else if(TAPI_NETWORK_SELECTIONMODE_MANUAL == ad->sel_net) {
- int tapi_ret;
-
- //new PDP concept:
- //when user select network manully, it should disable 3g service, or it will no network to be found.
- int err;
- int old_pdp_value = 0;
- int old_roaming_value = 0;
- setting_get_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, &old_pdp_value, &err);
- setting_get_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, &old_roaming_value, &err);
- if (old_pdp_value)
- {
- SETTING_TRACE("Disable user packet data");
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, FALSE, &err);
- ad->net_restore++;
- if (old_roaming_value)
- {
- SETTING_TRACE("Disable data roaming");
- setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, FALSE, &err);
- ad->net_restore++;
- }
- #ifdef FUTURE_FEATURE //feature in the future.
- setting_create_popup_without_btn(ad, ad->win_get, NULL, _(NotifyStr_PDP_OFF), NULL, POPUP_INTERVAL, FALSE, FALSE);
- #endif
- }
- //searching list
+ /* searching list
+ int tapi_ret;
+
tapi_ret = tel_search_network(ad->handle, setting_tapi_search_network_cb, ad); //ASYNC API - TAPI_EVENT_NETWORK_SEARCH_CNF
if(tapi_ret != TAPI_API_SUCCESS) { // error handling..
SETTING_TRACE_DEBUG("%s*** [ERR] tel_search_network. tapi_ret=%d ***%s", SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
goto err_handle;
}
ad->b_searching_network = TRUE;
+ */
ad->data_auto_network_item = setting_create_Gendial_field_1radio(
ad->genlist_sel_network,
- &(itc_2text_1icon_7),
+ //&(itc_2text_1icon_7),
+ &(itc_1text_1icon),
setting_network_Gendial_select_plmn_cb,
ad, SWALLOW_Type_1TOGGLE,
- NULL, FALSE, "IDS_COM_BODY_AUTOMATIC",
+ NULL, FALSE, "IDS_COM_BODY_SELECT_AUTOMATICALLY",
setting_network_select_network_chk_changed);
- setting_retvm_if(NULL == ad->data_auto_network_item,
- SETTING_RETURN_FAIL, "Failed to calloc memory");
+ setting_retvm_if(NULL == ad->data_auto_network_item, SETTING_RETURN_FAIL, "Failed to calloc memory");
//ad->data_auto_network_item->sub_desc = (char *)g_strdup(ad->sel_network);//just a simple display
char *sub_text = setting_customize_text(_(ad->sel_network), 0, GRAY_COLOR, NULL);
ad->data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+ setting_genlist_item_groupstyle_set(ad->data_auto_network_item, SETTING_GROUP_STYLE_TOP);
FREE(sub_text);
ad->data_auto_network_item->userdata = ad;
- if (0 != safeStrCmp("IDS_ST_BODY_NOSERVICE", ad->sel_network)
- && 0 != safeStrCmp("EMERGENCY", ad->sel_network))
+
+ setting_view_network_select_network.is_create = TRUE;
+
+ setting_network_searching_network( ad->data_auto_network_item );
+
+ /* Searching icon appeared.
+ ad->data_search_network_item = setting_create_Gendial_field_1radio(
+ ad->genlist_sel_network,
+ &itc_1icon,
+ NULL, NULL,
+ SWALLOW_Type_1RADIO_1SEARCH,
+ ad->chk_sel, -1, NULL, NULL);
+ __BACK_POINTER_SET(ad->data_search_network_item);
+ elm_genlist_item_select_mode_set(ad->data_search_network_item->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ setting_genlist_item_groupstyle_set(ad->data_search_network_item, SETTING_GROUP_STYLE_BOTTOM);
+ */
+
+ /*
+ if (0 == safeStrCmp("IDS_ST_BODY_NOSERVICE", ad->sel_network)
+ || 0 == safeStrCmp(_("IDS_ST_BODY_NOSERVICE"), _(ad->sel_network))
+ || 0 == safeStrCmp("EMERGENCY", ad->sel_network)
+ || 0 == safeStrCmp(_("EMERGENCY"), ad->sel_network)
+ || 0 == safeStrCmp("No service", ad->sel_network)
+ || 0 == safeStrCmp("No service", _(ad->sel_network))
+ || 0 == safeStrCmp(_("IDS_CALL_POP_CALLING_EMERG_ONLY"), _(ad->sel_network))
+ || 0 == safeStrCmp("Emergency calls only", _(ad->sel_network))
+ )
+ {
+ //no service case:
+ ad->data_search_network_item = setting_create_Gendial_field_1radio(
+ ad->genlist_sel_network,
+ &itc_1icon,
+ NULL, NULL,
+ SWALLOW_Type_1RADIO_1SEARCH,
+ ad->chk_sel, -1, NULL, NULL);
+ __BACK_POINTER_SET(ad->data_search_network_item);
+ elm_genlist_item_select_mode_set(ad->data_search_network_item->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ setting_genlist_item_groupstyle_set(ad->data_search_network_item, SETTING_GROUP_STYLE_BOTTOM);
+ }
+ else
{
//normal case:
Setting_GenGroupItem_Data *item_Data = NULL;
char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
- snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN, "%s (%s)",
- _(ad->sel_network),setting_network_get_act_str(ad->sel_act));
+ snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN, "%s",_(ad->sel_network));
item_Data = setting_create_Gendial_field_1radio(
ad->genlist_sel_network,
- &itc_1text_2icon_2,
+ &itc_multiline_1text_1icon,
setting_network_Gendial_select_plmn_cb, ad,
SWALLOW_Type_1RADIO,
ad->chk_sel, TAPI_NETWORK_SELECTIONMODE_MANUAL,
setting_network_select_network_chk_changed);
setting_retvm_if(NULL == item_Data, SETTING_RETURN_FAIL, "Failed to calloc memory");
item_Data->userdata = ad;
+ setting_genlist_item_groupstyle_set(item_Data, SETTING_GROUP_STYLE_CENTER);
ad->data_search_network_item = setting_create_Gendial_field_1radio(
ad->genlist_sel_network,
- &itc_1text_2icon_2,
+ &itc_1icon,
NULL, NULL,
SWALLOW_Type_1RADIO_1SEARCH,
ad->chk_sel, -1, NULL, NULL);
-
+ __BACK_POINTER_SET(ad->data_search_network_item);
+ elm_genlist_item_select_mode_set(ad->data_search_network_item->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ setting_genlist_item_groupstyle_set(ad->data_search_network_item, SETTING_GROUP_STYLE_BOTTOM);
elm_radio_value_set(ad->chk_sel, TAPI_NETWORK_SELECTIONMODE_MANUAL);
}
- else
- {
- //no service case:
- ad->data_search_network_item = setting_create_Gendial_field_1radio(
- ad->genlist_sel_network,
- &itc_1text_2icon_2,
- NULL, NULL,
- SWALLOW_Type_1RADIO_1SEARCH,
- ad->chk_sel, -1, NULL, NULL);
-
- }
+ */
}
+ //ADD_GL_SEPARATOR(ad->genlist_sel_network);
setting_view_network_select_network.is_create = TRUE;
return SETTING_RETURN_SUCCESS;
-
+/*
err_handle:
setting_view_network_select_network.is_create = TRUE;
return SETTING_RETURN_FAIL;
+*/
}
static int setting_network_select_network_destroy(void *cb)
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingNetworkUG *ad = (SettingNetworkUG *) cb;
- int err;
- switch (ad->net_restore) {
- case NET_RESTORE_PDP:
- //restore the pdp vconf to be true
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, TRUE, &err);
- break;
- case NET_RESTORE_PDP_ROAM:
- //restore the pdp and roaming vconfs to be true
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA, TRUE, &err);
- setting_set_bool_slp_key(BOOL_SLP_SETTING_DATA_ROAMING, TRUE, &err);
- break;
- case NET_RESTORE_NONE:
- default:
- SETTING_TRACE("Do need restore any vconf");
- break;
+
+ evas_object_event_callback_del(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_UP, __network_main_gl_mouse_up);
+ evas_object_event_callback_del(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_DOWN, __network_main_gl_mouse_down);
+ evas_object_event_callback_del(ad->genlist_sel_network, EVAS_CALLBACK_MOUSE_MOVE, __network_main_gl_mouse_move);
+
+ if (ad->timer) {
+ ecore_timer_del(ad->timer);
+ ad->timer = NULL;
+ }
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
}
- ad->net_restore = NET_RESTORE_NONE;//reset the value
//cancel the searching operation
if (ad->b_searching_network) {
}
FREE(ad->sel_network);
- //ad->sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME);
ad->sel_network = get_pa_select_network();
- if (isEmptyStr(ad->sel_network)) {
+ if (!ad->sel_network) {
ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK, strlen(Keystr_UNKNOWN_NETWORK)+1);
}
ad->b_set_auto_network = FALSE;
setting_network_update_sel_network(ad);
- elm_naviframe_item_pop(ad->navi_bar);
+ if (ad->view_to_load == &setting_view_network_select_network) {
+ if (ad->ly_main) {
+ evas_object_del(ad->ly_main);
+ ad->ly_main = NULL;
+ }
+ } else {
+ elm_naviframe_item_pop(ad->navi_bar);
+ }
+ // elm_naviframe_item_pop(ad->navi_bar);
//Following handlers will be used by async listening callback. They must be reset after genlist is 'popuped'.
ad->data_auto_network_item = NULL;
Evas_Object *obj,
void *event_info)
{
- /* error check */
- retm_if(data == NULL,
- "[Setting > Network > Select] Data parameter is NULL");
-
+ SETTING_TRACE_BEGIN;
SettingNetworkUG *ad = (SettingNetworkUG *) data;
- setting_view_change(&setting_view_network_select_network,
+ // If registering.. popup is displaying, Back must be ignored.
+ if ( ad->network_select_registering_pop )
+ {
+ SETTING_TRACE("registering... popup is displaying. back key ignored");
+ return;
+ }
+
+ /* error check */
+ retm_if(data == NULL, "[Setting > Network > Select] Data parameter is NULL");
+
+ if (ad->view_to_load == &setting_view_network_select_network) {
+ // exit
+ ug_destroy_me(ad->ug);
+ return;
+ } else {
+ setting_view_change(&setting_view_network_select_network,
&setting_view_network_main, ad);
+ }
+ return;
}