[REFACTOR] Variables and objects used only by the 'select-network' module moved to... 59/113459/4
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Tue, 7 Feb 2017 14:57:58 +0000 (15:57 +0100)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Mon, 20 Feb 2017 13:23:58 +0000 (14:23 +0100)
Change-Id: Iadacef6a5ee1c733a82e7db317822574f495ba4d
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
setting-network/include/setting-network-select-network.h [new file with mode: 0644]
setting-network/include/setting-network.h
setting-network/src/setting-network-main.c
setting-network/src/setting-network-select-network.c
setting-network/src/setting-network.c

diff --git a/setting-network/include/setting-network-select-network.h b/setting-network/include/setting-network-select-network.h
new file mode 100644 (file)
index 0000000..eed5d01
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * setting
+ *
+ * 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://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,
+ * 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.h"
+
+#if !defined(_SETTING_NETWORK_SELECT_NETWORK_H_)
+#define _SETTING_NETWORK_SELECT_NETWORK_H_
+
+void select_network_app_control(SettingNetwork* ad);
+void select_network_terminate(void);
+void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *data, void *user_data);
+void setting_network_update_sel_network(void *data);
+void setting_network_popup_delete(void *data);
+int select_network_show(SettingNetwork *ad);
+
+#endif
index 71cd0748d3ecb729d3d0a674a6c3b40af3bd7b72..60bf3322094026ac0d057fb0a0af6766aad562f6 100644 (file)
@@ -230,28 +230,17 @@ struct _SettingNetwork {
        Evas_Object *con_list_gl; /* genlist in connections view */
        int cur_profile_num;
 
-       Evas_Object *network_popup;
-       Evas_Object *network_select_registering_pop;
        Evas_Object *controllbar;
-
+       Evas_Object *network_popup;
        char *view_type_string;
 
        unsigned int subs_id_net[SETTING_NETWORK_SUBS_ID_NET_LEN];
 
-       Evas_Point point_down;
-
-       Setting_GenGroupItem_Data *data_auto_network_item;
-       Setting_GenGroupItem_Data *data_search_network_item;
-
-       bool b_searching_network;
-       bool b_set_auto_network;
-       bool b_set_manul_network;
        bool b_trigged_by_searching;
        bool b_trigged_by_modechanging;
        bool b_restore_3g_status;
        bool b_restore_roaming_status;
 
-       Setting_GenGroupItem_Data *data_sel_net;
 #ifdef UI_NETWORK_MODE
        Setting_GenGroupItem_Data *data_net_mode;
 #endif
@@ -272,20 +261,14 @@ struct _SettingNetwork {
        Setting_GenGroupItem_Data *wcdma_only;
        Setting_GenGroupItem_Data *gsm_only;
 
-       Evas_Object *chk_sel;
        Evas_Object *chk_mode;
        Evas_Object *pop_gsm;
        Evas_Object *chk_3gcon;
 
-       int sel_net; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_NETWORK_INT */
-       int sel_act; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT */
-       char *sel_network;
 #ifdef UI_NETWORK_MODE
        int net_mode; /* like vconf key */
 #endif
 
-       TelNetworkPlmnList_t plmn_info;
-
        int is_show_user;
        char *con_name;
        char *access_name;
@@ -371,20 +354,15 @@ extern setting_view setting_view_network_con_list;
 extern setting_view setting_network_connection_create_view;
 extern setting_view setting_view_network_profile_delete;
 
-const char *setting_network_get_act_str(TelNetworkSystemType_t type);
 void setting_network_update_sel_network(void *data);
 bool setting_network_equal_profile(connection_profile_h pf1,
                connection_profile_h pf2);
 void setting_network_reget_profile_list(void *cb);
 
-void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result, void *data, void *user_data);
-
 void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result,
                void *data, void *user_data);
 void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data,
                void *user_data);
-void setting_tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data,
-               void *user_data);
 
 void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *data,
                void *user_data);
index 27bb0685352f672fa56493b753280a08c3729f3b..1736814653cf5027cc174b00c26c4eaf38e414f5 100755 (executable)
@@ -20,6 +20,7 @@
  */
 #include <setting-network-main.h>
 #include <efl_extension.h>
+#include "setting-network-select-network.h"
 
 #define MOBILE_DATA_WITHOUT_WIFI_STR \
        "IDS_ST_BODY_MOBILE_DATA_WILL_BE_USED_IF_YOU_DOWNLOAD_OR_UPLOAD_DATA_W"\
@@ -467,40 +468,6 @@ static char *_get_network_mode_sub_desc()
 #endif
 #endif
 
-void _get_network_selected_desc(void *data, char *sel_network_desc, int size)
-{
-       /*      int value = 0; */
-       SettingNetwork *ad = (SettingNetwork *)data;
-
-       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 = get_pa_select_network();
-       SETTING_TRACE("pa_sel_net_name:%s", ad->sel_network);
-       if (!ad->sel_network) {
-               ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK,
-                               strlen(Keystr_UNKNOWN_NETWORK) + 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);
-
-       /* TODO : value is always zero need to fix */
-       /*      if (TAPI_NETWORK_SELECTIONMODE_MANUAL == value) { */
-       /*      snprintf(sel_network_desc, size, */
-       /*                       "%s, %s", _("IDS_ST_BODY_MANUAL"),
-        * _(ad->sel_network)); */
-       /*      } */
-       /*      else{ */
-       snprintf(sel_network_desc, size, "%s, %s",
-                       _("IDS_ST_BODY_ANSWERINGMODE_AUTOMATIC"),
-                       _(ad->sel_network));
-       /*      } */
-}
-
 static void __popup_cb(void *data, Evas_Object *obj, void *event_info)
 {
        SETTING_TRACE_BEGIN;
@@ -894,7 +861,6 @@ static int _view_destroy(void *cb)
                ad->timer = NULL;
        }
        /*reset NULL after genlis destoryed with ly_main. */
-       ad->data_sel_net = NULL;
 
        setting_view_network_main.is_create = 0;
 
@@ -988,26 +954,6 @@ static void _setting_network_popup_data_roaming_hide_cb(void *data,
        /*      elm_popup_dismiss(obj); */
 }
 
