/*
- * setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* setting
+*
+* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+*
+* Contact: MyoungJune Park <mj2004.park@samsung.com>
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
#include <setting-password.h>
#include <setting-password-main.h>
#include <setting-common-data-slp-setting.h>
-#include <openssl/sha.h>
#include <setting-debug.h>
-#include <haptic.h>
-
+#include <dd-haptic.h>
+#if SUPPORT_ENCRYPTION
+#include <ode.h>
+#endif
+#include <Ecore_IMF.h>
+#include <Ecore_IMF_Evas.h>
+#include <Ecore_X.h>
+#include <Ecore.h>
+#include <utilX.h>
+#if SUPPORT_LIBEAS
+#include <eas-svc.h>
+#endif
+#include <time.h>
+#include <notification.h>
static int setting_password_main_create(void *cb);
static int setting_password_main_destroy(void *cb);
.cleanup = setting_password_main_cleanup,
};
-#define ENTRY_CALLBACK_REPEAT_MAX 3
-#define SETTING_COMPARE_PW_FAIL -2
+
+static void setting_password_main_done_password(void *data);
+static int __count_string(const char *str, int *cnt_letter, int *cnt_digit, int *cnt_sym);
+
+extern struct _pw_item pw_its[];
/* ***************************************************
*
*basic func
*
***************************************************/
-static void
-__password_main_gl_mouse_up(void *data, Evas *e, Evas_Object *obj,
- void *event)
-{
- ret_if(!data);
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- if (ad->ed_pw1) {
- setting_hide_input_pannel_cb(ad->ed_pw1->eo_check);
- }
- if (ad->ed_pw2) {
- setting_hide_input_pannel_cb(ad->ed_pw2->eo_check);
- }
- if (ad->ed_pw3) {
- setting_hide_input_pannel_cb(ad->ed_pw3->eo_check);
- }
-
-}
-static char *setting_password_main_get_title_str(void *data)
+static Eina_Bool setting_password_main_click_softkey_cancel_cb(void *data, Elm_Object_Item *it)
{
- retvm_if(data == NULL, NULL,
- "[Setting > Password] Data parameter is NULL");
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ retvm_if(data == NULL, EINA_FALSE, "[Setting > Password] Data parameter is NULL");
+
SettingPasswordUG *ad = (SettingPasswordUG *) data;
- switch (ad->view_type) {
- case SETTING_PW_TYPE_SIM_LOCK_ON:
- case SETTING_PW_TYPE_SIM_LOCK_OFF:
- return _("IDS_COM_BODY_AUTH_PASSWORD");
- break;
- case SETTING_PW_TYPE_PIN_LOCK_ON:
- case SETTING_PW_TYPE_PIN_LOCK_OFF:
- return _("IDS_ST_BODY_PIN1");
- break;
- case SETTING_PW_TYPE_CHANGE_PIN1:
- return _("IDS_ST_BODY_CHANGE_PIN1");
- break;
-
- case SETTING_PW_TYPE_CHANGE_PIN2:
- return _("IDS_ST_BODY_CHANGE_PIN2");
- break;
-
- case SETTING_PW_TYPE_PIN1_BLOCKED:
- return _("IDS_ST_BODY_PUK1_CODE");
- break;
- case SETTING_PW_TYPE_PIN2_BLOCKED:
-
- return _("IDS_ST_BODY_PUK2");
- break;
- default:
- SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
- SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
- break;
+ /* if IME is displayed, hide IME. or Destroy password ug. */
+ elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
+
+ if (ad->focus_timer) {
+ ecore_timer_del(ad->focus_timer);
+ ad->focus_timer = NULL;
}
- return NULL;
-}
+ /* send result : Cancel */
+ app_control_h svc;
+ if (app_control_create(&svc) == 0) {
+ app_control_add_extra_data(svc, "result", "Cancel");
+ ug_send_result(ad->ug, svc);
+ SETTING_TRACE("Send Result : %s\n", "Cancel");
-Elm_Object_Item* __create_navibar(void *data, Evas_Object *content, Evas_Object *navibar, setting_pw_navibar_style_t style)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL || content == NULL || navibar == NULL, NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- Elm_Object_Item *navi_item = NULL;
- Evas_Object *done_btn = NULL;
-
- switch(style)
- {
- case SETTING_PW_NAVIBAR_WITH_LEFT_BTN :
- SETTING_TRACE_DEBUG("with left btn");
- navi_item = setting_create_navi_bar_top_buttons(setting_password_main_get_title_str(ad),
- NULL, _("IDS_COM_SK_CANCEL"), NULL,
- NULL,
- setting_password_main_click_softkey_cancel_cb,
- NULL, ad, content, navibar);
- break;
- case SETTING_PW_NAVIBAR_WITH_RIGHT_BTN :
- SETTING_TRACE_DEBUG("with right btn");
- navi_item = setting_create_navi_bar_top_buttons(setting_password_main_get_title_str(ad),
- _("IDS_COM_SK_DONE"), NULL, NULL,
- setting_password_main_click_softkey_done_cb, NULL,
- NULL, ad, content, navibar);
- break;
- case SETTING_PW_NAVIBAR_WITH_BOTH_BTN:
- SETTING_TRACE_DEBUG("with both btn");
- navi_item = setting_create_navi_bar_top_buttons(setting_password_main_get_title_str(ad),
- _("IDS_COM_SK_DONE"), _("IDS_COM_SK_CANCEL"), NULL,
- setting_password_main_click_softkey_done_cb,
- setting_password_main_click_softkey_cancel_cb,
- NULL, ad, content, navibar);
- break;
- case SETTING_PW_NAVIBAR_WITH_NO_BTN:
- SETTING_TRACE_DEBUG("with no btn");
- navi_item = setting_create_navi_bar_top_buttons(setting_password_main_get_title_str(ad),
- NULL, NULL, NULL,
- NULL,
- NULL,
- NULL, ad, content, navibar);
- default:
- break;
+ app_control_destroy(svc);
}
- retv_if(!navi_item, NULL);
+ /* Send destroy request */
+ ug_destroy_me(ad->ug);
- done_btn = elm_object_item_part_content_get(navi_item, NAVI_BTN_STYLE_LEFT);
- if(done_btn != NULL)
- {
- setting_disable_evas_object(done_btn);
- setting_dim_evas_object(done_btn, TRUE);
- }
- return navi_item;
+ return EINA_TRUE;
}
-static int __create_common_password_frame(void *data)
+Eina_Bool __rotate_cb(void *data)
{
+ /* error check */
SETTING_TRACE_BEGIN;
- retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
- Evas_Object *navi_bar = NULL;
- static int count = 0;
-
- count++;
- /* CONTENT */
- if(ad->scroller != NULL)
- {
- evas_object_del(ad->scroller);
- }
-
- Evas_Object *pw_list = elm_genlist_add(ad->win_main_layout);
- elm_object_style_set(pw_list, "dialogue");
- if(pw_list == NULL)
- return SETTING_RETURN_FAIL;
-
- elm_genlist_clear(pw_list); /* first to clear list */
- elm_genlist_mode_set(pw_list, ELM_LIST_COMPRESS);
-
-
-#if SUPPORT_BOTTOM_BTNS
- ad->ly_main = setting_create_win_layout(ad->win_main_layout, ad->win_get);
- retv_if(!ad->ly_main, SETTING_RETURN_FAIL);
-
- navi_bar = setting_create_navi_bar(ad->ly_main);
- retv_if(!navi_bar, SETTING_RETURN_FAIL);
-
- ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN);
+ retv_if(data == NULL, FALSE);
- retv_if(!ad->navi_it, SETTING_RETURN_FAIL);
-#else
- ad->ly_main =
- setting_create_layout_navi_bar(ad->win_main_layout, ad->win_get,
- setting_password_main_get_title_str
- (ad), _("IDS_COM_SK_CANCEL"),
- _("IDS_COM_SK_DONE"), NULL,
- setting_password_main_click_softkey_cancel_cb,
- setting_password_main_click_softkey_done_cb,
- NULL, ad, pw_list /* contents */ ,
- &navi_bar, &(ad->controllbar));
- elm_object_item_disabled_set(elm_toolbar_last_item_get(ad->controllbar), EINA_TRUE);
-
- if(ad->ly_main == NULL)
- return SETTING_RETURN_FAIL;
-#endif
+ SettingPasswordUG *ad = (SettingPasswordUG *) data;
- evas_object_event_callback_add(pw_list, EVAS_CALLBACK_MOUSE_UP,
- __password_main_gl_mouse_up, ad);
+ SETTING_TRACE_DEBUG("category : 0x%x", pw_its[ad->view_type].category);
- Elm_Object_Item *item = elm_genlist_item_append(pw_list,
- &(ad->itc_seperator), NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ /* it can manage the cursor self */
+ if (ad->ed_pw1 && ad->ed_pw1->eo_check) {
+ SETTING_TRACE_DEBUG("set focus on first entry");
+ /* no matter how many edifileds, it only need focus on 1st editfiled */
+ elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
+ elm_entry_cursor_end_set(ad->ed_pw1->eo_check);
+ }
- ad->scroller = pw_list;
+ ad->focus_timer = NULL;
- return SETTING_RETURN_SUCCESS;
+ return ECORE_CALLBACK_CANCEL;
}
-static int
-setting_password_main_create(void *cb)
+static int setting_password_main_create(void *cb)
{
SETTING_TRACE_BEGIN;
/* error check */
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingPasswordUG *ad = (SettingPasswordUG *) cb;
- int ret = 0;
- ret = __create_common_password_frame(ad);
+ ad->ly_main = setting_create_layout_navi_bar_genlist(ad->win_main_layout, ad->win_get, "IDS_COM_BODY_AUTH_PASSWORD",
+ _("IDS_COM_BODY_BACK"),
+ NULL,
+ (setting_call_back_func)setting_password_main_click_softkey_cancel_cb,
+ NULL,
+ ad,
+ &(ad->scroller),
+ &(ad->navi_bar));
- if(ret < 0)
- return SETTING_RETURN_FAIL;
+ ad->navi_it = elm_naviframe_top_item_get(ad->navi_bar);
+
+ ad->bottom_btn = elm_button_add(ad->navi_bar);
+ elm_object_style_set(ad->bottom_btn, "bottom");
+ elm_object_item_part_content_set(ad->navi_it, "toolbar", ad->bottom_btn);
+
+ if (ad->view_type == SETTING_PW_TYPE_SET_PASSWORD) {
+ elm_object_text_set(ad->bottom_btn, _("IDS_ST_BUTTON_CONTINUE"));
+ evas_object_smart_callback_add(ad->bottom_btn, "clicked", setting_password_main_click_softkey_continue_cb, ad);
+ } else {
+ elm_object_text_set(ad->bottom_btn, _("IDS_COM_SK_DONE"));
+ evas_object_smart_callback_add(ad->bottom_btn, "clicked", setting_password_main_click_softkey_done_cb, ad);
+ }
+
+ /*elm_genlist_realization_mode_set(ad->scroller, EINA_FALSE); */
+ /*elm_genlist_mode_set(ad->scroller, ELM_LIST_COMPRESS); */
+ ADD_GL_SEPARATOR(ad->scroller)
+
+ ad->cur_step = 1;
+ setting_password_main_draw_1line_password(ad, NULL);
- setting_password_main_create_ui(ad);
+ /* Disable Done button if exist */
+ elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
+ elm_object_focus_allow_set(ad->bottom_btn, EINA_FALSE);
+
+ ad->focus_timer = ecore_timer_add(0.5, __rotate_cb, ad);
setting_view_password_main.is_create = 1;
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingPasswordUG *ad = (SettingPasswordUG *) cb;
-
+
+ FREE(ad->step1_str);
+
+ if (ad->remove_timer) {
+ ecore_timer_del(ad->remove_timer);
+ ad->remove_timer = NULL;
+ }
+
if (ad->focus_timer) {
ecore_timer_del(ad->focus_timer);
ad->focus_timer = NULL;
}
- if (ad->remove_timer) {
- ecore_timer_del(ad->remove_timer);
- ad->remove_timer = NULL;
+
+ if (ad->notify) {
+ evas_object_del(ad->notify);
+ ad->notify = NULL;
}
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
ad->ly_main = NULL;
- setting_view_password_main.is_create = 0;
}
+
+ setting_view_password_main.is_create = 0;
SETTING_TRACE_END;
return SETTING_RETURN_SUCCESS;
}
if (ad->ly_main != NULL) {
evas_object_show(ad->ly_main);
}
-
return SETTING_RETURN_SUCCESS;
}
*
***************************************************/
-static int setting_password_main_create_ui(void *data)
-{
- /* error check */
- retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- SETTING_TRACE_DEBUG("ad->view_type=%d ***", ad->view_type);
-
- switch (ad->view_type) {
- case SETTING_PW_TYPE_SIM_LOCK_OFF:
- case SETTING_PW_TYPE_PIN_LOCK_ON:
- case SETTING_PW_TYPE_PIN_LOCK_OFF:
- setting_password_main_draw_1line_password(ad, NULL);
- break;
- case SETTING_PW_TYPE_SIM_LOCK_ON:
- setting_password_main_draw_2line_password(ad, NULL);
- break;
-
- case SETTING_PW_TYPE_CHANGE_PIN1:
- case SETTING_PW_TYPE_CHANGE_PIN2:
- case SETTING_PW_TYPE_PIN1_BLOCKED:
- case SETTING_PW_TYPE_PIN2_BLOCKED:
- setting_password_main_draw_3line_password(ad, NULL);
- break;
-
- default:
- SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
- SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
- break;
- }
-
- /** @todo this function always return 0, not verifying the function flow with the value */
- return 0;
-}
-
static void
setting_password_main_entry_changed_cb(void *data, Evas_Object *obj,
- void *event_info)
+ void *event_info)
{
+ SETTING_TRACE_BEGIN;
retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
+ retm_if(obj == NULL, "[Setting > Password] Data parameter is NULL");
Setting_GenGroupItem_Data *list_item =
(Setting_GenGroupItem_Data *) data;
SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
list_item->sub_desc = (char *)g_strdup(entry_str);
bool isFoundEmptyEntry = FALSE;
- Evas_Object *layout = elm_object_parent_widget_get(obj);
- elm_object_part_text_set(layout, "elm.guidetext", "");
-
do {
if (ad->ed_pw1) {
entry_str = ad->ed_pw1->sub_desc;
if (NULL == entry_str || '\0' == entry_str[0]) {
isFoundEmptyEntry = TRUE;
- layout = elm_object_parent_widget_get(ad->ed_pw1->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
- break;
- }
- }
- if (ad->ed_pw2) {
- entry_str = ad->ed_pw2->sub_desc;
- if (NULL == entry_str || '\0' == entry_str[0]) {
- isFoundEmptyEntry = TRUE;
- layout = elm_object_parent_widget_get(ad->ed_pw2->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+ /*char *guide_text = elm_object_part_text_get(obj, "elm.guide"); */
+ /*if(isEmptyStr(guide_text)) */
+ /*{ */
+ /* SETTING_TRACE("guide is empty"); */
+ /* elm_object_part_text_set(obj, "elm.guide", _("IDS_ST_BODY_ENTER_PASSWORD")); */
+ /*} */
+ elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,hide", "");
break;
- }
- }
- if (ad->ed_pw3) {
- entry_str = ad->ed_pw3->sub_desc;
- if (NULL == entry_str || '\0' == entry_str[0]) {
- isFoundEmptyEntry = TRUE;
- layout = elm_object_parent_widget_get(ad->ed_pw3->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+ } else {
+ /*elm_object_part_text_set(obj, "elm.guide", ""); */
+ elm_object_item_signal_emit(ad->ed_pw1->item, "elm,state,eraser,show", "");
break;
}
}
-
} while (0);
+ Eina_Bool item_disabled = elm_object_item_disabled_get(list_item->item);
+ if (item_disabled)
+ return;
+
+ /* For disable toolbar (done) item */
bool disableFlag = isFoundEmptyEntry;
+ if (ad->ed_pw1 && ad->ed_pw1->eo_check && (safeStrLen(elm_entry_entry_get(ad->ed_pw1->eo_check)) < 4))
+ disableFlag = TRUE;
- #if SUPPORT_BOTTOM_BTNS
- Evas_Object *done_btn = elm_object_item_part_content_get(ad->navi_it, NAVI_BTN_STYLE_LEFT);
+#if SUPPORT_BOTTOM_BTNS
if (disableFlag) {
- if (!evas_object_pass_events_get(done_btn)) { /* it had not yet been disabled */
- setting_disable_evas_object(done_btn);
- setting_dim_evas_object(done_btn, TRUE);
- }/* else already disabled */
+ elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
+ elm_entry_input_panel_return_key_disabled_set(obj, EINA_TRUE);
} else {
- setting_enable_evas_object(done_btn);
- setting_undo_dim_evas_object(done_btn, TRUE);
+ elm_object_disabled_set(ad->bottom_btn, EINA_FALSE);
+ elm_entry_input_panel_return_key_disabled_set(obj, EINA_FALSE);
}
- #else
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (ad->controllbar), disableFlag);
- #endif
+#else
+ elm_object_item_disabled_set(elm_toolbar_last_item_get(ad->controllbar), disableFlag);
+#endif
}
-static Eina_Bool __focus_on_idler(void *data)
+static void __reached_max_pwlength_cb(void *data, Evas_Object *obj, void *event_info)
{
- /* error check */
- retv_if(data == NULL, FALSE);
+ SETTING_TRACE_BEGIN;
+ retm_if(data == NULL, "Data parameter is NULL");
+ retm_if(!elm_object_focus_get(obj), "Entry is not focused");/*notify only when entry is being focused on. */
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
+ int err = 0;
- if(ad->ed_pw1)
- {
- if (ad->ed_pw1->isFocusFlag || (ad->ed_pw1->eo_check != NULL))
- {
- /* no matter how many edifileds, it only need focus on 1st editfiled */
- elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
- }
- }
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
- return ECORE_CALLBACK_CANCEL;
+ /* Display help text. */
+ char temp[128] = {0,};
+ snprintf(temp, 128, _(PW_ST_PW_MAX_LENGTH_HELP), list_item->limit_filter_data->max_char_count);
+ setting_password_ug_display_desc(ad, temp, FALSE);
}
-static int setting_password_main_draw_1line_password(void *data, void *cb)
+static void __entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
{
- /* error check */
- retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- switch (ad->view_type) {
- case SETTING_PW_TYPE_PIN_LOCK_ON:
- case SETTING_PW_TYPE_PIN_LOCK_OFF:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_PIN1", NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- default:
- break;
- }
+ SETTING_TRACE_BEGIN;
+ retm_if(data == NULL, "Data parameter is NULL");
- ad->focus_timer = ecore_timer_add(0.4, __focus_on_idler, ad);
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ SettingPasswordUG *ad = (SettingPasswordUG *) list_item->userdata;
- return 0;
-}
+ if (ad->bottom_btn) {
+ if (elm_object_disabled_get(ad->bottom_btn) == EINA_FALSE) {
+ /* call done cb. */
+ if (ad->view_type == SETTING_PW_TYPE_SET_PASSWORD && ad->cur_step == 1) {
+ /* Save first input */
+ ad->step1_str = (char *)strdup(ad->ed_pw1->sub_desc);
+
+ /* Check step1_str : more than 4, not all digits */
+ int letter = 0;
+ int digit = 0;
+ int symbol = 0;
+ __count_string(ad->step1_str, &letter, &digit, &symbol);
+ if (safeStrLen(ad->step1_str) == digit) {
+ __add_help_of_password_fails(SETTING_PW_ERROR_INCLUDE_NO_LETTER, ad);
+ FREE(ad->step1_str);
+ return;
+ }
-static int setting_password_main_clear_1line_password(void *data)
-{
- /* error check */
- retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
+ setting_password_main_clear_1line_password(ad);
+ if (ad->err_desc && ad->err_desc->item) {
+ elm_object_item_del(ad->err_desc->item);
+ ad->err_desc = NULL;
+ }
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- retv_if(NULL == ad->ed_pw1, -1);
+ /* Change entry title : PW_SHORT_GUIDE_CONFIRM */
+ FREE(ad->ed_pw1->keyStr);
+ ad->ed_pw1->keyStr = (char *)strdup(PW_SHORT_GUIDE_CONFIRM);
+ elm_genlist_item_fields_update(ad->ed_pw1->item, "elm.text.main", ELM_GENLIST_ITEM_FIELD_TEXT);
- ad->ed_pw1->sub_desc = NULL;
- ad->ed_pw1->isFocusFlag = FALSE;
- elm_entry_entry_set(ad->ed_pw1->eo_check, "");
- Evas_Object *layout = elm_object_parent_widget_get(ad->ed_pw1->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
- return 0;
+ /* Change button */
+ elm_object_text_set(ad->bottom_btn, _("IDS_COM_SK_DONE"));
+ evas_object_smart_callback_add(ad->bottom_btn, "clicked", setting_password_main_click_softkey_done_cb, ad);
+ elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
+ elm_entry_input_panel_return_key_disabled_set(obj, EINA_TRUE);
+ ad->cur_step++;
+ } else {
+ setting_password_main_done_password(ad);
+ }
+ }
+ }
}
-static int setting_password_main_draw_2line_password(void *data, void *cb)
+static void __entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
{
- /* error check */
- retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+ SETTING_TRACE_BEGIN;
+ retm_if(data == NULL, "Data parameter is NULL");
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ SettingPasswordUG *ad = (SettingPasswordUG *)list_item->userdata;
- switch (ad->view_type) {
- case SETTING_PW_TYPE_SIM_LOCK_ON:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_NEW,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_SIM_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw2 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_CONFIRM,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_SIM_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- default:
- break;
+ if (!elm_entry_is_empty(obj)) {
+ elm_object_item_signal_emit(list_item->item, "elm,state,eraser,show", "");
}
-
- ad->focus_timer = ecore_timer_add(1, __focus_on_idler, ad);
- return 0;
+ elm_object_item_signal_emit(list_item->item, "elm,state,rename,hide", "");
}
-static int setting_password_main_clear_2line_password(void *data)
+static void __entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
{
- /* error check */
- retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
+ SETTING_TRACE_BEGIN;
+ retm_if(data == NULL, "Data parameter is NULL");
+ retm_if(obj == NULL, "Data parameter is NULL");
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- Evas_Object *layout = NULL;
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
- retv_if(NULL == ad->ed_pw1, -1);
- ad->ed_pw1->sub_desc = NULL;
- ad->ed_pw1->isFocusFlag = FALSE;
- elm_entry_entry_set(ad->ed_pw1->eo_check, "");
- layout = elm_object_parent_widget_get(ad->ed_pw1->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
-
- retv_if(NULL == ad->ed_pw2, -1);
- ad->ed_pw2->sub_desc = NULL;
- ad->ed_pw2->isFocusFlag = FALSE;
- elm_entry_entry_set(ad->ed_pw2->eo_check, "");
- layout = elm_object_parent_widget_get(ad->ed_pw2->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
- return 0;
+ if (list_item->item) {
+ elm_object_item_signal_emit(list_item->item, "elm,state,eraser,hide", "");
+ elm_object_item_signal_emit(list_item->item, "elm,state,rename,show", "");
+ }
}
-static int setting_password_main_draw_3line_password(void *data, void *cb)
+int setting_password_main_draw_1line_password(void *data, void *cb)
{
+ SETTING_TRACE_BEGIN;
/* error check */
retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
+ "[Setting > Password] Data parameter is NULL");
SettingPasswordUG *ad = (SettingPasswordUG *) data;
- Elm_Input_Panel_Layout ime_style = ELM_INPUT_PANEL_LAYOUT_NORMAL;
switch (ad->view_type) {
- case SETTING_PW_TYPE_CHANGE_PIN1:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_CURRENT,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw2 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_NEW,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw3 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_CONFIRM,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- case SETTING_PW_TYPE_CHANGE_PIN2:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_CURRENT,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw2 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_NEW,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw3 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- PW_SHORT_GUIDE_CONFIRM,
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- case SETTING_PW_TYPE_PIN1_BLOCKED:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_PUK1_CODE",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw2 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_NEW_PIN1",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw3 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_CONFIRM_NEW_PIN1",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- case SETTING_PW_TYPE_PIN2_BLOCKED:
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_PUK2", NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw2 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_NEW_PIN2",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
-
- ad->ed_pw3 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_ST_BODY_CONFIRM_NEW_PIN2",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, FALSE,
- SETTING_PW_UG_PIN_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
- default:
- break;
+ case SETTING_PW_TYPE_PASSWORD:
+ ad->ed_pw1 =
+ setting_create_Gendial_field_editfield(ad->scroller,
+ &(itc_editfield),
+ NULL, ad,
+ SWALLOW_Type_LAYOUT_EDITFIELD,
+ "IDS_COM_BODY_PASSWORD",
+ NULL,
+ setting_password_main_entry_changed_cb,
+ __entry_focused_cb,
+ __entry_unfocused_cb,
+ __entry_activated_cb,
+ __reached_max_pwlength_cb,
+ ELM_INPUT_PANEL_LAYOUT_PASSWORD,
+ TRUE, TRUE,
+ SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
+ 0, NULL, NULL);
+ break;
+ case SETTING_PW_TYPE_SET_PASSWORD:
+ ad->ed_pw1 =
+ setting_create_Gendial_field_editfield(ad->scroller,
+ &(itc_editfield),
+ NULL, ad,
+ SWALLOW_Type_LAYOUT_EDITFIELD,
+ PW_SHORT_GUIDE_NEW,
+ NULL,
+ setting_password_main_entry_changed_cb,
+ __entry_focused_cb,
+ __entry_unfocused_cb,
+ __entry_activated_cb,
+ __reached_max_pwlength_cb,
+ ELM_INPUT_PANEL_LAYOUT_PASSWORD,
+ TRUE, TRUE,
+ SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
+ 0, NULL, NULL);
+
+ ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
+ ad->scroller,
+ &(itc_multiline_text),
+ SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
+ PW_NORMAL_AND_CONTAIN_ALPHANUMER_DESC);
+ break;
+ default:
+ break;
}
- ad->focus_timer = ecore_timer_add(1, __focus_on_idler, ad);
+ ad->ed_pw2 = NULL;
+ ad->ed_pw3 = NULL;
+
return 0;
}
-static int setting_password_main_clear_3line_password(void *data)
+int setting_password_main_clear_1line_password(void *data)
{
/* error check */
retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
+ "[Setting > Password] Data parameter is NULL");
SettingPasswordUG *ad = (SettingPasswordUG *) data;
- Evas_Object *layout = NULL;
-
retv_if(NULL == ad->ed_pw1, -1);
+
ad->ed_pw1->sub_desc = NULL;
ad->ed_pw1->isFocusFlag = FALSE;
+
elm_entry_entry_set(ad->ed_pw1->eo_check, "");
- layout = elm_object_parent_widget_get(ad->ed_pw1->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
-
- retv_if(NULL == ad->ed_pw2, -1);
- ad->ed_pw2->sub_desc = NULL;
- ad->ed_pw2->isFocusFlag = FALSE;
- elm_entry_entry_set(ad->ed_pw2->eo_check, "");
- layout = elm_object_parent_widget_get(ad->ed_pw2->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
-
- retv_if(NULL == ad->ed_pw3, -1);
- ad->ed_pw3->sub_desc = NULL;
- ad->ed_pw3->isFocusFlag = FALSE;
- elm_entry_entry_set(ad->ed_pw3->eo_check, "");
- layout = elm_object_parent_widget_get(ad->ed_pw3->eo_check);
- elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+ elm_object_part_text_set(ad->ed_pw1->eo_check, "elm.guide", _("IDS_ST_BODY_ENTER_PASSWORD"));
+
return 0;
}
-static int setting_password_main_check_1line_password(void *data)
+/* This help is shown on entering new/confirm password view */
+void __add_help_of_password_policy(SettingPasswordUG *ad)
+{
+ ret_if(ad == NULL);
+
+ ad->err_desc = setting_create_Gendial_field_helpitem_without_bottom_separator(
+ ad->scroller,
+ &(itc_multiline_text),
+ SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
+ PW_NORMAL_AND_CONTAIN_ALPHANUMER_DESC);
+
+ if (ad->ed_pw1 && ad->ed_pw1->eo_check) {
+ SETTING_TRACE_DEBUG("FOCUS IN");
+ ad->ed_pw1->isFocusFlag = TRUE;
+ elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
+ }
+}
+
+
+/**
+ * This help is shown after verifying entered new/confirm password with constraint
+ */
+void __add_help_of_password_fails(int ret, SettingPasswordUG *ad)
+{
+ ret_if(ad == NULL);
+
+ switch (ret) {
+ case SETTING_PW_ERROR_INVALID_LENGTH :
+ setting_password_ug_display_desc(ad, "Invalid length", FALSE);
+ break;
+ case SETTING_PW_ERROR_INCLUDE_NO_LETTER :
+ setting_password_ug_display_desc(ad, "IDS_ST_BODY_PASSWORD_MUST_CONTAIN_AT_LEAST_1_LETTER", FALSE);
+ break;
+ case SETTING_PW_ERROR_NO_MATCH_WITH_POLICY :
+ setting_password_ug_display_desc(ad, "No match with policy", FALSE);
+ break;
+ case SETTING_PW_ERROR_NO_MATCH_MIN_COMPLEX :
+ setting_password_ug_display_desc(ad, "No match with min complex", FALSE);
+ break;
+ case SETTING_PW_ERROR_EXIST_FORBIDDEN_STRING :
+ setting_password_ug_display_desc(ad, "Exist forbidden string", FALSE);
+ break;
+ case SETTING_PW_ERROR_NO_MATCH_MAX_REPEAT_COUNT :
+ setting_password_ug_display_desc(ad, "No match with max repeat count", FALSE);
+ break;
+ case SETTING_PW_ERROR_SIMPLE_STYLE :
+ setting_password_ug_display_desc(ad, "Exist simple sequence", FALSE);
+ break;
+ case SETTING_PW_ERROR_INCLUDE_DIGIT:
+ setting_password_ug_display_desc(ad, "Password should not include any digit or symbol", FALSE);
+ break;
+ case SETTING_PW_ERROR_NO_MATCH_WITH_PATTERN:
+ setting_password_ug_display_desc(ad, "No match with pattern", FALSE);
+ break;
+ case SETTING_PW_ERROR_NO_DIGIT:
+ setting_password_ug_display_desc(ad, "IDS_ST_BODY_PASSWORD_MUST_CONTAIN_AT_LEAST_1_NUMBER", FALSE);
+ break;
+ default:
+ setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
+ break;
+ }
+}
+
+int setting_password_main_check_1line_password(void *data)
{
/* error check */
retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
/* Empty Check */
if (isEmptyStr(entry_str)) {
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
/* Length Check */
int entry_str_len = safeStrLen(entry_str);
- switch (ad->view_type) {
- case SETTING_PW_TYPE_PIN_LOCK_ON:
- case SETTING_PW_TYPE_PIN_LOCK_OFF:
- {
- if (entry_str_len < SETTING_PW_UG_PIN_MIN_LENGTH
- || entry_str_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- }
- break;
- case SETTING_PW_TYPE_SIM_LOCK_OFF:
- {
- if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
- || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) {
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- }
- default:
- break;
+ if (entry_str_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH
+ || entry_str_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) {
+ setting_password_main_warning_entry_added_byte_popup(ad,
+ SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH,
+ SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH);
+ return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
}
return SETTING_RETURN_SUCCESS;
}
-static int setting_password_main_check_2line_password(void *data)
+int setting_password_main_check_2line_password(void *data)
{
+ SETTING_TRACE_BEGIN;
/* error check */
retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingPasswordUG *ad = (SettingPasswordUG *) data;
+ if (ad->ed_pw1 == NULL)
+ return SETTING_GENERAL_ERR_NULL_DATA_PARAMETER;
- const char *entry_str1 = ad->ed_pw1->sub_desc;
- const char *entry_str2 = ad->ed_pw2->sub_desc;
+ const char *entry_str1 = ad->step1_str;
+ const char *entry_str2 = ad->ed_pw1->sub_desc;
ad->focus_data = ad->ed_pw1;
/* Empty Check */
if (isEmptyStr(entry_str1)) {
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
- return SETTING_ENTRY_RETURN_NULL_STR_ERR;
- }
-
- if (isEmptyStr(entry_str2)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
- /* Length Check */
- int entry_str_len = safeStrLen(entry_str1);
- switch (ad->view_type) {
- case SETTING_PW_TYPE_SIM_LOCK_ON:
- {
- if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
- || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) {
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- }
- break;
- default:
- break;
- }
-
/* Match Check */
if (0 != safeStrCmp(entry_str1, entry_str2)) {
+ setting_password_main_clear_1line_password(ad);
setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-
return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
}
+ /* Length Check */
+ int entry_str_len = safeStrLen(entry_str1);
+ if (entry_str_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH
+ || entry_str_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) {
+ setting_password_main_warning_entry_added_byte_popup(ad,
+ SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH,
+ SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH);
+ return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
+ }
+
return SETTING_RETURN_SUCCESS;
}
-static void
-setting_password_main_warning_entry_added_byte_popup(SettingPasswordUG *ad,
- int min, int max)
+void setting_password_main_warning_entry_added_byte_popup(SettingPasswordUG *ad,
+ int min, int max)
{
char str[MAX_SPECIALIZITION_LEN + 1] = { 0 };
- snprintf(str, MAX_SPECIALIZITION_LEN, "%d~%d %s", min, max, _("characters required"));
-
+ snprintf(str, MAX_SPECIALIZITION_LEN, _("IDS_ST_POP_PASSWORD_MUST_BE_MORE_THAN_P1SD_CHARACTERS_AND_LESS_THAN_P2SD"), min, max);
setting_password_ug_display_desc(ad, str, FALSE);
-
}
-static int setting_password_main_check_3line_password(void *data)
+static void setting_password_main_done_password(void *data)
{
- /* error check */
- retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
+ ret_if(data == NULL);
SettingPasswordUG *ad = (SettingPasswordUG *) data;
- const char *entry_str1 = ad->ed_pw1->sub_desc;
- const char *entry_str2 = ad->ed_pw2->sub_desc;
- const char *entry_str3 = ad->ed_pw3->sub_desc;
- ad->focus_data = ad->ed_pw1;
-
- /* Empty Check */
- if (isEmptyStr(entry_str1)) {
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
- return SETTING_ENTRY_RETURN_NULL_STR_ERR;
- }
-
- if (isEmptyStr(entry_str2)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
- return SETTING_ENTRY_RETURN_NULL_STR_ERR;
- }
-
- if (isEmptyStr(entry_str3)) {
- ad->focus_data = ad->ed_pw3;
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
- return SETTING_ENTRY_RETURN_NULL_STR_ERR;
- }
-
- /* Length Check */
- int entry_str1_len = safeStrLen(entry_str1);
- int entry_str2_len = safeStrLen(entry_str2);
- int entry_str3_len = safeStrLen(entry_str3);
- switch (ad->view_type) {
- case SETTING_PW_TYPE_PIN1_BLOCKED:
- case SETTING_PW_TYPE_PIN2_BLOCKED:
- case SETTING_PW_TYPE_CHANGE_PIN1:
- case SETTING_PW_TYPE_CHANGE_PIN2:
- {
- if (entry_str1_len < SETTING_PW_UG_PIN_MIN_LENGTH
- || entry_str1_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- if (entry_str2_len < SETTING_PW_UG_PIN_MIN_LENGTH
- || entry_str2_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
- ad->focus_data = ad->ed_pw2;
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- if (entry_str3_len < SETTING_PW_UG_PIN_MIN_LENGTH
- || entry_str3_len > SETTING_PW_UG_PIN_MAX_LENGTH) {
- ad->focus_data = ad->ed_pw3;
- setting_password_main_warning_entry_added_byte_popup
- (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH);
- return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW;
- }
- }
- break;
- default:
- break;
- }
-
- /* Match Check */
- if (0 != safeStrCmp(entry_str2, entry_str3)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-
- return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-
-static void
-setting_password_main_click_softkey_cancel_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- /* error check */
- retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- /* send result : Cancel */
- service_h svc;
- if(service_create(&svc))
+ app_control_h svc;
+ if (app_control_create(&svc)) {
+ SETTING_TRACE_ERROR("app_control_create() failed");
return;
-
- service_add_extra_data(svc, "result", "Cancel");
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", "Cancel");
-
- service_destroy(svc);
-
- /* Send destroy request */
- ug_destroy_me(ad->ug);
-
-}
-
-static void
-setting_password_main_click_softkey_done_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- /* error check */
- retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
-
- int err = 0;
- int ret = 0;
- char svalue[SHA256_DIGEST_LENGTH] = { 0, };
-
- memset(svalue, 0x0, SHA256_DIGEST_LENGTH);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- service_h svc;
+ }
SETTING_TRACE("ad->view_type:%d", ad->view_type);
+ int ret = 0;
switch (ad->view_type) {
- case SETTING_PW_TYPE_PIN_LOCK_ON:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_ON");
-
- ret = setting_password_main_check_1line_password(ad);
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimFacilityPw_t sim_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
- const char *entry_str;
-
- entry_str = ad->ed_pw1->sub_desc;
- if (isEmptyStr(entry_str)) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
+ case SETTING_PW_TYPE_PASSWORD:
+ ret = setting_password_main_check_1line_password(ad);
- sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;//TAPI_SIM_PTYPE_PIN1;
- sim_sec_data.pw = (unsigned char *)entry_str;
- sim_sec_data.pw_len = safeStrLen(entry_str);
+ if (ret == SETTING_RETURN_SUCCESS) {
+ const char *entry_str;
+ entry_str = ad->ed_pw1->sub_desc;
- tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
- setting_password_main_clear_1line_password(ad);
+ unsigned int remain_attempt = ATTEMPT_INFINITE;
+ unsigned int valid_seconds = 0;
+ ret = setting_password_check_password(entry_str, &remain_attempt, &valid_seconds);
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_enable_sim_facility err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
- SETTING_TRACE_DEBUG("*** [SUCCESS] tel_enable_sim_facility err=%d ***", tapi_ret);
+ if (ret == SETTING_RETURN_SUCCESS) {
+ int err;
+
+ if (safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD") == 0) {
+
+ /* reset VCONF */
+ setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT,
+ PHONE_LOCK_ATTEMPS_MAX, &err);
+ if (err == SETTING_RETURN_FAIL) {
+ SETTING_TRACE_ERROR("[Error] set value of vconf fail.");
+ app_control_destroy(svc);
+ return;
+ }
+ } else if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE")) {
+ app_control_add_extra_data(svc, "current", entry_str);
}
} else {
+ /* Incorrect Password. Display Popup. */
setting_password_main_clear_1line_password(ad);
+ ad->focus_data = ad->ed_pw1;
+ setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
+ app_control_destroy(svc);
+ return;
}
+ } else {
+ setting_password_main_clear_1line_password(ad);
+ app_control_destroy(svc);
+ return;
}
- return;
- case SETTING_PW_TYPE_PIN_LOCK_OFF:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_OFF");
-
- ret = setting_password_main_check_1line_password(ad);
+ break;
+ case SETTING_PW_TYPE_SET_PASSWORD: {
+ SETTING_TRACE("case SETTING_PW_TYPE_SET_PASSWORD");
+ ret = setting_password_main_check_2line_password(ad);
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimFacilityPw_t sim_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
+ if (SETTING_RETURN_SUCCESS == ret) {
const char *entry_str;
-
entry_str = ad->ed_pw1->sub_desc;
- if (isEmptyStr(entry_str)) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- sim_sec_data.lock_type = TAPI_SIM_LOCK_SC;//TAPI_SIM_PTYPE_PIN1
- sim_sec_data.pw = (unsigned char *)entry_str;
- sim_sec_data.pw_len = safeStrLen(entry_str);
-
- tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
- setting_password_main_clear_1line_password(ad);
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
- }
- } else {
- setting_password_main_clear_1line_password(ad);
- }
- }
- return;
- case SETTING_PW_TYPE_PIN1_BLOCKED:
- {
- /* PIN1 Status is "Blocked": User should input puk code and new pin1 code. */
- /* If puk code is correct and success to modify pin1 code, display pin1 code change popup */
- /* But, if this menu is "Pin Lock", pinlock status will not be changed. */
- SETTING_TRACE("case SETTING_PW_TYPE_PIN1_BLOCKED");
- ret = setting_password_main_check_3line_password(ad);
-
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimSecPw_t puk1_data = { 0, };
- TelSimSecPw_t pin1_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
- const char *puk;
- const char *new_pin1;
-
- puk = ad->ed_pw1->sub_desc;
- new_pin1 = ad->ed_pw2->sub_desc;
- if (isEmptyStr(puk)) {
+ if (isEmptyStr(entry_str)) {
ad->focus_data = ad->ed_pw1;
+ SETTING_TRACE_DEBUG("%s*** [ERR] elm_entry_entry_get return NULL ***%s",
+ SETTING_FONT_RED, SETTING_FONT_BLACK);
setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
+ app_control_destroy(svc);
return;
}
- if (isEmptyStr(new_pin1)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
+ ret = setting_password_set_password(ad->cur_pwd, entry_str, ad);
+
+ /* Modify Setting Password */
+ if (ret > 0) {
+ /* Display popup */
+ /*service_add_extra_data(svc, "current", entry_str); */
+ if (ad->set_history_timer) {
+ setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_NEW_PASSWD_SAVED"), FALSE);
+ } else {
+ app_control_add_extra_data(svc, "result", ad->view_type_string);
+ ug_send_result(ad->ug, svc);
+ SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
+
+ app_control_destroy(svc);
+ /* Send destroy request */
+ ug_destroy_me(ad->ug);
+ return;
+ }
+ app_control_destroy(svc);
return;
- }
-
- puk1_data.type = TAPI_SIM_PTYPE_PUK1;
- puk1_data.pw = (unsigned char *)puk;
- puk1_data.pw_len = safeStrLen(puk);
-
- pin1_data.type = TAPI_SIM_PTYPE_PIN1;
- pin1_data.pw = (unsigned char *)new_pin1;
- pin1_data.pw_len = safeStrLen(new_pin1);
-
- tapi_ret = tel_verify_sim_puks(ad->handle, &puk1_data, &pin1_data, setting_sim_verify_puks_cb, ad);
- setting_password_main_clear_3line_password(ad);
-
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
-
- }
- } else {
- setting_password_main_clear_3line_password(ad);
- }
- }
- return;
- case SETTING_PW_TYPE_PIN2_BLOCKED:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_PIN2_BLOCKED");
- ret = setting_password_main_check_3line_password(ad);
-
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimSecPw_t puk2_data = { 0, };
- TelSimSecPw_t pin2_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
- const char *puk;
- const char *new_pin2;
-
- puk = ad->ed_pw1->sub_desc;
- new_pin2 = ad->ed_pw2->sub_desc;
- if (isEmptyStr(puk)) {
+ } else if (ret == SETTING_PW_ERROR_REUSED) {
ad->focus_data = ad->ed_pw1;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- if (isEmptyStr(new_pin2)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
+ setting_password_main_clear_1line_password(ad);
+ setting_password_ug_display_desc(ad, _(PW_ERR_REUSED), FALSE);
+ app_control_destroy(svc);
return;
- }
-
- puk2_data.type = TAPI_SIM_PTYPE_PUK2;
- puk2_data.pw = (unsigned char *)puk;
- puk2_data.pw_len = safeStrLen(puk);
-
- pin2_data.type = TAPI_SIM_PTYPE_PIN2;
- pin2_data.pw = (unsigned char *)new_pin2;
- pin2_data.pw_len = safeStrLen(new_pin2);
-
- tapi_ret = tel_verify_sim_puks(ad->handle, &puk2_data, &pin2_data, setting_sim_verify_puks_cb, ad);
- setting_password_main_clear_3line_password(ad);
-
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_verify_sim_puks err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
} else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
-
- }
- } else {
- setting_password_main_clear_3line_password(ad);
- }
- }
- return;
- case SETTING_PW_TYPE_CHANGE_PIN1:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN1");
-
- ret = setting_password_main_check_3line_password(ad);
- if (ret == SETTING_RETURN_SUCCESS) {
- const char *old_pw;
- const char *new_pw;
- TelSimSecPw_t sim_old_sec_data = { 0, };
- TelSimSecPw_t sim_new_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
-
- old_pw = ad->ed_pw1->sub_desc;
- new_pw = ad->ed_pw2->sub_desc;
- if (isEmptyStr(old_pw)) {
ad->focus_data = ad->ed_pw1;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- if (isEmptyStr(new_pw)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
+ setting_password_main_clear_1line_password(ad);
+ setting_password_ug_display_desc(ad, _("IDS_COM_BODY_OPERATION_FAILED"), FALSE);
+ app_control_destroy(svc);
return;
}
-
- sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN1;
- sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN1;
- sim_old_sec_data.pw = (unsigned char *)old_pw;
- sim_old_sec_data.pw_len = safeStrLen(old_pw);
- sim_new_sec_data.pw = (unsigned char *)new_pw;
- sim_new_sec_data.pw_len = safeStrLen(new_pw);
-
- tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
- setting_password_main_clear_3line_password(ad);
-
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success popup and send message to caller */
- /* setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PIN1_CHANGED")); */
- }
- } else {
- setting_password_main_clear_3line_password(ad);
- }
- }
- return;
- case SETTING_PW_TYPE_CHANGE_PIN2:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PIN2");
- ret = setting_password_main_check_3line_password(ad);
- if (ret == SETTING_RETURN_SUCCESS) {
- const char *old_pw;
- const char *new_pw;
- TelSimSecPw_t sim_old_sec_data = { 0, };
- TelSimSecPw_t sim_new_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
-
- old_pw = ad->ed_pw1->sub_desc;
- new_pw = ad->ed_pw2->sub_desc;
- if (isEmptyStr(old_pw)) {
- ad->focus_data = ad->ed_pw1;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- if (isEmptyStr(new_pw)) {
- ad->focus_data = ad->ed_pw2;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- sim_old_sec_data.type = TAPI_SIM_PTYPE_PIN2;
- sim_new_sec_data.type = TAPI_SIM_PTYPE_PIN2;
- sim_old_sec_data.pw = (unsigned char *)old_pw;
- sim_old_sec_data.pw_len = safeStrLen(old_pw);
- sim_new_sec_data.pw = (unsigned char *)new_pw;
- sim_new_sec_data.pw_len = safeStrLen(new_pw);
-
- tapi_ret = tel_change_sim_pins(ad->handle, &sim_old_sec_data, &sim_new_sec_data, setting_sim_change_pins_cb, ad);
- setting_password_main_clear_3line_password(ad);
-
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] TelTapiSimChangePIN err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success popup and send message to caller */
- /* setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PIN2_CHANGED")); */
- }
- } else {
- setting_password_main_clear_3line_password(ad);
- }
- }
- return;
- case SETTING_PW_TYPE_SIM_LOCK_ON:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_ON");
-
- ret = setting_password_main_check_2line_password(ad);
-
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimFacilityPw_t sim_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
- const char *entry_str;
- entry_str = ad->ed_pw1->sub_desc;
- if (isEmptyStr(entry_str)) {
- ad->focus_data = ad->ed_pw1;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;//TAPI_SIM_PTYPE_SIM
- sim_sec_data.pw = (unsigned char *)entry_str;
- sim_sec_data.pw_len = safeStrLen(entry_str);
-
- tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
- setting_password_main_clear_2line_password(ad);
-
- SETTING_TRACE("SIM Lock password : %s\n", (char *)(sim_sec_data.pw));
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_enable_sim_facility err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
-
- }
+ } else if (SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW == ret) {
+ /* Nothing */
+ app_control_destroy(svc);
+ setting_password_main_clear_1line_password(ad);
+ setting_password_ug_display_desc(ad, PW_ST_PW_DO_NOT_MATCH, FALSE);
+ return;
} else {
- setting_password_main_clear_2line_password(ad);
+ SETTING_TRACE("error : %d", ret);
+ setting_password_main_clear_1line_password(ad);
+ setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
+ app_control_destroy(svc);
+ return;
}
}
+ break;
+ default:
+ app_control_destroy(svc);
return;
- case SETTING_PW_TYPE_SIM_LOCK_OFF:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_SIM_LOCK_OFF");
-
- ret = setting_password_main_check_1line_password(ad);
- if (ret == SETTING_RETURN_SUCCESS) {
- TelSimFacilityPw_t sim_sec_data = { 0, };
- int tapi_ret = TAPI_API_SUCCESS;
- const char *entry_str;
-
- entry_str = ad->ed_pw1->sub_desc;
- if (isEmptyStr(entry_str)) {
- ad->focus_data = ad->ed_pw1;
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
+ }
- sim_sec_data.lock_type = TAPI_SIM_LOCK_PS;//TAPI_SIM_PTYPE_SIM
- sim_sec_data.pw = (unsigned char *)entry_str;
- sim_sec_data.pw_len = safeStrLen(entry_str);
+ app_control_add_extra_data(svc, "result", ad->view_type_string);
+ ug_send_result(ad->ug, svc);
+ SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
- tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
- setting_password_main_clear_1line_password(ad);
+ app_control_destroy(svc);
+ /* Send destroy request */
+ ug_destroy_me(ad->ug);
+}
- if (TAPI_API_SUCCESS != tapi_ret) {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_DEBUG("%s*** [ERR] tel_disable_sim_facility err=%d ***%s",
- SETTING_FONT_RED, tapi_ret, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- } else {
- /* Success. Send Message to Caller for Modify Pin Lock slider status */
+static int __count_string(const char *str, int *cnt_letter, int *cnt_digit, int *cnt_sym)
+{
+ SETTING_TRACE_BEGIN;
+ retv_if(str == NULL || cnt_letter == NULL || cnt_digit == NULL || cnt_sym == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
- }
- } else {
- setting_password_main_clear_1line_password(ad);
- }
- }
- return;
-#if SUPPORT_FDN
- case SETTING_PW_TYPE_FDN_MODE_ON:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_ON");
- ret = setting_password_main_check_1line_password(ad);
-
- if(ret == SETTING_RETURN_SUCCESS)
- {
- const char *entry_str;
- int tapi_ret = TAPI_API_INVALID_INPUT;
+ int length = strlen(str);
+ int index = 0;
+ char temp = 0;
+ int letter = 0;
+ int digit = 0;
+ int symbol = 0;
- TelSimFacilityPw_t sim_sec_data = {0,};
- int ReqId;
+ if (length <= 0) {
+ SETTING_TRACE_DEBUG("[DEBUG] invalid input length");
+ return SETTING_RETURN_FAIL;
+ }
- entry_str = ad->ed_pw1->sub_desc;
- if(isEmptyStr(entry_str))
- {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
- sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;//TAPI_SIM_PTYPE_PIN2;
- sim_sec_data.pw_len = safeStrLen(entry_str);
- sim_sec_data.pw = (unsigned char*)entry_str;
+ for (index = 0; index < length; index++) {
+ temp = (char)(str[index]);
+ SETTING_TRACE_SECURE_DEBUG("temp %c", temp);
+
+ if ((temp >= '0') && (temp <= '9')) { /* digit */
+ digit++;
+ } else if ((temp >= 'a') && (temp <= 'z')) { /* lower letter */
+ letter++;
+ } else if ((temp >= 'A') && (temp <= 'Z')) { /* upper letter */
+ letter++;
+ } else if ((temp >= ' ') && (temp <= '~')) { /* symbol means special char that enables to input from IME. */
+ symbol++;
+ }
+ }
+ SETTING_TRACE_SECURE_DEBUG("%s includes %d letters, %d digits, and %d symbols", str, letter, digit, symbol);
+ *cnt_letter = letter;
+ *cnt_digit = digit;
+ *cnt_sym = symbol;
+ return SETTING_RETURN_SUCCESS;
+}
- tapi_ret = tel_enable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_enable_cb, ad);
- setting_password_main_clear_1line_password(ad);
+void setting_password_main_click_softkey_continue_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ /* error check */
+ retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
- if(tapi_ret != TAPI_API_SUCCESS)
- {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] Failed to enable FDN. Tapi return %d", tapi_ret);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
+ SettingPasswordUG *ad = (SettingPasswordUG *) data;
- /* Success */
- if (service_create(&svc))
- return;
+ /* Save first input */
+ ad->step1_str = (char *)strdup(ad->ed_pw1->sub_desc);
+
+ /* Check step1_str : more than 4, not all digits */
+ int letter = 0;
+ int digit = 0;
+ int symbol = 0;
+ __count_string(ad->step1_str, &letter, &digit, &symbol);
+ if (safeStrLen(ad->step1_str) == digit) {
+ __add_help_of_password_fails(SETTING_PW_ERROR_INCLUDE_NO_LETTER, ad);
+ FREE(ad->step1_str);
+ return;
+ }
- service_add_extra_data(svc, "result", ad->view_type_string);
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
- service_destroy(svc);
- //ug_destroy_me(ad->ug);
- }
- else
- {
- /* check failed */
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), TRUE);
- }
- }
- break;
- case SETTING_PW_TYPE_FDN_MODE_OFF:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_FDN_MODE_OFF");
- ret = setting_password_main_check_1line_password(ad);
+ setting_password_main_clear_1line_password(ad);
+ if (ad->err_desc && ad->err_desc->item) {
+ elm_object_item_del(ad->err_desc->item);
+ ad->err_desc = NULL;
+ }
- if(ret == SETTING_RETURN_SUCCESS)
- {
- const char *entry_str;
- int tapi_ret = TAPI_API_INVALID_INPUT;
+ /* Change entry title : PW_SHORT_GUIDE_CONFIRM */
+ FREE(ad->ed_pw1->keyStr);
+ ad->ed_pw1->keyStr = (char *)strdup(PW_SHORT_GUIDE_CONFIRM);
+ elm_genlist_item_fields_update(ad->ed_pw1->item, "elm.text.main", ELM_GENLIST_ITEM_FIELD_TEXT);
- TelSimFacilityPw_t sim_sec_data = {0,};
- entry_str = ad->ed_pw1->sub_desc;
- if(isEmptyStr(entry_str))
- {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] elm_entry_entry_get(ad->ed_pw1) return NULL!");
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
- sim_sec_data.lock_type = TAPI_SIM_LOCK_FD;//TAPI_SIM_PTYPE_PIN2
- sim_sec_data.pw_len = safeStrLen(entry_str);
- sim_sec_data.pw = (unsigned char*)entry_str;
+ /* Change button */
+ if (ad->bottom_btn) {
+ elm_object_text_set(ad->bottom_btn, _("IDS_COM_SK_DONE"));
+ evas_object_smart_callback_add(ad->bottom_btn, "clicked", setting_password_main_click_softkey_done_cb, ad);
+ elm_object_disabled_set(ad->bottom_btn, EINA_TRUE);
+ }
- tapi_ret = tel_disable_sim_facility(ad->handle, &sim_sec_data, setting_sim_facility_disable_cb, ad);
- setting_password_main_clear_1line_password(ad);
+ ad->cur_step++;
+}
- if(tapi_ret != TAPI_API_SUCCESS)
- {
- ad->focus_data = ad->ed_pw1;
- SETTING_TRACE_ERROR("[ERR] Failed to disable FDN. Tapi return %d", tapi_ret);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
+void setting_password_main_click_softkey_done_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ /* error check */
+ retm_if(data == NULL, "[Setting > Password] Data parameter is NULL");
- /* Success */
- if (service_create(&svc))
- return;
+ SettingPasswordUG *ad = (SettingPasswordUG *) data;
- service_add_extra_data(svc, "result", ad->view_type_string);
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
+ if (ad->ed_pw1 && ad->ed_pw1->eo_check) {
+ elm_object_focus_set(ad->ed_pw1->eo_check, EINA_FALSE);
+ }
- service_destroy(svc);
- //ug_destroy_me(ad->ug);
- }
- else
- {
- /* check failed */
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), TRUE);
- }
- }
- break;
-#endif
- default:
- return;
+ if (ad->err_desc && ad->err_desc->item) {
+ elm_object_item_del(ad->err_desc->item);
+ ad->err_desc = NULL;
}
+
+ setting_password_main_done_password(ad);
}