3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.1 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 #include <setting-network-preferred-network-new.h>
18 #include <setting-network-preferred-network.h>
20 static int setting_network_preferred_network_new_create(void *cb);
21 static int setting_network_preferred_network_new_destroy(void *cb);
22 static int setting_network_preferred_network_new_update(void *cb);
23 static int setting_network_preferred_network_new_cleanup(void *cb);
25 setting_view setting_view_network_preferred_network_new = {
26 .create = setting_network_preferred_network_new_create,
27 .destroy = setting_network_preferred_network_new_destroy,
28 .update = setting_network_preferred_network_new_update,
29 .cleanup = setting_network_preferred_network_new_cleanup,
32 /* ***************************************************
36 ***************************************************/
38 static int setting_network_preferred_network_new_create(void *cb)
41 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
43 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
45 Evas_Object *scroller = NULL;
46 /* Add basic layout */
47 setting_push_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get,
48 _("IDS_ST_HEADER_NEW_NETWORK"),
49 _("IDS_COM_SK_CANCEL"),
51 setting_network_preferred_network_new_click_softkey_cancel_cb,
52 setting_network_preffered_network_new_click_softkey_save_cb,
53 ad, &scroller, ad->navi_bar);
54 Elm_Object_Item *item = NULL;;
57 elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
58 ELM_GENLIST_ITEM_NONE, NULL, NULL);
59 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
62 setting_create_Gendial_field_def(scroller,
64 NULL, SWALLOW_Type_LAYOUT_ENTRY,
66 "IDS_ST_BODY_COUNTRY_CODE",
68 setting_network_preferred_network_new_entry_changed_cb);
69 if (ad->data_new_mcc) {
70 ad->data_new_mcc->userdata = ad;
71 ad->data_new_mcc->input_type = ELM_INPUT_PANEL_LAYOUT_NUMBERONLY;
73 SETTING_TRACE_ERROR("ad->data_new_mcc is NULL");
77 setting_create_Gendial_field_def(scroller,
79 NULL, SWALLOW_Type_LAYOUT_ENTRY,
81 "IDS_ST_BODY_NETWORK_CODE",
83 setting_network_preferred_network_new_entry_changed_cb);
84 if (ad->data_new_mnc) {
85 ad->data_new_mnc->userdata = ad;
86 ad->data_new_mnc->input_type = ELM_INPUT_PANEL_LAYOUT_NUMBERONLY;
88 SETTING_TRACE_ERROR("ad->data_new_mnc is NULL");
91 (void)setting_create_Gendial_field_titleItem(scroller,
93 "IDS_ST_BODY_NETWORK_TYPE",
95 ad->chk_new_type = elm_radio_add(scroller);
96 elm_radio_state_value_set(ad->chk_new_type, 0);
98 setting_create_Gendial_field_1radio(scroller, &itc_1text_1icon_2,
99 setting_mouse_up_Gendial_list_radio_cb,
102 ad->chk_new_type, 0, "IDS_ST_BODY_GSM", NULL);
104 setting_create_Gendial_field_1radio(scroller, &itc_1text_1icon_2,
105 setting_mouse_up_Gendial_list_radio_cb,
108 ad->chk_new_type, 1, "UMTS", NULL);
109 setting_view_network_preferred_network_new.is_create = 1;
110 return SETTING_RETURN_SUCCESS;
113 static int setting_network_preferred_network_new_destroy(void *cb)
116 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
118 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
120 elm_naviframe_item_pop(ad->navi_bar);
121 setting_view_network_preferred_network_new.is_create = 0;
122 return SETTING_RETURN_SUCCESS;
125 static int setting_network_preferred_network_new_update(void *cb)
127 return SETTING_RETURN_SUCCESS;
130 static int setting_network_preferred_network_new_cleanup(void *cb)
132 return setting_network_preferred_network_new_destroy(cb);
135 /* ***************************************************
139 ***************************************************/
141 /* ***************************************************
145 ***************************************************/
147 setting_network_preferred_network_new_entry_changed_cb(void *data,
151 retm_if(data == NULL, "Data parameter is NULL");
152 Setting_GenGroupItem_Data *list_item =
153 (Setting_GenGroupItem_Data *) data;
154 /* SettingNetworkUG *ad = list_item->userdata; */
155 const char *entry_str = elm_entry_entry_get(obj);
156 /* SETTING_TRACE("entry_str:%s", entry_str); */
157 list_item->sub_desc = (char *)g_strdup(entry_str);
161 setting_network_preffered_network_new_click_softkey_save_cb(void *data,
167 retm_if(data == NULL,
168 "[Setting > Netwrok > Preferred New] Data parameter is NULL");
170 SettingNetworkUG *ad = (SettingNetworkUG *) data;
172 int tapi_ret = TAPI_API_SUCCESS;
174 TelNetworkPreferredPlmnInfo_t pref_plmn_info = { 0, };
176 int network_type = 0;
177 const char *mcc = NULL;
178 const char *mnc = NULL;
179 if (ad->data_new_mcc) {
180 mcc = ad->data_new_mcc->sub_desc;
182 if (ad->data_new_mnc) {
183 mnc = ad->data_new_mnc->sub_desc;
186 setting_retm_if(isEmptyStr(mcc)
188 "mcc or mnc got from editfiled error");
189 int mcc_len = strlen(mcc);
190 int mnc_len = strlen(mnc);
191 if (COUNTRY_CODE_LEN != mcc_len) {
192 if ((NETWORK_CODE_LEN < mnc_len) || (mnc_len <= 0)) {
193 setting_create_popup_without_btn(ad, ad->win_get,
194 NULL, _("please input country code made up of 3 digital number and network code made up of 1 ~ 3 digital number"),
195 NULL, POPUP_INTERVAL, FALSE, FALSE);
197 setting_create_popup_without_btn(ad, ad->win_get,
198 NULL, _("please input country code made up of 3 digital number"),
199 NULL, POPUP_INTERVAL, FALSE, FALSE);
204 if ((NETWORK_CODE_LEN < mnc_len) || (mnc_len <= 0)) {
205 setting_create_popup_without_btn(ad, ad->win_get,
206 NULL, _("please input network code made up of 1 ~ 3 digital number"),
207 NULL, POPUP_INTERVAL, FALSE, FALSE);
211 network_type = elm_radio_value_get(ad->chk_new_type);
214 safeCopyStr((char *)pref_plmn_info.Plmn, (char *)mcc, 3);
215 safeCopyStr((char *)pref_plmn_info.Plmn + 3, (char *)mnc, 3);
217 SETTING_TRACE_DEBUG("%s*** mcc=%s, mnc=%s, plmn=%s ***%s",
218 SETTING_FONT_BGREEN, mcc, mnc,
219 (char *)(pref_plmn_info.Plmn), SETTING_FONT_BLACK);
221 /* save network type */
222 if (network_type == 0) {
223 pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_GSM;
225 pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_UMTS;
228 pref_plmn_info.Index =
229 ad->pref_list.PrefPlmnRecord[ad->pref_list.NumOfPrefPlmns -
233 setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_ST_POP_SAVING"),
234 NULL, 0.0, TRUE, TRUE);
236 tel_set_network_preferred_plmn(ad->handle, TAPI_NETWORK_PREF_PLMN_ADD,
237 &pref_plmn_info, setting_tapi_set_preferred_plmn_cb, ad);
238 if (tapi_ret != TAPI_API_SUCCESS) {
240 ("%s*** [ERR] tel_set_network_preferred_plmn(PLMN_ADD) err=%d ***%s",
241 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
242 setting_create_popup_without_btn(ad, ad->win_get, NULL, _("Save Failed!"), NULL, POPUP_INTERVAL, FALSE, FALSE);
245 ad->op_type = SETTING_NETWORK_PREFERRED_NETWORK_NEW;
249 setting_network_preferred_network_new_click_softkey_cancel_cb(void *data,
253 SettingNetworkUG *ad = (SettingNetworkUG *) data;
256 retm_if(data == NULL,
257 "[Setting > Network > Preferred New] Data parameter is NULL");
258 ad->op_type = SETTING_NETWORK_PREFERRED_NETWORK_NONE;
259 setting_view_change(&setting_view_network_preferred_network_new,
260 &setting_view_network_preferred_network, ad);