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.
22 #include <setting-password.h>
23 #include <setting-password-sim.h>
24 #include <setting-common-data-slp-setting.h>
25 #include <setting-debug.h>
26 #include <dd-haptic.h>
27 #include <Ecore_IMF.h>
28 #include <Ecore_IMF_Evas.h>
33 #include <notification.h>
35 static int setting_password_sim_create(void *cb);
36 static int setting_password_sim_destroy(void *cb);
37 static int setting_password_sim_update(void *cb);
38 static int setting_password_sim_cleanup(void *cb);
40 setting_view setting_view_password_sim = {
41 .create = setting_password_sim_create,
42 .destroy = setting_password_sim_destroy,
43 .update = setting_password_sim_update,
44 .cleanup = setting_password_sim_cleanup,
47 static void setting_password_sim_done(void *data);
50 /* ***************************************************
54 ***************************************************/
56 __password_sim_gl_mouse_up(void *data, Evas *e, Evas_Object *obj,
60 //SettingPasswordUG *ad = (SettingPasswordUG *) data;
62 /* P131121-05156 : do not hide input panel when genlist scrolls,
63 plz compare with [about device > device name] item */
66 static char *setting_password_sim_get_title_str(void *data)
68 retvm_if(data == NULL, NULL,
69 "[Setting > Password] Data parameter is NULL");
70 SettingPasswordUG *ad = (SettingPasswordUG *) data;
72 switch (ad->view_type) {
73 case SETTING_PW_TYPE_SIM_LOCK_ON:
74 case SETTING_PW_TYPE_SIM_LOCK_OFF:
75 return "IDS_COM_BODY_AUTH_PASSWORD";
77 case SETTING_PW_TYPE_PIN_LOCK_ON:
78 case SETTING_PW_TYPE_PIN_LOCK_OFF:
79 return _("IDS_ST_BODY_PIN");
81 case SETTING_PW_TYPE_CHANGE_PIN:
82 return _("IDS_ST_HEADER_CHANGE_PIN_ABB");
85 case SETTING_PW_TYPE_CHANGE_PIN2:
86 return _("IDS_ST_BODY_CHANGE_PIN2");
89 case SETTING_PW_TYPE_PIN_BLOCKED:
90 return _("IDS_ST_BODY_PUK1_CODE");
92 case SETTING_PW_TYPE_PIN2_BLOCKED:
94 return _("IDS_ST_BODY_PUK2");
97 SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
98 SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
105 static Eina_Bool setting_password_sim_click_softkey_cancel_cb(void *data, Elm_Object_Item *it)
109 retvm_if(data == NULL, EINA_FALSE, "[Setting > Password] Data parameter is NULL");
111 SettingPasswordUG *ad = (SettingPasswordUG *) data;
113 // if IME is displayed, hide IME. or Destroy password ug.
114 if(ad->ed_pw1 && ad->ed_pw1->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw1->eo_check))
116 SETTING_TRACE_DEBUG("wait to hide IME");
117 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
120 else if(ad->ed_pw2 && ad->ed_pw2->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw2->eo_check))
122 SETTING_TRACE_DEBUG("wait to hide IME");
123 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_FALSE);
126 else if(ad->ed_pw3 && ad->ed_pw3->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw3->eo_check))
128 SETTING_TRACE_DEBUG("wait to hide IME");
129 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_FALSE);
133 if (ad->focus_timer) {
134 ecore_timer_del(ad->focus_timer);
135 ad->focus_timer = NULL;
138 /* send result : Cancel */
140 if(app_control_create(&svc) == 0)
142 app_control_add_extra_data(svc, "result", "Cancel");
143 ug_send_result(ad->ug, svc);
144 SETTING_TRACE("Send Result : %s\n", "Cancel");
146 app_control_destroy(svc);
148 /* Send destroy request */
149 ug_destroy_me(ad->ug);
154 static int __create_sim_layout(void *data)
157 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
159 SettingPasswordUG *ad = (SettingPasswordUG *)data;
160 static int count = 0;
164 if(ad->scroller != NULL)
166 evas_object_del(ad->scroller);
170 /* PIN related views have 2 toolbar buttons. CANCEL and DONE button */
171 ad->ly_main = setting_create_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get, setting_password_sim_get_title_str(ad),
172 _("IDS_COM_BODY_BACK"),
174 (setting_call_back_func)setting_password_sim_click_softkey_cancel_cb,
180 ad->navi_it = elm_naviframe_top_item_get(ad->navi_bar);
181 ad->bottom_btn = elm_button_add(ad->navi_bar);
183 Evas_Object *btn_cancel = elm_button_add(ad->navi_bar);
184 elm_object_style_set(btn_cancel, "naviframe/title_cancel");
185 evas_object_smart_callback_add(btn_cancel, "clicked", setting_password_sim_click_softkey_cancel_cb, ad);
186 elm_object_item_part_content_set(ad->navi_it, "title_left_btn", btn_cancel);
188 Evas_Object *btn_done = elm_button_add(ad->navi_bar);
189 elm_object_style_set(btn_done, "naviframe/title_done");
190 evas_object_smart_callback_add(btn_done, "clicked", setting_password_sim_click_softkey_done_cb, ad);
191 elm_object_item_part_content_set(ad->navi_it, "title_right_btn", btn_done);
195 SETTING_TRACE("genlist is NULL");
196 return SETTING_RETURN_FAIL;
199 /* Disable Done button if exist */
200 elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
201 elm_object_focus_allow_set(ad->bottom_btn, EINA_FALSE);
202 elm_object_item_signal_emit(ad->navi_it, "elm,state,sip,shown","");
204 elm_genlist_mode_set(ad->scroller, ELM_LIST_COMPRESS);
205 //evas_object_smart_callback_add(ad->scroller, "drag", __password_main_gl_drag, ad);
206 evas_object_event_callback_add(ad->scroller, EVAS_CALLBACK_MOUSE_UP,
207 __password_sim_gl_mouse_up, ad);
209 ADD_GL_SEPARATOR(ad->scroller)
211 return SETTING_RETURN_SUCCESS;
214 static Eina_Bool __setting_password_sim_rotate_cb(void *data)
218 retv_if(data == NULL, FALSE);
220 SettingPasswordUG *ad = (SettingPasswordUG *) data;
222 if(ad->view_type == SETTING_PW_TYPE_PIN_LOCK_OFF
223 || ad->view_type == SETTING_PW_TYPE_PIN_LOCK_ON
224 || ((ad->view_type == SETTING_PW_TYPE_CHANGE_PIN) && !ad->cur_pwd)
225 || ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED)
227 if(tel_get_sim_lock_info(ad->handle, TAPI_SIM_LOCK_SC, setting_get_pin_lock_info_cb, ad) != 0)
228 SETTING_TRACE_DEBUG("failed to call tel_get_sim_lock_info()");
230 else if(((ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2) && !ad->cur_pwd)
231 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED)
233 if(tel_get_sim_lock_info(ad->handle, TAPI_SIM_LOCK_FD, setting_get_pin_lock_info_cb, ad) != 0)
234 SETTING_TRACE_DEBUG("failed to call tel_get_sim_lock_info()");
237 // it can manage the cursor self
238 if(ad->ed_pw1 && ad->ed_pw1->isFocusFlag)
240 if (ad->ed_pw1->eo_check)
242 SETTING_TRACE_DEBUG("set focus on first entry");
243 // no matter how many edifileds, it only need focus on 1st editfiled
244 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
245 elm_entry_cursor_end_set(ad->ed_pw1->eo_check);
248 else if(ad->ed_pw2 && ad->ed_pw2->isFocusFlag)
250 if (ad->ed_pw2->eo_check)
252 SETTING_TRACE_DEBUG("set focus on second entry");
253 //no matter how many edifileds, it only need focus on 1st editfiled
254 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_TRUE);
255 elm_entry_cursor_end_set(ad->ed_pw2->eo_check);
258 else if(ad->ed_pw3 && ad->ed_pw3->isFocusFlag)
260 if (ad->ed_pw3->eo_check)
262 SETTING_TRACE_DEBUG("set focus on third entry");
263 //no matter how many edifileds, it only need focus on 1st editfiled
264 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_TRUE);
265 elm_entry_cursor_end_set(ad->ed_pw3->eo_check);
269 ad->focus_timer = NULL;
271 return ECORE_CALLBACK_CANCEL;
274 static void __init_tapi(SettingPasswordUG *ad)
276 ad->handle = tel_init(NULL);
278 SETTING_TRACE_DEBUG("%s*** [ERR] tel_init. ***%s",
279 SETTING_FONT_RED, SETTING_FONT_BLACK);
280 setting_password_ug_create_popup_notitle_nobtn(ad,
281 _("IDS_COM_POP_ERROR"),
286 static void __deinit_tapi(SettingPasswordUG *ad)
290 if (tel_deinit(ad->handle) != TAPI_API_SUCCESS) {
291 SETTING_TRACE_DEBUG("%s*** [ERR] setting_network_unsubscribe_tapi_events. ***%s",
292 SETTING_FONT_RED, SETTING_FONT_BLACK);
293 setting_password_ug_create_popup_notitle_nobtn(ad,
294 _("IDS_COM_POP_ERROR"),
301 static int setting_password_sim_create(void *cb)
305 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
307 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
310 ret = __create_sim_layout(ad);
313 return SETTING_RETURN_FAIL;
317 setting_password_sim_create_ui(ad);
319 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
321 setting_view_password_sim.is_create = 1;
324 return SETTING_RETURN_SUCCESS;
327 static int setting_password_sim_destroy(void *cb)
331 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
333 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
337 if (ad->remove_timer) {
338 ecore_timer_del(ad->remove_timer);
339 ad->remove_timer = NULL;
343 evas_object_del(ad->notify);
346 //FREE(ad->guide_str);
348 if (ad->ly_main != NULL) {
349 evas_object_del(ad->ly_main);
351 setting_view_password_sim.is_create = 0;
354 return SETTING_RETURN_SUCCESS;
357 static int setting_password_sim_update(void *cb)
361 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
363 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
365 if (ad->ly_main != NULL) {
366 evas_object_show(ad->ly_main);
368 if(ad->puk_verified_flag == TRUE && ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED)
370 ad->puk_verified_flag = FALSE;
371 SETTING_TRACE_DEBUG("view type : PIN1_BLOCKED, change view");
374 elm_genlist_clear(ad->scroller);
375 ADD_GL_SEPARATOR(ad->scroller)
378 setting_password_sim_draw_2line_entry(ad, NULL);
382 setting_password_sim_draw_1line_entry(ad, NULL);
383 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
387 return SETTING_RETURN_SUCCESS;
390 static int setting_password_sim_cleanup(void *cb)
393 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
395 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
397 if (ad->ly_main != NULL) {
398 evas_object_hide(ad->ly_main);
401 return SETTING_RETURN_SUCCESS;
404 /* ***************************************************
408 ***************************************************/
410 int setting_password_sim_create_ui(void *data)
413 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
414 "[Setting > Password] Data parameter is NULL");
416 SettingPasswordUG *ad = (SettingPasswordUG *) data;
418 SETTING_TRACE_DEBUG("ad->view_type=%d ***", ad->view_type);
420 switch (ad->view_type) {
421 case SETTING_PW_TYPE_SIM_LOCK_OFF:
422 case SETTING_PW_TYPE_PIN_LOCK_ON:
423 case SETTING_PW_TYPE_PIN_LOCK_OFF:
424 case SETTING_PW_TYPE_PIN_BLOCKED:
425 case SETTING_PW_TYPE_CHANGE_PIN:
426 case SETTING_PW_TYPE_CHANGE_PIN2:
427 setting_password_sim_draw_1line_entry(ad, NULL);
429 case SETTING_PW_TYPE_SIM_LOCK_ON:
430 setting_password_sim_draw_2line_entry(ad, NULL);
432 case SETTING_PW_TYPE_PIN2_BLOCKED:
433 setting_password_sim_draw_3line_entry(ad, NULL);
436 SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
437 SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
441 /** @todo this function always return 0, not verifying the function flow with the value */
446 setting_password_sim_entry_changed_cb(void *data, Evas_Object *obj,
450 retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
451 retm_if(obj == NULL, "[Setting > Password] Data parameter is NULL");
452 Setting_GenGroupItem_Data *list_item =
453 (Setting_GenGroupItem_Data *) data;
454 SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
455 const char *entry_str = elm_entry_entry_get(obj);
456 list_item->sub_desc = (char *)g_strdup(entry_str);
457 bool isFoundEmptyEntry = FALSE;
459 elm_object_part_text_set(obj, "elm.guide", "");
463 entry_str = ad->ed_pw1->sub_desc;
464 if (NULL == entry_str || '\0' == entry_str[0]) {
465 isFoundEmptyEntry = TRUE;
466 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
467 elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,hide", "");
470 else if(ad->ed_pw1->isFocusFlag)
472 elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,show", "");
477 entry_str = ad->ed_pw2->sub_desc;
478 if (NULL == entry_str || '\0' == entry_str[0]) {
479 isFoundEmptyEntry = TRUE;
480 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
481 elm_object_item_signal_emit(ad->ed_pw2->item, "elm,state,eraser,hide", "");
484 else if(ad->ed_pw2->isFocusFlag)
486 elm_object_item_signal_emit(ad->ed_pw2->item, "elm,state,eraser,show", "");
491 entry_str = ad->ed_pw3->sub_desc;
492 if (NULL == entry_str || '\0' == entry_str[0]) {
493 isFoundEmptyEntry = TRUE;
494 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
495 elm_object_item_signal_emit(ad->ed_pw3->item, "elm,state,eraser,hide", "");
498 else if(ad->ed_pw3->isFocusFlag)
500 elm_object_item_signal_emit(ad->ed_pw3->item, "elm,state,eraser,show", "");
507 Eina_Bool item_disabled = elm_object_item_disabled_get(list_item->item);
511 /* For disable toolbar (done) item */
512 bool disableFlag = isFoundEmptyEntry;
513 if(ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
514 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED)
517 if(!ad->cur_pwd && ad->ed_pw1->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < 8))
519 SETTING_TRACE_DEBUG("disable flag becomes TRUE");
526 if(ad->ed_pw1 && ad->ed_pw1->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < 4))
528 if(ad->ed_pw2 && ad->ed_pw2->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw2->eo_check)) < 4))
530 if(ad->ed_pw3 && ad->ed_pw3->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw3->eo_check)) < 4))
535 elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
537 elm_object_disabled_set(ad->bottom_btn, EINA_FALSE);
538 if(ad->err_desc && ad->err_desc->item)
540 elm_object_item_del(ad->err_desc->item);
547 static void __reached_max_pwlength_cb(void *data, Evas_Object *obj, void *event_info)
550 retm_if(data == NULL, "Data parameter is NULL");
551 retm_if(!elm_object_focus_get(obj), "Entry is not focused");//notify only when entry is being focused on.
555 //Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
556 //SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
558 int haptic_return = 0;
559 haptic_device_h haptic_handle;
560 haptic_return = haptic_open(HAPTIC_DEVICE_0, &haptic_handle);
561 SETTING_TRACE("haptic_handle : %d", haptic_handle);
562 if (haptic_return < 0) {
563 SETTING_TRACE_DEBUG("%s*** [ERR] Failed haptic_open ***%s",
564 SETTING_FONT_RED, SETTING_FONT_BLACK);
567 err = haptic_vibrate_file_with_detail(haptic_handle, "/usr/share/feedback/haptic/touch/touch.ivt", 1, HAPTIC_FEEDBACK_AUTO, HAPTIC_PRIORITY_MIN, NULL);
570 SETTING_TRACE("Failed to play haptic");
572 haptic_close(haptic_handle);
576 static void __entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
579 retm_if(data == NULL, "Data parameter is NULL");
581 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
582 SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
584 if(elm_object_disabled_get(ad->bottom_btn) == EINA_FALSE)
586 elm_object_focus_set(obj, EINA_FALSE);
588 setting_password_sim_done(ad);
591 if(obj == ad->ed_pw1->eo_check)
593 if(ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
594 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED)
596 /* PUK should be 8 chars always */
597 if(safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < SETTING_PW_UG_PUK_MAX_LENGTH)
599 SETTING_TRACE_DEBUG("do not move focus to next entry.");
600 ad->ed_pw1->isFocusFlag = TRUE;
601 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
605 if(ad->ed_pw2 && ad->ed_pw2->eo_check)
607 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_TRUE);
608 ad->ed_pw2->isFocusFlag = TRUE;
611 else if(obj == ad->ed_pw2->eo_check)
613 if(ad->ed_pw3 && ad->ed_pw3->eo_check)
615 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_TRUE);
616 ad->ed_pw3->isFocusFlag = TRUE;
621 static void __entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
624 retm_if(data == NULL, "Data parameter is NULL");
626 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
627 SettingPasswordUG *ad = (SettingPasswordUG*)list_item->userdata;
629 if(!elm_entry_is_empty(obj))
631 elm_object_item_signal_emit(list_item->item, "elm,state,eraser,show", "");
633 elm_object_item_signal_emit(list_item->item, "elm,state,rename,hide", "");
638 if(ad->ed_pw1 && obj == ad->ed_pw1->eo_check)
640 ad->ed_pw1->isFocusFlag = TRUE;
642 ad->ed_pw2->isFocusFlag = FALSE;
644 ad->ed_pw3->isFocusFlag = FALSE;
646 else if(ad->ed_pw2 && obj == ad->ed_pw2->eo_check)
648 ad->ed_pw2->isFocusFlag = TRUE;
650 ad->ed_pw1->isFocusFlag = FALSE;
652 ad->ed_pw3->isFocusFlag = FALSE;
654 else if(ad->ed_pw3 && obj == ad->ed_pw3->eo_check)
656 ad->ed_pw3->isFocusFlag = TRUE;
658 ad->ed_pw1->isFocusFlag = FALSE;
660 ad->ed_pw2->isFocusFlag = FALSE;
664 static void __entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
667 retm_if(data == NULL, "Data parameter is NULL");
668 retm_if(obj == NULL, "Data parameter is NULL");
670 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
672 list_item->isFocusFlag = FALSE;
676 elm_object_item_signal_emit(list_item->item, "elm,state,eraser,hide", "");
677 elm_object_item_signal_emit(list_item->item, "elm,state,rename,show", "");
681 int setting_password_sim_draw_1line_entry(void *data, void *cb)
685 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
686 "[Setting > Password] Data parameter is NULL");
688 SettingPasswordUG *ad = (SettingPasswordUG *) data;
690 switch (ad->view_type) {
691 case SETTING_PW_TYPE_SIM_LOCK_OFF:
693 setting_create_Gendial_field_editfield(ad->scroller,
696 SWALLOW_Type_LAYOUT_EDITFIELD,
697 "IDS_ST_BODY_SIM_PASSWORD",
699 setting_password_sim_entry_changed_cb,
701 __entry_unfocused_cb,
704 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
706 SETTING_PW_UG_SIM_MAX_LENGTH,
707 0, "0123456789", NULL);
710 case SETTING_PW_TYPE_PIN_LOCK_ON:
711 case SETTING_PW_TYPE_PIN_LOCK_OFF:
713 setting_create_Gendial_field_editfield(ad->scroller,
716 SWALLOW_Type_LAYOUT_EDITFIELD,
717 "IDS_ST_BODY_PIN", NULL,
718 setting_password_sim_entry_changed_cb,
720 __entry_unfocused_cb,
721 __entry_activated_cb,
723 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
725 SETTING_PW_UG_PIN_MAX_LENGTH,
726 0, "0123456789", NULL);
728 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
730 case SETTING_PW_TYPE_PIN_BLOCKED:
732 setting_create_Gendial_field_editfield(ad->scroller,
735 SWALLOW_Type_LAYOUT_EDITFIELD,
736 "IDS_ST_BODY_PUK1_CODE",
738 setting_password_sim_entry_changed_cb,
740 __entry_unfocused_cb,
741 __entry_activated_cb,
743 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
745 SETTING_PW_UG_PUK_MAX_LENGTH,
746 0, "0123456789", NULL);
748 case SETTING_PW_TYPE_CHANGE_PIN:
749 case SETTING_PW_TYPE_CHANGE_PIN2:
751 setting_create_Gendial_field_editfield(ad->scroller,
754 SWALLOW_Type_LAYOUT_EDITFIELD,
755 PW_SHORT_GUIDE_CURRENT,
757 setting_password_sim_entry_changed_cb,
759 __entry_unfocused_cb,
760 __entry_activated_cb,
762 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
764 SETTING_PW_UG_PIN_MAX_LENGTH,
765 0, "0123456789", NULL);
767 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
780 int setting_password_sim_clear_1line_entry(void *data)
783 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
784 "[Setting > Password] Data parameter is NULL");
786 SettingPasswordUG *ad = (SettingPasswordUG *) data;
787 retv_if(NULL == ad->ed_pw1, -1);
789 ad->ed_pw1->sub_desc = NULL;
790 ad->ed_pw1->isFocusFlag = FALSE;
792 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
793 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
798 int setting_password_sim_draw_2line_entry(void *data, void *cb)
801 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
803 SettingPasswordUG *ad = (SettingPasswordUG *) data;
805 switch (ad->view_type) {
806 case SETTING_PW_TYPE_SIM_LOCK_ON:
808 setting_create_Gendial_field_editfield(ad->scroller,
811 SWALLOW_Type_LAYOUT_EDITFIELD,
814 setting_password_sim_entry_changed_cb,
816 __entry_unfocused_cb,
817 __entry_activated_cb,
819 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
821 SETTING_PW_UG_SIM_MAX_LENGTH,
822 0, "0123456789", NULL);
825 setting_create_Gendial_field_editfield(ad->scroller,
828 SWALLOW_Type_LAYOUT_EDITFIELD,
829 PW_SHORT_GUIDE_CONFIRM,
831 setting_password_sim_entry_changed_cb,
833 __entry_unfocused_cb,
836 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
838 SETTING_PW_UG_SIM_MAX_LENGTH,
839 0, "0123456789", NULL);
841 case SETTING_PW_TYPE_PIN_BLOCKED:
842 case SETTING_PW_TYPE_CHANGE_PIN:
843 case SETTING_PW_TYPE_CHANGE_PIN2:
845 setting_create_Gendial_field_editfield(ad->scroller,
848 SWALLOW_Type_LAYOUT_EDITFIELD,
851 setting_password_sim_entry_changed_cb,
853 __entry_unfocused_cb,
854 __entry_activated_cb,
856 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
858 SETTING_PW_UG_PIN_MAX_LENGTH,
859 0, "0123456789", NULL);
861 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
864 setting_create_Gendial_field_editfield(ad->scroller,
867 SWALLOW_Type_LAYOUT_EDITFIELD,
868 PW_SHORT_GUIDE_CONFIRM,
870 setting_password_sim_entry_changed_cb,
872 __entry_unfocused_cb,
873 __entry_activated_cb,
875 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
877 SETTING_PW_UG_PIN_MAX_LENGTH,
878 0, "0123456789", NULL);
880 ad->ed_pw2->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
888 ad->ed_pw1->group_style = SETTING_GROUP_STYLE_TOP;
892 ad->ed_pw2->group_style = SETTING_GROUP_STYLE_BOTTOM;
899 int setting_password_sim_clear_2line_entry(void *data)
903 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
904 "[Setting > Password] Data parameter is NULL");
906 SettingPasswordUG *ad = (SettingPasswordUG *) data;
908 retv_if(NULL == ad->ed_pw1, -1);
909 ad->ed_pw1->sub_desc = NULL;
910 ad->ed_pw1->isFocusFlag = FALSE;
911 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
912 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
914 retv_if(NULL == ad->ed_pw2, -1);
915 ad->ed_pw2->sub_desc = NULL;
916 ad->ed_pw2->isFocusFlag = FALSE;
917 elm_entry_entry_set(ad->ed_pw2->eo_check, "");
918 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
922 int setting_password_sim_draw_3line_entry(void *data, void *cb)
925 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
926 "[Setting > Password] Data parameter is NULL");
928 SettingPasswordUG *ad = (SettingPasswordUG *) data;
930 switch (ad->view_type) {
931 case SETTING_PW_TYPE_PIN_BLOCKED:
933 setting_create_Gendial_field_editfield(ad->scroller,
936 SWALLOW_Type_LAYOUT_EDITFIELD,
937 "IDS_ST_BODY_PUK1_CODE",
939 setting_password_sim_entry_changed_cb,
941 __entry_unfocused_cb,
942 __entry_activated_cb,
944 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
946 SETTING_PW_UG_PUK_MAX_LENGTH,
947 0, "0123456789", NULL);
950 setting_create_Gendial_field_editfield(ad->scroller,
953 SWALLOW_Type_LAYOUT_EDITFIELD,
954 "IDS_ST_BODY_NEW_PIN1",
956 setting_password_sim_entry_changed_cb,
958 __entry_unfocused_cb,
959 __entry_activated_cb,
961 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
963 SETTING_PW_UG_PIN_MAX_LENGTH,
964 0, "0123456789", NULL);
967 setting_create_Gendial_field_editfield(ad->scroller,
970 SWALLOW_Type_LAYOUT_EDITFIELD,
971 "IDS_ST_BODY_CONFIRM_NEW_PIN1",
973 setting_password_sim_entry_changed_cb,
975 __entry_unfocused_cb,
978 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
980 SETTING_PW_UG_PIN_MAX_LENGTH,
981 0, "0123456789", NULL);
983 case SETTING_PW_TYPE_PIN2_BLOCKED:
985 setting_create_Gendial_field_editfield(ad->scroller,
988 SWALLOW_Type_LAYOUT_EDITFIELD,
989 "IDS_ST_BODY_PUK2", NULL,
990 setting_password_sim_entry_changed_cb,
992 __entry_unfocused_cb,
993 __entry_activated_cb,
995 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
997 SETTING_PW_UG_PIN_MAX_LENGTH,
998 0, "0123456789", NULL);
1001 setting_create_Gendial_field_editfield(ad->scroller,
1004 SWALLOW_Type_LAYOUT_EDITFIELD,
1005 "IDS_ST_BODY_NEW_PIN2",
1007 setting_password_sim_entry_changed_cb,
1009 __entry_unfocused_cb,
1010 __entry_activated_cb,
1012 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
1014 SETTING_PW_UG_PIN_MAX_LENGTH,
1015 0, "0123456789", NULL);
1018 setting_create_Gendial_field_editfield(ad->scroller,
1021 SWALLOW_Type_LAYOUT_EDITFIELD,
1022 "IDS_ST_BODY_CONFIRM_NEW_PIN2",
1024 setting_password_sim_entry_changed_cb,
1026 __entry_unfocused_cb,
1029 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
1031 SETTING_PW_UG_PIN_MAX_LENGTH,
1032 0, "0123456789", NULL);
1041 int setting_password_sim_clear_3line_entry(void *data)
1044 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
1045 "[Setting > Password] Data parameter is NULL");
1047 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1048 //Evas_Object *layout = NULL;
1050 retv_if(NULL == ad->ed_pw1, -1);
1051 ad->ed_pw1->sub_desc = NULL;
1052 ad->ed_pw1->isFocusFlag = FALSE;
1053 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
1054 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PUK"));
1056 retv_if(NULL == ad->ed_pw2, -1);
1057 ad->ed_pw2->sub_desc = NULL;
1058 ad->ed_pw2->isFocusFlag = FALSE;
1059 elm_entry_entry_set(ad->ed_pw2->eo_check, "");
1060 elm_object_part_text_set(ad->ed_pw2->eo_check, "elm.guide", _("Enter PIN"));
1062 retv_if(NULL == ad->ed_pw3, -1);
1063 ad->ed_pw3->sub_desc = NULL;
1064 ad->ed_pw3->isFocusFlag = FALSE;
1065 elm_entry_entry_set(ad->ed_pw3->eo_check, "");
1066 elm_object_part_text_set(ad->ed_pw3->eo_check, "elm.guide", _("Enter PIN"));
1071 int setting_password_sim_check_1line_entry(void *data)
1074 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1076 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1078 const char *entry_str = ad->ed_pw1->sub_desc;
1079 ad->focus_data = ad->ed_pw1;
1082 int entry_str_len = safeStrLen(entry_str);
1083 switch (ad->view_type) {
1084 case SETTING_PW_TYPE_PIN_LOCK_ON:
1085 case SETTING_PW_TYPE_PIN_LOCK_OFF:
1086 case SETTING_PW_TYPE_CHANGE_PIN:
1087 case SETTING_PW_TYPE_CHANGE_PIN2:
1089 if (entry_str_len < SETTING_PW_UG_PIN_MIN_LENGTH
1090 || entry_str_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
1091 setting_password_sim_warning_entry_added_byte_popup
1092 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1093 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1097 case SETTING_PW_TYPE_SIM_LOCK_OFF:
1099 if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
1100 || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) {
1101 setting_password_sim_warning_entry_added_byte_popup
1102 (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
1103 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1109 return SETTING_RETURN_SUCCESS;
1112 int setting_password_sim_check_2line_entry(void *data)
1115 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1117 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1118 if(ad->ed_pw1 == NULL || ad->ed_pw2 == NULL)
1119 return SETTING_GENERAL_ERR_NULL_DATA_PARAMETER;
1121 const char *entry_str1 = ad->ed_pw1->sub_desc;
1122 const char *entry_str2 = ad->ed_pw2->sub_desc;
1123 ad->focus_data = ad->ed_pw1;
1126 if (0 != safeStrCmp(entry_str1, entry_str2)) {
1127 setting_password_sim_clear_2line_entry(ad);
1128 if(ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
1129 || ad->view_type == SETTING_PW_TYPE_CHANGE_PIN
1130 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED)
1132 setting_password_ug_display_desc(ad, _("IDS_IDLE_BODY_NEW_PIN_AND_CONFIRM_PIN_DO_NOT_MATCH"), FALSE);
1134 else if(ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2)
1136 setting_password_ug_display_desc(ad, _("IDS_ST_BODY_NEW_PIN2_AND_CONFIRM_PIN2_DO_NOT_MATCH"), FALSE);
1139 return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
1144 int entry_str_len = safeStrLen(entry_str1);
1145 if(ad->view_type == SETTING_PW_TYPE_SIM_LOCK_ON)
1147 if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
1148 || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH)
1150 setting_password_sim_warning_entry_added_byte_popup
1151 (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
1152 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1157 return SETTING_RETURN_SUCCESS;
1160 void setting_password_sim_warning_entry_added_byte_popup(SettingPasswordUG *ad,
1163 char str[MAX_SPECIALIZITION_LEN + 1] = { 0 };
1165 safeCopyStr(str, _("IDS_COM_BODY_TYPE_A_PIN_THAT_IS_4_TO_8_NUMBERS"), MAX_SPECIALIZITION_LEN);
1166 setting_password_ug_display_desc(ad, str, FALSE);
1169 int setting_password_sim_check_3line_entry(void *data)
1172 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1174 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1176 const char *entry_str1 = ad->ed_pw1->sub_desc;
1177 const char *entry_str2 = ad->ed_pw2->sub_desc;
1178 const char *entry_str3 = ad->ed_pw3->sub_desc;
1179 ad->focus_data = ad->ed_pw1;
1182 int entry_str1_len = safeStrLen(entry_str1);
1183 int entry_str2_len = safeStrLen(entry_str2);
1184 int entry_str3_len = safeStrLen(entry_str3);
1186 /* PUK code always should be 8 chars. */
1187 if (entry_str1_len != SETTING_PW_UG_PUK_MAX_LENGTH)
1189 setting_password_sim_warning_entry_added_byte_popup
1190 (ad, SETTING_PW_UG_PUK_MAX_LENGTH, SETTING_PW_UG_PUK_MAX_LENGTH);
1191 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1193 if (entry_str2_len < SETTING_PW_UG_PIN_MIN_LENGTH
1194 || entry_str2_len > SETTING_PW_UG_PIN_MAX_LENGTH)
1196 ad->focus_data = ad->ed_pw2;
1197 setting_password_sim_warning_entry_added_byte_popup
1198 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1199 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1201 if (entry_str3_len < SETTING_PW_UG_PIN_MIN_LENGTH
1202 || entry_str3_len > SETTING_PW_UG_PIN_MAX_LENGTH)
1204 ad->focus_data = ad->ed_pw3;
1205 setting_password_sim_warning_entry_added_byte_popup
1206 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1207 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1210 return SETTING_RETURN_SUCCESS;
1213 static void setting_password_sim_done(void *data)
1215 SETTING_TRACE_BEGIN;
1216 ret_if(data == NULL);
1217 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1220 if (app_control_create(&svc))
1222 SETTING_TRACE_ERROR("app_control_create() failed");
1226 SETTING_TRACE("ad->view_type:%d", ad->view_type);
1229 switch (ad->view_type) {
1230 case SETTING_PW_TYPE_PIN_LOCK_ON:
1232 SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_ON");
1234 ret = setting_password_sim_check_1line_entry(ad);
1236 if (ret == SETTING_RETURN_SUCCESS) {
1237 TelSimFacilityPw_t sim_sec_data = { 0, };
1238 int tapi_ret = TAPI_API_SUCCESS;
1239 const char *entry_str;
1241 entry_str = ad->ed_pw1->sub_desc;
1242 if (isEmptyStr(entry_str)) {
1243 ad->focus_data = ad->ed_pw1;
1244 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1245 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1246 app_control_destroy(svc);
1250 sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;//TAPI_SIM_PTYPE_PIN1
1251 sim_sec_data.pw = (unsigned char *)entry_str;
1252 sim_sec_data.pw_len = safeStrLen(entry_str);
1254 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1255 setting_password_sim_clear_1line_entry(ad);
1257 if (TAPI_API_SUCCESS != tapi_ret) {
1258 ad->focus_data = ad->ed_pw1;
1259 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1260 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1261 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1263 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1266 setting_password_sim_clear_1line_entry(ad);
1269 app_control_destroy(svc);
1271 case SETTING_PW_TYPE_PIN_LOCK_OFF:
1273 SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_OFF");
1275 ret = setting_password_sim_check_1line_entry(ad);
1277 if (ret == SETTING_RETURN_SUCCESS) {
1278 TelSimFacilityPw_t sim_sec_data = { 0, };
1279 int tapi_ret = TAPI_API_SUCCESS;
1280 const char *entry_str;
1282 entry_str = ad->ed_pw1->sub_desc;
1283 if (isEmptyStr(entry_str)) {
1284 ad->focus_data = ad->ed_pw1;
1285 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1286 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1287 app_control_destroy(svc);
1291 sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;//TAPI_SIM_PTYPE_PIN1
1292 sim_sec_data.pw = (unsigned char *)entry_str;
1293 sim_sec_data.pw_len = safeStrLen(entry_str);
1295 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1296 setting_password_sim_clear_1line_entry(ad);
1298 if (TAPI_API_SUCCESS != tapi_ret) {
1299 ad->focus_data = ad->ed_pw1;
1300 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1301 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1302 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1304 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1307 setting_password_sim_clear_1line_entry(ad);
1310 app_control_destroy(svc);
1312 case SETTING_PW_TYPE_PIN_BLOCKED:
1314 /* PIN1 Status is "Blocked": User should input puk code and new pin1 code. */
1315 /* If puk code is correct and success to modify pin1 code, display pin1 code change popup */
1316 /* But, if this menu is "Pin Lock", pinlock status will not be changed. */
1317 SETTING_TRACE("case SETTING_PW_TYPE_PIN_BLOCKED");
1318 if(ad->cur_pwd == NULL)
1320 ret = setting_password_sim_check_1line_entry(ad);
1321 if(ret == SETTING_RETURN_SUCCESS)
1323 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1324 elm_genlist_clear(ad->scroller);
1325 ADD_GL_SEPARATOR(ad->scroller)
1326 setting_password_sim_draw_2line_entry(ad, NULL);
1330 setting_password_sim_clear_1line_entry(ad);
1335 ret = setting_password_sim_check_2line_entry(ad);
1337 if (ret == SETTING_RETURN_SUCCESS) {
1338 TelSimSecPw_t puk1_data = { 0, };
1339 TelSimSecPw_t pin1_data = { 0, };
1340 int tapi_ret = TAPI_API_SUCCESS;
1342 const char *new_pin1;
1345 new_pin1 = ad->ed_pw1->sub_desc;
1347 puk1_data.type = TAPI_SIM_PTYPE_PUK1;
1348 puk1_data.pw = (unsigned char *)puk;
1349 puk1_data.pw_len = safeStrLen(puk);
1351 pin1_data.type = TAPI_SIM_PTYPE_PIN1;
1352 pin1_data.pw = (unsigned char *)new_pin1;
1353 pin1_data.pw_len = safeStrLen(new_pin1);
1355 tapi_ret = tel_verify_sim_puks(ad->handle, &puk1_data, &pin1_data, setting_sim_verify_puks_cb, ad);
1359 setting_password_sim_clear_2line_entry(ad);
1361 if (TAPI_API_SUCCESS != tapi_ret) {
1362 ad->focus_data = ad->ed_pw1;
1363 SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
1364 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1365 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1367 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1371 setting_password_sim_clear_2line_entry(ad);
1375 app_control_destroy(svc);
1377 case SETTING_PW_TYPE_PIN2_BLOCKED:
1379 SETTING_TRACE("case SETTING_PW_TYPE_PIN2_BLOCKED");
1380 ret = setting_password_sim_check_3line_entry(ad);
1382 if (ret == SETTING_RETURN_SUCCESS) {
1383 TelSimSecPw_t puk2_data = { 0, };
1384 TelSimSecPw_t pin2_data = { 0, };
1385 int tapi_ret = TAPI_API_SUCCESS;
1387 const char *new_pin2;
1389 puk = ad->ed_pw1->sub_desc;
1390 new_pin2 = ad->ed_pw2->sub_desc;
1391 if (isEmptyStr(puk)) {
1392 ad->focus_data = ad->ed_pw1;
1393 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1394 app_control_destroy(svc);
1398 if (isEmptyStr(new_pin2)) {
1399 ad->focus_data = ad->ed_pw2;
1400 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1401 app_control_destroy(svc);
1405 puk2_data.type = TAPI_SIM_PTYPE_PUK2;
1406 puk2_data.pw = (unsigned char *)puk;
1407 puk2_data.pw_len = safeStrLen(puk);
1409 pin2_data.type = TAPI_SIM_PTYPE_PIN2;
1410 pin2_data.pw = (unsigned char *)new_pin2;
1411 pin2_data.pw_len = safeStrLen(new_pin2);
1413 tapi_ret = tel_verify_sim_puks(ad->handle, &puk2_data, &pin2_data, setting_sim_verify_puks_cb, ad);
1414 setting_password_sim_clear_3line_entry(ad);
1416 if (TAPI_API_SUCCESS != tapi_ret) {
1417 ad->focus_data = ad->ed_pw1;
1418 SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
1419 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1420 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1422 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1426 setting_password_sim_clear_3line_entry(ad);
1429 app_control_destroy(svc);
1431 case SETTING_PW_TYPE_CHANGE_PIN:
1433 SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN");
1436 SETTING_TRACE("step #2. new pins");
1437 ret = setting_password_sim_check_2line_entry(ad);
1438 if (ret == SETTING_RETURN_SUCCESS) {
1441 TelSimSecPw_t sim_old_sec_data = { 0, };
1442 TelSimSecPw_t sim_new_sec_data = { 0, };
1443 int tapi_ret = TAPI_API_SUCCESS;
1445 old_pw = ad->cur_pwd;
1446 new_pw = ad->ed_pw1->sub_desc;
1447 sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN1;
1448 sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN1;
1449 sim_old_sec_data.pw = (unsigned char *)old_pw;
1450 sim_old_sec_data.pw_len = safeStrLen(old_pw);
1451 sim_new_sec_data.pw = (unsigned char *)new_pw;
1452 sim_new_sec_data.pw_len = safeStrLen(new_pw);
1454 tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
1455 setting_password_sim_clear_2line_entry(ad);
1457 if (TAPI_API_SUCCESS != tapi_ret) {
1458 ad->focus_data = ad->ed_pw1;
1459 SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
1460 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1461 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1464 setting_password_sim_clear_2line_entry(ad);
1469 SETTING_TRACE("step #1. current pin");
1471 ret = setting_password_sim_check_1line_entry(ad);
1472 if(ret == SETTING_RETURN_SUCCESS)
1474 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1475 //ad->update_change_pin1_flag = TRUE;
1476 //setting_view_update(&setting_view_password_main, ad);
1478 Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(ad->ed_pw1->eo_check);
1481 SETTING_TRACE_DEBUG("imf_context (0x%.8x) : clear event callbacks", imf_context);
1482 ecore_imf_context_input_panel_event_callback_clear(imf_context);
1485 elm_genlist_clear(ad->scroller);
1486 ADD_GL_SEPARATOR(ad->scroller)
1487 setting_password_sim_draw_2line_entry(ad, NULL);
1488 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
1492 setting_password_sim_clear_1line_entry(ad);
1496 app_control_destroy(svc);
1498 case SETTING_PW_TYPE_CHANGE_PIN2:
1500 SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN2");
1503 SETTING_TRACE("step #2. new pin2s");
1504 ret = setting_password_sim_check_2line_entry(ad);
1505 if (ret == SETTING_RETURN_SUCCESS) {
1508 TelSimSecPw_t sim_old_sec_data = { 0, };
1509 TelSimSecPw_t sim_new_sec_data = { 0, };
1510 int tapi_ret = TAPI_API_SUCCESS;
1512 old_pw = ad->cur_pwd;
1513 new_pw = ad->ed_pw1->sub_desc;
1515 sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN2;
1516 sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN2;
1517 sim_old_sec_data.pw = (unsigned char *)old_pw;
1518 sim_old_sec_data.pw_len = safeStrLen(old_pw);
1519 sim_new_sec_data.pw = (unsigned char *)new_pw;
1520 sim_new_sec_data.pw_len = safeStrLen(new_pw);
1522 tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
1523 setting_password_sim_clear_2line_entry(ad);
1525 if (TAPI_API_SUCCESS != tapi_ret) {
1526 ad->focus_data = ad->ed_pw1;
1527 SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
1528 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1529 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1532 setting_password_sim_clear_2line_entry(ad);
1537 SETTING_TRACE("step #1. current pin2");
1539 ret = setting_password_sim_check_1line_entry(ad);
1540 if(ret == SETTING_RETURN_SUCCESS)
1542 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1544 Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(ad->ed_pw1->eo_check);
1547 SETTING_TRACE_DEBUG("imf_context (0x%.8x) : clear event callbacks", imf_context);
1548 ecore_imf_context_input_panel_event_callback_clear(imf_context);
1551 elm_genlist_clear(ad->scroller);
1552 ADD_GL_SEPARATOR(ad->scroller)
1553 setting_password_sim_draw_2line_entry(ad, NULL);
1554 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
1558 setting_password_sim_clear_1line_entry(ad);
1562 app_control_destroy(svc);
1565 case SETTING_PW_TYPE_SIM_LOCK_ON:
1567 SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_ON");
1569 ret = setting_password_sim_check_2line_entry(ad);
1571 if (ret == SETTING_RETURN_SUCCESS) {
1572 TelSimFacilityPw_t sim_sec_data = { 0, };
1573 int tapi_ret = TAPI_API_SUCCESS;
1574 const char *entry_str;
1575 entry_str = ad->ed_pw1->sub_desc;
1576 if (isEmptyStr(entry_str)) {
1577 ad->focus_data = ad->ed_pw1;
1578 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1579 app_control_destroy(svc);
1583 sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;//TAPI_SIM_PTYPE_SIM
1584 sim_sec_data.pw = (unsigned char *)entry_str;
1585 sim_sec_data.pw_len = safeStrLen(entry_str);
1587 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1588 setting_password_sim_clear_2line_entry(ad);
1590 SETTING_TRACE_SECURE_DEBUG("SIM Lock password : %s\n", (char *)(sim_sec_data.pw));
1591 if (TAPI_API_SUCCESS != tapi_ret) {
1592 ad->focus_data = ad->ed_pw1;
1593 SETTING_TRACE_DEBUG("%s*** [ERR] tel_enable_sim_facility err=%d ***%s",
1594 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1595 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1597 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1601 setting_password_sim_clear_2line_entry(ad);
1604 app_control_destroy(svc);
1606 case SETTING_PW_TYPE_SIM_LOCK_OFF:
1608 SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_OFF");
1610 ret = setting_password_sim_check_1line_entry(ad);
1611 if (ret == SETTING_RETURN_SUCCESS) {
1612 TelSimFacilityPw_t sim_sec_data = { 0, };
1613 int tapi_ret = TAPI_API_SUCCESS;
1614 const char *entry_str;
1616 entry_str = ad->ed_pw1->sub_desc;
1617 if (isEmptyStr(entry_str)) {
1618 ad->focus_data = ad->ed_pw1;
1619 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1620 app_control_destroy(svc);
1624 sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;//TAPI_SIM_PTYPE_SIM
1625 sim_sec_data.pw = (unsigned char *)entry_str;
1626 sim_sec_data.pw_len = safeStrLen(entry_str);
1628 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1629 setting_password_sim_clear_1line_entry(ad);
1631 if (TAPI_API_SUCCESS != tapi_ret) {
1632 ad->focus_data = ad->ed_pw1;
1633 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1634 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1635 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1637 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1641 setting_password_sim_clear_1line_entry(ad);
1644 app_control_destroy(svc);
1648 case SETTING_PW_TYPE_FDN_MODE_ON:
1650 SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_ON");
1651 ret = setting_password_sim_check_1line_entry(ad);
1653 if(ret == SETTING_RETURN_SUCCESS)
1655 const char *entry_str;
1656 int tapi_ret = TAPI_API_INVALID_INPUT;
1658 TelSimFacilityPw_t sim_sec_data = {0,};
1661 entry_str = ad->ed_pw1->sub_desc;
1662 if(isEmptyStr(entry_str))
1664 ad->focus_data = ad->ed_pw1;
1665 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1666 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1667 app_control_destroy(svc);
1670 sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;//TAPI_SIM_PTYPE_PIN2;
1671 sim_sec_data.pw_len = safeStrLen(entry_str);
1672 sim_sec_data.pw = (unsigned char*)entry_str;
1674 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1675 setting_password_sim_clear_1line_entry(ad);
1677 if(tapi_ret != TAPI_API_SUCCESS)
1679 ad->focus_data = ad->ed_pw1;
1680 SETTING_TRACE_ERROR("[ERR] Failed to enable FDN. Tapi return %d", tapi_ret);
1681 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1682 app_control_destroy(svc);
1686 app_control_add_extra_data(svc, "result", ad->view_type_string);
1687 ug_send_result(ad->ug, svc);
1688 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1689 app_control_destroy(svc);
1690 //ug_destroy_me(ad->ug);
1695 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), TRUE);
1699 case SETTING_PW_TYPE_FDN_MODE_OFF:
1701 SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_OFF");
1702 ret = setting_password_sim_check_1line_entry(ad);
1704 if(ret == SETTING_RETURN_SUCCESS)
1706 const char *entry_str;
1707 int tapi_ret = TAPI_API_INVALID_INPUT;
1709 TelSimFacilityPw_t sim_sec_data = {0,};
1711 entry_str = ad->ed_pw1->sub_desc;
1712 if(isEmptyStr(entry_str))
1714 ad->focus_data = ad->ed_pw1;
1715 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1716 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1717 app_control_destroy(svc);
1720 sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;//TAPI_SIM_PTYPE_PIN2
1721 sim_sec_data.pw_len = safeStrLen(entry_str);
1722 sim_sec_data.pw = (unsigned char*)entry_str;
1724 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1725 setting_password_sim_clear_1line_entry(ad);
1727 if(tapi_ret != TAPI_API_SUCCESS)
1729 ad->focus_data = ad->ed_pw1;
1730 SETTING_TRACE_ERROR("[ERR] Failed to disable FDN. Tapi return %d", tapi_ret);
1731 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
1732 app_control_destroy(svc);
1736 app_control_add_extra_data(svc, "result", ad->view_type_string);
1737 ug_send_result(ad->ug, svc);
1738 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1740 app_control_destroy(svc);
1741 //ug_destroy_me(ad->ug);
1746 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), TRUE);
1752 app_control_destroy(svc);
1756 app_control_add_extra_data(svc, "result", ad->view_type_string);
1757 ug_send_result(ad->ug, svc);
1758 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1760 app_control_destroy(svc);
1761 /* Send destroy request */
1762 ug_destroy_me(ad->ug);
1765 void setting_password_sim_click_softkey_done_cb(void *data, Evas_Object *obj,
1768 SETTING_TRACE_BEGIN;
1770 retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
1772 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1774 if(ad->ed_pw1 && ad->ed_pw1->eo_check)
1776 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
1778 if(ad->ed_pw2 && ad->ed_pw2->eo_check)
1780 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_FALSE);
1782 if(ad->ed_pw3 && ad->ed_pw3->eo_check)
1784 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_FALSE);
1787 if(ad->err_desc && ad->err_desc->item)
1789 elm_object_item_del(ad->err_desc->item);
1790 ad->err_desc = NULL;
1793 setting_password_sim_done(ad);
1796 void setting_get_sim_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
1798 SETTING_TRACE_BEGIN;
1799 ret_if(data == NULL || user_data == NULL);
1801 TelSimPinOperationResult_t sec_rt = result;
1802 TelSimLockInfo_t *lock = data;
1804 SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
1806 SETTING_TRACE_SECURE_DEBUG("sec_ret[%d], lock_type[%d], lock_status[%d], retry_count[%d]", sec_rt, lock->lock_type, lock->lock_status, lock->retry_count);
1808 char temp[256] ={0,};
1809 if(lock->retry_count > 1)
1810 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1811 else if(lock->retry_count > 0)
1812 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1814 if(ad->err_desc && ad->err_desc->item)
1816 elm_object_item_del(ad->err_desc->item);
1817 ad->err_desc = NULL;
1819 ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
1821 &(itc_multiline_text),
1822 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
1826 void setting_get_pin_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
1828 SETTING_TRACE_BEGIN;
1830 TelSimPinOperationResult_t sec_rt = result;
1831 TelSimLockInfo_t *lock = data;
1834 SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
1836 SETTING_TRACE_SECURE_DEBUG("sec_ret[%d], lock_type[%d], lock_status[%d], retry_count[%d]", sec_rt, lock->lock_type, lock->lock_status, lock->retry_count);
1838 char temp[256] ={0,};
1839 if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN)
1841 char rtemp[SETTING_STR_SLP_LEN] ={0,};
1842 if(ad->incorrect_pin1_flag)
1844 if (lock->retry_count > 1) {
1845 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPTS_DESC));
1846 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1848 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPT_DESC));
1849 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1854 if(lock->retry_count > 1)
1855 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1856 else if(lock->retry_count > 0)
1857 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1860 else if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2)
1862 char rtemp[SETTING_STR_SLP_LEN] ={0,};
1863 if(ad->incorrect_pin2_flag)
1865 if (lock->retry_count > 1) {
1866 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPTS_DESC));
1867 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1869 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPT_DESC));
1870 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1875 if(lock->retry_count > 1)
1876 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1877 else if(lock->retry_count > 0)
1878 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1883 if(lock->retry_count > 1)
1884 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1885 else if(lock->retry_count > 0)
1886 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1889 if(ad->err_desc && ad->err_desc->item)
1891 elm_object_item_del(ad->err_desc->item);
1892 ad->err_desc = NULL;
1894 ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
1896 &(itc_multiline_text),
1897 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
1901 void setting_sim_change_pins_cb(TapiHandle *handle, int result, void *data, void *user_data)
1903 SETTING_TRACE_BEGIN;
1904 ret_if(!user_data || !data);
1905 TelSimPinOperationResult_t sec_rt = result;
1906 tapi_receive_info result_info = { 0, };
1907 TelSimSecResult_t *sim_event_data = (TelSimSecResult_t *) data;
1908 SETTING_TRACE_SECURE_DEBUG("sec_rt[%d]", sec_rt);
1909 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1910 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1912 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) {
1913 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type)
1914 result_info.stat = SIM_PIN1_CHANGE_SUCCESS;
1915 else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type)
1916 result_info.stat = SIM_PIN2_CHANGE_SUCCESS;
1917 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
1918 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type) {
1919 result_info.stat = SIM_INCORRECT_PIN1_CODE;
1920 result_info.retry_cnt = sim_event_data->retry_count;
1921 } else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type) {
1922 result_info.stat = SIM_INCORRECT_PIN2_CODE;
1923 result_info.retry_cnt = sim_event_data->retry_count;
1925 } else if (TAPI_SIM_PUK_REQUIRED == sec_rt) {
1926 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type)
1927 result_info.stat = SIM_PIN1_BLOCKED;
1928 else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type)
1929 result_info.stat = SIM_PIN2_BLOCKED;
1932 ("%s*** [ERR] INCORRECTED ***%s",
1933 SETTING_FONT_RED, SETTING_FONT_BLACK);
1936 setting_password_ug_display_result_popup(&result_info, user_data);
1939 void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void *user_data)
1941 SETTING_TRACE_BEGIN;
1943 ret_if(!user_data || !data);
1944 SettingPasswordUG *ad = user_data;
1945 TelSimPinOperationResult_t sec_rt = result;
1946 tapi_receive_info result_info = { 0, };
1947 TelSimSecResult_t *sim_event_data = (TelSimSecResult_t *) data;
1948 ad->verify_puks_result = sim_event_data;
1949 SETTING_TRACE_SECURE_DEBUG("sec_rt[%d]", sec_rt);
1950 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1951 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1953 if (TAPI_SIM_PTYPE_PUK1 == sim_event_data->type)
1955 //if (TAPI_SIM_PIN_REQUIRED == sec_rt){
1956 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){
1957 SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
1958 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN1_UNBLOCKED")+1);
1960 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
1961 snprintf(tmp_str, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_PUK1_VERIFIED"), _("IDS_ST_POP_PIN_UNBLOCKED"));
1962 setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
1964 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
1965 result_info.stat = SIM_INCORRECT_PUK1_CODE;
1966 result_info.retry_cnt = sim_event_data->retry_count;
1967 ad->puk_verified_flag = TRUE;
1968 setting_view_update(&setting_view_password_main, ad);
1969 } else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) {
1970 if(sim_event_data->retry_count <= 0)
1972 result_info.stat = SIM_PUK1_BLOCKED;
1973 result_info.retry_cnt = 0;
1977 result_info.stat = SIM_INCORRECT_PUK1_CODE;
1978 result_info.retry_cnt = sim_event_data->retry_count;
1979 ad->puk_verified_flag = TRUE;
1980 setting_view_update(&setting_view_password_main, ad);
1982 } else if (TAPI_SIM_PERM_BLOCKED == sec_rt) {
1983 result_info.stat = SIM_PUK1_BLOCKED;
1984 result_info.retry_cnt = 0;
1986 result_info.stat = SIM_UNKNOWN_ERROR;
1990 else if (TAPI_SIM_PTYPE_PUK2 == sim_event_data->type)
1992 SETTING_TRACE_DEBUG("sec_rt : %d", sec_rt);
1993 //if (TAPI_SIM_PUK_REQUIRED == sec_rt)
1994 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){
1995 SETTING_TRACE_DEBUG("SIM_PIN2_UNBLOCKED");
1996 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN2_UNBLOCKED")+1);
1997 //char tmp_str[SETTING_STR_SLP_LEN] = {0,};
1998 //snprintf(tmp_str, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_PUK2_VERIFIED"), _("IDS_ST_POP_PIN2_UNBLOCKED"));
1999 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PIN2_UNBLOCKED"), TRUE);
2001 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
2002 SETTING_TRACE_DEBUG("stat : SIM_INCORRECT_PUK2_CODE");
2003 result_info.stat = SIM_INCORRECT_PUK2_CODE;
2004 result_info.retry_cnt = sim_event_data->retry_count;
2005 } else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) {
2006 SETTING_TRACE_DEBUG("stat : SIM_INCORRECT_PUK2_CODE");
2007 if(sim_event_data->retry_count <= 0)
2009 result_info.stat = SIM_PUK2_BLOCKED;
2010 result_info.retry_cnt = 0;
2014 result_info.stat = SIM_INCORRECT_PUK2_CODE;
2015 result_info.retry_cnt = sim_event_data->retry_count;
2017 } else if (TAPI_SIM_PERM_BLOCKED == sec_rt) {
2018 result_info.stat = SIM_PUK2_BLOCKED;
2019 result_info.retry_cnt = 0;
2021 result_info.stat = SIM_UNKNOWN_ERROR;
2026 result_info.stat = SIM_UNKNOWN_ERROR;
2028 setting_password_ug_display_result_popup(&result_info, user_data);
2031 void setting_sim_facility_enable_cb(TapiHandle *handle, int result, void *data, void *user_data)
2033 SETTING_TRACE_BEGIN;
2036 SETTING_TRACE_SECURE_DEBUG("result[%d]", result);
2037 if(result == TAPI_API_SIM_LOCKED) /* -503 error */
2039 setting_password_ug_create_popup_notitle_nobtn(user_data, _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
2043 tapi_receive_info result_info = { 0, };
2044 TelSimFacilityResult_t *sim_event_data = (TelSimFacilityResult_t *) data;
2046 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
2047 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
2050 if (TAPI_SIM_LOCK_PS == sim_event_data->type) {
2051 SETTING_TRACE("CASE TAPI_SIM_PTYPE_SIM == sim_event_data->type");
2052 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
2053 result_info.stat = SIM_LOCK_ON_SUCCESS;
2054 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result)
2055 result_info.stat = SIM_LOCK_INCORRECT_PASSWORD;
2057 SETTING_TRACE_DEBUG("%s*** [ERR] INCORRECTED ***%s",
2059 SETTING_FONT_BLACK);
2064 else if (TAPI_SIM_LOCK_SC == sim_event_data->type) {
2065 SETTING_TRACE("CASE TAPI_SIM_PTYPE_PIN1 == sim_event_data->type");
2066 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
2067 result_info.stat = SIM_PIN_LOCK_ON_SUCCESS;
2068 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result) {
2069 result_info.stat = SIM_INCORRECT_PIN1_CODE;
2070 result_info.retry_cnt = sim_event_data->retry_count;
2071 } else if (TAPI_SIM_PUK_REQUIRED == result)
2072 result_info.stat = SIM_PIN1_BLOCKED;
2075 else if (TAPI_SIM_INCOMPATIBLE_PIN_OPERATION == result
2076 || TAPI_SIM_CARD_ERROR == result) {
2078 result_info.stat = SIM_OPERATION_UNAVAILABLE;
2082 ("%s*** [ERR] INCORRECTED ***%s",
2084 SETTING_FONT_BLACK);
2088 setting_password_ug_display_result_popup(&result_info, user_data);
2091 void setting_sim_facility_disable_cb(TapiHandle *handle, int result, void *data, void *user_data)
2093 SETTING_TRACE_BEGIN;
2096 SETTING_TRACE_SECURE_DEBUG("result[%d]", result);
2097 if(result == TAPI_API_SIM_LOCKED) /* -503 error */
2099 setting_password_ug_create_popup_notitle_nobtn(user_data, _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
2103 tapi_receive_info result_info = { 0, };
2104 TelSimFacilityResult_t *sim_event_data = (TelSimFacilityResult_t *) data;
2106 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
2107 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
2110 if (TAPI_SIM_LOCK_PS == sim_event_data->type) {
2111 SETTING_TRACE_DEBUG("SIM lOCK");
2112 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
2113 result_info.stat = SIM_LOCK_OFF_SUCCESS;
2114 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result)
2115 result_info.stat = SIM_LOCK_INCORRECT_PASSWORD;
2118 ("%s*** [ERR] INCORRECTED ***%s",
2120 SETTING_FONT_BLACK);
2125 else if (TAPI_SIM_LOCK_SC == sim_event_data->type) {
2126 SETTING_TRACE_DEBUG("PIN LOCK");
2127 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
2128 result_info.stat = SIM_PIN_LOCK_OFF_SUCCESS;
2129 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result) {
2130 result_info.stat = SIM_INCORRECT_PIN1_CODE;
2131 result_info.retry_cnt = sim_event_data->retry_count;
2132 } else if (TAPI_SIM_PUK_REQUIRED == result)
2133 result_info.stat = SIM_PIN1_BLOCKED;
2136 else if (TAPI_SIM_INCOMPATIBLE_PIN_OPERATION == result
2137 || TAPI_SIM_CARD_ERROR == result) {
2139 result_info.stat = SIM_OPERATION_UNAVAILABLE;
2143 ("%s*** [ERR] INCORRECTED ***%s",
2145 SETTING_FONT_BLACK);
2149 setting_password_ug_display_result_popup(&result_info, user_data);
2152 static void setting_password_ug_display_result_popup(tapi_receive_info *result,
2153 SettingPasswordUG *ad)
2155 SETTING_TRACE_BEGIN;
2156 switch (result->stat) {
2157 case SIM_OPERATION_OK:
2158 case SIM_LOCK_ON_SUCCESS:
2159 case SIM_LOCK_OFF_SUCCESS:
2160 case SIM_PIN_LOCK_ON_SUCCESS:
2161 case SIM_PIN_LOCK_OFF_SUCCESS:
2163 if (ad->view_type ==
2164 SETTING_PW_TYPE_SIM_LOCK_OFF) {
2165 int err = SETTING_RETURN_SUCCESS;
2167 setting_set_int_slp_key
2168 (INT_SLP_SETTING_SIM_LOCK_ATTEMPTS_LEFT,
2169 SIM_LOCK_ATTEMPS_MAX, &err);
2170 setting_retm_if(err == SETTING_RETURN_FAIL,
2171 "[Error] set value of vconf fail.");
2173 /* Success to Operate */
2175 if (app_control_create(&svc))
2178 app_control_add_extra_data(svc, "result", ad->view_type_string);
2179 ug_send_result(ad->ug, svc);
2180 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
2182 app_control_destroy(svc);
2183 /* Send destroy request */
2184 ug_destroy_me(ad->ug);
2188 case SIM_PIN1_BLOCKED:
2190 SETTING_TRACE_DEBUG("SIM_PIN1_BLOCKED");
2191 //ad->view_type = SETTING_PW_TYPE_PIN_BLOCKED;
2192 /* Success to Operate */
2194 if (app_control_create(&svc))
2197 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PIN_BLOCKED");
2198 ug_send_result(ad->ug, svc);
2199 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PIN_BLOCKED");
2201 app_control_destroy(svc);
2202 /* Send destroy request */
2203 ug_destroy_me(ad->ug);
2206 case SIM_PIN2_BLOCKED:
2208 SETTING_TRACE_DEBUG("SIM_PIN2_BLOCKED");
2209 //ad->view_type = SETTING_PW_TYPE_PIN2_BLOCKED;
2211 if (app_control_create(&svc))
2214 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PIN2_BLOCKED");
2215 ug_send_result(ad->ug, svc);
2216 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PIN2_BLOCKED");
2218 app_control_destroy(svc);
2219 /* Send destroy request */
2220 ug_destroy_me(ad->ug);
2221 //safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN2_BLOCKED")+1);
2222 //setting_password_ug_create_popup_notitle_nobtn(ad,
2223 // _("IDS_ST_POP_PIN2_BLOCKED"), TRUE);
2226 case SIM_LOCK_INCORRECT_PASSWORD:
2228 SETTING_TRACE_DEBUG("SIM LOCK INCORRECT PASSWORD");
2229 ad->focus_data = ad->ed_pw1;
2230 setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
2233 case SIM_INCORRECT_PIN1_CODE:
2235 if(ad->view_type == SETTING_PW_TYPE_CHANGE_PIN)
2237 ad->incorrect_pin1_flag = TRUE;
2239 elm_genlist_clear(ad->scroller);
2240 ADD_GL_SEPARATOR(ad->scroller)
2241 setting_password_sim_draw_1line_entry(ad, NULL);
2242 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
2246 const char *ret_str = NULL;
2247 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2249 if (result->retry_cnt > 1) {
2250 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2251 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2252 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPTS_DESC));
2253 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2254 setting_retm_if(ret < 0, "snprintf fail");
2257 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2258 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPT_DESC));
2259 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2260 setting_retm_if(ret < 0, "snprintf fail");
2262 //ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
2265 ad->focus_data = ad->ed_pw1;
2266 #ifdef SUPPORT_POPUP
2267 setting_password_ug_create_popup_notitle_nobtn(ad, (char *)ret_str, FALSE);
2269 setting_password_ug_display_desc(ad, (char *)ret_str, FALSE);
2273 case SIM_INCORRECT_PIN2_CODE:
2275 if(ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2)
2277 ad->incorrect_pin2_flag = TRUE;
2279 elm_genlist_clear(ad->scroller);
2280 ADD_GL_SEPARATOR(ad->scroller)
2281 setting_password_sim_draw_1line_entry(ad, NULL);
2282 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
2286 char *ret_str = NULL;
2287 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2289 if (result->retry_cnt > 1) {
2290 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2291 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2292 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPTS_DESC));
2293 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2294 setting_retm_if(ret < 0, "snprintf fail");
2297 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2298 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPT_DESC));
2299 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2300 setting_retm_if(ret < 0, "snprintf fail");
2302 //ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
2305 ad->focus_data = ad->ed_pw1;
2306 #ifdef SUPPORT_POPUP
2307 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2309 setting_password_ug_display_desc(ad, ret_str, FALSE);
2313 case SIM_INCORRECT_PUK1_CODE:
2315 char *ret_str = NULL;
2316 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2318 if (result->retry_cnt > 1) {
2319 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PUK1_PD_ATTEMPTS_LEFT', must transform */
2320 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PUK1_ERR_DESC, result->retry_cnt);
2321 setting_retm_if(ret < 0, "snprintf fail");
2324 ret_str = _("IDS_ST_POP_INCORRECT_PUK1_CODE");
2327 ad->focus_data = ad->ed_pw1;
2328 #ifdef SUPPORT_POPUP
2329 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2331 setting_password_ug_display_desc(ad, ret_str, FALSE);
2335 case SIM_INCORRECT_PUK2_CODE:
2337 char *ret_str = NULL;
2338 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2340 if (result->retry_cnt > 1) {
2341 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2342 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2343 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PUK2"), _(ATTEMPTS_DESC));
2344 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2345 setting_retm_if(ret < 0, "snprintf fail");
2348 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2349 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PUK2"), _(ATTEMPT_DESC));
2350 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2351 setting_retm_if(ret < 0, "snprintf fail");
2353 ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
2355 ad->focus_data = ad->ed_pw1;
2356 #ifdef SUPPORT_POPUP
2357 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2359 setting_password_ug_display_desc(ad, ret_str, FALSE);
2364 case SIM_PIN1_CHANGE_SUCCESS:
2366 SETTING_TRACE_DEBUG("SIM_PIN1_CHANGE_SUCCESS");
2367 //ad->view_type = SETTING_PW_TYPE_PIN_BLOCKED;
2368 /* Success to Operate */
2370 if (app_control_create(&svc))
2373 app_control_add_extra_data(svc, "result", ad->view_type_string);
2374 ug_send_result(ad->ug, svc);
2375 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
2377 app_control_destroy(svc);
2378 /* Send destroy request */
2379 ug_destroy_me(ad->ug);
2381 //setting_password_ug_create_popup_notitle_nobtn(ad,
2382 // _("IDS_ST_POP_PIN1_CHANGED"), TRUE);
2384 case SIM_PIN2_CHANGE_SUCCESS:
2385 setting_password_ug_create_popup_notitle_nobtn(ad,
2386 _("IDS_ST_POP_PIN2_CHANGED"), TRUE);
2388 case SIM_PIN1_UNBLOCKED:
2389 SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
2390 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_LOCK_ON", safeStrLen("SETTING_PW_TYPE_PIN_LOCK_ON")+1);
2391 setting_password_ug_create_popup_notitle_nobtn(ad,
2392 _("IDS_ST_POP_PIN_UNBLOCKED"), TRUE);
2394 case SIM_PIN2_UNBLOCKED:
2395 setting_password_ug_create_popup_notitle_nobtn(ad,
2396 _("IDS_ST_POP_PIN2_UNBLOCKED"), TRUE);
2398 case SIM_PUK1_BLOCKED:
2400 char *ret_str = NULL;
2401 ret_str = PUK1_BLOCKED;
2403 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PUK1_BLOCKED", safeStrLen("SETTING_PW_TYPE_PUK1_BLOCKED")+1);
2404 setting_password_ug_create_popup_notitle_nobtn(ad,
2406 /* Phone blocked. Call Permernent UG */
2409 case SIM_PUK2_BLOCKED:
2412 if (app_control_create(&svc))
2415 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PUK2_BLOCKED");
2416 ug_send_result(ad->ug, svc);
2417 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PUK2_BLOCKED");
2419 app_control_destroy(svc);
2420 /* Send destroy request */
2421 ug_destroy_me(ad->ug);
2423 /* Call Permernent UG */
2425 case SIM_REQUIRED_PUK_CODE:
2426 SETTING_TRACE_DEBUG("SIM_REQUIRED_PUK_CODE");
2427 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN_BLOCKED")+1);
2428 setting_password_ug_create_popup_notitle_nobtn(ad,
2429 _("IDS_ST_POP_PIN1_BLOCKED"), TRUE);
2431 case SIM_OPERATION_UNAVAILABLE:
2432 setting_password_ug_create_popup_notitle_nobtn(ad,
2433 _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
2435 case SIM_UNKNOWN_ERROR:
2436 setting_password_ug_create_popup_notitle_nobtn(ad,
2437 _("IDS_CST_POP_UNKNOWN_OPERATION"), FALSE);
2441 case SIM_OPERATION_OFF:
2442 case SIM_LOCK_ON_FAIL:
2443 SETTING_TRACE_DEBUG("SIM_LOCK_ON_FAIL");
2445 if(result->retry_cnt > 0)
2447 setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
2451 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2452 snprintf(tmp_str, SETTING_STR_SLP_LEN, PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME);
2453 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_SIM_LOCK_DISABLE", safeStrLen("SETTING_PW_TYPE_SIM_LOCK_DISABLE")+1);
2454 setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
2458 case SIM_PIN1_CHANGE_FAIL:
2459 case SIM_PIN2_CHANGE_FAIL:
2460 setting_password_ug_create_popup_notitle_nobtn(ad,
2461 _("Change Failed"), TRUE);