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>
31 #include <notification.h>
33 static int setting_password_sim_create(void *cb);
34 static int setting_password_sim_destroy(void *cb);
35 static int setting_password_sim_update(void *cb);
36 static int setting_password_sim_cleanup(void *cb);
38 setting_view setting_view_password_sim = {
39 .create = setting_password_sim_create,
40 .destroy = setting_password_sim_destroy,
41 .update = setting_password_sim_update,
42 .cleanup = setting_password_sim_cleanup,
45 static void setting_password_sim_done(void *data);
48 /* ***************************************************
52 ***************************************************/
54 __password_sim_gl_mouse_up(void *data, Evas *e, Evas_Object *obj,
58 /*SettingPasswordUG *ad = (SettingPasswordUG *) data; */
60 /* P131121-05156 : do not hide input panel when genlist scrolls,
61 plz compare with [about device > device name] item */
64 static char *setting_password_sim_get_title_str(void *data)
66 retvm_if(data == NULL, NULL,
67 "[Setting > Password] Data parameter is NULL");
68 SettingPasswordUG *ad = (SettingPasswordUG *) data;
70 switch (ad->view_type) {
71 case SETTING_PW_TYPE_SIM_LOCK_ON:
72 case SETTING_PW_TYPE_SIM_LOCK_OFF:
73 return "IDS_ST_BODY_PASSWORD";
75 case SETTING_PW_TYPE_PIN_LOCK_ON:
76 case SETTING_PW_TYPE_PIN_LOCK_OFF:
77 return _("IDS_ST_BODY_PIN");
79 case SETTING_PW_TYPE_CHANGE_PIN:
80 return _("IDS_ST_HEADER_CHANGE_PIN_ABB");
83 case SETTING_PW_TYPE_CHANGE_PIN2:
84 return _("IDS_ST_BODY_CHANGE_PIN2");
87 case SETTING_PW_TYPE_PIN_BLOCKED:
88 return _("IDS_ST_BODY_PUK1_CODE");
90 case SETTING_PW_TYPE_PIN2_BLOCKED:
92 return _("IDS_ST_BODY_PUK2");
95 SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
96 SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
103 static Eina_Bool setting_password_sim_click_softkey_cancel_cb(void *data, Elm_Object_Item *it)
107 retvm_if(data == NULL, EINA_FALSE, "[Setting > Password] Data parameter is NULL");
109 SettingPasswordUG *ad = (SettingPasswordUG *) data;
111 /* if IME is displayed, hide IME. or Destroy password ug. */
112 if (ad->ed_pw1 && ad->ed_pw1->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw1->eo_check)) {
113 SETTING_TRACE_DEBUG("wait to hide IME");
114 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
116 } else if (ad->ed_pw2 && ad->ed_pw2->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw2->eo_check)) {
117 SETTING_TRACE_DEBUG("wait to hide IME");
118 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_FALSE);
120 } else if (ad->ed_pw3 && ad->ed_pw3->isFocusFlag == TRUE && elm_object_focus_get(ad->ed_pw3->eo_check)) {
121 SETTING_TRACE_DEBUG("wait to hide IME");
122 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_FALSE);
126 if (ad->focus_timer) {
127 ecore_timer_del(ad->focus_timer);
128 ad->focus_timer = NULL;
131 /* send result : Cancel */
133 if (app_control_create(&svc) == 0) {
134 app_control_add_extra_data(svc, "result", "Cancel");
135 ug_send_result(ad->ug, svc);
136 SETTING_TRACE("Send Result : %s\n", "Cancel");
138 app_control_destroy(svc);
140 /* Send destroy request */
141 ug_destroy_me(ad->ug);
146 static int __create_sim_layout(void *data)
149 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
151 SettingPasswordUG *ad = (SettingPasswordUG *)data;
152 static int count = 0;
156 if (ad->scroller != NULL) {
157 evas_object_del(ad->scroller);
161 /* PIN related views have 2 toolbar buttons. CANCEL and DONE button */
162 ad->ly_main = setting_create_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get, setting_password_sim_get_title_str(ad),
163 _("IDS_ST_BUTTON_BACK"),
165 (setting_call_back_func)setting_password_sim_click_softkey_cancel_cb,
171 ad->navi_it = elm_naviframe_top_item_get(ad->navi_bar);
172 ad->bottom_btn = elm_button_add(ad->navi_bar);
174 Evas_Object *btn_cancel = elm_button_add(ad->navi_bar);
175 elm_object_style_set(btn_cancel, "naviframe/title_cancel");
176 evas_object_smart_callback_add(btn_cancel, "clicked", setting_password_sim_click_softkey_cancel_cb, ad);
177 elm_object_item_part_content_set(ad->navi_it, "title_left_btn", btn_cancel);
179 Evas_Object *btn_done = elm_button_add(ad->navi_bar);
180 elm_object_style_set(btn_done, "naviframe/title_done");
181 evas_object_smart_callback_add(btn_done, "clicked", setting_password_sim_click_softkey_done_cb, ad);
182 elm_object_item_part_content_set(ad->navi_it, "title_right_btn", btn_done);
185 SETTING_TRACE("genlist is NULL");
186 return SETTING_RETURN_FAIL;
189 /* Disable Done button if exist */
190 elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
191 elm_object_focus_allow_set(ad->bottom_btn, EINA_FALSE);
192 elm_object_item_signal_emit(ad->navi_it, "elm,state,sip,shown", "");
194 elm_genlist_mode_set(ad->scroller, ELM_LIST_COMPRESS);
195 /*evas_object_smart_callback_add(ad->scroller, "drag", __password_main_gl_drag, ad); */
196 evas_object_event_callback_add(ad->scroller, EVAS_CALLBACK_MOUSE_UP,
197 __password_sim_gl_mouse_up, ad);
199 ADD_GL_SEPARATOR(ad->scroller)
201 return SETTING_RETURN_SUCCESS;
204 static Eina_Bool __setting_password_sim_rotate_cb(void *data)
208 retv_if(data == NULL, FALSE);
210 SettingPasswordUG *ad = (SettingPasswordUG *) data;
212 if (ad->view_type == SETTING_PW_TYPE_PIN_LOCK_OFF
213 || ad->view_type == SETTING_PW_TYPE_PIN_LOCK_ON
214 || ((ad->view_type == SETTING_PW_TYPE_CHANGE_PIN) && !ad->cur_pwd)
215 || ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED) {
216 if (tel_get_sim_lock_info(ad->handle, TAPI_SIM_LOCK_SC, setting_get_pin_lock_info_cb, ad) != 0)
217 SETTING_TRACE_DEBUG("failed to call tel_get_sim_lock_info()");
218 } else if (((ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2) && !ad->cur_pwd)
219 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED) {
220 if (tel_get_sim_lock_info(ad->handle, TAPI_SIM_LOCK_FD, setting_get_pin_lock_info_cb, ad) != 0)
221 SETTING_TRACE_DEBUG("failed to call tel_get_sim_lock_info()");
224 /* it can manage the cursor self */
225 if (ad->ed_pw1 && ad->ed_pw1->isFocusFlag) {
226 if (ad->ed_pw1->eo_check) {
227 SETTING_TRACE_DEBUG("set focus on first entry");
228 /* no matter how many edifileds, it only need focus on 1st editfiled */
229 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
230 elm_entry_cursor_end_set(ad->ed_pw1->eo_check);
232 } else if (ad->ed_pw2 && ad->ed_pw2->isFocusFlag) {
233 if (ad->ed_pw2->eo_check) {
234 SETTING_TRACE_DEBUG("set focus on second entry");
235 /*no matter how many edifileds, it only need focus on 1st editfiled */
236 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_TRUE);
237 elm_entry_cursor_end_set(ad->ed_pw2->eo_check);
239 } else if (ad->ed_pw3 && ad->ed_pw3->isFocusFlag) {
240 if (ad->ed_pw3->eo_check) {
241 SETTING_TRACE_DEBUG("set focus on third entry");
242 /*no matter how many edifileds, it only need focus on 1st editfiled */
243 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_TRUE);
244 elm_entry_cursor_end_set(ad->ed_pw3->eo_check);
248 ad->focus_timer = NULL;
250 return ECORE_CALLBACK_CANCEL;
253 static void __init_tapi(SettingPasswordUG *ad)
255 ad->handle = tel_init(NULL);
257 SETTING_TRACE_DEBUG("%s*** [ERR] tel_init. ***%s",
258 SETTING_FONT_RED, SETTING_FONT_BLACK);
259 setting_password_ug_create_popup_notitle_nobtn(ad,
260 _("IDS_ST_POP_ERROR"),
265 static void __deinit_tapi(SettingPasswordUG *ad)
268 if (tel_deinit(ad->handle) != TAPI_API_SUCCESS) {
269 SETTING_TRACE_DEBUG("%s*** [ERR] setting_network_unsubscribe_tapi_events. ***%s",
270 SETTING_FONT_RED, SETTING_FONT_BLACK);
271 setting_password_ug_create_popup_notitle_nobtn(ad,
272 _("IDS_ST_POP_ERROR"),
279 static int setting_password_sim_create(void *cb)
283 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
285 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
288 ret = __create_sim_layout(ad);
291 return SETTING_RETURN_FAIL;
295 setting_password_sim_create_ui(ad);
297 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
299 setting_view_password_sim.is_create = 1;
302 return SETTING_RETURN_SUCCESS;
305 static int setting_password_sim_destroy(void *cb)
309 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
311 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
315 if (ad->remove_timer) {
316 ecore_timer_del(ad->remove_timer);
317 ad->remove_timer = NULL;
320 evas_object_del(ad->notify);
323 /*FREE(ad->guide_str); */
325 if (ad->ly_main != NULL) {
326 evas_object_del(ad->ly_main);
328 setting_view_password_sim.is_create = 0;
331 return SETTING_RETURN_SUCCESS;
334 static int setting_password_sim_update(void *cb)
338 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
340 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
342 if (ad->ly_main != NULL) {
343 evas_object_show(ad->ly_main);
345 if (ad->puk_verified_flag == TRUE && ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED) {
346 ad->puk_verified_flag = FALSE;
347 SETTING_TRACE_DEBUG("view type : PIN1_BLOCKED, change view");
349 elm_genlist_clear(ad->scroller);
350 ADD_GL_SEPARATOR(ad->scroller)
352 setting_password_sim_draw_2line_entry(ad, NULL);
354 setting_password_sim_draw_1line_entry(ad, NULL);
355 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
359 return SETTING_RETURN_SUCCESS;
362 static int setting_password_sim_cleanup(void *cb)
365 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
367 SettingPasswordUG *ad = (SettingPasswordUG *) cb;
369 if (ad->ly_main != NULL) {
370 evas_object_hide(ad->ly_main);
373 return SETTING_RETURN_SUCCESS;
376 /* ***************************************************
380 ***************************************************/
382 int setting_password_sim_create_ui(void *data)
385 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
386 "[Setting > Password] Data parameter is NULL");
388 SettingPasswordUG *ad = (SettingPasswordUG *) data;
390 SETTING_TRACE_DEBUG("ad->view_type=%d ***", ad->view_type);
392 switch (ad->view_type) {
393 case SETTING_PW_TYPE_SIM_LOCK_OFF:
394 case SETTING_PW_TYPE_PIN_LOCK_ON:
395 case SETTING_PW_TYPE_PIN_LOCK_OFF:
396 case SETTING_PW_TYPE_PIN_BLOCKED:
397 case SETTING_PW_TYPE_CHANGE_PIN:
398 case SETTING_PW_TYPE_CHANGE_PIN2:
399 setting_password_sim_draw_1line_entry(ad, NULL);
401 case SETTING_PW_TYPE_SIM_LOCK_ON:
402 setting_password_sim_draw_2line_entry(ad, NULL);
404 case SETTING_PW_TYPE_PIN2_BLOCKED:
405 setting_password_sim_draw_3line_entry(ad, NULL);
408 SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
409 SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
413 /** @todo this function always return 0, not verifying the function flow with the value */
418 setting_password_sim_entry_changed_cb(void *data, Evas_Object *obj,
422 retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
423 retm_if(obj == NULL, "[Setting > Password] Data parameter is NULL");
424 Setting_GenGroupItem_Data *list_item =
425 (Setting_GenGroupItem_Data *) data;
426 SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
427 const char *entry_str = elm_entry_entry_get(obj);
428 list_item->sub_desc = (char *)g_strdup(entry_str);
429 bool isFoundEmptyEntry = FALSE;
431 elm_object_part_text_set(obj, "elm.guide", "");
435 entry_str = ad->ed_pw1->sub_desc;
436 if (NULL == entry_str || '\0' == entry_str[0]) {
437 isFoundEmptyEntry = TRUE;
438 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
439 elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,hide", "");
441 } else if (ad->ed_pw1->isFocusFlag) {
442 elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,show", "");
447 entry_str = ad->ed_pw2->sub_desc;
448 if (NULL == entry_str || '\0' == entry_str[0]) {
449 isFoundEmptyEntry = TRUE;
450 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
451 elm_object_item_signal_emit(ad->ed_pw2->item, "elm,state,eraser,hide", "");
453 } else if (ad->ed_pw2->isFocusFlag) {
454 elm_object_item_signal_emit(ad->ed_pw2->item, "elm,state,eraser,show", "");
459 entry_str = ad->ed_pw3->sub_desc;
460 if (NULL == entry_str || '\0' == entry_str[0]) {
461 isFoundEmptyEntry = TRUE;
462 elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_HEADER_ENTER_PIN_ABB3"));
463 elm_object_item_signal_emit(ad->ed_pw3->item, "elm,state,eraser,hide", "");
465 } else if (ad->ed_pw3->isFocusFlag) {
466 elm_object_item_signal_emit(ad->ed_pw3->item, "elm,state,eraser,show", "");
473 Eina_Bool item_disabled = elm_object_item_disabled_get(list_item->item);
477 /* For disable toolbar (done) item */
478 bool disableFlag = isFoundEmptyEntry;
479 if (ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
480 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED) {
482 if (!ad->cur_pwd && ad->ed_pw1->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < 8)) {
483 SETTING_TRACE_DEBUG("disable flag becomes TRUE");
488 if (ad->ed_pw1 && ad->ed_pw1->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < 4))
490 if (ad->ed_pw2 && ad->ed_pw2->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw2->eo_check)) < 4))
492 if (ad->ed_pw3 && ad->ed_pw3->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw3->eo_check)) < 4))
497 elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
499 elm_object_disabled_set(ad->bottom_btn, EINA_FALSE);
500 if (ad->err_desc && ad->err_desc->item) {
501 elm_object_item_del(ad->err_desc->item);
508 static void __reached_max_pwlength_cb(void *data, Evas_Object *obj, void *event_info)
511 retm_if(data == NULL, "Data parameter is NULL");
512 retm_if(!elm_object_focus_get(obj), "Entry is not focused");/*notify only when entry is being focused on. */
516 /*Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data; */
517 /*SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata; */
519 int haptic_return = 0;
520 haptic_device_h haptic_handle;
521 haptic_return = haptic_open(HAPTIC_DEVICE_0, &haptic_handle);
522 SETTING_TRACE("haptic_handle : %d", haptic_handle);
523 if (haptic_return < 0) {
524 SETTING_TRACE_DEBUG("%s*** [ERR] Failed haptic_open ***%s",
525 SETTING_FONT_RED, SETTING_FONT_BLACK);
528 err = haptic_vibrate_file_with_detail(haptic_handle, "/usr/share/feedback/haptic/touch/touch.ivt", 1, HAPTIC_FEEDBACK_AUTO, HAPTIC_PRIORITY_MIN, NULL);
531 SETTING_TRACE("Failed to play haptic");
533 haptic_close(haptic_handle);
537 static void __entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
540 retm_if(data == NULL, "Data parameter is NULL");
542 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
543 SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
545 if (elm_object_disabled_get(ad->bottom_btn) == EINA_FALSE) {
546 elm_object_focus_set(obj, EINA_FALSE);
548 setting_password_sim_done(ad);
551 if (obj == ad->ed_pw1->eo_check) {
552 if (ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
553 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED) {
554 /* PUK should be 8 chars always */
555 if (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < SETTING_PW_UG_PUK_MAX_LENGTH) {
556 SETTING_TRACE_DEBUG("do not move focus to next entry.");
557 ad->ed_pw1->isFocusFlag = TRUE;
558 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
562 if (ad->ed_pw2 && ad->ed_pw2->eo_check) {
563 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_TRUE);
564 ad->ed_pw2->isFocusFlag = TRUE;
566 } else if (obj == ad->ed_pw2->eo_check) {
567 if (ad->ed_pw3 && ad->ed_pw3->eo_check) {
568 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_TRUE);
569 ad->ed_pw3->isFocusFlag = TRUE;
574 static void __entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
577 retm_if(data == NULL, "Data parameter is NULL");
579 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
580 SettingPasswordUG *ad = (SettingPasswordUG *)list_item->userdata;
582 if (!elm_entry_is_empty(obj)) {
583 elm_object_item_signal_emit(list_item->item, "elm,state,eraser,show", "");
585 elm_object_item_signal_emit(list_item->item, "elm,state,rename,hide", "");
590 if (ad->ed_pw1 && obj == ad->ed_pw1->eo_check) {
591 ad->ed_pw1->isFocusFlag = TRUE;
593 ad->ed_pw2->isFocusFlag = FALSE;
595 ad->ed_pw3->isFocusFlag = FALSE;
596 } else if (ad->ed_pw2 && obj == ad->ed_pw2->eo_check) {
597 ad->ed_pw2->isFocusFlag = TRUE;
599 ad->ed_pw1->isFocusFlag = FALSE;
601 ad->ed_pw3->isFocusFlag = FALSE;
602 } else if (ad->ed_pw3 && obj == ad->ed_pw3->eo_check) {
603 ad->ed_pw3->isFocusFlag = TRUE;
605 ad->ed_pw1->isFocusFlag = FALSE;
607 ad->ed_pw2->isFocusFlag = FALSE;
611 static void __entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
614 retm_if(data == NULL, "Data parameter is NULL");
615 retm_if(obj == NULL, "Data parameter is NULL");
617 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
619 list_item->isFocusFlag = FALSE;
621 if (list_item->item) {
622 elm_object_item_signal_emit(list_item->item, "elm,state,eraser,hide", "");
623 elm_object_item_signal_emit(list_item->item, "elm,state,rename,show", "");
627 int setting_password_sim_draw_1line_entry(void *data, void *cb)
631 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
632 "[Setting > Password] Data parameter is NULL");
634 SettingPasswordUG *ad = (SettingPasswordUG *) data;
636 switch (ad->view_type) {
637 case SETTING_PW_TYPE_SIM_LOCK_OFF:
639 setting_create_Gendial_field_editfield(ad->scroller,
642 SWALLOW_Type_LAYOUT_EDITFIELD,
643 "IDS_ST_BODY_SIM_PASSWORD",
645 setting_password_sim_entry_changed_cb,
647 __entry_unfocused_cb,
650 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
652 SETTING_PW_UG_SIM_MAX_LENGTH,
653 0, "0123456789", NULL);
656 case SETTING_PW_TYPE_PIN_LOCK_ON:
657 case SETTING_PW_TYPE_PIN_LOCK_OFF:
659 setting_create_Gendial_field_editfield(ad->scroller,
662 SWALLOW_Type_LAYOUT_EDITFIELD,
663 "IDS_ST_BODY_PIN", NULL,
664 setting_password_sim_entry_changed_cb,
666 __entry_unfocused_cb,
667 __entry_activated_cb,
669 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
671 SETTING_PW_UG_PIN_MAX_LENGTH,
672 0, "0123456789", NULL);
674 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
676 case SETTING_PW_TYPE_PIN_BLOCKED:
678 setting_create_Gendial_field_editfield(ad->scroller,
681 SWALLOW_Type_LAYOUT_EDITFIELD,
682 "IDS_ST_BODY_PUK1_CODE",
684 setting_password_sim_entry_changed_cb,
686 __entry_unfocused_cb,
687 __entry_activated_cb,
689 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
691 SETTING_PW_UG_PUK_MAX_LENGTH,
692 0, "0123456789", NULL);
694 case SETTING_PW_TYPE_CHANGE_PIN:
695 case SETTING_PW_TYPE_CHANGE_PIN2:
697 setting_create_Gendial_field_editfield(ad->scroller,
700 SWALLOW_Type_LAYOUT_EDITFIELD,
701 PW_SHORT_GUIDE_CURRENT,
703 setting_password_sim_entry_changed_cb,
705 __entry_unfocused_cb,
706 __entry_activated_cb,
708 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
710 SETTING_PW_UG_PIN_MAX_LENGTH,
711 0, "0123456789", NULL);
713 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
726 int setting_password_sim_clear_1line_entry(void *data)
729 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
730 "[Setting > Password] Data parameter is NULL");
732 SettingPasswordUG *ad = (SettingPasswordUG *) data;
733 retv_if(NULL == ad->ed_pw1, -1);
735 ad->ed_pw1->sub_desc = NULL;
736 ad->ed_pw1->isFocusFlag = FALSE;
738 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
739 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
744 int setting_password_sim_draw_2line_entry(void *data, void *cb)
747 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
749 SettingPasswordUG *ad = (SettingPasswordUG *) data;
751 switch (ad->view_type) {
752 case SETTING_PW_TYPE_SIM_LOCK_ON:
754 setting_create_Gendial_field_editfield(ad->scroller,
757 SWALLOW_Type_LAYOUT_EDITFIELD,
760 setting_password_sim_entry_changed_cb,
762 __entry_unfocused_cb,
763 __entry_activated_cb,
765 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
767 SETTING_PW_UG_SIM_MAX_LENGTH,
768 0, "0123456789", NULL);
771 setting_create_Gendial_field_editfield(ad->scroller,
774 SWALLOW_Type_LAYOUT_EDITFIELD,
775 PW_SHORT_GUIDE_CONFIRM,
777 setting_password_sim_entry_changed_cb,
779 __entry_unfocused_cb,
782 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
784 SETTING_PW_UG_SIM_MAX_LENGTH,
785 0, "0123456789", NULL);
787 case SETTING_PW_TYPE_PIN_BLOCKED:
788 case SETTING_PW_TYPE_CHANGE_PIN:
789 case SETTING_PW_TYPE_CHANGE_PIN2:
791 setting_create_Gendial_field_editfield(ad->scroller,
794 SWALLOW_Type_LAYOUT_EDITFIELD,
797 setting_password_sim_entry_changed_cb,
799 __entry_unfocused_cb,
800 __entry_activated_cb,
802 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
804 SETTING_PW_UG_PIN_MAX_LENGTH,
805 0, "0123456789", NULL);
807 ad->ed_pw1->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
810 setting_create_Gendial_field_editfield(ad->scroller,
813 SWALLOW_Type_LAYOUT_EDITFIELD,
814 PW_SHORT_GUIDE_CONFIRM,
816 setting_password_sim_entry_changed_cb,
818 __entry_unfocused_cb,
819 __entry_activated_cb,
821 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
823 SETTING_PW_UG_PIN_MAX_LENGTH,
824 0, "0123456789", NULL);
826 ad->ed_pw2->guide_text = (char *)g_strdup(_("IDS_ST_HEADER_ENTER_PIN_ABB3"));
833 ad->ed_pw1->group_style = SETTING_GROUP_STYLE_TOP;
836 ad->ed_pw2->group_style = SETTING_GROUP_STYLE_BOTTOM;
843 int setting_password_sim_clear_2line_entry(void *data)
847 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
848 "[Setting > Password] Data parameter is NULL");
850 SettingPasswordUG *ad = (SettingPasswordUG *) data;
852 retv_if(NULL == ad->ed_pw1, -1);
853 ad->ed_pw1->sub_desc = NULL;
854 ad->ed_pw1->isFocusFlag = FALSE;
855 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
856 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
858 retv_if(NULL == ad->ed_pw2, -1);
859 ad->ed_pw2->sub_desc = NULL;
860 ad->ed_pw2->isFocusFlag = FALSE;
861 elm_entry_entry_set(ad->ed_pw2->eo_check, "");
862 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PIN"));
866 int setting_password_sim_draw_3line_entry(void *data, void *cb)
869 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
870 "[Setting > Password] Data parameter is NULL");
872 SettingPasswordUG *ad = (SettingPasswordUG *) data;
874 switch (ad->view_type) {
875 case SETTING_PW_TYPE_PIN_BLOCKED:
877 setting_create_Gendial_field_editfield(ad->scroller,
880 SWALLOW_Type_LAYOUT_EDITFIELD,
881 "IDS_ST_BODY_PUK1_CODE",
883 setting_password_sim_entry_changed_cb,
885 __entry_unfocused_cb,
886 __entry_activated_cb,
888 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
890 SETTING_PW_UG_PUK_MAX_LENGTH,
891 0, "0123456789", NULL);
894 setting_create_Gendial_field_editfield(ad->scroller,
897 SWALLOW_Type_LAYOUT_EDITFIELD,
898 "IDS_ST_BODY_NEW_PIN1",
900 setting_password_sim_entry_changed_cb,
902 __entry_unfocused_cb,
903 __entry_activated_cb,
905 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
907 SETTING_PW_UG_PIN_MAX_LENGTH,
908 0, "0123456789", NULL);
911 setting_create_Gendial_field_editfield(ad->scroller,
914 SWALLOW_Type_LAYOUT_EDITFIELD,
915 "IDS_ST_BODY_CONFIRM_NEW_PIN1",
917 setting_password_sim_entry_changed_cb,
919 __entry_unfocused_cb,
922 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
924 SETTING_PW_UG_PIN_MAX_LENGTH,
925 0, "0123456789", NULL);
927 case SETTING_PW_TYPE_PIN2_BLOCKED:
929 setting_create_Gendial_field_editfield(ad->scroller,
932 SWALLOW_Type_LAYOUT_EDITFIELD,
933 "IDS_ST_BODY_PUK2", NULL,
934 setting_password_sim_entry_changed_cb,
936 __entry_unfocused_cb,
937 __entry_activated_cb,
939 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
941 SETTING_PW_UG_PIN_MAX_LENGTH,
942 0, "0123456789", NULL);
945 setting_create_Gendial_field_editfield(ad->scroller,
948 SWALLOW_Type_LAYOUT_EDITFIELD,
949 "IDS_ST_BODY_NEW_PIN2",
951 setting_password_sim_entry_changed_cb,
953 __entry_unfocused_cb,
954 __entry_activated_cb,
956 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
958 SETTING_PW_UG_PIN_MAX_LENGTH,
959 0, "0123456789", NULL);
962 setting_create_Gendial_field_editfield(ad->scroller,
965 SWALLOW_Type_LAYOUT_EDITFIELD,
966 "IDS_ST_BODY_CONFIRM_NEW_PIN2",
968 setting_password_sim_entry_changed_cb,
970 __entry_unfocused_cb,
973 ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
975 SETTING_PW_UG_PIN_MAX_LENGTH,
976 0, "0123456789", NULL);
985 int setting_password_sim_clear_3line_entry(void *data)
988 retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
989 "[Setting > Password] Data parameter is NULL");
991 SettingPasswordUG *ad = (SettingPasswordUG *) data;
992 /*Evas_Object *layout = NULL; */
994 retv_if(NULL == ad->ed_pw1, -1);
995 ad->ed_pw1->sub_desc = NULL;
996 ad->ed_pw1->isFocusFlag = FALSE;
997 elm_entry_entry_set(ad->ed_pw1->eo_check, "");
998 elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("Enter PUK"));
1000 retv_if(NULL == ad->ed_pw2, -1);
1001 ad->ed_pw2->sub_desc = NULL;
1002 ad->ed_pw2->isFocusFlag = FALSE;
1003 elm_entry_entry_set(ad->ed_pw2->eo_check, "");
1004 elm_object_part_text_set(ad->ed_pw2->eo_check, "elm.guide", _("Enter PIN"));
1006 retv_if(NULL == ad->ed_pw3, -1);
1007 ad->ed_pw3->sub_desc = NULL;
1008 ad->ed_pw3->isFocusFlag = FALSE;
1009 elm_entry_entry_set(ad->ed_pw3->eo_check, "");
1010 elm_object_part_text_set(ad->ed_pw3->eo_check, "elm.guide", _("Enter PIN"));
1015 int setting_password_sim_check_1line_entry(void *data)
1018 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1020 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1022 const char *entry_str = ad->ed_pw1->sub_desc;
1023 ad->focus_data = ad->ed_pw1;
1026 int entry_str_len = safeStrLen(entry_str);
1027 switch (ad->view_type) {
1028 case SETTING_PW_TYPE_PIN_LOCK_ON:
1029 case SETTING_PW_TYPE_PIN_LOCK_OFF:
1030 case SETTING_PW_TYPE_CHANGE_PIN:
1031 case SETTING_PW_TYPE_CHANGE_PIN2: {
1032 if (entry_str_len < SETTING_PW_UG_PIN_MIN_LENGTH
1033 || entry_str_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
1034 setting_password_sim_warning_entry_added_byte_popup
1035 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1036 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1040 case SETTING_PW_TYPE_SIM_LOCK_OFF: {
1041 if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
1042 || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) {
1043 setting_password_sim_warning_entry_added_byte_popup
1044 (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
1045 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1051 return SETTING_RETURN_SUCCESS;
1054 int setting_password_sim_check_2line_entry(void *data)
1057 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1059 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1060 if (ad->ed_pw1 == NULL || ad->ed_pw2 == NULL)
1061 return SETTING_GENERAL_ERR_NULL_DATA_PARAMETER;
1063 const char *entry_str1 = ad->ed_pw1->sub_desc;
1064 const char *entry_str2 = ad->ed_pw2->sub_desc;
1065 ad->focus_data = ad->ed_pw1;
1068 if (0 != safeStrCmp(entry_str1, entry_str2)) {
1069 setting_password_sim_clear_2line_entry(ad);
1070 if (ad->view_type == SETTING_PW_TYPE_PIN_BLOCKED
1071 || ad->view_type == SETTING_PW_TYPE_CHANGE_PIN
1072 || ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED) {
1073 setting_password_ug_display_desc(ad, _("IDS_IDLE_BODY_NEW_PIN_AND_CONFIRM_PIN_DO_NOT_MATCH"), FALSE);
1074 } else if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2) {
1075 setting_password_ug_display_desc(ad, _("IDS_ST_BODY_NEW_PIN2_AND_CONFIRM_PIN2_DO_NOT_MATCH"), FALSE);
1078 return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
1083 int entry_str_len = safeStrLen(entry_str1);
1084 if (ad->view_type == SETTING_PW_TYPE_SIM_LOCK_ON) {
1085 if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
1086 || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) {
1087 setting_password_sim_warning_entry_added_byte_popup
1088 (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
1089 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1094 return SETTING_RETURN_SUCCESS;
1097 void setting_password_sim_warning_entry_added_byte_popup(SettingPasswordUG *ad,
1100 char str[MAX_SPECIALIZITION_LEN + 1] = { 0 };
1102 safeCopyStr(str, _("IDS_COM_BODY_TYPE_A_PIN_THAT_IS_4_TO_8_NUMBERS"), MAX_SPECIALIZITION_LEN);
1103 setting_password_ug_display_desc(ad, str, FALSE);
1106 int setting_password_sim_check_3line_entry(void *data)
1109 retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
1111 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1113 const char *entry_str1 = ad->ed_pw1->sub_desc;
1114 const char *entry_str2 = ad->ed_pw2->sub_desc;
1115 const char *entry_str3 = ad->ed_pw3->sub_desc;
1116 ad->focus_data = ad->ed_pw1;
1119 int entry_str1_len = safeStrLen(entry_str1);
1120 int entry_str2_len = safeStrLen(entry_str2);
1121 int entry_str3_len = safeStrLen(entry_str3);
1123 /* PUK code always should be 8 chars. */
1124 if (entry_str1_len != SETTING_PW_UG_PUK_MAX_LENGTH) {
1125 setting_password_sim_warning_entry_added_byte_popup
1126 (ad, SETTING_PW_UG_PUK_MAX_LENGTH, SETTING_PW_UG_PUK_MAX_LENGTH);
1127 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1129 if (entry_str2_len < SETTING_PW_UG_PIN_MIN_LENGTH
1130 || entry_str2_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
1131 ad->focus_data = ad->ed_pw2;
1132 setting_password_sim_warning_entry_added_byte_popup
1133 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1134 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1136 if (entry_str3_len < SETTING_PW_UG_PIN_MIN_LENGTH
1137 || entry_str3_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
1138 ad->focus_data = ad->ed_pw3;
1139 setting_password_sim_warning_entry_added_byte_popup
1140 (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
1141 return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
1144 return SETTING_RETURN_SUCCESS;
1147 static void setting_password_sim_done(void *data)
1149 SETTING_TRACE_BEGIN;
1150 ret_if(data == NULL);
1151 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1154 if (app_control_create(&svc)) {
1155 SETTING_TRACE_ERROR("app_control_create() failed");
1159 SETTING_TRACE("ad->view_type:%d", ad->view_type);
1162 switch (ad->view_type) {
1163 case SETTING_PW_TYPE_PIN_LOCK_ON: {
1164 SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_ON");
1166 ret = setting_password_sim_check_1line_entry(ad);
1168 if (ret == SETTING_RETURN_SUCCESS) {
1169 TelSimFacilityPw_t sim_sec_data = { 0, };
1170 int tapi_ret = TAPI_API_SUCCESS;
1171 const char *entry_str;
1173 entry_str = ad->ed_pw1->sub_desc;
1174 if (isEmptyStr(entry_str)) {
1175 ad->focus_data = ad->ed_pw1;
1176 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1177 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1178 app_control_destroy(svc);
1182 sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;/*TAPI_SIM_PTYPE_PIN1 */
1183 sim_sec_data.pw = (unsigned char *)entry_str;
1184 sim_sec_data.pw_len = safeStrLen(entry_str);
1186 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1187 setting_password_sim_clear_1line_entry(ad);
1189 if (TAPI_API_SUCCESS != tapi_ret) {
1190 ad->focus_data = ad->ed_pw1;
1191 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1192 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1193 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1195 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1198 setting_password_sim_clear_1line_entry(ad);
1201 app_control_destroy(svc);
1203 case SETTING_PW_TYPE_PIN_LOCK_OFF: {
1204 SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_OFF");
1206 ret = setting_password_sim_check_1line_entry(ad);
1208 if (ret == SETTING_RETURN_SUCCESS) {
1209 TelSimFacilityPw_t sim_sec_data = { 0, };
1210 int tapi_ret = TAPI_API_SUCCESS;
1211 const char *entry_str;
1213 entry_str = ad->ed_pw1->sub_desc;
1214 if (isEmptyStr(entry_str)) {
1215 ad->focus_data = ad->ed_pw1;
1216 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1217 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1218 app_control_destroy(svc);
1222 sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;/*TAPI_SIM_PTYPE_PIN1 */
1223 sim_sec_data.pw = (unsigned char *)entry_str;
1224 sim_sec_data.pw_len = safeStrLen(entry_str);
1226 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1227 setting_password_sim_clear_1line_entry(ad);
1229 if (TAPI_API_SUCCESS != tapi_ret) {
1230 ad->focus_data = ad->ed_pw1;
1231 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1232 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1233 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1235 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1238 setting_password_sim_clear_1line_entry(ad);
1241 app_control_destroy(svc);
1243 case SETTING_PW_TYPE_PIN_BLOCKED: {
1244 /* PIN1 Status is "Blocked": User should input puk code and new pin1 code. */
1245 /* If puk code is correct and success to modify pin1 code, display pin1 code change popup */
1246 /* But, if this menu is "Pin Lock", pinlock status will not be changed. */
1247 SETTING_TRACE("case SETTING_PW_TYPE_PIN_BLOCKED");
1248 if (ad->cur_pwd == NULL) {
1249 ret = setting_password_sim_check_1line_entry(ad);
1250 if (ret == SETTING_RETURN_SUCCESS) {
1251 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1252 elm_genlist_clear(ad->scroller);
1253 ADD_GL_SEPARATOR(ad->scroller)
1254 setting_password_sim_draw_2line_entry(ad, NULL);
1256 setting_password_sim_clear_1line_entry(ad);
1259 ret = setting_password_sim_check_2line_entry(ad);
1261 if (ret == SETTING_RETURN_SUCCESS) {
1262 TelSimSecPw_t puk1_data = { 0, };
1263 TelSimSecPw_t pin1_data = { 0, };
1264 int tapi_ret = TAPI_API_SUCCESS;
1266 const char *new_pin1;
1269 new_pin1 = ad->ed_pw1->sub_desc;
1271 puk1_data.type = TAPI_SIM_PTYPE_PUK1;
1272 puk1_data.pw = (unsigned char *)puk;
1273 puk1_data.pw_len = safeStrLen(puk);
1275 pin1_data.type = TAPI_SIM_PTYPE_PIN1;
1276 pin1_data.pw = (unsigned char *)new_pin1;
1277 pin1_data.pw_len = safeStrLen(new_pin1);
1279 tapi_ret = tel_verify_sim_puks(ad->handle, &puk1_data, &pin1_data, setting_sim_verify_puks_cb, ad);
1283 setting_password_sim_clear_2line_entry(ad);
1285 if (TAPI_API_SUCCESS != tapi_ret) {
1286 ad->focus_data = ad->ed_pw1;
1287 SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
1288 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1289 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1291 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1295 setting_password_sim_clear_2line_entry(ad);
1299 app_control_destroy(svc);
1301 case SETTING_PW_TYPE_PIN2_BLOCKED: {
1302 SETTING_TRACE("case SETTING_PW_TYPE_PIN2_BLOCKED");
1303 ret = setting_password_sim_check_3line_entry(ad);
1305 if (ret == SETTING_RETURN_SUCCESS) {
1306 TelSimSecPw_t puk2_data = { 0, };
1307 TelSimSecPw_t pin2_data = { 0, };
1308 int tapi_ret = TAPI_API_SUCCESS;
1310 const char *new_pin2;
1312 puk = ad->ed_pw1->sub_desc;
1313 new_pin2 = ad->ed_pw2->sub_desc;
1314 if (isEmptyStr(puk)) {
1315 ad->focus_data = ad->ed_pw1;
1316 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1317 app_control_destroy(svc);
1321 if (isEmptyStr(new_pin2)) {
1322 ad->focus_data = ad->ed_pw2;
1323 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1324 app_control_destroy(svc);
1328 puk2_data.type = TAPI_SIM_PTYPE_PUK2;
1329 puk2_data.pw = (unsigned char *)puk;
1330 puk2_data.pw_len = safeStrLen(puk);
1332 pin2_data.type = TAPI_SIM_PTYPE_PIN2;
1333 pin2_data.pw = (unsigned char *)new_pin2;
1334 pin2_data.pw_len = safeStrLen(new_pin2);
1336 tapi_ret = tel_verify_sim_puks(ad->handle, &puk2_data, &pin2_data, setting_sim_verify_puks_cb, ad);
1337 setting_password_sim_clear_3line_entry(ad);
1339 if (TAPI_API_SUCCESS != tapi_ret) {
1340 ad->focus_data = ad->ed_pw1;
1341 SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
1342 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1343 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1345 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1349 setting_password_sim_clear_3line_entry(ad);
1352 app_control_destroy(svc);
1354 case SETTING_PW_TYPE_CHANGE_PIN: {
1355 SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN");
1357 SETTING_TRACE("step #2. new pins");
1358 ret = setting_password_sim_check_2line_entry(ad);
1359 if (ret == SETTING_RETURN_SUCCESS) {
1362 TelSimSecPw_t sim_old_sec_data = { 0, };
1363 TelSimSecPw_t sim_new_sec_data = { 0, };
1364 int tapi_ret = TAPI_API_SUCCESS;
1366 old_pw = ad->cur_pwd;
1367 new_pw = ad->ed_pw1->sub_desc;
1368 sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN1;
1369 sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN1;
1370 sim_old_sec_data.pw = (unsigned char *)old_pw;
1371 sim_old_sec_data.pw_len = safeStrLen(old_pw);
1372 sim_new_sec_data.pw = (unsigned char *)new_pw;
1373 sim_new_sec_data.pw_len = safeStrLen(new_pw);
1375 tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
1376 setting_password_sim_clear_2line_entry(ad);
1378 if (TAPI_API_SUCCESS != tapi_ret) {
1379 ad->focus_data = ad->ed_pw1;
1380 SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
1381 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1382 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1385 setting_password_sim_clear_2line_entry(ad);
1388 SETTING_TRACE("step #1. current pin");
1390 ret = setting_password_sim_check_1line_entry(ad);
1391 if (ret == SETTING_RETURN_SUCCESS) {
1392 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1393 /*ad->update_change_pin1_flag = TRUE; */
1394 /*setting_view_update(&setting_view_password_main, ad); */
1396 Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(ad->ed_pw1->eo_check);
1398 SETTING_TRACE_DEBUG("imf_context (0x%.8x) : clear event callbacks", imf_context);
1399 ecore_imf_context_input_panel_event_callback_clear(imf_context);
1402 elm_genlist_clear(ad->scroller);
1403 ADD_GL_SEPARATOR(ad->scroller)
1404 setting_password_sim_draw_2line_entry(ad, NULL);
1405 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
1407 setting_password_sim_clear_1line_entry(ad);
1411 app_control_destroy(svc);
1413 case SETTING_PW_TYPE_CHANGE_PIN2: {
1414 SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN2");
1416 SETTING_TRACE("step #2. new pin2s");
1417 ret = setting_password_sim_check_2line_entry(ad);
1418 if (ret == SETTING_RETURN_SUCCESS) {
1421 TelSimSecPw_t sim_old_sec_data = { 0, };
1422 TelSimSecPw_t sim_new_sec_data = { 0, };
1423 int tapi_ret = TAPI_API_SUCCESS;
1425 old_pw = ad->cur_pwd;
1426 new_pw = ad->ed_pw1->sub_desc;
1428 sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN2;
1429 sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN2;
1430 sim_old_sec_data.pw = (unsigned char *)old_pw;
1431 sim_old_sec_data.pw_len = safeStrLen(old_pw);
1432 sim_new_sec_data.pw = (unsigned char *)new_pw;
1433 sim_new_sec_data.pw_len = safeStrLen(new_pw);
1435 tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
1436 setting_password_sim_clear_2line_entry(ad);
1438 if (TAPI_API_SUCCESS != tapi_ret) {
1439 ad->focus_data = ad->ed_pw1;
1440 SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
1441 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1442 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1445 setting_password_sim_clear_2line_entry(ad);
1448 SETTING_TRACE("step #1. current pin2");
1450 ret = setting_password_sim_check_1line_entry(ad);
1451 if (ret == SETTING_RETURN_SUCCESS) {
1452 ad->cur_pwd = (char *)strdup(ad->ed_pw1->sub_desc);
1454 Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(ad->ed_pw1->eo_check);
1456 SETTING_TRACE_DEBUG("imf_context (0x%.8x) : clear event callbacks", imf_context);
1457 ecore_imf_context_input_panel_event_callback_clear(imf_context);
1460 elm_genlist_clear(ad->scroller);
1461 ADD_GL_SEPARATOR(ad->scroller)
1462 setting_password_sim_draw_2line_entry(ad, NULL);
1463 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
1465 setting_password_sim_clear_1line_entry(ad);
1469 app_control_destroy(svc);
1472 case SETTING_PW_TYPE_SIM_LOCK_ON: {
1473 SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_ON");
1475 ret = setting_password_sim_check_2line_entry(ad);
1477 if (ret == SETTING_RETURN_SUCCESS) {
1478 TelSimFacilityPw_t sim_sec_data = { 0, };
1479 int tapi_ret = TAPI_API_SUCCESS;
1480 const char *entry_str;
1481 entry_str = ad->ed_pw1->sub_desc;
1482 if (isEmptyStr(entry_str)) {
1483 ad->focus_data = ad->ed_pw1;
1484 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1485 app_control_destroy(svc);
1489 sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;/*TAPI_SIM_PTYPE_SIM */
1490 sim_sec_data.pw = (unsigned char *)entry_str;
1491 sim_sec_data.pw_len = safeStrLen(entry_str);
1493 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1494 setting_password_sim_clear_2line_entry(ad);
1496 SETTING_TRACE_SECURE_DEBUG("SIM Lock password : %s\n", (char *)(sim_sec_data.pw));
1497 if (TAPI_API_SUCCESS != tapi_ret) {
1498 ad->focus_data = ad->ed_pw1;
1499 SETTING_TRACE_DEBUG("%s*** [ERR] tel_enable_sim_facility err=%d ***%s",
1500 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1501 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1503 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1507 setting_password_sim_clear_2line_entry(ad);
1510 app_control_destroy(svc);
1512 case SETTING_PW_TYPE_SIM_LOCK_OFF: {
1513 SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_OFF");
1515 ret = setting_password_sim_check_1line_entry(ad);
1516 if (ret == SETTING_RETURN_SUCCESS) {
1517 TelSimFacilityPw_t sim_sec_data = { 0, };
1518 int tapi_ret = TAPI_API_SUCCESS;
1519 const char *entry_str;
1521 entry_str = ad->ed_pw1->sub_desc;
1522 if (isEmptyStr(entry_str)) {
1523 ad->focus_data = ad->ed_pw1;
1524 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1525 app_control_destroy(svc);
1529 sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;/*TAPI_SIM_PTYPE_SIM */
1530 sim_sec_data.pw = (unsigned char *)entry_str;
1531 sim_sec_data.pw_len = safeStrLen(entry_str);
1533 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1534 setting_password_sim_clear_1line_entry(ad);
1536 if (TAPI_API_SUCCESS != tapi_ret) {
1537 ad->focus_data = ad->ed_pw1;
1538 SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
1539 SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
1540 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1542 /* Success. Send Message to Caller for Modify Pin Lock slider status */
1546 setting_password_sim_clear_1line_entry(ad);
1549 app_control_destroy(svc);
1553 case SETTING_PW_TYPE_FDN_MODE_ON: {
1554 SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_ON");
1555 ret = setting_password_sim_check_1line_entry(ad);
1557 if (ret == SETTING_RETURN_SUCCESS) {
1558 const char *entry_str;
1559 int tapi_ret = TAPI_API_INVALID_INPUT;
1561 TelSimFacilityPw_t sim_sec_data = {0,};
1564 entry_str = ad->ed_pw1->sub_desc;
1565 if (isEmptyStr(entry_str)) {
1566 ad->focus_data = ad->ed_pw1;
1567 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1568 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1569 app_control_destroy(svc);
1572 sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;/*TAPI_SIM_PTYPE_PIN2; */
1573 sim_sec_data.pw_len = safeStrLen(entry_str);
1574 sim_sec_data.pw = (unsigned char *)entry_str;
1576 tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
1577 setting_password_sim_clear_1line_entry(ad);
1579 if (tapi_ret != TAPI_API_SUCCESS) {
1580 ad->focus_data = ad->ed_pw1;
1581 SETTING_TRACE_ERROR("[ERR] Failed to enable FDN. Tapi return %d", tapi_ret);
1582 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1583 app_control_destroy(svc);
1587 app_control_add_extra_data(svc, "result", ad->view_type_string);
1588 ug_send_result(ad->ug, svc);
1589 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1590 app_control_destroy(svc);
1591 /*ug_destroy_me(ad->ug); */
1594 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), TRUE);
1598 case SETTING_PW_TYPE_FDN_MODE_OFF: {
1599 SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_OFF");
1600 ret = setting_password_sim_check_1line_entry(ad);
1602 if (ret == SETTING_RETURN_SUCCESS) {
1603 const char *entry_str;
1604 int tapi_ret = TAPI_API_INVALID_INPUT;
1606 TelSimFacilityPw_t sim_sec_data = {0,};
1608 entry_str = ad->ed_pw1->sub_desc;
1609 if (isEmptyStr(entry_str)) {
1610 ad->focus_data = ad->ed_pw1;
1611 SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
1612 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1613 app_control_destroy(svc);
1616 sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;/*TAPI_SIM_PTYPE_PIN2 */
1617 sim_sec_data.pw_len = safeStrLen(entry_str);
1618 sim_sec_data.pw = (unsigned char *)entry_str;
1620 tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
1621 setting_password_sim_clear_1line_entry(ad);
1623 if (tapi_ret != TAPI_API_SUCCESS) {
1624 ad->focus_data = ad->ed_pw1;
1625 SETTING_TRACE_ERROR("[ERR] Failed to disable FDN. Tapi return %d", tapi_ret);
1626 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), FALSE);
1627 app_control_destroy(svc);
1631 app_control_add_extra_data(svc, "result", ad->view_type_string);
1632 ug_send_result(ad->ug, svc);
1633 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1635 app_control_destroy(svc);
1636 /*ug_destroy_me(ad->ug); */
1639 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_ERROR"), TRUE);
1645 app_control_destroy(svc);
1649 app_control_add_extra_data(svc, "result", ad->view_type_string);
1650 ug_send_result(ad->ug, svc);
1651 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
1653 app_control_destroy(svc);
1654 /* Send destroy request */
1655 ug_destroy_me(ad->ug);
1658 void setting_password_sim_click_softkey_done_cb(void *data, Evas_Object *obj,
1661 SETTING_TRACE_BEGIN;
1663 retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
1665 SettingPasswordUG *ad = (SettingPasswordUG *) data;
1667 if (ad->ed_pw1 && ad->ed_pw1->eo_check) {
1668 elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
1670 if (ad->ed_pw2 && ad->ed_pw2->eo_check) {
1671 elm_object_focus_set(ad->ed_pw2->eo_check, EINA_FALSE);
1673 if (ad->ed_pw3 && ad->ed_pw3->eo_check) {
1674 elm_object_focus_set(ad->ed_pw3->eo_check, EINA_FALSE);
1677 if (ad->err_desc && ad->err_desc->item) {
1678 elm_object_item_del(ad->err_desc->item);
1679 ad->err_desc = NULL;
1682 setting_password_sim_done(ad);
1685 void setting_get_sim_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
1687 SETTING_TRACE_BEGIN;
1688 ret_if(data == NULL || user_data == NULL);
1690 TelSimPinOperationResult_t sec_rt = result;
1691 TelSimLockInfo_t *lock = data;
1693 SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
1695 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);
1697 char temp[256] = {0,};
1698 if (lock->retry_count > 1)
1699 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1700 else if (lock->retry_count > 0)
1701 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1703 if (ad->err_desc && ad->err_desc->item) {
1704 elm_object_item_del(ad->err_desc->item);
1705 ad->err_desc = NULL;
1707 ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
1709 &(itc_multiline_text),
1710 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
1714 void setting_get_pin_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
1716 SETTING_TRACE_BEGIN;
1718 TelSimPinOperationResult_t sec_rt = result;
1719 TelSimLockInfo_t *lock = data;
1722 SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
1724 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);
1726 char temp[256] = {0,};
1727 if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN) {
1728 char rtemp[SETTING_STR_SLP_LEN] = {0,};
1729 if (ad->incorrect_pin1_flag) {
1730 if (lock->retry_count > 1) {
1731 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPTS_DESC));
1732 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1734 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPT_DESC));
1735 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1738 if (lock->retry_count > 1)
1739 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1740 else if (lock->retry_count > 0)
1741 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1743 } else if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2) {
1744 char rtemp[SETTING_STR_SLP_LEN] = {0,};
1745 if (ad->incorrect_pin2_flag) {
1746 if (lock->retry_count > 1) {
1747 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPTS_DESC));
1748 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1750 snprintf(rtemp, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPT_DESC));
1751 snprintf(temp, SETTING_STR_SLP_LEN, rtemp, lock->retry_count);
1754 if (lock->retry_count > 1)
1755 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1756 else if (lock->retry_count > 0)
1757 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1760 if (lock->retry_count > 1)
1761 snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
1762 else if (lock->retry_count > 0)
1763 snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
1766 if (ad->err_desc && ad->err_desc->item) {
1767 elm_object_item_del(ad->err_desc->item);
1768 ad->err_desc = NULL;
1770 ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
1772 &(itc_multiline_text),
1773 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
1777 void setting_sim_change_pins_cb(TapiHandle *handle, int result, void *data, void *user_data)
1779 SETTING_TRACE_BEGIN;
1780 ret_if(!user_data || !data);
1781 TelSimPinOperationResult_t sec_rt = result;
1782 tapi_receive_info result_info = { 0, };
1783 TelSimSecResult_t *sim_event_data = (TelSimSecResult_t *) data;
1784 SETTING_TRACE_SECURE_DEBUG("sec_rt[%d]", sec_rt);
1785 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1786 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1788 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) {
1789 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type)
1790 result_info.stat = SIM_PIN1_CHANGE_SUCCESS;
1791 else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type)
1792 result_info.stat = SIM_PIN2_CHANGE_SUCCESS;
1793 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
1794 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type) {
1795 result_info.stat = SIM_INCORRECT_PIN1_CODE;
1796 result_info.retry_cnt = sim_event_data->retry_count;
1797 } else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type) {
1798 result_info.stat = SIM_INCORRECT_PIN2_CODE;
1799 result_info.retry_cnt = sim_event_data->retry_count;
1801 } else if (TAPI_SIM_PUK_REQUIRED == sec_rt) {
1802 if (TAPI_SIM_PTYPE_PIN1 == sim_event_data->type)
1803 result_info.stat = SIM_PIN1_BLOCKED;
1804 else if (TAPI_SIM_PTYPE_PIN2 == sim_event_data->type)
1805 result_info.stat = SIM_PIN2_BLOCKED;
1808 ("%s*** [ERR] INCORRECTED ***%s",
1809 SETTING_FONT_RED, SETTING_FONT_BLACK);
1812 setting_password_ug_display_result_popup(&result_info, user_data);
1815 void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void *user_data)
1817 SETTING_TRACE_BEGIN;
1819 ret_if(!user_data || !data);
1820 SettingPasswordUG *ad = user_data;
1821 TelSimPinOperationResult_t sec_rt = result;
1822 tapi_receive_info result_info = { 0, };
1823 TelSimSecResult_t *sim_event_data = (TelSimSecResult_t *) data;
1824 ad->verify_puks_result = sim_event_data;
1825 SETTING_TRACE_SECURE_DEBUG("sec_rt[%d]", sec_rt);
1826 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1827 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1829 if (TAPI_SIM_PTYPE_PUK1 == sim_event_data->type) {
1830 /*if (TAPI_SIM_PIN_REQUIRED == sec_rt){ */
1831 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) {
1832 SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
1833 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN1_UNBLOCKED") + 1);
1835 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
1836 snprintf(tmp_str, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_PUK1_VERIFIED"), _("IDS_ST_POP_PIN_UNBLOCKED"));
1837 setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
1839 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
1840 result_info.stat = SIM_INCORRECT_PUK1_CODE;
1841 result_info.retry_cnt = sim_event_data->retry_count;
1842 ad->puk_verified_flag = TRUE;
1843 setting_view_update(&setting_view_password_main, ad);
1844 } else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) {
1845 if (sim_event_data->retry_count <= 0) {
1846 result_info.stat = SIM_PUK1_BLOCKED;
1847 result_info.retry_cnt = 0;
1849 result_info.stat = SIM_INCORRECT_PUK1_CODE;
1850 result_info.retry_cnt = sim_event_data->retry_count;
1851 ad->puk_verified_flag = TRUE;
1852 setting_view_update(&setting_view_password_main, ad);
1854 } else if (TAPI_SIM_PERM_BLOCKED == sec_rt) {
1855 result_info.stat = SIM_PUK1_BLOCKED;
1856 result_info.retry_cnt = 0;
1858 result_info.stat = SIM_UNKNOWN_ERROR;
1862 else if (TAPI_SIM_PTYPE_PUK2 == sim_event_data->type) {
1863 SETTING_TRACE_DEBUG("sec_rt : %d", sec_rt);
1864 /*if (TAPI_SIM_PUK_REQUIRED == sec_rt) */
1865 if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) {
1866 SETTING_TRACE_DEBUG("SIM_PIN2_UNBLOCKED");
1867 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN2_UNBLOCKED") + 1);
1868 /*char tmp_str[SETTING_STR_SLP_LEN] = {0,}; */
1869 /*snprintf(tmp_str, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_PUK2_VERIFIED"), _("IDS_ST_POP_PIN2_UNBLOCKED")); */
1870 setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PIN2_UNBLOCKED"), TRUE);
1872 } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
1873 SETTING_TRACE_DEBUG("stat : SIM_INCORRECT_PUK2_CODE");
1874 result_info.stat = SIM_INCORRECT_PUK2_CODE;
1875 result_info.retry_cnt = sim_event_data->retry_count;
1876 } else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) {
1877 SETTING_TRACE_DEBUG("stat : SIM_INCORRECT_PUK2_CODE");
1878 if (sim_event_data->retry_count <= 0) {
1879 result_info.stat = SIM_PUK2_BLOCKED;
1880 result_info.retry_cnt = 0;
1882 result_info.stat = SIM_INCORRECT_PUK2_CODE;
1883 result_info.retry_cnt = sim_event_data->retry_count;
1885 } else if (TAPI_SIM_PERM_BLOCKED == sec_rt) {
1886 result_info.stat = SIM_PUK2_BLOCKED;
1887 result_info.retry_cnt = 0;
1889 result_info.stat = SIM_UNKNOWN_ERROR;
1892 result_info.stat = SIM_UNKNOWN_ERROR;
1894 setting_password_ug_display_result_popup(&result_info, user_data);
1897 void setting_sim_facility_enable_cb(TapiHandle *handle, int result, void *data, void *user_data)
1899 SETTING_TRACE_BEGIN;
1902 SETTING_TRACE_SECURE_DEBUG("result[%d]", result);
1903 if (result == TAPI_API_SIM_LOCKED) { /* -503 error */
1904 setting_password_ug_create_popup_notitle_nobtn(user_data, _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
1908 tapi_receive_info result_info = { 0, };
1909 TelSimFacilityResult_t *sim_event_data = (TelSimFacilityResult_t *) data;
1911 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1912 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1915 if (TAPI_SIM_LOCK_PS == sim_event_data->type) {
1916 SETTING_TRACE("CASE TAPI_SIM_PTYPE_SIM == sim_event_data->type");
1917 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
1918 result_info.stat = SIM_LOCK_ON_SUCCESS;
1919 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result)
1920 result_info.stat = SIM_LOCK_INCORRECT_PASSWORD;
1922 SETTING_TRACE_DEBUG("%s*** [ERR] INCORRECTED ***%s",
1924 SETTING_FONT_BLACK);
1929 else if (TAPI_SIM_LOCK_SC == sim_event_data->type) {
1930 SETTING_TRACE("CASE TAPI_SIM_PTYPE_PIN1 == sim_event_data->type");
1931 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
1932 result_info.stat = SIM_PIN_LOCK_ON_SUCCESS;
1933 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result) {
1934 result_info.stat = SIM_INCORRECT_PIN1_CODE;
1935 result_info.retry_cnt = sim_event_data->retry_count;
1936 } else if (TAPI_SIM_PUK_REQUIRED == result)
1937 result_info.stat = SIM_PIN1_BLOCKED;
1940 else if (TAPI_SIM_INCOMPATIBLE_PIN_OPERATION == result
1941 || TAPI_SIM_CARD_ERROR == result) {
1943 result_info.stat = SIM_OPERATION_UNAVAILABLE;
1946 ("%s*** [ERR] INCORRECTED ***%s",
1948 SETTING_FONT_BLACK);
1952 setting_password_ug_display_result_popup(&result_info, user_data);
1955 void setting_sim_facility_disable_cb(TapiHandle *handle, int result, void *data, void *user_data)
1957 SETTING_TRACE_BEGIN;
1960 SETTING_TRACE_SECURE_DEBUG("result[%d]", result);
1961 if (result == TAPI_API_SIM_LOCKED) { /* -503 error */
1962 setting_password_ug_create_popup_notitle_nobtn(user_data, _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
1966 tapi_receive_info result_info = { 0, };
1967 TelSimFacilityResult_t *sim_event_data = (TelSimFacilityResult_t *) data;
1969 SETTING_TRACE_SECURE_DEBUG("sim_event_data->type:%d", sim_event_data->type);
1970 SETTING_TRACE_SECURE_DEBUG("sim_event_data->retry_count[%d]", sim_event_data->retry_count);
1973 if (TAPI_SIM_LOCK_PS == sim_event_data->type) {
1974 SETTING_TRACE_DEBUG("SIM lOCK");
1975 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
1976 result_info.stat = SIM_LOCK_OFF_SUCCESS;
1977 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result)
1978 result_info.stat = SIM_LOCK_INCORRECT_PASSWORD;
1981 ("%s*** [ERR] INCORRECTED ***%s",
1983 SETTING_FONT_BLACK);
1988 else if (TAPI_SIM_LOCK_SC == sim_event_data->type) {
1989 SETTING_TRACE_DEBUG("PIN LOCK");
1990 if (TAPI_SIM_PIN_OPERATION_SUCCESS == result)
1991 result_info.stat = SIM_PIN_LOCK_OFF_SUCCESS;
1992 else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == result) {
1993 result_info.stat = SIM_INCORRECT_PIN1_CODE;
1994 result_info.retry_cnt = sim_event_data->retry_count;
1995 } else if (TAPI_SIM_PUK_REQUIRED == result)
1996 result_info.stat = SIM_PIN1_BLOCKED;
1999 else if (TAPI_SIM_INCOMPATIBLE_PIN_OPERATION == result
2000 || TAPI_SIM_CARD_ERROR == result) {
2002 result_info.stat = SIM_OPERATION_UNAVAILABLE;
2005 ("%s*** [ERR] INCORRECTED ***%s",
2007 SETTING_FONT_BLACK);
2011 setting_password_ug_display_result_popup(&result_info, user_data);
2014 static void setting_password_ug_display_result_popup(tapi_receive_info *result,
2015 SettingPasswordUG *ad)
2017 SETTING_TRACE_BEGIN;
2018 switch (result->stat) {
2019 case SIM_OPERATION_OK:
2020 case SIM_LOCK_ON_SUCCESS:
2021 case SIM_LOCK_OFF_SUCCESS:
2022 case SIM_PIN_LOCK_ON_SUCCESS:
2023 case SIM_PIN_LOCK_OFF_SUCCESS: {
2024 if (ad->view_type ==
2025 SETTING_PW_TYPE_SIM_LOCK_OFF) {
2026 int err = SETTING_RETURN_SUCCESS;
2028 setting_set_int_slp_key
2029 (INT_SLP_SETTING_SIM_LOCK_ATTEMPTS_LEFT,
2030 SIM_LOCK_ATTEMPS_MAX, &err);
2031 setting_retm_if(err == SETTING_RETURN_FAIL,
2032 "[Error] set value of vconf fail.");
2034 /* Success to Operate */
2036 if (app_control_create(&svc))
2039 app_control_add_extra_data(svc, "result", ad->view_type_string);
2040 ug_send_result(ad->ug, svc);
2041 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
2043 app_control_destroy(svc);
2044 /* Send destroy request */
2045 ug_destroy_me(ad->ug);
2049 case SIM_PIN1_BLOCKED: {
2050 SETTING_TRACE_DEBUG("SIM_PIN1_BLOCKED");
2051 /*ad->view_type = SETTING_PW_TYPE_PIN_BLOCKED; */
2052 /* Success to Operate */
2054 if (app_control_create(&svc))
2057 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PIN_BLOCKED");
2058 ug_send_result(ad->ug, svc);
2059 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PIN_BLOCKED");
2061 app_control_destroy(svc);
2062 /* Send destroy request */
2063 ug_destroy_me(ad->ug);
2066 case SIM_PIN2_BLOCKED: {
2067 SETTING_TRACE_DEBUG("SIM_PIN2_BLOCKED");
2068 /*ad->view_type = SETTING_PW_TYPE_PIN2_BLOCKED; */
2070 if (app_control_create(&svc))
2073 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PIN2_BLOCKED");
2074 ug_send_result(ad->ug, svc);
2075 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PIN2_BLOCKED");
2077 app_control_destroy(svc);
2078 /* Send destroy request */
2079 ug_destroy_me(ad->ug);
2080 /*safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN2_BLOCKED")+1); */
2081 /*setting_password_ug_create_popup_notitle_nobtn(ad, */
2082 /* _("IDS_ST_POP_PIN2_BLOCKED"), TRUE); */
2085 case SIM_LOCK_INCORRECT_PASSWORD: {
2086 SETTING_TRACE_DEBUG("SIM LOCK INCORRECT PASSWORD");
2087 ad->focus_data = ad->ed_pw1;
2088 setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
2091 case SIM_INCORRECT_PIN1_CODE: {
2092 if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN) {
2093 ad->incorrect_pin1_flag = TRUE;
2095 elm_genlist_clear(ad->scroller);
2096 ADD_GL_SEPARATOR(ad->scroller)
2097 setting_password_sim_draw_1line_entry(ad, NULL);
2098 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
2102 const char *ret_str = NULL;
2103 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2105 if (result->retry_cnt > 1) {
2106 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2107 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2108 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPTS_DESC));
2109 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2110 setting_retm_if(ret < 0, "snprintf fail");
2113 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2114 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_BODY_INCORRECT_PIN_E"), _(ATTEMPT_DESC));
2115 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2116 setting_retm_if(ret < 0, "snprintf fail");
2118 /*ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT"); */
2121 ad->focus_data = ad->ed_pw1;
2122 #ifdef SUPPORT_POPUP
2123 setting_password_ug_create_popup_notitle_nobtn(ad, (char *)ret_str, FALSE);
2125 setting_password_ug_display_desc(ad, (char *)ret_str, FALSE);
2129 case SIM_INCORRECT_PIN2_CODE: {
2130 if (ad->view_type == SETTING_PW_TYPE_CHANGE_PIN2) {
2131 ad->incorrect_pin2_flag = TRUE;
2133 elm_genlist_clear(ad->scroller);
2134 ADD_GL_SEPARATOR(ad->scroller)
2135 setting_password_sim_draw_1line_entry(ad, NULL);
2136 ad->focus_timer = ecore_timer_add(0.5, __setting_password_sim_rotate_cb, ad);
2140 char *ret_str = NULL;
2141 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2143 if (result->retry_cnt > 1) {
2144 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2145 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2146 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPTS_DESC));
2147 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2148 setting_retm_if(ret < 0, "snprintf fail");
2151 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2152 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PIN2"), _(ATTEMPT_DESC));
2153 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2154 setting_retm_if(ret < 0, "snprintf fail");
2156 /*ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT"); */
2159 ad->focus_data = ad->ed_pw1;
2160 #ifdef SUPPORT_POPUP
2161 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2163 setting_password_ug_display_desc(ad, ret_str, FALSE);
2167 case SIM_INCORRECT_PUK1_CODE: {
2168 char *ret_str = NULL;
2169 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2171 if (result->retry_cnt > 1) {
2172 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PUK1_PD_ATTEMPTS_LEFT', must transform */
2173 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PUK1_ERR_DESC, result->retry_cnt);
2174 setting_retm_if(ret < 0, "snprintf fail");
2177 ret_str = _("IDS_ST_POP_INCORRECT_PUK1_CODE");
2180 ad->focus_data = ad->ed_pw1;
2181 #ifdef SUPPORT_POPUP
2182 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2184 setting_password_ug_display_desc(ad, ret_str, FALSE);
2188 case SIM_INCORRECT_PUK2_CODE: {
2189 char *ret_str = NULL;
2190 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2192 if (result->retry_cnt > 1) {
2193 /* there has '%d' in 'IDS_ST_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT', must transform */
2194 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2195 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PUK2"), _(ATTEMPTS_DESC));
2196 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2197 setting_retm_if(ret < 0, "snprintf fail");
2200 char tmp_str2[SETTING_STR_SLP_LEN] = {0,};
2201 snprintf(tmp_str2, SETTING_STR_SLP_LEN, "%s. %s.", _("IDS_ST_POP_INCORRECT_PUK2"), _(ATTEMPT_DESC));
2202 int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, tmp_str2, result->retry_cnt);
2203 setting_retm_if(ret < 0, "snprintf fail");
2205 ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
2207 ad->focus_data = ad->ed_pw1;
2208 #ifdef SUPPORT_POPUP
2209 setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
2211 setting_password_ug_display_desc(ad, ret_str, FALSE);
2216 case SIM_PIN1_CHANGE_SUCCESS: {
2217 SETTING_TRACE_DEBUG("SIM_PIN1_CHANGE_SUCCESS");
2218 /*ad->view_type = SETTING_PW_TYPE_PIN_BLOCKED; */
2219 /* Success to Operate */
2221 if (app_control_create(&svc))
2224 app_control_add_extra_data(svc, "result", ad->view_type_string);
2225 ug_send_result(ad->ug, svc);
2226 SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
2228 app_control_destroy(svc);
2229 /* Send destroy request */
2230 ug_destroy_me(ad->ug);
2232 /*setting_password_ug_create_popup_notitle_nobtn(ad, */
2233 /* _("IDS_ST_POP_PIN1_CHANGED"), TRUE); */
2235 case SIM_PIN2_CHANGE_SUCCESS:
2236 setting_password_ug_create_popup_notitle_nobtn(ad,
2237 _("IDS_ST_POP_PIN2_CHANGED"), TRUE);
2239 case SIM_PIN1_UNBLOCKED:
2240 SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
2241 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_LOCK_ON", safeStrLen("SETTING_PW_TYPE_PIN_LOCK_ON") + 1);
2242 setting_password_ug_create_popup_notitle_nobtn(ad,
2243 _("IDS_ST_POP_PIN_UNBLOCKED"), TRUE);
2245 case SIM_PIN2_UNBLOCKED:
2246 setting_password_ug_create_popup_notitle_nobtn(ad,
2247 _("IDS_ST_POP_PIN2_UNBLOCKED"), TRUE);
2249 case SIM_PUK1_BLOCKED: {
2250 char *ret_str = NULL;
2251 ret_str = PUK1_BLOCKED;
2253 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PUK1_BLOCKED", safeStrLen("SETTING_PW_TYPE_PUK1_BLOCKED") + 1);
2254 setting_password_ug_create_popup_notitle_nobtn(ad,
2256 /* Phone blocked. Call Permernent UG */
2259 case SIM_PUK2_BLOCKED: {
2261 if (app_control_create(&svc))
2264 app_control_add_extra_data(svc, "result", "SETTING_PW_TYPE_PUK2_BLOCKED");
2265 ug_send_result(ad->ug, svc);
2266 SETTING_TRACE("Send Result : %s\n", "SETTING_PW_TYPE_PUK2_BLOCKED");
2268 app_control_destroy(svc);
2269 /* Send destroy request */
2270 ug_destroy_me(ad->ug);
2272 /* Call Permernent UG */
2274 case SIM_REQUIRED_PUK_CODE:
2275 SETTING_TRACE_DEBUG("SIM_REQUIRED_PUK_CODE");
2276 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN_BLOCKED") + 1);
2277 setting_password_ug_create_popup_notitle_nobtn(ad,
2278 _("IDS_ST_POP_PIN1_BLOCKED"), TRUE);
2280 case SIM_OPERATION_UNAVAILABLE:
2281 setting_password_ug_create_popup_notitle_nobtn(ad,
2282 _("IDS_ST_HEADER_UNAVAILABLE"), TRUE);
2284 case SIM_UNKNOWN_ERROR:
2285 setting_password_ug_create_popup_notitle_nobtn(ad,
2286 _("IDS_CST_POP_UNKNOWN_OPERATION"), FALSE);
2290 case SIM_OPERATION_OFF:
2291 case SIM_LOCK_ON_FAIL:
2292 SETTING_TRACE_DEBUG("SIM_LOCK_ON_FAIL");
2294 if (result->retry_cnt > 0) {
2295 setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
2297 char tmp_str[SETTING_STR_SLP_LEN] = {0,};
2298 snprintf(tmp_str, SETTING_STR_SLP_LEN, PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME);
2299 safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_SIM_LOCK_DISABLE", safeStrLen("SETTING_PW_TYPE_SIM_LOCK_DISABLE") + 1);
2300 setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
2304 case SIM_PIN1_CHANGE_FAIL:
2305 case SIM_PIN2_CHANGE_FAIL:
2306 setting_password_ug_create_popup_notitle_nobtn(ad,
2307 _("Change Failed"), TRUE);