-static int _show_service_providers(SettingNetwork *ad)
-{
-       cm_call_status_e call_status = CM_CALL_STATUS_IDLE;
-       cm_client_h cm_handle = NULL;
-       cm_init(&cm_handle);
-       cm_get_call_status(cm_handle, &call_status);
-       cm_deinit(cm_handle);
-       if (CM_CALL_STATUS_IDLE != call_status) {
-               setting_create_popup(ad, ad->md.window, NULL, _("IDS_CST_POP_OPERATION_NOT_ALLOWED_DURING_CALLS"), NULL, 0, false, false, 0);
-               return SETTING_GENERAL_ERR_NULL_DATA_PARAMETER;
-       }
-
-       int value_use_packet;
-       vconf_get_int(VCONFKEY_DNET_STATE, &value_use_packet);
-       vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &ad->sel_net); /*retrieve here */
-       SETTING_TRACE("ad->sel_net:%d", ad->sel_net);
-
-       return setting_view_change(&setting_view_network_main, &setting_view_network_select_network, ad);
-}
-
 static void _item_Gendial_mouse_up_cb(void *data,
                Evas_Object *obj, void *event_info)
 {
@@ -1031,7 +977,7 @@ static void _item_Gendial_mouse_up_cb(void *data,
        if (!safeStrCmp("IDS_ST_BODY_NETWORK_MODE", list_item->keyStr)) {
                _mode_popup(ad);
        } else if (!safeStrCmp("Service providers", list_item->keyStr)) {
-               _show_service_providers(ad);
+               select_network_show(ad);
        } else if (!safeStrCmp(KeyStr_UseMobileData, list_item->keyStr)) {
                /* new status */
                setting_update_gl_item_chk_status(ad->data_mobile_data,
index b32762de90908f98458d1061d2a9e318aba4da22..7a09d371b037ec115e3578d7486b2e00aae55530 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * setting
+
  *
  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
  *
@@ -18,7 +19,9 @@
  * limitations under the License.
  *
  */
-#include "setting-network.h"
+
+#include <call-manager.h>
+#include "setting-network-select-network.h"
 
 const char *STR_SETTING_OPERATION_FAILED = "IDS_BT_POP_OPERATION_FAILED";
 
@@ -31,13 +34,47 @@ static void _Gendial_select_plmn_cb(void *data, Evas_Object *obj, void *event_in
 static Evas_Object *_create_registering_popup(void *data);
 static void _search_network_cancel_cb(void *data, Evas_Object *obj, void *event_info);
 static void _searching_network(Setting_GenGroupItem_Data *list_item);
+static void _tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result, void *data, void *user_data);
+static const char *setting_network_get_act_str(TelNetworkSystemType_t type);
+static void __back_to_previous_cb(void *data, Evas_Object *obj, void *event_info);
+static void __selected_network_change_cb(keynode_t *key, void *data);
+static void __notify_response_cb(void *data, Evas_Object *obj, void *event_info);
 
 static struct select_network_info {
        SettingNetwork *ad;
+
        Evas_Object *genlist_sel_network;
+
+       Setting_GenGroupItem_Data *data_auto_network_item;
+       Setting_GenGroupItem_Data *data_sel_net;
+       Setting_GenGroupItem_Data *data_search_network_item;
+
+       Evas_Object *network_select_registering_pop;
+       Evas_Object *chk_sel;
+
+       TelNetworkPlmnList_t plmn_info;
+       bool b_searching_network;
+       int sel_act; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT */
+       int sel_net; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_NETWORK_INT */
+       char *sel_network;
+       bool b_set_auto_network;
+       bool b_set_manul_network;
+
+       Evas_Point point_down;
 } s_info = {
        .ad = NULL,
        .genlist_sel_network = NULL,
+       .data_auto_network_item = NULL,
+       .data_sel_net = NULL,
+       .plmn_info = {0,},
+       .genlist_sel_network = NULL,
+       .b_searching_network = false,
+       .sel_act = 0,
+       .sel_net = 0,
+       .sel_network = NULL,
+       .b_set_auto_network = false,
+       .b_set_manul_network = false,
 };
 
 setting_view setting_view_network_select_network = {
@@ -46,12 +83,152 @@ setting_view setting_view_network_select_network = {
        .update = NULL,
        .cleanup = NULL };
 
+void select_network_app_control(SettingNetwork* ad)
+{
+       /* register view node table */
+       if (tel_get_network_mode(ad->handle, setting_tapi_get_band_cb, ad) != TAPI_API_SUCCESS)
+               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_band. ***");
+       if (tel_get_network_selection_mode(ad->handle, setting_tapi_get_plmn_mode_cb, ad) != TAPI_API_SUCCESS)
+               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_selection_mode. ***");
+       if (tel_get_network_serving(ad->handle, setting_tapi_get_serving_network_cb, ad) != TAPI_API_SUCCESS)
+               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_serving. ***");
+
+       (void) vconf_notify_key_changed(VCONFKEY_TELEPHONY_NWNAME, __selected_network_change_cb, ad);
+       (void) vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, __selected_network_change_cb, ad);
+       (void) vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_NAME, __selected_network_change_cb, ad);
+       (void) vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, __selected_network_change_cb, ad);
+       (void) vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __selected_network_change_cb, ad);
+}
+
+void select_network_terminate(void)
+{
+       (void) vconf_ignore_key_changed(VCONFKEY_TELEPHONY_NWNAME, __selected_network_change_cb);
+       (void) vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, __selected_network_change_cb);
+       (void) vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_NAME, __selected_network_change_cb);
+       (void) vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, __selected_network_change_cb);
+       (void) vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __selected_network_change_cb);
+
+       FREE(s_info.sel_network);
+}
+
+int select_network_show(SettingNetwork *ad)
+{
+       cm_call_status_e call_status = CM_CALL_STATUS_IDLE;
+       cm_client_h cm_handle = NULL;
+       cm_init(&cm_handle);
+       cm_get_call_status(cm_handle, &call_status);
+       cm_deinit(cm_handle);
+       if (CM_CALL_STATUS_IDLE != call_status) {
+               setting_create_popup(s_info.ad, s_info.ad->md.window, NULL, _("IDS_CST_POP_OPERATION_NOT_ALLOWED_DURING_CALLS"), NULL, 0, false, false, 0);
+               return SETTING_GENERAL_ERR_NULL_DATA_PARAMETER;
+       }
+
+       int value_use_packet;
+       vconf_get_int(VCONFKEY_DNET_STATE, &value_use_packet);
+       vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &s_info.sel_net); /*retrieve here */
+       SETTING_TRACE("s_info.sel_net:%d", s_info.sel_net);
+
+       return setting_view_change(&setting_view_network_main, &setting_view_network_select_network, ad);
+}
+
+void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       SETTING_TRACE(" - result = 0x%x", result);
+       ret_if(!user_data || !data);
+       SettingNetwork *ad = user_data;
+       TelNetworkServing_t *srv_nt = data;
+
+       if (result == TAPI_NETWORK_NO_ERR) {
+               s_info.sel_act = srv_nt->act;
+               vconf_set_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, s_info.sel_act);
+
+               FREE(s_info.sel_network);
+               /*s_info.sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME); */
+               s_info.sel_network = get_pa_select_network();
+               if (!s_info.sel_network) {
+                       s_info.sel_network = strndup(Keystr_UNKNOWN_NETWORK,
+                                       strlen(Keystr_UNKNOWN_NETWORK) + 1);
+               }
+               setting_network_update_sel_network(ad);
+       } else {
+               /*if failed, do nothing.. */
+       }
+       SETTING_TRACE_END;
+}
+
+/**
+ * [UI] update
+ */
+void setting_network_update_sel_network(void *data)
+{
+       /*SETTING_TRACE_BEGIN; */
+
+       if (s_info.data_auto_network_item) {
+               if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.sel_net) {
+                       char *sub_text = setting_customize_text(_(s_info.sel_network), 0, BLUE_COLOR, NULL);
+                       SETTING_TRACE("sub_text:%s", sub_text);
+                       G_FREE(s_info.data_auto_network_item->sub_desc);
+                       s_info.data_auto_network_item->sub_desc = (char *)g_strdup(sub_text);
+                       elm_object_item_data_set(s_info.data_auto_network_item->item, s_info.data_auto_network_item);
+                       elm_genlist_item_update(s_info.data_auto_network_item->item);
+                       elm_genlist_item_fields_update(s_info.data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+                       FREE(sub_text);
+               } else {
+               }
+       }
+
+       if (s_info.data_sel_net) { /*it indicates TAPI is not responsed in time */
+               char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
+               if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.sel_net) {
+                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
+                                       "%s, %s",
+                                       _("IDS_ST_BODY_ANSWERINGMODE_AUTOMATIC"),
+                                       _(s_info.sel_network));
+
+               } else {
+                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
+                                       "%s, %s", _("IDS_ST_BODY_MANUAL"),
+                                       _(s_info.sel_network));
+               }
+
+               /*SETTING_TRACE("sel_network_desc:%s", sel_network_desc); */
+
+               G_FREE(s_info.data_sel_net->sub_desc);
+               s_info.data_sel_net->sub_desc = (char *)g_strdup(
+                               _(sel_network_desc));
+
+               elm_object_item_data_set(s_info.data_sel_net->item,
+                               s_info.data_sel_net);
+               elm_genlist_item_update(s_info.data_sel_net->item);
+       }
+}
+
+void setting_network_popup_delete(void *data)
+{
+       SETTING_TRACE_BEGIN;
+       /* error check */
+       retm_if(data == NULL, "setting_network_tapi_popup_create Data parameter is NULL");
+       SettingNetwork *ad = (SettingNetwork *)data;
+       if (s_info.network_select_registering_pop != NULL) {
+               evas_object_del(s_info.network_select_registering_pop);
+               s_info.network_select_registering_pop = NULL;
+       }
+       if (s_info.ad->network_popup != NULL) {
+               evas_object_del(s_info.ad->network_popup);
+               s_info.ad->network_popup = NULL;
+       }
+       if (ad->popup != NULL) {
+               evas_object_del(ad->popup);
+               ad->popup = NULL;
+       }
+}
+
 static void _sort_merge_handle(void *usrdata, TelNetworkPlmnList_t *list)
 {
        SETTING_TRACE_BEGIN;
-       SettingNetwork *ad = usrdata;
        int cnt = 0, tempcount = 0;
-       ad->plmn_info.networks_count = list->networks_count;
+       s_info.plmn_info.networks_count = list->networks_count;
        SETTING_TRACE("list->networks_count:%d", list->networks_count);
        int idx = 0;
 
@@ -74,9 +251,9 @@ static void _sort_merge_handle(void *usrdata, TelNetworkPlmnList_t *list)
                alread_exist = FALSE;
                for (j = 0; j < cnt; j++) {
                        if (0 == safeStrCmp(
-                                       ad->plmn_info.network_list[j].network_name,
+                                       s_info.plmn_info.network_list[j].network_name,
                                        list->network_list[idx].network_name)
-                                       || 0 == safeStrCmp(ad->plmn_info.network_list[j].plmn, list->network_list[idx].plmn)) {
+                                       || 0 == safeStrCmp(s_info.plmn_info.network_list[j].plmn, list->network_list[idx].plmn)) {
                                alread_exist = TRUE;
                                break;
                        }
@@ -85,7 +262,7 @@ static void _sort_merge_handle(void *usrdata, TelNetworkPlmnList_t *list)
                if (alread_exist)
                        continue;
 
-               memcpy(&(ad->plmn_info.network_list[cnt++]),
+               memcpy(&(s_info.plmn_info.network_list[cnt++]),
                                &(list->network_list[idx]),
                                sizeof(TelNetworkIdentity_t));
        }
@@ -93,14 +270,14 @@ static void _sort_merge_handle(void *usrdata, TelNetworkPlmnList_t *list)
        SETTING_TRACE("cnt:%d, list->networks_count=%d", cnt, list->networks_count);
        SETTING_TRACE("*****************************************************");
        SETTING_TRACE("After Sorted:");
-       ad->plmn_info.networks_count = list->networks_count = (char)cnt;
+       s_info.plmn_info.networks_count = list->networks_count = (char)cnt;
        for (idx = 0; idx < cnt; idx++) {
                SETTING_TRACE("[%d]:network_name=%s,plmn=%s,plmn_id=%d,access_technology=%d",
                                idx,
-                               ad->plmn_info.network_list[idx].network_name,
-                               ad->plmn_info.network_list[idx].plmn,
-                               ad->plmn_info.network_list[idx].plmn_id,
-                               ad->plmn_info.network_list[idx].access_technology);
+                               s_info.plmn_info.network_list[idx].network_name,
+                               s_info.plmn_info.network_list[idx].plmn,
+                               s_info.plmn_info.network_list[idx].plmn_id,
+                               s_info.plmn_info.network_list[idx].access_technology);
        }
 }
 
