tizen 2.3.1 release
[apps/home/settings.git] / setting-network / src / setting-network-preferred-network-list.c
old mode 100755 (executable)
new mode 100644 (file)
index b50d5bd..6c1eff4
@@ -1,18 +1,22 @@
 /*
  * setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
  *
- * Licensed under the Flora License, Version 1.0 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *     http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ *
  */
 #include <setting-network-preferred-network-list.h>
 
@@ -62,7 +66,7 @@ static int gl_network_genlist_label_initialize(SettingNetworkUG *ad)
 }
 
 static char *gl_network_genlist_text_get(void *data, Evas_Object *obj,
-                                         const char *part)
+                                         const char *part)
 {
        char buf[PATH_MAX];
 
@@ -70,7 +74,7 @@ static char *gl_network_genlist_text_get(void *data, Evas_Object *obj,
 
        if (safeStrCmp(part, "elm.text") == 0) {
                /* strcpy(buf, data); */
-               /* sprintf(buf, "<font color=#000000>%s</font>", sel_mem->name); */
+               /* sprintf(buf, "<font color=#080808>%s</font>", sel_mem->name); */
                snprintf(buf, sizeof(buf), "%s", sel_mem->name);
                return strdup(buf);
        } else {
@@ -89,7 +93,7 @@ static void gl_network_genlist_delete(void *data, Evas_Object *obj)
 }
 
 static Evas_Object *gl_network_getlist_content_get(void *data, Evas_Object *obj,
-                                               const char *part)
+                                                   const char *part)
 {
        Evas_Object *radio = NULL;
        struct gl_network_data *sel_mem = (struct gl_network_data *)data;
@@ -105,7 +109,7 @@ static Evas_Object *gl_network_getlist_content_get(void *data, Evas_Object *obj,
 }
 
 static void gl_network_genlist_select(void *data, Evas_Object *obj,
-                                     void *event_info)
+                                      void *event_info)
 {
        SettingNetworkUG *ad = (SettingNetworkUG *) data;
        Elm_Object_Item *item = NULL;
@@ -127,47 +131,40 @@ static void gl_network_genlist_select(void *data, Evas_Object *obj,
 }
 
 static void __get_preferred_network_list_item_name(char *name,
-                                                  settings_preferred_network_table
-                                                  network)
+                                                   settings_preferred_network_table
+                                                   network)
 {
        setting_retm_if(NULL == name, "NULL == name")
        const char *nw_type_str = NULL;
        switch (network.nw_type) {
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_900:
-               {
-                       nw_type_str = "GSM900";
-                       break;
-               }
-       case SETTING_PREFERRED_NETWORK_TYPE_DCS_1800:
-               {
-                       nw_type_str = "DCS";
-                       break;
-               }
-       case SETTING_PREFERRED_NETWORK_TYPE_PCS_1900:
-               {
-                       nw_type_str = "PCS";
-                       break;
-               }
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_SAT:
-               {
-                       nw_type_str = "GSMSAT";
-                       break;
-               }
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_850:
-               {
-                       nw_type_str = "GSM850";
-                       break;
-               }
-       case SETTING_PREFERRED_NETWORK_TYPE_UMTS:
-               {
-                       nw_type_str = "UMTS";
-                       break;
-               }
-       default:
-               {
-                       nw_type_str = NULL;
-                       break;
-               }
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_900: {
+                               nw_type_str = "GSM900";
+                               break;
+                       }
+               case SETTING_PREFERRED_NETWORK_TYPE_DCS_1800: {
+                               nw_type_str = "DCS";
+                               break;
+                       }
+               case SETTING_PREFERRED_NETWORK_TYPE_PCS_1900: {
+                               nw_type_str = "PCS";
+                               break;
+                       }
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_SAT: {
+                               nw_type_str = "GSMSAT";
+                               break;
+                       }
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_850: {
+                               nw_type_str = "GSM850";
+                               break;
+                       }
+               case SETTING_PREFERRED_NETWORK_TYPE_UMTS: {
+                               nw_type_str = "UMTS";
+                               break;
+                       }
+               default: {
+                               nw_type_str = NULL;
+                               break;
+                       }
        }
        snprintf(name, 255, "%s (%s)", network.short_name_ptr, nw_type_str);
 }
@@ -178,7 +175,6 @@ static Eina_Bool __genlist_update(void *data)
        setting_retvm_if(NULL == data, 0, "NULL == data")
 
        SettingNetworkUG *ad = (SettingNetworkUG *) data;
-       Elm_Object_Item *gl_item = NULL;
        const char *match_str = NULL;
 
        SETTING_TRACE("match_str:%s", match_str);
@@ -190,24 +186,23 @@ static Eina_Bool __genlist_update(void *data)
        for (i = 0; i < items; i++) {
                one_item =
                    (struct gl_network_data *)calloc(1,
-                                                    sizeof(struct
-                                                           gl_network_data));
+                                                    sizeof(struct
+                                                           gl_network_data));
                setting_retvm_if(!one_item, FALSE, "calloc failed");
                one_item->index = i;
                /* one_item->name = __get_preferred_network_list_item_name(network_table[i]); */
                __get_preferred_network_list_item_name(one_item->name,
-                                                      network_table[i]);
+                                                      network_table[i]);
 
                if ('\0' == ad->search_text[0]
                    || ('\0' == one_item->name[0] && is_substr_ncase(one_item->name, ad->search_text))) {       /*  is substring */
                        /* SETTING_TRACE("Adding item[%s]", one_item->name); */
                        /* SETTING_TRACE("ad->gl_network:%p", ad->gl_network); */
-                       gl_item =
-                           elm_genlist_item_append(ad->gl_network, &ad->itc,
-                                                   one_item, NULL,
-                                                   ELM_GENLIST_ITEM_NONE,
-                                                   gl_network_genlist_select,
-                                                   ad);
+                       elm_genlist_item_append(ad->gl_network, &ad->itc,
+                                               one_item, NULL,
+                                               ELM_GENLIST_ITEM_NONE,
+                                               gl_network_genlist_select,
+                                               ad);
                } else {
                        FREE(one_item);
                }
