4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-network-preferred-network-edit.h>
23 static int setting_network_preferred_network_edit_create(void *cb);
24 static int setting_network_preferred_network_edit_destroy(void *cb);
25 static int setting_network_preferred_network_edit_update(void *cb);
26 static int setting_network_preferred_network_edit_cleanup(void *cb);
28 setting_view setting_view_network_preferred_network_edit = {
29 .create = setting_network_preferred_network_edit_create,
30 .destroy = setting_network_preferred_network_edit_destroy,
31 .update = setting_network_preferred_network_edit_update,
32 .cleanup = setting_network_preferred_network_edit_cleanup,
35 /* ***************************************************
39 ***************************************************/
41 static int setting_network_preferred_network_edit_create(void *cb)
44 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
46 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
48 Evas_Object *scroller = NULL;
49 /* Evas_Object *outer_box = NULL; */
50 setting_push_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get,
52 pref_list.PrefPlmnRecord
53 [ad->sel_pref_idx].network_name),
54 dgettext("sys_string",
56 dgettext("sys_string",
58 setting_network_preferred_network_edit_click_softkey_cancel_cb,
59 setting_network_preffered_network_edit_click_softkey_save_cb,
60 ad, &scroller, ad->navi_bar);
61 Elm_Object_Item *item = NULL;;
64 elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
65 ELM_GENLIST_ITEM_NONE, NULL, NULL);
66 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
68 char mcc[SETTING_NETWORK_PREFERRED_NETWORK_CODE_LEN] = { 0, };
69 char mnc[SETTING_NETWORK_PREFERRED_NETWORK_CODE_LEN] = { 0, };
71 /* SETTING_TRACE("Plmn:%s", ad->pref_list.PrefPlmnRecord[ad->sel_pref_idx].Plmn); */
72 memcpy(&mcc, ad->pref_list.PrefPlmnRecord[ad->sel_pref_idx].Plmn, 3);
73 memcpy(&mnc, ad->pref_list.PrefPlmnRecord[ad->sel_pref_idx].Plmn + 3,
76 if (ad->pref_list.PrefPlmnRecord[ad->sel_pref_idx].SystemType ==
77 TAPI_NETWORK_SYSTEM_GSM) {
83 setting_create_Gendial_field_def(scroller,
85 NULL, SWALLOW_Type_LAYOUT_EDITFIELD,
87 "IDS_ST_BODY_COUNTRY_CODE", _(mcc),
88 setting_network_preffered_network_edit_entry_changed_cb);
89 if (ad->data_edit_mcc) {
90 ad->data_edit_mcc->userdata = ad;
91 ad->data_edit_mcc->input_type = ELM_INPUT_PANEL_LAYOUT_NUMBERONLY;
93 SETTING_TRACE_ERROR("ad->data_edit_mcc is NULL");
97 setting_create_Gendial_field_def(scroller,
99 NULL, SWALLOW_Type_LAYOUT_EDITFIELD,
101 "IDS_ST_BODY_NETWORK_CODE", _(mnc),
102 setting_network_preffered_network_edit_entry_changed_cb);
103 if (ad->data_edit_mnc) {
104 ad->data_edit_mnc->userdata = ad;
105 ad->data_edit_mnc->input_type = ELM_INPUT_PANEL_LAYOUT_NUMBERONLY;
107 SETTING_TRACE_ERROR("ad->data_edit_mnc is NULL");
109 ADD_GL_SEPARATOR(scroller);
111 (void)setting_create_Gendial_field_titleItem(scroller,
113 "IDS_ST_BODY_NETWORK_TYPE",
115 ad->chk_edit_type = elm_radio_add(scroller);
116 elm_radio_state_value_set(ad->chk_edit_type, -1);
118 setting_create_Gendial_field_1radio(scroller, &itc_1text_1icon_2,
119 setting_mouse_up_Gendial_list_radio_cb,
122 ad->chk_edit_type, 0, "IDS_ST_BODY_GSM", NULL);
124 setting_create_Gendial_field_1radio(scroller, &itc_1text_1icon_2,
125 setting_mouse_up_Gendial_list_radio_cb,
128 ad->chk_edit_type, 1, "UMTS", NULL);
129 elm_radio_value_set(ad->chk_edit_type, network_type);
130 setting_view_network_preferred_network_edit.is_create = 1;
131 return SETTING_RETURN_SUCCESS;
134 static int setting_network_preferred_network_edit_destroy(void *cb)
137 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
139 SettingNetworkUG *ad = (SettingNetworkUG *) cb;
141 elm_naviframe_item_pop(ad->navi_bar);
142 setting_view_network_preferred_network_edit.is_create = 0;
144 return SETTING_RETURN_SUCCESS;
147 static int setting_network_preferred_network_edit_update(void *cb)
149 return SETTING_RETURN_SUCCESS;
152 static int setting_network_preferred_network_edit_cleanup(void *cb)
154 return setting_network_preferred_network_edit_destroy(cb);
157 /* ***************************************************
161 ***************************************************/
163 /* ***************************************************
167 ***************************************************/
169 setting_network_preffered_network_edit_entry_changed_cb(void *data,
173 retm_if(data == NULL, "Data parameter is NULL");
174 Setting_GenGroupItem_Data *list_item =
175 (Setting_GenGroupItem_Data *) data;
176 const char *entry_str = elm_entry_entry_get(obj);
177 /* SETTING_TRACE("entry_str:%s", entry_str); */
178 list_item->sub_desc = (char *)g_strdup(entry_str);
182 setting_network_preffered_network_edit_click_softkey_save_cb(void *data,
187 retm_if(data == NULL,
188 "[Setting > Network > Preferred Net] Data parameter for setting_network_preffered_network_edit_click_softkey_save_cb is NULL");
190 SettingNetworkUG *ad = (SettingNetworkUG *) data;
191 int tapi_ret = TAPI_API_SUCCESS;
192 TelNetworkPreferredPlmnInfo_t pref_plmn_info = { 0, };
194 int network_type = 0;
195 const char *mcc = NULL;
196 const char *mnc = NULL;
197 if (ad->data_edit_mcc) {
198 mcc = ad->data_edit_mcc->sub_desc;
200 if (ad->data_edit_mnc) {
201 mnc = ad->data_edit_mnc->sub_desc;
204 setting_retm_if(isEmptyStr(mcc)
206 "mcc or mnc got from editfiled error");
207 SETTING_TRACE("mcc:%s, mnc:%s", mcc, mnc);
208 int mcc_len = safeStrLen(mcc);
209 int mnc_len = safeStrLen(mnc);
210 if (COUNTRY_CODE_LEN != mcc_len) {
211 if ((NETWORK_CODE_LEN < mnc_len) || (mnc_len <= 0)) {
212 setting_create_popup_without_btn(ad, ad->win_get,
213 NULL, _("please input country code made up of 3 digital number and network code made up of 1 ~ 3 digital number"),
214 NULL, POPUP_INTERVAL, FALSE, FALSE);
216 setting_create_popup_without_btn(ad, ad->win_get,
217 NULL, _("please input country code made up of 3 digital number"),
218 NULL, POPUP_INTERVAL, FALSE, FALSE);
223 if ((NETWORK_CODE_LEN < mnc_len) || (mnc_len <= 0)) {
224 setting_create_popup_without_btn(ad, ad->win_get,
225 NULL, _("please input network code made up of 1 ~ 3 digital number"),
226 NULL, POPUP_INTERVAL, FALSE, FALSE);
230 network_type = elm_radio_value_get(ad->chk_edit_type);
232 memset(&pref_plmn_info, 0x00, sizeof(TelNetworkPreferredPlmnInfo_t));
233 memcpy(&pref_plmn_info,
234 &ad->pref_list.PrefPlmnRecord[ad->sel_pref_idx],
235 sizeof(TelNetworkPreferredPlmnInfo_t));
237 safeCopyStr((char *)pref_plmn_info.Plmn, mcc, 3);
238 safeCopyStr((char *)pref_plmn_info.Plmn + 3, mnc, 3);
240 /* save network type */
241 if (network_type == 0) {
242 pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_GSM;
244 pref_plmn_info.SystemType = TAPI_NETWORK_SYSTEM_UMTS;
247 setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_ST_POP_SAVING"),
248 NULL, 0.0, TRUE, TRUE);
251 tel_set_network_preferred_plmn(ad->handle, TAPI_NETWORK_PREF_PLMN_EDIT,
252 &pref_plmn_info, setting_tapi_set_preferred_plmn_cb, ad);
253 if (tapi_ret != TAPI_API_SUCCESS) {
255 ("%s*** [ERR] tel_set_network_preferred_plmn(PLMN_EDIT) err=%d ***%s",
256 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
257 setting_create_popup_without_btn(ad, ad->win_get, NULL, _("Save Failed!"), NULL, POPUP_INTERVAL, FALSE, FALSE);
260 ad->op_type = SETTING_NETWORK_PREFERRED_NETWORK_EDIT;
264 setting_network_preferred_network_edit_click_softkey_cancel_cb(void *data,
269 SettingNetworkUG *ad = (SettingNetworkUG *) data;
272 retm_if(data == NULL,
273 "[Setting > Network > Preferred Net] Data parameter for setting_network_preffered_network_edit_click_softkey_save_cb is NULL");
274 ad->op_type = SETTING_NETWORK_PREFERRED_NETWORK_NONE;
275 setting_view_change(&setting_view_network_preferred_network_edit,
276 &setting_view_network_preferred_network, ad);