@@ -136,9 +313,9 @@ static void _process_special_char(char *dst, const char *src)
 
 void _register_network_automaticaly(SettingNetwork *ad, Setting_GenGroupItem_Data *list_item)
 {
-       ad->sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
+       s_info.sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
        SETTING_TRACE("Sending tel_select_network_automatic..");
-       int tapi_ret = tel_select_network_automatic(ad->handle, setting_tapi_set_plmn_mode_cb, ad);
+       int tapi_ret = tel_select_network_automatic(ad->handle, _tapi_set_plmn_mode_cb, ad);
 
        if (tapi_ret != TAPI_API_SUCCESS) {
                SETTING_TRACE_DEBUG("*** [ERR] tel_select_network_automatic." " tapi_ret=%d ***", tapi_ret);
@@ -148,40 +325,40 @@ void _register_network_automaticaly(SettingNetwork *ad, Setting_GenGroupItem_Dat
        /* Display 'Registering' popup when automatic */
        SETTING_TRACE("Automatic selection, Registering..");
 
-       if (ad->network_select_registering_pop != NULL) {
-               evas_object_del(ad->network_select_registering_pop);
-               ad->network_select_registering_pop = NULL;
+       if (s_info.network_select_registering_pop != NULL) {
+               evas_object_del(s_info.network_select_registering_pop);
+               s_info.network_select_registering_pop = NULL;
        }
 
-       ad->network_select_registering_pop = _create_registering_popup(list_item);
-       if (ad->network_select_registering_pop)
+       s_info.network_select_registering_pop = _create_registering_popup(list_item);
+       if (s_info.network_select_registering_pop)
                SETTING_TRACE("Registering popup appeared");
        else
                SETTING_TRACE("Registering popup failed");
 
-       if (ad->data_auto_network_item) {
+       if (s_info.data_auto_network_item) {
                char *sub_text = setting_customize_text("....", 0, BLUE_COLOR, NULL);
-               ad->data_auto_network_item->sub_desc = (char *) g_strdup(sub_text);
+               s_info.data_auto_network_item->sub_desc = (char *) g_strdup(sub_text);
                FREE(sub_text);
-               elm_object_item_data_set(ad->data_auto_network_item->item, ad->data_auto_network_item);
-               elm_genlist_item_update(ad->data_auto_network_item->item);
+               elm_object_item_data_set(s_info.data_auto_network_item->item, s_info.data_auto_network_item);
+               elm_genlist_item_update(s_info.data_auto_network_item->item);
        }
 
-       ad->b_set_manul_network = FALSE;
-       ad->b_set_auto_network = TRUE;
-       ad->sel_act = -1;/*means "Automatic" */
+       s_info.b_set_manul_network = FALSE;
+       s_info.b_set_manul_network = TRUE;
+       s_info.sel_act = -1;/*means "Automatic" */
 }
 
 int _process_special_char_in_network_names(SettingNetwork *ad, Setting_GenGroupItem_Data *list_item)
 {
        int cnt = 0;
-       SETTING_TRACE("ad->plmn_info.networks_count:%d", ad->plmn_info.networks_count);
+       SETTING_TRACE("s_info.plmn_info.networks_count:%d", s_info.plmn_info.networks_count);
        char name[MAX_COMMON_BUFFER_LEN] = { 0, };
-       for (; cnt < ad->plmn_info.networks_count; cnt++) {
+       for (; cnt < s_info.plmn_info.networks_count; cnt++) {
 
-               SETTING_TRACE("ad->plmn_info.network_list[cnt].network_name:%s", ad->plmn_info.network_list[cnt].network_name);
+               SETTING_TRACE("s_info.plmn_info.network_list[cnt].network_name:%s", s_info.plmn_info.network_list[cnt].network_name);
                memset(name, 0, MAX_COMMON_BUFFER_LEN);
-               snprintf(name, MAX_COMMON_BUFFER_LEN, "%s", ad->plmn_info.network_list[cnt].network_name);
+               snprintf(name, MAX_COMMON_BUFFER_LEN, "%s", s_info.plmn_info.network_list[cnt].network_name);
 
                char speciliztion[MAX_COMMON_BUFFER_LEN] = { 0, };
                _process_special_char(speciliztion, name);
@@ -195,28 +372,28 @@ int _process_special_char_in_network_names(SettingNetwork *ad, Setting_GenGroupI
        }
        SETTING_TRACE_DEBUG(
                        "*** [Selected PLMN] name=%s, " "srv provider=%s, PLMN ID=%s, type=%d, " "access tech=%d ***",
-                       ad->plmn_info.network_list[cnt].network_name,
-                       ad->plmn_info.network_list[cnt].service_provider_name,
-                       ad->plmn_info.network_list[cnt].plmn,
-                       (int)(ad->plmn_info.network_list[cnt].type_of_plmn),
-                       (int)(ad->plmn_info.network_list[cnt].access_technology));
+                       s_info.plmn_info.network_list[cnt].network_name,
+                       s_info.plmn_info.network_list[cnt].service_provider_name,
+                       s_info.plmn_info.network_list[cnt].plmn,
+                       (int)(s_info.plmn_info.network_list[cnt].type_of_plmn),
+                       (int)(s_info.plmn_info.network_list[cnt].access_technology));
        return cnt;
 }
 
 void _register_network_manual(SettingNetwork *ad, Setting_GenGroupItem_Data *list_item)
 {
-       ad->sel_net = TAPI_NETWORK_SELECTIONMODE_MANUAL;
-       ad->b_set_manul_network = TRUE;
-       ad->b_set_auto_network = FALSE;
+       s_info.sel_net = TAPI_NETWORK_SELECTIONMODE_MANUAL;
+       s_info.b_set_manul_network = TRUE;
+       s_info.b_set_manul_network = FALSE;
        /*ASYNC API - TAPI_EVENT_NETWORK_SELECT_CNF */
 
        int cnt = _process_special_char_in_network_names(ad, list_item);
        SETTING_TRACE("Sending tel_select_network_manual..");
 
        int tapi_ret = tel_select_network_manual(ad->handle,
-                       ad->plmn_info.network_list[cnt].plmn,
-                       ad->plmn_info.network_list[cnt].access_technology,
-                       setting_tapi_set_plmn_mode_cb, ad);
+                       s_info.plmn_info.network_list[cnt].plmn,
+                       s_info.plmn_info.network_list[cnt].access_technology,
+                       _tapi_set_plmn_mode_cb, ad);
 
        if (tapi_ret != TAPI_API_SUCCESS) {
                SETTING_TRACE_DEBUG("%s*** [ERR] " "tel_select_network_manual. " "tapi_ret=%d ***%s", SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
@@ -226,20 +403,20 @@ void _register_network_manual(SettingNetwork *ad, Setting_GenGroupItem_Data *lis
 
        /* Display 'Registering' popup when manual */
        SETTING_TRACE("Manual selection, Registering..");
-       if (ad->network_select_registering_pop != NULL) {
-               evas_object_del(ad->network_select_registering_pop);
-               ad->network_select_registering_pop = NULL;
+       if (s_info.network_select_registering_pop != NULL) {
+               evas_object_del(s_info.network_select_registering_pop);
+               s_info.network_select_registering_pop = NULL;
        }
 
-       ad->network_select_registering_pop = _create_registering_popup(list_item);
-       if (ad->network_select_registering_pop)
+       s_info.network_select_registering_pop = _create_registering_popup(list_item);
+       if (s_info.network_select_registering_pop)
                SETTING_TRACE("Registering popup appeared");
        else
                SETTING_TRACE("Registering popup failed");
 
-       ad->sel_act = ad->plmn_info.network_list[cnt].access_technology;
-       FREE(ad->sel_network);
-       ad->sel_network = strdup(ad->plmn_info.network_list[cnt].network_name);
+       s_info.sel_act = s_info.plmn_info.network_list[cnt].access_technology;
+       FREE(s_info.sel_network);
+       s_info.sel_network = strdup(s_info.plmn_info.network_list[cnt].network_name);
 
 }
 
@@ -255,18 +432,18 @@ static void _register_network(Setting_GenGroupItem_Data *list_item)
 
        /*cancel the searching operation */
 
-       if (ad->data_search_network_item) {
-               elm_object_item_del(ad->data_search_network_item->item);
-               ad->data_search_network_item = NULL;
+       if (s_info.data_search_network_item) {
+               elm_object_item_del(s_info.data_search_network_item->item);
+               s_info.data_search_network_item = NULL;
        }
 
-       if (ad->b_searching_network) {
+       if (s_info.b_searching_network) {
                SETTING_TRACE("Sending tel_cancel_network_manual_search..");
                tapi_ret = tel_cancel_network_manual_search(ad->handle, setting_tapi_cancel_manual_search_cb, ad);
                if (tapi_ret != TAPI_API_SUCCESS)
                        SETTING_TRACE_ERROR("*** [ERR] tel_cancel_network_manual_search. " "tapi_ret=%d ***", tapi_ret);
                else
-                       ad->b_searching_network = FALSE;
+                       s_info.b_searching_network = FALSE;
        }
 
        if (0 == safeStrCmp(list_item->keyStr, "IDS_ST_BODY_SELECT_AUTOMATICALLY"))
@@ -363,19 +540,10 @@ static Eina_Bool _search_net_on_timer(void *data)
        SettingNetwork *ad = list_item->userdata;
        retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "ad is NULL");
 
-       /*
-        if (ad->popup)
-        {
-        evas_object_del(ad->popup);
-        ad->popup = NULL;
-        }
-        */
-
        int tapi_ret;
        /*searching list */
        /*ASYNC API - TAPI_EVENT_NETWORK_SEARCH_CNF */
-       tapi_ret = tel_search_network(ad->handle,
-                       _tapi_search_network_cb, ad);
+       tapi_ret = tel_search_network(ad->handle, _tapi_search_network_cb, ad);
        if (tapi_ret != TAPI_API_SUCCESS) { /* error handling.. */
                SETTING_TRACE_ERROR(
                                "%s*** [ERR] tel_search_network. tapi_ret=%d ***%s",
@@ -386,43 +554,33 @@ static Eina_Bool _search_net_on_timer(void *data)
 
                /* put error handler on the end of this function. */
                /*rollback.. */
-               setting_update_gl_item_chk_status(ad->data_auto_network_item,
+               setting_update_gl_item_chk_status(s_info.data_auto_network_item,
                                1);
                return ECORE_CALLBACK_CANCEL;
        }
 
-       ad->b_searching_network = TRUE;
-       /*
-        ad->data_search_network_item = setting_create_Gendial_field_1radio(
-        s_info.genlist_sel_network,
-        &itc_1icon,
-        NULL, NULL,
-        SWALLOW_Type_1RADIO_1SEARCH,
-        ad->chk_sel, -1, NULL, NULL);
-        elm_genlist_item_select_mode_set(ad->data_search_network_item->item,
-        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-        */
+       s_info.b_searching_network = TRUE;
+
        if (ad->popup) {
                evas_object_del(ad->popup);
                ad->popup = NULL;
        }
        ad->popup = _create_searching_popup(list_item);
-       if (ad->data_auto_network_item) {
+       if (s_info.data_auto_network_item) {
                /*elm_genlist_item_item_class_update(
-                * ad->data_auto_network_item->item, &(itc_2text_1icon_7)); */
+                * s_info.data_auto_network_item->item, &(itc_2text_1icon_7)); */
 
                char *sub_text = setting_customize_text(
-                               ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                GRAY_COLOR, NULL);
-               ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
-               elm_object_item_data_set(ad->data_auto_network_item->item,
-                               ad->data_auto_network_item);
-               elm_genlist_item_update(ad->data_auto_network_item->item);
+               elm_object_item_data_set(s_info.data_auto_network_item->item,
+                               s_info.data_auto_network_item);
+               elm_genlist_item_update(s_info.data_auto_network_item->item);
        }
 
-       /*ecore_timer_del(ad->timer); */
        ad->timer = NULL;
        return ECORE_CALLBACK_CANCEL;
 }
@@ -459,7 +617,7 @@ static void _switch_automatic_on_resp_cb(void *data, Evas_Object *obj, void *eve
                else
                        chk_status = 0;
 
-               setting_update_gl_item_chk_status(ad->data_auto_network_item,
+               setting_update_gl_item_chk_status(s_info.data_auto_network_item,
                                chk_status);
        }
 }
@@ -468,23 +626,18 @@ static void _switch_automatic_network(Setting_GenGroupItem_Data *list_item)
 {
        SETTING_TRACE_BEGIN;
        ret_if(!list_item || !list_item->userdata || !list_item->keyStr);
-       ret_if(
-                       0 != safeStrCmp(list_item->keyStr,
-                                       "IDS_ST_BODY_SELECT_AUTOMATICALLY"));
-       SettingNetwork *ad = list_item->userdata;
-       SETTING_TRACE("The value of toogle changes to be %d",
-                       list_item->chk_status);
+       ret_if(0 != safeStrCmp(list_item->keyStr, "IDS_ST_BODY_SELECT_AUTOMATICALLY"));
+       SETTING_TRACE("The value of toogle changes to be %d", list_item->chk_status);
        if (list_item->chk_status) {
                /* Automatic selected */
                Elm_Object_Item *last_item = elm_genlist_last_item_get(
                                s_info.genlist_sel_network);
-               SETTING_TRACE("ad->data_auto_network_item->item:%p",
-                               ad->data_auto_network_item->item);
+               SETTING_TRACE("s_info.data_auto_network_item->item:%p",
+                               s_info.data_auto_network_item->item);
                for (;;) {
-                       last_item = elm_genlist_last_item_get(
-                                       s_info.genlist_sel_network);
+                       last_item = elm_genlist_last_item_get(s_info.genlist_sel_network);
                        SETTING_TRACE("last_item:%p", last_item);
-                       if (last_item == ad->data_auto_network_item->item)
+                       if (last_item == s_info.data_auto_network_item->item)
                                break;
 
                        elm_object_item_del(last_item);
@@ -520,7 +673,6 @@ static void _Gendial_select_plmn_cb(void *data, Evas_Object *obj, void *event_in
        SETTING_TRACE_BEGIN;
        retm_if(data == NULL || event_info == NULL, "Parameter is NULL");
 
-       SettingNetwork *ad = (SettingNetwork *)data;
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
        elm_genlist_item_selected_set(item, 0);
        Setting_GenGroupItem_Data *list_item =
@@ -536,16 +688,16 @@ static void _Gendial_select_plmn_cb(void *data, Evas_Object *obj, void *event_in
                _switch_automatic_network(list_item);
                return;
        } else {
-               if (ad->b_searching_network) {
+               if (s_info.b_searching_network) {
                        SETTING_TRACE("Searching poup displaying, Cannot select");
                        return;
                }
 
-               int chk_status = elm_radio_value_get(ad->chk_sel);
+               int chk_status = elm_radio_value_get(s_info.chk_sel);
                if (chk_status != list_item->chk_status) {
                        SETTING_TRACE("[List index:%d] List selected (radio index:%d)",
                                        list_item->chk_status, chk_status);
-                       elm_radio_value_set(ad->chk_sel, list_item->chk_status);
+                       elm_radio_value_set(s_info.chk_sel, list_item->chk_status);
                        _register_network(list_item);
                } else {
                        SETTING_TRACE("[List index:%d] Skip becuase radio checked (radio index:%d)",
@@ -568,19 +720,19 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
        SETTING_TRACE(" - result = %d", result);
        setting_network_popup_delete(ad);
 
-       if (!ad->b_searching_network) {
+       if (!s_info.b_searching_network) {
                /*The requeset has already been canceled, don't do detail
                 * process*/
                return;
        }
 
-       if (ad->data_search_network_item) {
+       if (s_info.data_search_network_item) {
                /* [ UI UPDATE ]*/
-               elm_object_item_del(ad->data_search_network_item->item);
-               ad->data_search_network_item = NULL;
+               elm_object_item_del(s_info.data_search_network_item->item);
+               s_info.data_search_network_item = NULL;
        }
 
-       ad->b_searching_network = FALSE;
+       s_info.b_searching_network = FALSE;
        int valid_cnt = 0;
        if (result == TAPI_NETWORK_NO_ERR) {
                int cnt = 0;
@@ -598,18 +750,18 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
                SETTING_TRACE("cur_plmn:%s", cur_plmn);
 
                char name[MAX_COMMON_BUFFER_LEN] = { 0, };
-               while (cnt < ad->plmn_info.networks_count) {
+               while (cnt < s_info.plmn_info.networks_count) {
                        SETTING_TRACE("network name from TAPI[%d]:%s --%s --(plmn=%s,plmn_id=%d,at=%s)",
                                        cnt,
-                                       ad->plmn_info.network_list[cnt].network_name,
-                                       ad->plmn_info.network_list[cnt].service_provider_name,
-                                       ad->plmn_info.network_list[cnt].plmn,
-                                       ad->plmn_info.network_list[cnt].plmn_id,
+                                       s_info.plmn_info.network_list[cnt].network_name,
+                                       s_info.plmn_info.network_list[cnt].service_provider_name,
+                                       s_info.plmn_info.network_list[cnt].plmn,
+                                       s_info.plmn_info.network_list[cnt].plmn_id,
                                        setting_network_get_act_str(
-                                                       ad->plmn_info.network_list[cnt].access_technology));
+                                                       s_info.plmn_info.network_list[cnt].access_technology));
 
                        if (isSpaceStr(
-                                       ad->plmn_info.network_list[cnt].network_name)) {
+                                       s_info.plmn_info.network_list[cnt].network_name)) {
                                /*skip empty string. */
                                cnt++;
                                continue;
@@ -618,7 +770,7 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
                        memset(name, 0, MAX_COMMON_BUFFER_LEN);
 
                        snprintf(name, MAX_COMMON_BUFFER_LEN, "%s",
-                                       ad->plmn_info.network_list[cnt].network_name);
+                                       s_info.plmn_info.network_list[cnt].network_name);
                        /*SETTING_TRACE("name:%s", name); */
                        char speciliztion[MAX_COMMON_BUFFER_LEN] = { 0, };
                        _process_special_char(speciliztion, name);
@@ -632,7 +784,7 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
                                        _Gendial_select_plmn_cb,
                                        ad,
                                        SWALLOW_TYPE_1RADIO_RIGHT_PROPAGATE_EVENTS_SET,
-                                       ad->chk_sel,
+                                       s_info.chk_sel,
                                        TAPI_NETWORK_SELECTIONMODE_MANUAL + valid_cnt + 1,
                                        speciliztion,
                                        _select_network_chk_changed);
@@ -644,14 +796,14 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
                        item_data->userdata = ad;
 #endif
 #if 1
-                       if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC != ad->sel_net
+                       if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC != s_info.sel_net
                                        && 0 == safeStrCmp(pa_net_name,
-                                                       ad->plmn_info.network_list[cnt].network_name)
-                                       && ad->plmn_info.network_list[cnt].access_technology
-                                                       == ad->sel_act) {
+                                                       s_info.plmn_info.network_list[cnt].network_name)
+                                       && s_info.plmn_info.network_list[cnt].access_technology
+                                                       == s_info.sel_act) {
                                /* [ UI UPDATE ]*/
                                /*let select nothing */
-                               elm_radio_value_set(ad->chk_sel, item_data->chk_status);
+                               elm_radio_value_set(s_info.chk_sel, item_data->chk_status);
                        }
 #endif
                        cnt++;
@@ -682,20 +834,20 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
 
 #if 1
        if (0 == valid_cnt
-                       && TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == ad->sel_net
-                       && ad->data_auto_network_item) {
+                       && TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.sel_net
+                       && s_info.data_auto_network_item) {
 
                /* [ UI UPDATE ]*/
-               ad->data_auto_network_item->chk_status = TRUE;
+               s_info.data_auto_network_item->chk_status = TRUE;
                char *sub_text = setting_customize_text(
-                               ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                BLUE_COLOR, NULL);
-               ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
-               elm_object_item_data_set(ad->data_auto_network_item->item,
-                               ad->data_auto_network_item);
-               elm_genlist_item_update(ad->data_auto_network_item->item);
+               elm_object_item_data_set(s_info.data_auto_network_item->item,
+                               s_info.data_auto_network_item);
+               elm_genlist_item_update(s_info.data_auto_network_item->item);
        }
 #endif
 }
@@ -715,7 +867,7 @@ static void _searching_network(Setting_GenGroupItem_Data *list_item)
        int value_use_packet;
        vconf_get_int(VCONFKEY_DNET_STATE, &value_use_packet);
 
-       SETTING_TRACE("ad->sel_net:%d", ad->sel_net);
+       SETTING_TRACE("s_info.sel_net:%d", s_info.sel_net);
        if (value_use_packet != VCONFKEY_DNET_OFF) {
                ad->popup = setting_create_popup(list_item, ad->md.naviframe,
                                IDS_ST_BODY_UNABLE_TO_SCAN_FOR_NETWORKS,
@@ -745,35 +897,26 @@ static void _searching_network(Setting_GenGroupItem_Data *list_item)
                return;
        }
 
-       ad->b_searching_network = TRUE;
-       /*latest UI: show progress popup instead of progress item
-        ad->data_search_network_item = setting_create_Gendial_field_1radio(
-        s_info.genlist_sel_network,
-        &itc_1icon,
-        NULL, NULL,
-        SWALLOW_Type_1RADIO_1SEARCH,
-        ad->chk_sel, -1, NULL, NULL);
-        elm_genlist_item_select_mode_set(ad->data_search_network_item->item,
-        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-        */
+       s_info.b_searching_network = TRUE;
+
        if (ad->popup) {
                evas_object_del(ad->popup);
                ad->popup = NULL;
        }
        ad->popup = _create_searching_popup(list_item);
-       if (ad->data_auto_network_item) {
+       if (s_info.data_auto_network_item) {
                /*elm_genlist_item_item_class_update(
-                * ad->data_auto_network_item->item, &(itc_2text_1icon_7)); */
+                * s_info.data_auto_network_item->item, &(itc_2text_1icon_7)); */
 
                char *sub_text = setting_customize_text(
-                               ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                GRAY_COLOR, NULL);
-               ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
-               elm_object_item_data_set(ad->data_auto_network_item->item,
-                               ad->data_auto_network_item);
-               elm_genlist_item_update(ad->data_auto_network_item->item);
+               elm_object_item_data_set(s_info.data_auto_network_item->item,
+                               s_info.data_auto_network_item);
+               elm_genlist_item_update(s_info.data_auto_network_item->item);
        }
 
        return;
@@ -797,7 +940,7 @@ static void _network_main_gl_mouse_u(void *data, Evas *e, Evas_Object *obj, void
                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(s_info.ad->data_auto_network_item->eo_check,
+               evas_object_geometry_get(s_info.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
@@ -806,37 +949,36 @@ static void _network_main_gl_mouse_u(void *data, Evas *e, Evas_Object *obj, void
                                && ev->output.y <= (y + h)) {
                        return;
                }
-               if (s_info.ad->data_auto_network_item->chk_status) {
+               if (s_info.data_auto_network_item->chk_status) {
                        char *sub_text = setting_customize_text(
-                                       s_info.ad->data_auto_network_item->sub_desc, 0,
+                                       s_info.data_auto_network_item->sub_desc, 0,
                                        BLUE_COLOR, NULL);
-                       FREE(s_info.ad->data_auto_network_item->sub_desc);
-                       s_info.ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+                       FREE(s_info.data_auto_network_item->sub_desc);
+                       s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                        sub_text);
                        FREE(sub_text);
                } else {
                        char *sub_text = setting_customize_text(
-                                       s_info.ad->data_auto_network_item->sub_desc, 0,
+                                       s_info.data_auto_network_item->sub_desc, 0,
                                        GRAY_COLOR, NULL);
-                       FREE(s_info.ad->data_auto_network_item->sub_desc);
-                       s_info.ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+                       FREE(s_info.data_auto_network_item->sub_desc);
+                       s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                        sub_text);
                        FREE(sub_text);
                }
 
-               elm_genlist_item_fields_update(s_info.ad->data_auto_network_item->item,
+               elm_genlist_item_fields_update(s_info.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)
+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);
        Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)event_info;
-       s_info.ad->point_down.x = ev->output.x;
-       s_info.ad->point_down.y = ev->output.y;
+       s_info.point_down.x = ev->output.x;
+       s_info.point_down.y = ev->output.y;
        Elm_Object_Item *selected_item = elm_genlist_at_xy_item_get(
                        s_info.genlist_sel_network, ev->output.x, ev->output.y,
                        NULL);
@@ -849,7 +991,7 @@ static void _network_main_gl_mouse_down(void *data, Evas *e, Evas_Object *obj,
                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(s_info.ad->data_auto_network_item->eo_check,
+               evas_object_geometry_get(s_info.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
@@ -860,13 +1002,13 @@ static void _network_main_gl_mouse_down(void *data, Evas *e, Evas_Object *obj,
                }
 
                char *sub_text = setting_customize_text(
-                               s_info.ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                WHITE_COLOR, NULL);
-               FREE(s_info.ad->data_auto_network_item->sub_desc);
-               s_info.ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               FREE(s_info.data_auto_network_item->sub_desc);
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
-               elm_genlist_item_fields_update(s_info.ad->data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
+               elm_genlist_item_fields_update(s_info.data_auto_network_item->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
        }
 }
 
@@ -875,8 +1017,8 @@ static void _network_main_gl_mouse_move(void *data, Evas *e, Evas_Object *obj, v
        /*SETTING_TRACE_BEGIN; */
        ret_if(!data || !event_info);
        Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *)event_info;
-       int x_offset = ev->cur.output.x - s_info.ad->point_down.x;
-       int y_offset = ev->cur.output.y - s_info.ad->point_down.y;
+       int x_offset = ev->cur.output.x - s_info.point_down.x;
+       int y_offset = ev->cur.output.y - s_info.point_down.y;
        if (x_offset < 0)
                x_offset = -x_offset;
        if (y_offset < 0)
@@ -886,25 +1028,25 @@ static void _network_main_gl_mouse_move(void *data, Evas *e, Evas_Object *obj, v
                return;
 
        /*SETTING_TRACE("xxxxxxxxxx"); */
-       if (s_info.ad->data_auto_network_item->chk_status) {
+       if (s_info.data_auto_network_item->chk_status) {
                char *sub_text = setting_customize_text(
-                               s_info.ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                BLUE_COLOR, NULL);
-               FREE(s_info.ad->data_auto_network_item->sub_desc);
-               s_info.ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               FREE(s_info.data_auto_network_item->sub_desc);
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
        } else {
                char *sub_text = setting_customize_text(
-                               s_info.ad->data_auto_network_item->sub_desc, 0,
+                               s_info.data_auto_network_item->sub_desc, 0,
                                GRAY_COLOR, NULL);
-               FREE(s_info.ad->data_auto_network_item->sub_desc);
-               s_info.ad->data_auto_network_item->sub_desc = (char *)g_strdup(
+               FREE(s_info.data_auto_network_item->sub_desc);
+               s_info.data_auto_network_item->sub_desc = (char *)g_strdup(
                                sub_text);
                FREE(sub_text);
        }
 
-       elm_genlist_item_fields_update(s_info.ad->data_auto_network_item->item, "*",
+       elm_genlist_item_fields_update(s_info.data_auto_network_item->item, "*",
                        ELM_GENLIST_ITEM_FIELD_TEXT);
 }
 
@@ -919,29 +1061,23 @@ static int _view_create(void *cb)
                        _("IDS_ST_BUTTON_BACK"), _naviframe_item_pop_cb, NULL,
                        &s_info.genlist_sel_network, s_info.ad->md.naviframe);
 
-       /*m_Object_Item *item = elm_genlist_item_append(s_info.genlist_sel_network,
-        &(itc_seperator), NULL, NULL,
-        ELM_GENLIST_ITEM_NONE, NULL, NULL);
-        elm_genlist_item_select_mode_set(item,
-        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
-
        /* scroller is a genlist */
-       s_info.ad->chk_sel = elm_radio_add(s_info.genlist_sel_network);
-       elm_radio_state_value_set(s_info.ad->chk_sel, -1);
+       s_info.chk_sel = elm_radio_add(s_info.genlist_sel_network);
+       elm_radio_state_value_set(s_info.chk_sel, -1);
        /*retrieve here */
-       vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &s_info.ad->sel_net);
-       SETTING_TRACE("s_info.ad->sel_net:%d", s_info.ad->sel_net);
+       vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, &s_info.sel_net);
+       SETTING_TRACE("s_info.sel_net:%d", s_info.sel_net);
 
        /*retrieve here */
-       vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, &s_info.ad->sel_act);
-       SETTING_TRACE("s_info.ad->sel_act:%d", s_info.ad->sel_act);
-
-       FREE(s_info.ad->sel_network);
-       /*s_info.ad->sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME); */
-       s_info.ad->sel_network = get_pa_select_network();
-       SETTING_TRACE("pa_sel_net_name:%s", s_info.ad->sel_network);
-       if (!s_info.ad->sel_network) {
-               s_info.ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK,
+       vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT, &s_info.sel_act);
+       SETTING_TRACE("s_info.sel_act:%d", s_info.sel_act);
+
+       FREE(s_info.sel_network);
+       /*s_info.sel_network = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME); */
+       s_info.sel_network = get_pa_select_network();
+       SETTING_TRACE("pa_sel_net_name:%s", s_info.sel_network);
+       if (!s_info.sel_network) {
+               s_info.sel_network = strndup(Keystr_UNKNOWN_NETWORK,
                                strlen(Keystr_UNKNOWN_NETWORK) + 1);
        }
 
@@ -952,10 +1088,10 @@ static int _view_create(void *cb)
        evas_object_event_callback_add(s_info.genlist_sel_network, EVAS_CALLBACK_MOUSE_DOWN, _network_main_gl_mouse_down, NULL);
        evas_object_event_callback_add(s_info.genlist_sel_network, EVAS_CALLBACK_MOUSE_MOVE, _network_main_gl_mouse_move, NULL);
 
-       if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.ad->sel_net) {
-               char *sub_text = setting_customize_text(_(s_info.ad->sel_network), 0, BLUE_COLOR, NULL);
+       if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.sel_net) {
+               char *sub_text = setting_customize_text(_(s_info.sel_network), 0, BLUE_COLOR, NULL);
 
-               s_info.ad->data_auto_network_item = setting_create_Gendial_field_def(
+               s_info.data_auto_network_item = setting_create_Gendial_field_def(
                                s_info.genlist_sel_network, &itc_1text_1icon,
                                _Gendial_select_plmn_cb, NULL,
                                SWALLOW_Type_1ICON_1RADIO,
@@ -963,14 +1099,14 @@ static int _view_create(void *cb)
                                "IDS_ST_BODY_SELECT_AUTOMATICALLY", sub_text,
                                _select_network_chk_changed);
 
-               setting_retvm_if(NULL == s_info.ad->data_auto_network_item,
+               setting_retvm_if(NULL == s_info.data_auto_network_item,
                                SETTING_RETURN_FAIL, "Failed to calloc memory");
                FREE(sub_text);
 
-       } else if (TAPI_NETWORK_SELECTIONMODE_MANUAL == s_info.ad->sel_net) {
-               char *sub_text = setting_customize_text(_(s_info.ad->sel_network), 0, BLUE_COLOR, NULL);
+       } else if (TAPI_NETWORK_SELECTIONMODE_MANUAL == s_info.sel_net) {
+               char *sub_text = setting_customize_text(_(s_info.sel_network), 0, BLUE_COLOR, NULL);
 
-               s_info.ad->data_auto_network_item = setting_create_Gendial_field_def(
+               s_info.data_auto_network_item = setting_create_Gendial_field_def(
                                s_info.genlist_sel_network, &itc_1text_1icon,
                                _Gendial_select_plmn_cb, NULL,
                                SWALLOW_Type_1ICON_1RADIO,
@@ -978,97 +1114,17 @@ static int _view_create(void *cb)
                                "IDS_ST_BODY_SELECT_AUTOMATICALLY", sub_text,
                                _select_network_chk_changed);
 
-               setting_retvm_if(NULL == s_info.ad->data_auto_network_item,
+               setting_retvm_if(NULL == s_info.data_auto_network_item,
                                SETTING_RETURN_FAIL, "Failed to calloc memory");
 
                FREE(sub_text);
 
                setting_view_network_select_network.is_create = TRUE;
-               _searching_network(s_info.ad->data_auto_network_item);
-
-               /* Searching icon appeared.
-                s_info.ad->data_search_network_item = setting_create_Gendial_field_1radio(
-                s_info.genlist_sel_network,
-                &itc_1icon,
-                NULL, NULL,
-                SWALLOW_Type_1RADIO_1SEARCH,
-                s_info.ad->chk_sel, -1, NULL, NULL);
-                __BACK_POINTER_SET(s_info.ad->data_search_network_item);
-                elm_genlist_item_select_mode_set(
-                s_info.ad->data_search_network_item->item,
-                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-                */
-
-               /*
-                if (0 == safeStrCmp("IDS_ST_BODY_NOSERVICE", s_info.ad->sel_network)
-                || 0 == safeStrCmp(_("IDS_ST_BODY_NOSERVICE"),
-                _(s_info.ad->sel_network))
-                || 0 == safeStrCmp("EMERGENCY", s_info.ad->sel_network)
-                || 0 == safeStrCmp(_("EMERGENCY"), s_info.ad->sel_network)
-                || 0 == safeStrCmp("No service", s_info.ad->sel_network)
-                || 0 == safeStrCmp("No service", _(s_info.ad->sel_network))
-                || 0 == safeStrCmp(_("IDS_CALL_POP_CALLING_EMERG_ONLY"),
-                _(s_info.ad->sel_network))
-                || 0 == safeStrCmp("Emergency calls only", _(s_info.ad->sel_network))
-                )
-                {
-                //no service case:
-                s_info.ad->data_search_network_item = setting_create_Gendial_field_1radio(
-                s_info.genlist_sel_network,
-                &itc_1icon,
-                NULL, NULL,
-                SWALLOW_Type_1RADIO_1SEARCH,
-                s_info.ad->chk_sel, -1, NULL, NULL);
-                __BACK_POINTER_SET(s_info.ad->data_search_network_item);
-                elm_genlist_item_select_mode_set(
-                s_info.ad->data_search_network_item->item,
-                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-                }
-                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_info.ad->sel_network));
-                item_Data = setting_create_Gendial_field_1radio(
-                s_info.genlist_sel_network,
-                &itc_multiline_1text_1icon,
-                setting_network_Gendial_select_plmn_cb, ad,
-                SWALLOW_Type_1RADIO,
-                s_info.ad->chk_sel, TAPI_NETWORK_SELECTIONMODE_MANUAL,
-                sel_network_desc,
-                setting_network_select_network_chk_changed);
-                setting_retvm_if(NULL == item_Data, SETTING_RETURN_FAIL,
-                "Failed to calloc memory");
-                item_Data->userdata = ad;
-
-                s_info.ad->data_search_network_item = setting_create_Gendial_field_1radio(
-                s_info.genlist_sel_network,
-                &itc_1icon,
-                NULL, NULL,
-                SWALLOW_Type_1RADIO_1SEARCH,
-                s_info.ad->chk_sel, -1, NULL, NULL);
-                __BACK_POINTER_SET(s_info.ad->data_search_network_item);
-                elm_genlist_item_select_mode_set(
-                s_info.ad->data_search_network_item->item,
-                ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-                elm_radio_value_set(s_info.ad->chk_sel,
-                TAPI_NETWORK_SELECTIONMODE_MANUAL);
-
-                }
-                */
+               _searching_network(s_info.data_auto_network_item);
        }
 
        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 _view_destroy(void *cb)
@@ -1091,7 +1147,7 @@ static int _view_destroy(void *cb)
        }
 
        /*cancel the searching operation */
-       if (s_info.ad->b_searching_network) {
+       if (s_info.b_searching_network) {
                int tapi_ret;
                tapi_ret = tel_cancel_network_manual_search(s_info.ad->handle, setting_tapi_cancel_manual_search_cb, NULL);
                if (tapi_ret != TAPI_API_SUCCESS) {
@@ -1099,39 +1155,39 @@ static int _view_destroy(void *cb)
                                        "*** [ERR] tel_cancel_network_manual_search. " "tapi_ret=%d ***",
                                        tapi_ret);
                }
-               s_info.ad->b_searching_network = FALSE;
+               s_info.b_searching_network = FALSE;
        }
 
        /*roolback..*/
        if (0 != vconf_get_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
-                       &s_info.ad->sel_net)) {
+                       &s_info.sel_net)) {
                SETTING_TRACE_ERROR("vconf get failed");
        }
 
        if (0 != vconf_get_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT,
-                       &s_info.ad->sel_act)) {
+                       &s_info.sel_act)) {
                SETTING_TRACE_ERROR("vconf get failed");
        }
 
-       FREE(s_info.ad->sel_network);
-       s_info.ad->sel_network = get_pa_select_network();
-       if (!s_info.ad->sel_network) {
-               s_info.ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK,
+       FREE(s_info.sel_network);
+       s_info.sel_network = get_pa_select_network();
+       if (!s_info.sel_network) {
+               s_info.sel_network = strndup(Keystr_UNKNOWN_NETWORK,
                                strlen(Keystr_UNKNOWN_NETWORK) + 1);
        }
 
        /*reset..*/
-       s_info.ad->b_set_manul_network = FALSE;
-       s_info.ad->b_set_auto_network = FALSE;
+       s_info.b_set_manul_network = FALSE;
+       s_info.b_set_manul_network = FALSE;
        setting_network_update_sel_network(s_info.ad);
 
        /*Following handlers will be used by async listening callback. They
         * must be reset after genlist is 'popuped'. */
-       s_info.ad->data_auto_network_item = NULL;
-       /*data_sel_net was created in main view, it won't be destoryed. */
-       /*s_info.ad->data_sel_net = NULL; */
+       s_info.data_auto_network_item = NULL;
        setting_view_network_select_network.is_create = FALSE;
 
+
+       s_info.data_sel_net = NULL;
        return SETTING_RETURN_SUCCESS;
 }
 
@@ -1227,7 +1283,7 @@ static Eina_Bool _naviframe_item_pop_cb(void *data, Elm_Object_Item *it)
        SETTING_TRACE_BEGIN;
 
        /* If registering.. popup is displaying, Back must be ignored. */
-       if (s_info.ad->network_select_registering_pop) {
+       if (s_info.network_select_registering_pop) {
                SETTING_TRACE("registering... popup is displaying. back key ignored");
                return EINA_TRUE;
        }
@@ -1255,7 +1311,7 @@ static void _search_network_cancel_cb(void *data, Evas_Object *obj, void *event_
                evas_object_del(ad->popup);
                ad->popup = NULL;
        }
-       if (ad->b_searching_network) {
+       if (s_info.b_searching_network) {
                SETTING_TRACE("Sending tel_cancel_network_manual_search..");
                int tapi_ret = tel_cancel_network_manual_search(ad->handle,
                                setting_tapi_cancel_manual_search_cb, ad);
@@ -1264,7 +1320,7 @@ static void _search_network_cancel_cb(void *data, Evas_Object *obj, void *event_
                                        "*** [ERR] tel_cancel_network_manual_search. " "tapi_ret=%d ***",
                                        tapi_ret);
                } else {
-                       ad->b_searching_network = FALSE;
+                       s_info.b_searching_network = FALSE;
                }
        }
 
@@ -1279,3 +1335,201 @@ static void _search_network_cancel_cb(void *data, Evas_Object *obj, void *event_
                elm_genlist_item_update(list_item->item);
        }
 }
+
+/**
+ * @see also __register_network
+ */
+static void _tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       SETTING_TRACE(" - result = 0x%x", result);
+       ret_if(!user_data);
+       SettingNetwork *ad = user_data;
+
+       setting_network_popup_delete(ad);
+
+       if ((TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == s_info.sel_net
+                       && !s_info.b_set_manul_network)
+                       || (TAPI_NETWORK_SELECTIONMODE_MANUAL == s_info.sel_net
+                                       && !s_info.b_set_manul_network)) {
+               /*The requeset has already been canceled, return directly*/
+               SETTING_TRACE("The requeset has already been canceled, return directly");
+               return;
+       }
+
+       if (result != TAPI_NETWORK_NO_ERR) { /*roolback..*/
+               if (TAPI_NETWORK_SELECTIONMODE_MANUAL == s_info.sel_net
+                               && s_info.data_auto_network_item
+                               && !s_info.data_auto_network_item->chk_status) {
+                       SETTING_TRACE("Need refreshing");
+                       setting_create_popup(ad, ad->md.window, NULL, keyStr_Failed_Select_Network, NULL, 2 * POPUP_INTERVAL, FALSE, FALSE, 0);
+                       elm_radio_value_set(s_info.chk_sel, -2);
+               }
+
+               return;
+       }
+
+       if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
+                       s_info.sel_net)) {
+               SETTING_TRACE_ERROR("vconf[%s] set failed");
+       }
+       if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT,
+                       s_info.sel_act)) {
+               SETTING_TRACE_ERROR("vconf[%s] set failed");
+       }
+
+       s_info.b_set_manul_network = FALSE;
+       s_info.b_set_manul_network = FALSE;
+       setting_network_update_sel_network(ad);
+
+       Evas_Object *popup = elm_popup_add(ad->md.window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
+                       eext_popup_back_cb, NULL);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
+       EVAS_HINT_EXPAND);
+       char r_str_text[128] = { 0, };
+       snprintf(r_str_text, 128, "<align=left>");
+       g_strlcat(r_str_text, _("IDS_ST_POP_REGISTERED"), 128);
+       g_strlcat(r_str_text, "</align>", 128);
+       elm_object_text_set(popup, r_str_text);
+       elm_popup_timeout_set(popup, 2.0);
+       evas_object_smart_callback_add(popup, "timeout", __back_to_previous_cb,
+                       ad);
+       evas_object_show(popup);
+}
+
+static void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       SETTING_TRACE(" - result = 0x%x", result);
+       ret_if(!user_data);
+       /*SettingNetwork *ad = user_data; */
+}
+
+static const char *setting_network_get_act_str(TelNetworkSystemType_t type)
+{
+       switch (type) {
+       case TAPI_NETWORK_SYSTEM_NO_SRV: /*0 */
+               return "NO SERVICE";
+       case TAPI_NETWORK_SYSTEM_GSM: /*1 */
+               return "GSM";
+       case TAPI_NETWORK_SYSTEM_GPRS: /*2 */
+               return "GPRS";
+       case TAPI_NETWORK_SYSTEM_EGPRS: /*3 */
+               return "EGPRS";
+       case TAPI_NETWORK_SYSTEM_PCS1900: /*4 */
+               return "PCS1900";
+       case TAPI_NETWORK_SYSTEM_UMTS: /*5 */
+               return "WCDMA";
+       case TAPI_NETWORK_SYSTEM_GSM_AND_UMTS:
+               return "GSM/WCDMA";
+       case TAPI_NETWORK_SYSTEM_HSDPA:
+               return "HSDPA";
+       case TAPI_NETWORK_SYSTEM_IS95A:
+               return "IS95A";
+       case TAPI_NETWORK_SYSTEM_IS95B:
+               return "IS95B";
+       case TAPI_NETWORK_SYSTEM_CDMA_1X:
+               return "CDMA 1X";
+       case TAPI_NETWORK_SYSTEM_EVDO_REV_0:
+               return "EV-DO rev0";
+       case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID:
+               return "1X and EV-DO rev0";
+       case TAPI_NETWORK_SYSTEM_EVDO_REV_A:
+               return "EV-DO revA";
+       case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID:
+               return "1X and EV-DO revA";
+       case TAPI_NETWORK_SYSTEM_EVDV:
+               return "EV-DV";
+       case TAPI_NETWORK_SYSTEM_LTE:
+               return "LTE";
+       default:
+               return "NO SERVICE";
+       }
+}
+
+static void __back_to_previous_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       SETTING_TRACE_BEGIN;
+       retm_if(data == NULL, "Data parameter is NULL");
+       SettingNetwork *ad = (SettingNetwork *)data;
+
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+
+       /*go back to previous view if set successfully */
+       setting_view_change(&setting_view_network_select_network, &setting_view_network_main, ad);
+}
+
+static void __selected_network_change_cb(keynode_t *key, void *data)
+{
+       /*SETTING_TRACE_BEGIN; */
+       setting_retm_if(!data, "!data");
+       SettingNetwork *ad = data;
+       char *vconf_name = vconf_keynode_get_name(key);
+
+       if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_NWNAME) ||
+                       !safeStrCmp(vconf_name,
+                                       VCONFKEY_TELEPHONY_SPN_DISP_CONDITION)
+                       || !safeStrCmp(vconf_name,
+                                       VCONFKEY_TELEPHONY_SPN_NAME)
+                       || !safeStrCmp(vconf_name,
+                                       VCONFKEY_TELEPHONY_SVCTYPE)) {
+               s_info.sel_network = get_pa_select_network();
+               if (!s_info.sel_network)
+                       s_info.sel_network = strdup(Keystr_UNKNOWN_NETWORK);
+
+               if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
+                               s_info.sel_net))
+                       SETTING_TRACE_ERROR("vconf[%s] set failed");
+
+               if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT,
+                               s_info.sel_act))
+                       SETTING_TRACE_ERROR("vconf[%s] set failed");
+
+               setting_network_update_sel_network(ad);
+       } else if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE)) {
+               SETTING_TRACE("vconf_name:%s", vconf_name);
+               setting_create_popup(ad, ad->md.naviframe, NULL,
+                               "IDS_ST_BODY_FLIGHT_MODE_HAS_BEEN_ENABLED_NETWORK_SETTINGS_WILL_CLOSE",
+                               __notify_response_cb,
+                               POPUP_INTERVAL * 2, TRUE, FALSE, 0);
+
+       }
+}
+
+static void __notify_response_cb(void *data, Evas_Object *obj, void *event_info) /* TODO Move to 'setting-network.c ?' */
+{
+       SETTING_TRACE_BEGIN;
+       SettingNetwork *ad = data;
+       ret_if(!ad);
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+       ui_app_exit();
+}
+
+void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data,
+               void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       SETTING_TRACE(" - result = 0x%x", result);
+       ret_if(!user_data);
+       SettingNetwork *ad = user_data;
+
+       if (result == TAPI_NETWORK_NO_ERR) {
+               TelNetworkSelectionMode_t sel;
+               memcpy(&sel, data, sizeof(TelNetworkSelectionMode_t));
+               SETTING_TRACE_DEBUG("s_info.sel_net[%d] %s sel[%d]", s_info.sel_net, s_info.sel_net == sel ? "==" : "!=", sel);
+               if (s_info.sel_net != sel) {
+                       s_info.sel_net = sel;
+                       vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT, s_info.sel_net);
+                       setting_network_update_sel_network(ad);
+               }
+       } else {
+       }
+}
index 30dc0c9cfd14e1772e1c8f34a84271b4f0a1a525..9cee675b6480ab97db8ae64dfd5ad8dcad86bb77 100644 (file)
@@ -21,6 +21,7 @@
 #include <setting-network.h>
 #include <setting-debug.h>
 #include <setting-cfg.h>