@@ -218,7 +213,7 @@ static Eina_Bool __genlist_update(void *data)
 
 /* ***search bar****/
 static void __searchbar_changed_cb(void *data, Evas_Object *obj,
-                                  void *event_info)
+                                   void *event_info)
 {
        SETTING_TRACE_BEGIN;
        setting_retm_if(NULL == data, "NULL == data")
@@ -263,7 +258,7 @@ static void __searchbar_changed_cb(void *data, Evas_Object *obj,
        /* if(safeStrCmp(ad->search_text, dgettext("sys_string", "IDS_COM_SK_SEARCH"))) */
        /* { */
        SETTING_TRACE("Update the search view text, search_text=%s",
-                     ad->search_text);
+                     ad->search_text);
 
        if (ad->add_view_timer) {
                /* ecore_idler_del(ad->add_view_timer); */
@@ -276,7 +271,7 @@ static void __searchbar_changed_cb(void *data, Evas_Object *obj,
 }
 
 static void __searchbar_cancel_clicked_cb(void *data, Evas_Object *obj,
-                                         void *event_info)
+                                          void *event_info)
 {
        SETTING_TRACE_BEGIN;
        SettingNetworkUG *ad = (SettingNetworkUG *) data;
@@ -286,7 +281,7 @@ static void __searchbar_cancel_clicked_cb(void *data, Evas_Object *obj,
        /* elm_searchbar_text_set(ad->nw_search_bar, dgettext("sys_string", "IDS_COM_SK_SEARCH")); */
 
        Evas_Object *entry = elm_object_part_content_get(ad->nw_search_bar, "elm.swallow.content");
-       Ecore_IMF_Context *imf_context = (Ecore_IMF_Context*)elm_entry_imf_context_get(entry);
+       Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry);
        if (imf_context) {
                ecore_imf_context_input_panel_hide(imf_context);
        }
@@ -295,7 +290,7 @@ static void __searchbar_cancel_clicked_cb(void *data, Evas_Object *obj,
 }
 
 static void __searchbar_focused_cb(void *data, Evas_Object *obj,
-                                  void *event_info)
+                                   void *event_info)
 {
        SETTING_TRACE_BEGIN;
        setting_retm_if(NULL == data, "NULL == data");
@@ -324,7 +319,7 @@ static Evas_Object *__add_searchbar_add(Evas_Object *parent, void *data)
 
        evas_object_size_hint_weight_set(searchbar_layout, EVAS_HINT_EXPAND, 0);
        evas_object_size_hint_align_set(searchbar_layout, EVAS_HINT_FILL, 0.0);
-       evas_object_size_hint_min_set(searchbar_layout, 480, 66);
+       evas_object_size_hint_min_set(searchbar_layout, ELM_SCALE_SIZE(480), ELM_SCALE_SIZE(66));
 
        evas_object_smart_callback_add(entry, "changed", __searchbar_changed_cb, data);
        evas_object_smart_callback_add(entry, "focused", __searchbar_focused_cb, data);
@@ -332,10 +327,10 @@ static Evas_Object *__add_searchbar_add(Evas_Object *parent, void *data)
        Evas_Object *cancel_btn = elm_button_add(searchbar_layout);
        elm_object_part_content_set(searchbar_layout, "button_cancel", cancel_btn);
        elm_object_style_set(cancel_btn, "searchbar/default");
-       //elm_object_text_set(cancel_btn, "Cancel");
+       /*elm_object_text_set(cancel_btn, "Cancel"); */
 
        evas_object_smart_callback_add(cancel_btn, "clicked",
-                                      __searchbar_cancel_clicked_cb, data);
+                                      __searchbar_cancel_clicked_cb, data);
 
        edje_object_part_swallow(_EDJ(parent), "search_bar", searchbar_layout);
 
@@ -352,18 +347,18 @@ static int setting_network_preferred_network_list_create(void *cb)
 
        Evas_Object *sub_layout = elm_layout_add(ad->win_main_layout);
        elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME,
-                           "search_layout");
+                           "search_layout");
        evas_object_size_hint_weight_set(sub_layout, EVAS_HINT_EXPAND, 0.0);
        evas_object_show(sub_layout);
 
        /* add basic layout */
        setting_push_layout_navi_bar(_(STR_SETTING_NETWORK_LIST),
-                                    dgettext("sys_string", "IDS_COM_SK_CANCEL"),
-                                    dgettext("sys_string", "IDS_COM_ADD"),
-                                    NULL,
-                                    setting_network_preferred_network_list_click_softkey_cancel,
-                                    setting_network_preferred_network_list_click_softkey_add,
-                                    NULL, ad, sub_layout, ad->navi_bar, NULL);
+                                    dgettext("sys_string", "IDS_COM_SK_CANCEL"),
+                                    dgettext("sys_string", "IDS_COM_ADD"),
+                                    NULL,
+                                    setting_network_preferred_network_list_click_softkey_cancel,
+                                    setting_network_preferred_network_list_click_softkey_add,
+                                    NULL, ad, sub_layout, ad->navi_bar, NULL);
 
        Evas_Object *gl_network = NULL;
        gl_network_genlist_label_initialize(ad);
