[UI][DATA] Network mode view updated. 37/114937/4
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Wed, 15 Feb 2017 18:03:57 +0000 (19:03 +0100)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Mon, 20 Feb 2017 14:38:38 +0000 (15:38 +0100)
Change-Id: If23b0e5c72513774a2906cfa92b0c26b178f6b7a
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
setting-common/src/setting-common-view.c
setting-network/include/setting-network.h
setting-network/src/setting-network-main.c
setting-network/src/setting-network-mode.c
setting-network/src/setting-network-select-network.c
setting-network/src/setting-network.c

index 6d221b2e222ad95655c2e77cd3281eed8388c8e0..e87fe3120daf3a73bb97b08b51c71ead74a09aad 100644 (file)
@@ -136,8 +136,7 @@ int setting_view_create(setting_view *view, void *cb)
 {
        LAUNCH_SETTING_IN();
        /* error check */
-       setting_retvm_if(!view || !cb, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
-                       "Invalid arguement");
+       setting_retvm_if(!view, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "Invalid arguement");
 
        int ret = SETTING_RETURN_FAIL;
 
@@ -237,9 +236,7 @@ int setting_view_change(setting_view *from_view, setting_view *to_view,
 {
        SETTING_TRACE_BEGIN;
        /* error check */
-       setting_retvm_if(!from_view || !to_view || !cb,
-                       SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
-                       "Invalid arguement");
+       setting_retvm_if(!from_view || !to_view, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "Invalid arguement");
 
        int ret = SETTING_RETURN_SUCCESS;
        /*from a parent view to his child view, don't need cleanup
index 0c0c430af7795316791142f1056edb472de5f8a0..0928d52502a812efb7bb503361ed24975705d306 100644 (file)
 #define COUNTRY_CODE_LEN       3
 #define NETWORK_CODE_LEN       3
 #define PRE_NETWORK_NAME_MAX 256
+#define MAX_SIM_COUNT 2
 
 /* the popupresponse action ID */
 #define SETTING_NETWORK_POP_RESPONSE_ACTION_CANCEL     10
@@ -176,7 +177,7 @@ typedef enum {
 struct _SettingNetwork {
        MainData md;
 
-       TapiHandle *handle;
+       TapiHandle *handle[MAX_SIM_COUNT];
        connection_h connection;
 
 #if SUPPORT_TETHERING
@@ -192,7 +193,7 @@ struct _SettingNetwork {
        char *view_type_string;
 
 #ifdef UI_NETWORK_MODE
-       Setting_GenGroupItem_Data *data_net_mode;
+       Setting_GenGroupItem_Data *data_net_mode[2];
 #endif
 
        Setting_GenGroupItem_Data *internet_conn;
index 2566c8b7b4f21fe391d0dc40e5891849cf4c7249..49c02e0ada528d6f2ca6edc48a3db488542b9cf9 100755 (executable)
@@ -53,8 +53,6 @@ static struct setting_network_main {
        Evas_Object *popup_data_on;
        Evas_Object *popup_data_off;
        Setting_GenGroupItem_Data *service_providers;
-       Setting_GenGroupItem_Data *network_mode_sim_1;
-       Setting_GenGroupItem_Data *network_mode_sim_2;
        Setting_GenGroupItem_Data *data_connection;
        Setting_GenGroupItem_Data *data_mobile_data;
        Setting_GenGroupItem_Data *data_roaming;
@@ -488,6 +486,42 @@ static int setting_network_get_state_mobile_data(int *value)
        }
 }
 
+void _item_Gendial_network_mode_mouse_up_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       int ret;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, 0);
+
+       ret = setting_view_change(&setting_view_network_main, &setting_view_network_mode, data);
+
+       if (ret != SETTING_RETURN_SUCCESS)
+               SETTING_TRACE_ERROR("Failed to switch view");
+}
+
+static inline void _add_network_mode_items(SettingNetwork* ad)
+{
+       char *titles[MAX_SIM_COUNT] = {"SIM 1 network mode", "SIM 2 network mode"};
+       int i;
+
+       for (i = 0; i < MAX_SIM_COUNT; ++i) {
+               ad->data_net_mode[i] = setting_create_Gendial_field_def(ad->md.genlist,
+                                       &itc_2text_3_parent, _item_Gendial_network_mode_mouse_up_cb,
+                                       (void *)i, SWALLOW_Type_INVALID, NULL, NULL, 0,
+                                       titles[i], NULL, NULL);
+
+               if (!ad->data_net_mode[i]) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] ad->data_net_mode[i] == NULL", __FILE__, __LINE__);
+                       continue;
+               }
+
+               ad->data_net_mode[i]->int_slp_setting_binded = INT_SLP_SETTING_NETWORK_MODE;
+               __BACK_POINTER_SET(ad->data_net_mode[i]);
+
+//             ad->data_net_mode[i]->sub_desc =
+       }
+
+}
+
 static int _view_create(void *cb)
 {
        SETTING_TRACE_BEGIN;
@@ -509,8 +543,7 @@ static int _view_create(void *cb)
        evas_object_smart_callback_add(ad->md.genlist, "realized",
                        __gl_realized_cb, ad);
 
-       elm_genlist_item_select_mode_set(item,
-                       ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
 
        /* mobile data ON  --> Data Roaming activate */
        /* mobile data OFF --> Data Roaming de-activate */
@@ -563,28 +596,7 @@ static int _view_create(void *cb)
                        NULL,
                        NULL);
 
-       ad->data_net_mode = setting_create_Gendial_field_def(ad->md.genlist,
-                       &itc_2text_3_parent,
-                       _item_Gendial_mouse_up_cb, ad,
-                       SWALLOW_Type_INVALID, NULL, NULL, 0,
-                       "SIM 1 network mode",
-                       NULL,
-                       NULL);
-
-       s_info.network_mode_sim_2 = setting_create_Gendial_field_def(ad->md.genlist,
-                       &itc_2text_3_parent,
-                       _item_Gendial_mouse_up_cb, ad,
-                       SWALLOW_Type_INVALID, NULL, NULL, 0,
-                       "SIM 2 network mode",
-                       NULL,
-                       NULL);
-
-       if (ad->data_net_mode) {
-               ad->data_net_mode->int_slp_setting_binded = INT_SLP_SETTING_NETWORK_MODE;
-               __BACK_POINTER_SET(ad->data_net_mode);
-       } else {
-               SETTING_TRACE_ERROR("ad->data_net_modeis NULL");
-       }
+       _add_network_mode_items(ad);
 
        /* Don't need to check flight mode,if flight mode is on, thw whole
         * Network function will be disable*/
@@ -746,17 +758,14 @@ static void _setting_network_popup_data_roaming_hide_cb(void *data,
        /*      elm_popup_dismiss(obj); */
 }
 
-static void _item_Gendial_mouse_up_cb(void *data,
-               Evas_Object *obj, void *event_info)
+static void _item_Gendial_mouse_up_cb(void *data, Evas_Object *obj, void *event_info)
 {
        SETTING_TRACE_BEGIN;
        /* error check */
        setting_retm_if(data == NULL, "Data parameter is NULL");
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
        elm_genlist_item_selected_set(item, 0);
-       Setting_GenGroupItem_Data *list_item =
-                       (Setting_GenGroupItem_Data *)elm_object_item_data_get(
-                                       item);
+       Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
        setting_retm_if(NULL == list_item, "list_item is NULL");
 
        SettingNetwork *ad = (SettingNetwork *)data;
@@ -769,7 +778,7 @@ static void _item_Gendial_mouse_up_cb(void *data,
        if (!safeStrCmp("SIM 1 network mode", list_item->keyStr)) {
 //             _mode_popup(ad);
 
-               ret = setting_view_change(&setting_view_network_main, &setting_view_network_mode, ad);
+               ret = setting_view_change(&setting_view_network_main, &setting_view_network_mode, (void *)0);
        } else if (!safeStrCmp("Service providers", list_item->keyStr)) {
                select_network_show(ad);
        } else if (!safeStrCmp(KeyStr_UseMobileData, list_item->keyStr)) {
index f4eed38fdfe554e49785d2924ffaf6cb2d688e67..8f8ec8090f314b7e2144095c9dc5fc009230a709 100644 (file)
@@ -29,17 +29,12 @@ static int _view_cleanup(void *cb);
 
 static struct setting_network_mode_info {
        SettingNetwork *ad;
-
        Evas_Object *genlist;
-
        Setting_GenGroupItem_Data *lte_wcdma_gsm;
        Setting_GenGroupItem_Data *wcdma_gsm;
        Setting_GenGroupItem_Data *wcdma_only;
        Setting_GenGroupItem_Data *gsm_only;
-#ifdef UI_NETWORK_MODE
-       int net_mode; /* like vconf key */
-#endif
-
+       int current_sim;
 } s_info = {0,};
 
 setting_view setting_view_network_mode = {
@@ -78,87 +73,75 @@ static void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *data,
 {
        SETTING_TRACE_BEGIN;
        SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data);
-       SettingNetwork *ad = user_data;
+       int sim_num = (int)user_data;
 
-       if (ad->network_popup) {
-               evas_object_del(ad->network_popup);
-               ad->network_popup = NULL;
+       if (s_info.ad->network_popup) {
+               evas_object_del(s_info.ad->network_popup);
+               s_info.ad->network_popup = NULL;
        }
 
-       if (result == TAPI_NETWORK_NO_ERR) {
-               int band;
-               int temp_net_mode = 0;
-               memcpy(&band, data, sizeof(int));
-
-               SETTING_TRACE("tel_get_network_mode() callback received, band=%d",
-                               band);
-
-               temp_net_mode = band;
-
-               /*      ***BEGIN***      Fixed the problem of word twinkle
-                * SAMSUNG 2010/7/21 modify */
-               s_info.net_mode = temp_net_mode;
-
-               const char *sub_desc = NULL;
-               /* Need to fix */
-               char *szCscFeatureValue = "all_numeric";
-
-               switch (s_info.net_mode) {
-               case TAPI_NETWORK_MODE_AUTO:
-               case TAPI_NETWORK_MODE_LTE | TAPI_NETWORK_MODE_WCDMA
-               | TAPI_NETWORK_MODE_GSM:
-                       if (is_lte_on_feature(ad)) {
-                               if (strcmp(szCscFeatureValue, "all_numeric") == 0)
-                                       sub_desc = _("IDS_ST_OPT_4G_3G_2G_HAUTO_CONNECT");
-                               else
-                                       sub_desc = _("IDS_ST_OPT_LTE_WCDMA_GSM_HAUTO_CONNECT");
-                       }
-                       break;
-               case TAPI_NETWORK_MODE_WCDMA | TAPI_NETWORK_MODE_GSM:
-                       if (strcmp(szCscFeatureValue, "all_numeric") == 0)
-                               sub_desc = _("IDS_ST_OPT_3G_2G_HAUTO_CONNECT");
-                       else
-                               sub_desc = _("IDS_ST_OPT_WCDMA_GSM_HAUTO_CONNECT");
-                       break;
-               case TAPI_NETWORK_MODE_WCDMA:
-                       if (strcmp(szCscFeatureValue, "all_numeric") == 0)
-                               sub_desc = _("IDS_ST_BODY_3G_ONLY");
-                       else
-                               sub_desc = _("IDS_ST_MBODY_WCDMA_ONLY");
-                       break;
-               case TAPI_NETWORK_MODE_GSM:
+       if (result != TAPI_NETWORK_NO_ERR)
+               SETTING_TRACE("tel_get_network_mode() callback error(%s)", get_error_message(result));
+
+       int band;
+       int temp_net_mode = 0;
+       memcpy(&band, data, sizeof(int));
+
+       SETTING_TRACE("tel_get_network_mode() callback received, band=%d", band);
+
+       temp_net_mode = band;
+
+       const char *sub_desc = NULL;
+       /* Need to fix */
+       char *szCscFeatureValue = "all_numeric";
+
+       switch (temp_net_mode) {
+       case TAPI_NETWORK_MODE_AUTO:
+       case TAPI_NETWORK_MODE_LTE | TAPI_NETWORK_MODE_WCDMA | TAPI_NETWORK_MODE_GSM:
+               if (is_lte_on_feature(s_info.ad)) {
                        if (strcmp(szCscFeatureValue, "all_numeric") == 0)
-                               sub_desc = _("IDS_ST_OPT_2G_ONLY");
+                               sub_desc = _("IDS_ST_OPT_4G_3G_2G_HAUTO_CONNECT");
                        else
-                               sub_desc = _("IDS_ST_MBODY_GSM_ONLY");
-                       break;
-                       /* for docomo */
-               case TAPI_NETWORK_MODE_LTE | TAPI_NETWORK_MODE_WCDMA:
-                       sub_desc = _(Keystr_NetBrand_LTE_WCDMA);
-                       break;
-               default:
-                       break;
+                               sub_desc = _("IDS_ST_OPT_LTE_WCDMA_GSM_HAUTO_CONNECT");
                }
+               break;
+       case TAPI_NETWORK_MODE_WCDMA | TAPI_NETWORK_MODE_GSM:
+               if (strcmp(szCscFeatureValue, "all_numeric") == 0)
+                       sub_desc = _("IDS_ST_OPT_3G_2G_HAUTO_CONNECT");
+               else
+                       sub_desc = _("IDS_ST_OPT_WCDMA_GSM_HAUTO_CONNECT");
+               break;
+       case TAPI_NETWORK_MODE_WCDMA:
+               if (strcmp(szCscFeatureValue, "all_numeric") == 0)
+                       sub_desc = _("IDS_ST_BODY_3G_ONLY");
+               else
+                       sub_desc = _("IDS_ST_MBODY_WCDMA_ONLY");
+               break;
+       case TAPI_NETWORK_MODE_GSM:
+               if (strcmp(szCscFeatureValue, "all_numeric") == 0)
+                       sub_desc = _("IDS_ST_OPT_2G_ONLY");
+               else
+                       sub_desc = _("IDS_ST_MBODY_GSM_ONLY");
+               break;
+               /* for docomo */
+       case TAPI_NETWORK_MODE_LTE | TAPI_NETWORK_MODE_WCDMA:
+               sub_desc = _(Keystr_NetBrand_LTE_WCDMA);
+               break;
+       default:
+               break;
+       }
 
-               if (ad->data_net_mode) {
-                       ad->data_net_mode->sub_desc = (char *)g_strdup(
-                                       sub_desc);
-                       elm_object_item_data_set(ad->data_net_mode->item,
-                                       ad->data_net_mode);
-                       elm_genlist_item_update(ad->data_net_mode->item);
-                       elm_genlist_item_expanded_set(ad->data_net_mode->item,
-                                       FALSE);
-               }
+       SETTING_TRACE("Updating: sim_num == (%d), with text: %s", sim_num, sub_desc);
 
-               vconf_set_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, s_info.net_mode);
-               /*} */
-               /*      ****END****      Fixed the problem of word twinkle
-                * SAMSUNG 2010/7/21 modify */
-       } else {
-               SETTING_TRACE("tel_get_network_mode() callback error(%d)",
-                               result);
+       if (s_info.ad->data_net_mode[sim_num]) {
+               s_info.ad->data_net_mode[sim_num]->sub_desc = (char *)g_strdup(sub_desc);
+               elm_object_item_data_set(s_info.ad->data_net_mode[sim_num]->item, s_info.ad->data_net_mode[sim_num]);
+               elm_genlist_item_update(s_info.ad->data_net_mode[sim_num]->item);
+               elm_genlist_item_expanded_set(s_info.ad->data_net_mode[sim_num]->item, FALSE);
        }
+
+       if (s_info.wcdma_gsm && sim_num == s_info.current_sim)
+               elm_radio_value_set(s_info.wcdma_gsm->rgd, temp_net_mode);
 }
 
 /**
@@ -167,26 +150,44 @@ static void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *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);
-       ret_if(!user_data);
-       SettingNetwork *ad = user_data;
-       ret_if(NULL == ad->data_net_mode);
-       if (ad->network_popup) {
-               evas_object_del(ad->network_popup);
-               ad->network_popup = NULL;
+       int sim_num = (int)user_data;
+
+       SETTING_TRACE("sim_num == %d - result = 0x%x     , %d", sim_num, result, result);
+
+       ret_if(NULL == s_info.ad->data_net_mode[sim_num]);
+       if (s_info.ad->network_popup) {
+               evas_object_del(s_info.ad->network_popup);
+               s_info.ad->network_popup = NULL;
        }
 
-       if (tel_get_network_mode(ad->handle, setting_tapi_get_band_cb, ad)
-                       != TAPI_API_SUCCESS) {
+       if (tel_get_network_mode(handle, setting_tapi_get_band_cb, user_data) != TAPI_API_SUCCESS)
                SETTING_TRACE_ERROR("*** [ERR] tel_get_network_band. ***");
+
+       SETTING_TRACE_END;
+}
+
+static void _update_band_status(void)
+{
+       SETTING_TRACE_BEGIN;
+       int i;
+       for (i = 0; i < MAX_SIM_COUNT; ++i) {
+               if (s_info.ad->handle[i] && tel_get_network_mode(s_info.ad->handle[i], setting_tapi_get_band_cb, (void *)i) != TAPI_API_SUCCESS)
+                               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_band. ***");
+
+               SETTING_TRACE("Handle %d init", i);
        }
+
+       SETTING_TRACE_END;
 }
 
 void setting_network_mode_app_control(SettingNetwork *ad)
 {
-       /* register view node table */
-       if (ad->handle && tel_get_network_mode(ad->handle, setting_tapi_get_band_cb, ad) != TAPI_API_SUCCESS)
-               SETTING_TRACE_ERROR("*** [ERR] tel_get_network_band. ***");
+       SETTING_TRACE_BEGIN;
+
+       s_info.ad = ad;
+       _update_band_status();
+
+       SETTING_TRACE_END;
 }
 
 /**
@@ -197,54 +198,35 @@ void __network_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
        SETTING_TRACE_BEGIN;
        /* error check */
        retm_if(event_info == NULL, "Invalid argument: event info is NULL");
-       ret_if(NULL == data);
-       SettingNetwork *ad = (SettingNetwork *)data;
 
        Elm_Object_Item *subitem = (Elm_Object_Item *)event_info;
        elm_genlist_item_selected_set(subitem, 0);
 
        Setting_GenGroupItem_Data *data_subItem = elm_object_item_data_get(subitem);
 
-       SETTING_TRACE("s_info.net_mode=%d", s_info.net_mode);
-       SETTING_TRACE("elm_radio_value_get(ad->data_net_mode->rgd):%d", elm_radio_value_get(ad->data_net_mode->rgd));
-       SETTING_TRACE("data_subItem->chk_status=%d", data_subItem->chk_status);
-
-       if (s_info.net_mode == data_subItem->chk_status) {
-               SETTING_TRACE("No change");
-               return;
-       }
-
        int value_use_packet;
-
        vconf_get_int(VCONFKEY_DNET_STATE, &value_use_packet);
 
        /*it will be deleted in callback set by tel_set_network_mode(
         * that is setting_tapi_set_band_cb.) */
-       ad->network_popup = setting_create_popup_with_progressbar(ad,
-                       ad->md.window, PROGRESSBAR_STYLE,
+       s_info.ad->network_popup = setting_create_popup_with_progressbar(s_info.ad,
+                       s_info.ad->md.window, PROGRESSBAR_STYLE,
                        NULL, "IDS_ST_BUTTON2_PROCESSING_ING",
                        NULL, 0.0, TRUE, FALSE, 0);
 
-       elm_radio_value_set(ad->data_net_mode->rgd, data_subItem->chk_status);
-       s_info.net_mode = data_subItem->chk_status;
+       elm_radio_value_set(s_info.ad->data_net_mode[s_info.current_sim]->rgd, data_subItem->chk_status);
 
        /*for delay.. */
-       if (ad->timer) {
-               ecore_timer_del(ad->timer);
-               ad->timer = NULL;
+       if (s_info.ad->timer) {
+               ecore_timer_del(s_info.ad->timer);
+               s_info.ad->timer = NULL;
        }
 
        SETTING_TRACE("tel_set_network_mode(data_subItem->chk_status=%d) run", data_subItem->chk_status);
-       int tapi_ret = tel_set_network_mode(ad->handle, data_subItem->chk_status, setting_tapi_set_band_cb, ad);
-
+       int tapi_ret = tel_set_network_mode(s_info.ad->handle[s_info.current_sim], data_subItem->chk_status, setting_tapi_set_band_cb, (void *)s_info.current_sim);
        if (tapi_ret != TAPI_API_SUCCESS) {
                SETTING_TRACE_DEBUG("%s*** [ERR] tel_set_network_mode. tapi_ret=%d ***%s", SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
-               setting_create_popup(ad, ad->md.window, NULL, Invok_API_Failed_Desc, NULL, POPUP_INTERVAL, FALSE, FALSE, 0);
-               /*rollback */
-               int err = 0;
-               int ret = setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded, &(s_info.net_mode), &err);
-               if (ret == SETTING_RETURN_FAIL)
-                       SETTING_TRACE_ERROR("failed to get vconf");
+               setting_create_popup(s_info.ad, s_info.ad->md.window, NULL, Invok_API_Failed_Desc, NULL, POPUP_INTERVAL, FALSE, FALSE, 0);
        } else {
                SETTING_TRACE("tel_set_network_mode()=TAPI_API_SUCCESS");
        }
@@ -266,7 +248,7 @@ static inline Setting_GenGroupItem_Data *_add_mode(Evas_Object *rdg, char *pszSt
 
        Setting_GenGroupItem_Data *ret = setting_create_Gendial_field_1radio(
                        s_info.genlist, &itc_multiline_1text_1icon,
-                       __network_sub_list_sel_cb, s_info.ad,
+                       __network_sub_list_sel_cb, NULL,
                        SWALLOW_Type_1RADIO_RIGHT, rdg,
                        status,
                        _(pszStrId), __network_default_rd_change);
@@ -275,18 +257,6 @@ static inline Setting_GenGroupItem_Data *_add_mode(Evas_Object *rdg, char *pszSt
        return ret;
 }
 
-static inline void _set_mode(Setting_GenGroupItem_Data *item_data)
-{
-       SETTING_TRACE_BEGIN;
-       if (!item_data)
-               dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] item_data == NULL", __FILE__, __LINE__);
-
-       elm_radio_value_set(s_info.ad->data_net_mode->rgd, item_data->chk_status);
-       SETTING_TRACE("item_data->chk_status=%d checked", item_data->chk_status);
-
-       SETTING_TRACE_END;
-}
-
 static inline Evas_Object *_prepare_radio_group(int value)
 {
        SETTING_TRACE_BEGIN;
@@ -314,6 +284,7 @@ static void _fill_list(void)
                return;
        }
 
+
        setting_get_int_slp_key(INT_SLP_SETTING_NETWORK_MODE, &value, &err);
        Evas_Object *rdg = _prepare_radio_group(value);
 
@@ -325,23 +296,6 @@ static void _fill_list(void)
        s_info.wcdma_only = _add_mode(rdg, "IDS_ST_BODY_3G_ONLY", TAPI_NETWORK_MODE_WCDMA);
        s_info.gsm_only = _add_mode(rdg, "IDS_ST_OPT_2G_ONLY", TAPI_NETWORK_MODE_GSM);
 
-       /* Selection */
-       if (is_lte_on_feature(s_info.ad) && (value & TAPI_NETWORK_MODE_LTE) && (value & TAPI_NETWORK_MODE_WCDMA) && (value & TAPI_NETWORK_MODE_GSM)) {
-               SETTING_TRACE("TAPI_NETWORK_MODE_LTE|TAPI_NETWORK_MODE_WCDMA|TAPI_NETWORK_MODE_GSM selected");
-               _set_mode(s_info.lte_wcdma_gsm);
-       } else if ((value & TAPI_NETWORK_MODE_WCDMA) && (value & TAPI_NETWORK_MODE_GSM)) {
-               SETTING_TRACE("TAPI_NETWORK_MODE_WCDMA|TAPI_NETWORK_MODE_GSM selected");
-               _set_mode(s_info.wcdma_gsm);
-       } else if (value & TAPI_NETWORK_MODE_WCDMA) {
-               SETTING_TRACE("TAPI_NETWORK_MODE_WCDMA selected");
-               _set_mode(s_info.wcdma_only);
-       } else if (value & TAPI_NETWORK_MODE_GSM) {
-               SETTING_TRACE("TAPI_NETWORK_MODE_GSM selected");
-               _set_mode(s_info.gsm_only);
-       } else {
-               SETTING_TRACE_ERROR("TAPI_NETWORK(%d) unknown", value);
-       }
-
        SETTING_TRACE("after value set -- value: %d, err: %d", value, err);
        SETTING_TRACE_END;
 }
@@ -349,7 +303,13 @@ static void _fill_list(void)
 static int _view_create(void *cb)
 {
        SETTING_TRACE_BEGIN;
-       s_info.ad = (SettingNetwork *)cb;
+
+       if (!s_info.ad) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] s_info.ad == NULL", __FILE__, __LINE__);
+               return SETTING_RETURN_FAIL;
+       }
+
+       s_info.current_sim = (int)cb;
 
        setting_create_genlist_and_push_to_naviframe(
                        "IDS_COM_BODY_NETWORK_OPERATORS",
@@ -357,8 +317,11 @@ static int _view_create(void *cb)
                        &s_info.genlist, s_info.ad->md.naviframe);
 
        _fill_list();
+       _update_band_status();
 
        setting_view_network_mode.is_create = TRUE;
+
+       SETTING_TRACE_END;
        return SETTING_RETURN_SUCCESS;
 }
 
index cf0333589998ad8b894d987226e8ac6b1b3bf929..030f648ebc8940d7d432c3774202161e12deefef 100644 (file)
@@ -84,12 +84,18 @@ setting_view setting_view_network_select_network = {
        .cleanup = NULL
 };
 
-void select_network_app_control(SettingNetworkad)
+void select_network_app_control(SettingNetwork *ad)
 {
-       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. ***");
+       int i;
+       s_info.ad = ad;
+
+       for (i = 0; i < MAX_SIM_COUNT; ++i) {
+               if (tel_get_network_selection_mode(ad->handle[i], setting_tapi_get_plmn_mode_cb, (void *)i) != TAPI_API_SUCCESS)
+                       SETTING_TRACE_ERROR("*** [ERR] tel_get_network_selection_mode. ***");
+
+               if (tel_get_network_serving(ad->handle[i], setting_tapi_get_serving_network_cb, (void *)i) != 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);
@@ -133,8 +139,7 @@ void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *d
 {
        SETTING_TRACE_BEGIN;
        SETTING_TRACE(" - result = 0x%x", result);
-       ret_if(!user_data || !data);
-       SettingNetwork *ad = user_data;
+       ret_if(!data);
        TelNetworkServing_t *srv_nt = data;
 
        if (result == TAPI_NETWORK_NO_ERR) {
@@ -144,11 +149,10 @@ void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *d
                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);
+               if (!s_info.sel_network)
+                       s_info.sel_network = strndup(Keystr_UNKNOWN_NETWORK, strlen(Keystr_UNKNOWN_NETWORK) + 1);
+
+               setting_network_update_sel_network(s_info.ad);
        } else {
                /*if failed, do nothing.. */
        }
@@ -313,7 +317,8 @@ void _register_network_automaticaly(SettingNetwork *ad, Setting_GenGroupItem_Dat
 {
        s_info.sel_net = TAPI_NETWORK_SELECTIONMODE_AUTOMATIC;
        SETTING_TRACE("Sending tel_select_network_automatic..");
-       int tapi_ret = tel_select_network_automatic(ad->handle, _tapi_set_plmn_mode_cb, ad);
+
+       int tapi_ret = tel_select_network_automatic(ad->handle[0], _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);
@@ -388,7 +393,7 @@ void _register_network_manual(SettingNetwork *ad, Setting_GenGroupItem_Data *lis
        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,
+       int tapi_ret = tel_select_network_manual(ad->handle[0],
                        s_info.plmn_info.network_list[cnt].plmn,
                        s_info.plmn_info.network_list[cnt].access_technology,
                        _tapi_set_plmn_mode_cb, ad);
@@ -437,7 +442,7 @@ static void _register_network(Setting_GenGroupItem_Data *list_item)
 
        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);
+               tapi_ret = tel_cancel_network_manual_search(ad->handle[0], 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
@@ -541,7 +546,7 @@ static Eina_Bool _search_net_on_timer(void *data)
        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[0], _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",
@@ -741,7 +746,7 @@ static void _tapi_search_network_cb(TapiHandle *handle, int result, void *data,
 
                const char *pa_net_name = get_pa_select_network();
                char *cur_plmn = NULL;
-               tel_get_property_string(ad->handle, TAPI_PROP_NETWORK_PLMN,
+               tel_get_property_string(ad->handle[0], TAPI_PROP_NETWORK_PLMN,
                                &cur_plmn);
                SETTING_TRACE("VCONFKEY_TELEPHONY_NWNAME:pa_net_name:%s",
                                pa_net_name);
@@ -879,7 +884,7 @@ static void _searching_network(Setting_GenGroupItem_Data *list_item)
        int tapi_ret;
        /*searching list */
        /*ASYNC API - TAPI_EVENT_NETWORK_SEARCH_CNF */
-       tapi_ret = tel_search_network(ad->handle,
+       tapi_ret = tel_search_network(ad->handle[0],
                        _tapi_search_network_cb, ad);
        if (tapi_ret != TAPI_API_SUCCESS) { /* error handling.. */
                SETTING_TRACE_ERROR(
@@ -1147,7 +1152,7 @@ static int _view_destroy(void *cb)
        /*cancel the searching operation */
        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);
+               tapi_ret = tel_cancel_network_manual_search(s_info.ad->handle[0], setting_tapi_cancel_manual_search_cb, NULL);
                if (tapi_ret != TAPI_API_SUCCESS) {
                        SETTING_TRACE_ERROR(
                                        "*** [ERR] tel_cancel_network_manual_search. " "tapi_ret=%d ***",
@@ -1311,15 +1316,11 @@ static void _search_network_cancel_cb(void *data, Evas_Object *obj, void *event_
        }
        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);
-               if (tapi_ret != TAPI_API_SUCCESS) {
-                       SETTING_TRACE_ERROR(
-                                       "*** [ERR] tel_cancel_network_manual_search. " "tapi_ret=%d ***",
-                                       tapi_ret);
-               } else {
+               int tapi_ret = tel_cancel_network_manual_search(ad->handle[0], 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
                        s_info.b_searching_network = FALSE;
-               }
        }
 
        /* Restore selection automatically */
@@ -1470,22 +1471,17 @@ static void __selected_network_change_cb(keynode_t *key, void *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)) {
+                       !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))
+               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))
+               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);
@@ -1511,13 +1507,10 @@ static void __notify_response_cb(void *data, Evas_Object *obj, void *event_info)
        ui_app_exit();
 }
 
-void setting_tapi_get_plmn_mode_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)
 {
        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;
@@ -1526,7 +1519,7 @@ void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data,
                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);
+                       setting_network_update_sel_network(s_info.ad);
                }
        } else {
        }
index 1dbd8a288647e123b03dcf0a61f54e2735b2e0e5..d26a74c1560fbe72ae5275dcfe62d94934753bdc 100644 (file)
@@ -149,8 +149,6 @@ char *get_default_profile_name(SettingNetwork *ad, connection_cellular_service_t
        return def_name;
 }
 
-
-
 char *setting_network_get_default_profile_name(int serviceType, SettingNetwork *ad)
 {
        char *def_name = get_default_profile_name(ad, serviceType);
@@ -174,29 +172,52 @@ static setting_view *__get_network_view_to_load(void *data)
                return &setting_view_network_select_network;
 
        } else {
-               setting_view_node_table_register(&setting_view_network_main,
-                               NULL);
-               setting_view_node_table_register(
-                               &setting_view_network_select_network,
-                               &setting_view_network_main);
-
-               setting_view_node_table_register(&setting_view_network_con,
-                               &setting_view_network_main);
-               setting_view_node_table_register(&setting_view_network_con_list,
-                               &setting_view_network_con);
-               setting_view_node_table_register(
-                               &setting_network_connection_create_view,
-                               &setting_view_network_con_list);
-               setting_view_node_table_register(
-                               &setting_view_network_profile_delete,
-                               &setting_view_network_con_list);
-
+               setting_view_node_table_register(&setting_view_network_main, NULL);
+               setting_view_node_table_register(&setting_view_network_select_network, &setting_view_network_main);
+               setting_view_node_table_register(&setting_view_network_con, &setting_view_network_main);
+               setting_view_node_table_register(&setting_view_network_con_list, &setting_view_network_con);
+               setting_view_node_table_register(&setting_network_connection_create_view, &setting_view_network_con_list);
+               setting_view_node_table_register(&setting_view_network_profile_delete, &setting_view_network_con_list);
                setting_view_node_table_register(&setting_view_network_mode, &setting_view_network_main);
 
                return &setting_view_network_main;
        }
 }
 
+static bool _tapi_handles_init(SettingNetwork *ad)
+{
+       SETTING_TRACE_BEGIN;
+       int i;
+
+       char **cp_names = tel_get_cp_name_list();
+       if (!cp_names) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] cp_names == NULL", __FILE__, __LINE__);
+               return false;
+       }
+
+       for (i = 0; i < MAX_SIM_COUNT; ++i) {
+               ad->handle[i] = tel_init(cp_names[i]);
+               if (!ad->handle[i]) {
+                       dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] ad->handle[i] == NULL", __FILE__, __LINE__);
+                       continue;
+               }
+       }
+
+       free(cp_names);
+
+       SETTING_TRACE_END;
+       return true;
+}
+
+static void _tapi_handles_deinit(SettingNetwork *ad)
+{
+       int i;
+       for (i = 0; i < MAX_SIM_COUNT; ++i) {
+               if (ad->handle[i] && tel_deinit(ad->handle[i]) != TAPI_API_SUCCESS)
+                       SETTING_TRACE_DEBUG("%s*** [ERR] setting_network_unsubscribe_tapi_events. ***%s", SETTING_FONT_RED, SETTING_FONT_BLACK);
+       }
+}
+
 static bool on_app_create(void *priv)
 {
        int ret;
@@ -236,10 +257,8 @@ static void on_app_control(app_control_h service, void *priv)
        /* init */
        ecore_imf_init();
 
-       /*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);
+       if (!_tapi_handles_init(ad))
+               dlog_print(DLOG_ERROR, LOG_TAG, "[%s:%d] Function _tapi_handles_init() failed.", __FILE__, __LINE__);
 
        /* register view node table */
        setting_network_mode_app_control(ad);
@@ -299,11 +318,8 @@ static void on_app_terminate(void *priv)
                ad->connection = NULL;
        }
 
-       if (ad->handle && tel_deinit(ad->handle) != TAPI_API_SUCCESS) {
-               SETTING_TRACE_DEBUG(
-                               "%s*** [ERR] setting_network_unsubscribe_tapi_events. ***%s",
-                               SETTING_FONT_RED, SETTING_FONT_BLACK);
-       }
+       _tapi_handles_deinit(ad);
+
        if (ad->profile_list != NULL) {
                eina_list_free(ad->profile_list);
                ad->profile_list = NULL;