+#include "setting-network-select-network.h"
 
 #define SETTING_NETWORK_PACKAGE_NAME "org.tizen.setting-network"
 #define MAX_ID_LEN 512
@@ -157,55 +158,6 @@ char *setting_network_get_default_profile_name(int serviceType, SettingNetwork *
        return def_name;
 }
 
-static void __notify_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       SETTING_TRACE_BEGIN;
-       SettingNetwork *ad = data;
-       ret_if(!ad);
-       if (obj) {
-               evas_object_del(obj);
-               obj = NULL;
-       }
-       ui_app_exit();
-}
-
-static void __selected_network_change_cb(keynode_t *key, void *data)
-{
-       /*SETTING_TRACE_BEGIN; */
-       setting_retm_if(!data, "!data");
-       SettingNetwork *ad = data;
-       char *vconf_name = vconf_keynode_get_name(key);
-
-       if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_NWNAME) ||
-                       !safeStrCmp(vconf_name,
-                                       VCONFKEY_TELEPHONY_SPN_DISP_CONDITION)
-                       || !safeStrCmp(vconf_name,
-                                       VCONFKEY_TELEPHONY_SPN_NAME)
-                       || !safeStrCmp(vconf_name,
-                                       VCONFKEY_TELEPHONY_SVCTYPE)) {
-               ad->sel_network = get_pa_select_network();
-               if (!ad->sel_network)
-                       ad->sel_network = strdup(Keystr_UNKNOWN_NETWORK);
-
-               if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
-                               ad->sel_net))
-                       SETTING_TRACE_ERROR("vconf[%s] set failed");
-
-               if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT,
-                               ad->sel_act))
-                       SETTING_TRACE_ERROR("vconf[%s] set failed");
-
-               setting_network_update_sel_network(ad);
-       } else if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE)) {
-               SETTING_TRACE("vconf_name:%s", vconf_name);
-               setting_create_popup(ad, ad->md.naviframe, NULL,
-                               "IDS_ST_BODY_FLIGHT_MODE_HAS_BEEN_ENABLED_NETWORK_SETTINGS_WILL_CLOSE",
-                               __notify_response_cb,
-                               POPUP_INTERVAL * 2, TRUE, FALSE, 0);
-
-       }
-}
-
 static setting_view *__get_network_view_to_load(void *data)
 {
        SETTING_TRACE_BEGIN;
@@ -382,8 +334,7 @@ static void on_app_control(app_control_h service, void *priv)
        /*pass NULL to let TAPI access default module */
        ad->handle = tel_init(NULL);
        if (!ad->handle)
-               SETTING_TRACE_DEBUG("%s*** [ERR] tel_init. ***%s",
-                               SETTING_FONT_RED, SETTING_FONT_BLACK);
+               SETTING_TRACE_DEBUG("%s*** [ERR] tel_init. ***%s", SETTING_FONT_RED, SETTING_FONT_BLACK);
 
        if (connection_create(&(ad->connection)) != CONNECTION_ERROR_NONE)
                SETTING_TRACE_ERROR("***Failed to connection_create.***");
@@ -391,17 +342,6 @@ static void on_app_control(app_control_h service, void *priv)
        ad->view_type_string = NULL;
        app_control_get_extra_data(service, "viewtype", &ad->view_type_string);
        ad->view_to_load = __get_network_view_to_load(ad);
-       /*SETTING_TRACE("ad->whitelist_doc:%p", ad->whitelist_doc); */
-       /*SETTING_TRACE("ad->whitelist_root_node:%p",
-        * ad->whitelist_root_node); */
-
-       /*Read information from vconf, need not check whitelist in Settings */
-       /*load_XML(WHITELIST_DIR_PATH, "whiteLists",
-        * &(ad->whitelist_doc),&(ad->whitelist_root_node)); */
-
-       /*SETTING_TRACE("ad->whitelist_doc:%p", ad->whitelist_doc); */
-       /*SETTING_TRACE("ad->whitelist_root_node:%p",
-        * ad->whitelist_root_node); */
 
        /*      creating a view. */
        setting_view_node_set_cur_view(ad->view_to_load);
@@ -414,41 +354,11 @@ static void on_app_control(app_control_h service, void *priv)
 
        /* register view node table */
 #ifdef UI_NETWORK_MODE
-       if (tel_get_network_mode(ad->handle, setting_tapi_get_band_cb, ad)
-                       != TAPI_API_SUCCESS) {
-               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_band. ***");
-       }
+       select_network_app_control(ad);
 #endif
-
-       if (tel_get_network_selection_mode(ad->handle,
-                       setting_tapi_get_plmn_mode_cb, ad)
-                       != TAPI_API_SUCCESS) {
-               SETTING_TRACE_ERROR(
-                               "*** [ERR] tel_get_network_selection_mode. ***");
-       }
-
-       if (tel_get_network_serving(ad->handle,
-                       setting_tapi_get_serving_network_cb, ad)
-                       != TAPI_API_SUCCESS) {
-               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_serving. ***");
-       }
-
-       (void)vconf_notify_key_changed(VCONFKEY_TELEPHONY_NWNAME,
-                       __selected_network_change_cb, ad);
-       (void)vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
-                       __selected_network_change_cb, ad);
-       (void)vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_NAME,
-                       __selected_network_change_cb, ad);
-       (void)vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVCTYPE,
-                       __selected_network_change_cb, ad);
-       (void)vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE,
-                       __selected_network_change_cb, ad);
-
        /* start module */