@@ -376,16 +371,20 @@ static int setting_network_preferred_network_list_create(void *cb)
        ad->itc.func.del = gl_network_genlist_delete;
 
        ad->gl_network = gl_network = elm_genlist_add(ad->win_main_layout);
+       retvm_if(ad->gl_network == NULL, SETTING_RETURN_FAIL,
+                "ad->gl_network == NULL");
+       elm_genlist_realization_mode_set(ad->gl_network, EINA_TRUE);
        elm_object_style_set(ad->gl_network, "dialogue");
        elm_genlist_clear(gl_network);
        evas_object_show(gl_network);
+       evas_object_smart_callback_add(ad->gl_network, "realized", __gl_realized_cb, NULL);
 
        __gl_network_radio_group = elm_radio_add(ad->win_main_layout);
        elm_radio_state_value_set(__gl_network_radio_group, -1);
 
        ad->nw_search_bar = __add_searchbar_add(sub_layout, ad);
        edje_object_part_swallow(_EDJ(sub_layout), "search_list",
-                                ad->gl_network);
+                                ad->gl_network);
        __genlist_update(ad);
 
        elm_radio_value_set(__gl_network_radio_group, -100);
@@ -453,29 +452,29 @@ static int setting_network_preferred_network_list_cleanup(void *cb)
 
 static void
 setting_network_preferred_network_list_click_softkey_cancel(void *data,
-                                                           Evas_Object *obj,
-                                                           void *event_info)
+                                                            Evas_Object *obj,
+                                                            void *event_info)
 {
        SETTING_TRACE_BEGIN;
        /* error check */
        retm_if(data == NULL,
-               "[Setting > Network > Preferred list] Data parameter is NULL");
+               "[Setting > Network > Preferred list] Data parameter is NULL");
 
        SettingNetworkUG *ad = (SettingNetworkUG *) data;
 
        setting_view_change(&setting_view_network_preferred_network_list,
-                           &setting_view_network_preferred_network, ad);
+                           &setting_view_network_preferred_network, ad);
 }
 
 static void
 setting_network_preferred_network_list_click_softkey_add(void *data,
-                                                        Evas_Object *obj,
-                                                        void *event_info)
+                                                         Evas_Object *obj,
+                                                         void *event_info)
 {
        SETTING_TRACE_BEGIN;
        /* error check */
        retm_if(data == NULL,
-               "[Setting > Network > Preferred list] Data parameter is NULL");
+               "[Setting > Network > Preferred list] Data parameter is NULL");
 
        SettingNetworkUG *ad = (SettingNetworkUG *) data;
 