-       ad->internet_apn_name = setting_network_get_default_profile_name(
-                       CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET, ad);
-       ad->MMS_apn_name = setting_network_get_default_profile_name(
-                       CONNECTION_CELLULAR_SERVICE_TYPE_MMS, ad);
+       ad->internet_apn_name = setting_network_get_default_profile_name(CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET, ad);
+       ad->MMS_apn_name = setting_network_get_default_profile_name(CONNECTION_CELLULAR_SERVICE_TYPE_MMS, ad);
 
        evas_object_show(ad->md.window);
 }
@@ -461,24 +371,13 @@ static void on_app_terminate(void *priv)
        /*unload_XML(&(ad->whitelist_doc),
         * &(ad->whitelist_root_node)); */
 
-       (void)vconf_ignore_key_changed(VCONFKEY_TELEPHONY_NWNAME,
-                       __selected_network_change_cb);
-       (void)vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,
-                       __selected_network_change_cb);
-       (void)vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_NAME,
-                       __selected_network_change_cb);
-       (void)vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE,
-                       __selected_network_change_cb);
-       (void)vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE,
-                       __selected_network_change_cb);
-
+       select_network_terminate();
        /* fix flash issue for gallery */
        if (ad->view_type_string)
                FREE(ad->view_type_string);
 
        G_FREE(ad->ed_pxy_addr_desc);
        G_FREE(ad->ed_pxy_port_desc);
-       FREE(ad->sel_network);
        FREE(ad->access_name);
        FREE(ad->con_name);
        FREE(ad->internet_apn_name);
@@ -628,26 +527,6 @@ int main(int argc, char *argv[])
  *general func
  *
  ***************************************************/
-void setting_network_popup_delete(void *data)
-{
-       SETTING_TRACE_BEGIN;
-       /* error check */
-       retm_if(data == NULL,
-                       "setting_network_tapi_popup_create Data parameter is NULL");
-       SettingNetwork *ad = (SettingNetwork *)data;
-       if (ad->network_select_registering_pop != NULL) {
-               evas_object_del(ad->network_select_registering_pop);
-               ad->network_select_registering_pop = NULL;
-       }
-       if (ad->network_popup != NULL) {
-               evas_object_del(ad->network_popup);
-               ad->network_popup = NULL;
-       }
-       if (ad->popup != NULL) {
-               evas_object_del(ad->popup);
-               ad->popup = NULL;
-       }
-}
 
 /* ***************************************************
  *
@@ -750,8 +629,7 @@ void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *data,
 /**
  * @see also tel_set_network_mode : registers this callback function
  */
-void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data,
-               void *user_data)
+void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data, void *user_data) /* TODO: Move to 'select-network' */
 {
        SETTING_TRACE_BEGIN;
        SETTING_TRACE(" - result = 0x%x  , %d", result, result);
@@ -769,302 +647,6 @@ void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data,
        }
 }
 #endif