@@ -486,8 +485,8 @@ setting_network_preferred_network_list_click_softkey_add(void *data,
        /* sel = ad->cur_sel_index; */
        sel = elm_radio_value_get(__gl_network_radio_group);
        SETTING_TRACE
-           ("setting_network_preferred_network_list_click_softkey_add: sel = %d",
-            sel);
+       ("setting_network_preferred_network_list_click_softkey_add: sel = %d",
+        sel);
 
        if (sel < 0) {
                setting_create_popup_without_btn(ad, ad->win_get, NULL, _("Please select item(s) to process!"), NULL, POPUP_INTERVAL, FALSE, FALSE);
@@ -499,49 +498,49 @@ setting_network_preferred_network_list_click_softkey_add(void *data,
        /* sprintf((char *)pref_plmn_info.Plmn+3, "%d", network_table[sel].mnc); */
        int ret = 0;
        ret = snprintf((char *)pref_plmn_info.Plmn, MAX_PLMN_LEN / 2, "%d",
-                    network_table[sel].mcc);
+                      network_table[sel].mcc);
        ret_if(ret < 0);
 
        ret = snprintf((char *)pref_plmn_info.Plmn + (MAX_PLMN_LEN / 2),
-                    MAX_PLMN_LEN / 2, "%d", network_table[sel].mnc);
+                      MAX_PLMN_LEN / 2, "%d", network_table[sel].mnc);
        ret_if(ret < 0);
 
        SETTING_TRACE("selected item is:%s", network_table[sel].short_name_ptr);
 
        switch (network_table[sel].nw_type) {
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_900:
-       case SETTING_PREFERRED_NETWORK_TYPE_DCS_1800:
-       case SETTING_PREFERRED_NETWORK_TYPE_PCS_1900:
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_SAT:
-       case SETTING_PREFERRED_NETWORK_TYPE_GSM_850:
-               pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_GSM;
-               break;
-
-       case SETTING_PREFERRED_NETWORK_TYPE_UMTS:
-               pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_UMTS;
-               break;
-       default:
-               break;
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_900:
+               case SETTING_PREFERRED_NETWORK_TYPE_DCS_1800:
+               case SETTING_PREFERRED_NETWORK_TYPE_PCS_1900:
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_SAT:
+               case SETTING_PREFERRED_NETWORK_TYPE_GSM_850:
+                       pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_GSM;
+                       break;
+
+               case SETTING_PREFERRED_NETWORK_TYPE_UMTS:
+                       pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_UMTS;
+                       break;
+               default:
+                       break;
        }
 
        pref_plmn_info.Index =
            ad->pref_list.PrefPlmnRecord[ad->pref_list.NumOfPrefPlmns -
-                                         1].Index + 1;
+                                        1].Index + 1;
 
        ad->network_ug_pop =
            setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_ST_POP_SAVING"),
-                                            NULL, 0.0, TRUE, TRUE);
+                                            NULL, 0.0, TRUE, TRUE);
        SETTING_TRACE_DEBUG("%s*** plmn=%s, index=%d ***%s",
-                           SETTING_FONT_BGREEN, pref_plmn_info.Plmn,
-                           (int)(pref_plmn_info.Index), SETTING_FONT_BLACK);
+                           SETTING_FONT_BGREEN, pref_plmn_info.Plmn,
+                           (int)(pref_plmn_info.Index), SETTING_FONT_BLACK);
 
        tapi_ret =
            tel_set_network_preferred_plmn(ad->handle, TAPI_NETWORK_PREF_PLMN_ADD,
-                                          &pref_plmn_info, setting_tapi_set_preferred_plmn_cb, ad);
+                                          &pref_plmn_info, setting_tapi_set_preferred_plmn_cb, ad);
        if (tapi_ret != TAPI_API_SUCCESS) {
                SETTING_TRACE_DEBUG
-                   ("%s*** [ERR] tel_set_network_preferred_plmn(PLMN_ADD) err=%d ***%s",
-                    SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
+               ("%s*** [ERR] tel_set_network_preferred_plmn(PLMN_ADD) err=%d ***%s",
+                SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
                setting_create_popup_without_btn(ad, ad->win_get, NULL, _("Save Failed!"), NULL, POPUP_INTERVAL, FALSE, FALSE);
        }