-void __back_to_previous_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       SETTING_TRACE_BEGIN;
-       retm_if(data == NULL, "Data parameter is NULL");
-       SettingNetwork *ad = (SettingNetwork *)data;
-
-       if (obj) {
-               evas_object_del(obj);
-               obj = NULL;
-       }
-
-       /*go back to previous view if set successfully */
-       setting_view_change(&setting_view_network_select_network,
-                       &setting_view_network_main, ad);
-}
-
-/**
- * @see also __register_network
- */
-void setting_tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data,
-               void *user_data)
-{
-       SETTING_TRACE_BEGIN;
-       SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data);
-       SettingNetwork *ad = user_data;
-
-       setting_network_popup_delete(ad);
-
-       if ((TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == ad->sel_net
-                       && !ad->b_set_auto_network)
-                       || (TAPI_NETWORK_SELECTIONMODE_MANUAL == ad->sel_net
-                                       && !ad->b_set_manul_network)) {
-               /*The requeset has already been canceled, return directly*/
-               SETTING_TRACE("The requeset has already been canceled, return directly");
-               return;
-       }
-
-       if (result != TAPI_NETWORK_NO_ERR) { /*roolback..*/
-               if (TAPI_NETWORK_SELECTIONMODE_MANUAL == ad->sel_net
-                               && ad->data_auto_network_item
-                               && !ad->data_auto_network_item->chk_status) {
-                       SETTING_TRACE("Need refreshing");
-                       setting_create_popup(ad, ad->md.window, NULL,
-                                       keyStr_Failed_Select_Network, NULL,
-                                       2 * POPUP_INTERVAL, FALSE, FALSE, 0);
-                       elm_radio_value_set(ad->chk_sel, -2);
-               }
-
-               return;
-       }
-
-       if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
-                       ad->sel_net)) {
-               SETTING_TRACE_ERROR("vconf[%s] set failed");
-       }
-       if (0 != vconf_set_int(VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT,
-                       ad->sel_act)) {
-               SETTING_TRACE_ERROR("vconf[%s] set failed");
-       }
-
-       ad->b_set_auto_network = FALSE;
-       ad->b_set_manul_network = FALSE;
-       setting_network_update_sel_network(ad);
-
-       Evas_Object *popup = elm_popup_add(ad->md.window);
-       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
-       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
-                       eext_popup_back_cb, NULL);
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
-       EVAS_HINT_EXPAND);
-       char r_str_text[128] = { 0, };
-       snprintf(r_str_text, 128, "<align=left>");
-       g_strlcat(r_str_text, _("IDS_ST_POP_REGISTERED"), 128);
-       g_strlcat(r_str_text, "</align>", 128);
-       elm_object_text_set(popup, r_str_text);
-       elm_popup_timeout_set(popup, 2.0);
-       evas_object_smart_callback_add(popup, "timeout", __back_to_previous_cb,
-                       ad);
-       evas_object_show(popup);
-}
-
-void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data,
-               void *user_data)
-{
-       SETTING_TRACE_BEGIN;
-       SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data);
-       SettingNetwork *ad = user_data;
-
-       if (result == TAPI_NETWORK_NO_ERR) {
-               TelNetworkSelectionMode_t sel;
-               memcpy(&sel, data, sizeof(TelNetworkSelectionMode_t));
-               SETTING_TRACE_DEBUG("ad->sel_net[%d] %s sel[%d]", ad->sel_net,
-                               ad->sel_net == sel ? "==" : "!=", sel);
-               if (ad->sel_net != sel) {
-                       ad->sel_net = sel;
-                       vconf_set_int(VCONFKEY_SETAPPL_SELECT_NETWORK_INT,
-                                       ad->sel_net);
-                       setting_network_update_sel_network(ad);
-               }
-       } else {
-       }
-}
-
-
-void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result,
-               void *data, void *user_data)
-{
-       SETTING_TRACE_BEGIN;
-       SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data || !data);
-       SettingNetwork *ad = user_data;
-       TelNetworkServing_t *srv_nt = data;
-
-       if (result == TAPI_NETWORK_NO_ERR) {
-               ad->sel_act = srv_nt->act;
-               vconf_set_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();
-               if (!ad->sel_network) {
-                       ad->sel_network = strndup(Keystr_UNKNOWN_NETWORK,
-                                       strlen(Keystr_UNKNOWN_NETWORK) + 1);
-               }
-               setting_network_update_sel_network(ad);
-       } else {
-               /*if failed, do nothing.. */
-       }
-       SETTING_TRACE_END;
-}
-
-void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result,
-               void *data, void *user_data)
-{
-       SETTING_TRACE_BEGIN;
-       SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data);
-       /*SettingNetwork *ad = user_data; */
-}
-
-/**
- * [UI] update
- */
-void setting_network_update_sel_network(void *data)
-{
-       /*SETTING_TRACE_BEGIN; */
-       SettingNetwork *ad = data;
-       /*SETTING_TRACE("ad->sel_net:%d", ad->sel_net); */
-       /*SETTING_TRACE("ad->sel_network:%s", ad->sel_network); */
-       /*SETTING_TRACE("sel_act = [%s(%d)]",
-        * setting_network_get_act_str(ad->sel_act),ad->sel_act); */
-
-       if (ad->data_auto_network_item) {
-               if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == ad->sel_net) {
-                       /*SETTING_TRACE_DEBUG("After set as Automatic,
-                        * update " */
-                       /*      "ad->data_auto_network_item to be [%s]", */
-                       /*      ad->sel_network); */
-                       /*ad->data_auto_network_item->sub_desc =
-                        * (char *)g_strdup(_(ad->sel_network)); */
-                       char *sub_text = setting_customize_text(
-                                       _(ad->sel_network), 0, BLUE_COLOR,
-                                       NULL);
-                       SETTING_TRACE("sub_text:%s", sub_text);
-                       G_FREE(ad->data_auto_network_item->sub_desc);
-                       ad->data_auto_network_item->sub_desc = (char *)g_strdup(
-                                       sub_text);
-                       elm_object_item_data_set(
-                                       ad->data_auto_network_item->item,
-                                       ad->data_auto_network_item);
-                       elm_genlist_item_update(
-                                       ad->data_auto_network_item->item);
-                       elm_genlist_item_fields_update(
-                                       ad->data_auto_network_item->item, "*",
-                                       ELM_GENLIST_ITEM_FIELD_TEXT);
-                       FREE(sub_text);
-               } else {
-               }
-       }
-
-       if (ad->data_sel_net) { /*it indicates TAPI is not responsed in time */
-               char sel_network_desc[MAX_COMMON_BUFFER_LEN] = { 0, };
-               if (TAPI_NETWORK_SELECTIONMODE_AUTOMATIC == ad->sel_net) {
-                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
-                                       "%s, %s",
-                                       _("IDS_ST_BODY_ANSWERINGMODE_AUTOMATIC"),
-                                       _(ad->sel_network));
-
-               } else {
-                       snprintf(sel_network_desc, MAX_COMMON_BUFFER_LEN,
-                                       "%s, %s", _("IDS_ST_BODY_MANUAL"),
-                                       _(ad->sel_network));
-               }
-
-               /*SETTING_TRACE("sel_network_desc:%s", sel_network_desc); */
-
-               G_FREE(ad->data_sel_net->sub_desc);
-               ad->data_sel_net->sub_desc = (char *)g_strdup(
-                               _(sel_network_desc));
-
-               elm_object_item_data_set(ad->data_sel_net->item,
-                               ad->data_sel_net);
-               elm_genlist_item_update(ad->data_sel_net->item);
-       }
-}
-
-const char *setting_network_get_act_str(TelNetworkSystemType_t type)
-{
-       switch (type) {
-       case TAPI_NETWORK_SYSTEM_NO_SRV: /*0 */
-               return "NO SERVICE";
-       case TAPI_NETWORK_SYSTEM_GSM: /*1 */
-               return "GSM";
-       case TAPI_NETWORK_SYSTEM_GPRS: /*2 */
-               return "GPRS";
-       case TAPI_NETWORK_SYSTEM_EGPRS: /*3 */
-               return "EGPRS";
-       case TAPI_NETWORK_SYSTEM_PCS1900: /*4 */
-               return "PCS1900";
-       case TAPI_NETWORK_SYSTEM_UMTS: /*5 */
-               return "WCDMA";
-       case TAPI_NETWORK_SYSTEM_GSM_AND_UMTS:
-               return "GSM/WCDMA";
-       case TAPI_NETWORK_SYSTEM_HSDPA:
-               return "HSDPA";
-       case TAPI_NETWORK_SYSTEM_IS95A:
-               return "IS95A";
-       case TAPI_NETWORK_SYSTEM_IS95B:
-               return "IS95B";
-       case TAPI_NETWORK_SYSTEM_CDMA_1X:
-               return "CDMA 1X";
-       case TAPI_NETWORK_SYSTEM_EVDO_REV_0:
-               return "EV-DO rev0";
-       case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID:
-               return "1X and EV-DO rev0";
-       case TAPI_NETWORK_SYSTEM_EVDO_REV_A:
-               return "EV-DO revA";
-       case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID:
-               return "1X and EV-DO revA";
-       case TAPI_NETWORK_SYSTEM_EVDV:
-               return "EV-DV";
-       case TAPI_NETWORK_SYSTEM_LTE:
-               return "LTE";
-       default:
-               return "NO SERVICE";
-       }
-}
-
-bool setting_network_equal_profile(connection_profile_h pf1,
-               connection_profile_h pf2)
-{
-       connection_profile_type_e type1 = 0;
-       connection_profile_type_e type2 = 0;
-       connection_cellular_service_type_e srvtype1 = 0;
-       connection_cellular_service_type_e srvtype2 = 0;
-       char *apn1 = NULL;
-       char *apn2 = NULL;
-       char *name1 = NULL;
-       char *name2 = NULL;
-
-       if (!pf1 && !pf2) {
-               SETTING_TRACE("Both profile are NULL, return TRUE");
-               return TRUE;
-       } else if (!pf1 || !pf2) {
-               SETTING_TRACE("One profile is NULL, one is not, return FALSE");
-               return FALSE;
-       }
-
-       (void)connection_profile_get_type(pf1, &type1);
-       (void)connection_profile_get_type(pf2, &type2);
-       (void)connection_profile_get_cellular_service_type(pf1, &srvtype1);
-       (void)connection_profile_get_cellular_service_type(pf2, &srvtype2);
-       (void)connection_profile_get_cellular_apn(pf1, &apn1);
-       (void)connection_profile_get_cellular_apn(pf2, &apn2);
-       (void)connection_profile_get_name(pf1, &name1);
-       (void)connection_profile_get_name(pf2, &name2);
-
-       if (type1 == type2 && srvtype1 == srvtype2 && 0 == safeStrCmp(apn1,
-                       apn2) && 0 == safeStrCmp(name1, name1)) {
-               SETTING_TRACE("They have same key fields, return TRUE.");
-               FREE(apn1);
-               FREE(apn2);
-               FREE(name1);
-               FREE(name2);
-               return TRUE;
-       } else {
-               SETTING_TRACE("They don't have same key fields, return FALSE.");
-               FREE(apn1);
-               FREE(apn2);
-               FREE(name1);
-               FREE(name2);
-               return FALSE;
-       }
-}
 
 void setting_network_reget_profile_list(void *cb)
 {