#include <openssl/sha.h>
#include <setting-debug.h>
-#ifdef SUPPORT_MDM
-#include <sys/types.h>
-#include <regex.h>
-#endif
-
static int setting_password_main_create(void *cb);
static int setting_password_main_destroy(void *cb);
static int setting_password_main_update(void *cb);
.cleanup = setting_password_main_cleanup,
};
-const char *sp_titles[5] = { "IDS_ST_BODY_ENTER_PASSWORD",
- "IDS_ST_BODY_ENTER_NEW_PASSWORD",
- "IDS_ST_BODY_ENTER_PASSWORD_AGAIN",
- "IDS_ST_BODY_ENTER_CURRENT_PASSWORD",
- NULL
-};
-#define SETTING_SP_TITLE_INDEX_START 0
-#define SETTING_SP_TITLE_INDEX_MAX 3
-
#define ENTRY_CALLBACK_REPEAT_MAX 3
#define SETTING_COMPARE_PW_FAIL -2
-static void _sp_changed_cb1(void *data, Evas_Object *obj, void *event_info);
-static void _sp_changed_cb2(void *data, Evas_Object *obj, void *event_info);
-static void _sp_changed_cb3(void *data, Evas_Object *obj, void *event_info);
-static void _sp_changed_cb4(void *data, Evas_Object *obj, void *event_info);
-
-#ifdef SUPPORT_MDM
-int _count_string(const char *str, int *cnt_letter, int *cnt_digit, int *cnt_sym);
-#endif
-
/* ***************************************************
*
*basic func
SettingPasswordUG *ad = (SettingPasswordUG *) data;
switch (ad->view_type) {
- case SETTING_PW_TYPE_PASSWORD:
- case SETTING_PW_TYPE_SET_PASSWORD:
- case SETTING_PW_TYPE_CHANGE_PASSWORD:
- case SETTING_PW_TYPE_SIMPLE_PASSWORD:
- case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD:
- case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_NEW_POLICY:
- case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD:
- case SETTING_PW_TYPE_MDM_TO_SIMPLE:
-#endif
- return _("IDS_COM_BODY_AUTH_PASSWORD");
- break;
-
case SETTING_PW_TYPE_SIM_LOCK_ON:
case SETTING_PW_TYPE_SIM_LOCK_OFF:
return _("IDS_COM_BODY_AUTH_PASSWORD");
}
-static void
-_sp_back_key_up(void *data, Evas *e, Evas_Object *obj, void *event)
-{
- retm_if(data == NULL || event == NULL, "[Setting > Password] Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- ret_if(ad->sp_focused == NULL || ad->sp_entry1 == NULL || ad->sp_entry2 == NULL
- || ad->sp_entry3 == NULL || ad->sp_entry4 == NULL);
-
- Evas_Object *cur_entry = NULL;
- Evas_Object *move_to = NULL;
-
- Evas_Event_Key_Up *ev = (Evas_Event_Key_Up*)event;
-
- cur_entry = ad->sp_focused;
-
- if(cur_entry == ad->sp_entry1)
- {
- /* nothing to move. */
- return;
- }
- else if(cur_entry == ad->sp_entry2)
- {
- move_to = ad->sp_entry1;
- }
- else if(cur_entry == ad->sp_entry3)
- {
- move_to = ad->sp_entry2;
- }
- else if(cur_entry == ad->sp_entry4)
- {
- move_to = ad->sp_entry3;
- }
- else
- {
- return;
- }
-
- if(strcmp(ev->keyname, "BackSpace") == 0)
- {
- SETTING_TRACE_DEBUG("BackSpace Key Up");
- elm_object_focus_set(move_to, EINA_TRUE);
- elm_entry_entry_set(move_to, "<font_size=52 align=center>");
- elm_entry_cursor_end_set(move_to);
- ad->sp_focused = move_to;
- }
-}
-
Elm_Object_Item* __create_navibar(void *data, Evas_Object *content, Evas_Object *navibar, setting_pw_navibar_style_t style)
{
SETTING_TRACE_BEGIN;
navi_bar = setting_create_navi_bar(ad->ly_main);
retv_if(!navi_bar, SETTING_RETURN_FAIL);
-#ifdef SUPPORT_MDM
- if((ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY)
- || (ad->view_type == SETTING_PW_TYPE_MDM_CHANGE_PASSWORD))
- {
- ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN);
- }
- else if(ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE)
- {
- ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_LEFT_BTN);
- }
- else
- {
-#endif
- if( (ad->view_type == SETTING_PW_TYPE_SIMPLE_PASSWORD)
- || (ad->view_type == SETTING_PW_TYPE_SET_SIMPLE_PASSWORD)
- || (ad->view_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD))
- {
- ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_LEFT_BTN);
- }
- else
- {
- ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN);
- }
-#ifdef SUPPORT_MDM
- }
-#endif
+ ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN);
retv_if(!ad->navi_it, SETTING_RETURN_FAIL);
#else
return SETTING_RETURN_SUCCESS;
}
-static void _copy_chars_from_sp_entries(void *data, char *collection)
-{
- ret_if(data == NULL || collection == NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- if(ad->sp_entry1 == NULL || ad->sp_entry2 == NULL ||
- ad->sp_entry3 == NULL || ad->sp_entry4 == NULL)
- return;
-
- strncpy(&collection[0], elm_entry_entry_get(ad->sp_entry1), 1);
- strncpy(&collection[1], elm_entry_entry_get(ad->sp_entry2), 1);
- strncpy(&collection[2], elm_entry_entry_get(ad->sp_entry3), 1);
- strncpy(&collection[3], elm_entry_entry_get(ad->sp_entry4), 1);
-}
-
-static int _handle_step1(void *data, char *collection)
-{
- retv_if(data == NULL, SETTING_RETURN_FAIL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- int ret = 0;
- int err = 0;
-
- char svalue[SHA256_DIGEST_LENGTH];
- memset(svalue, 0x0, SHA256_DIGEST_LENGTH);
-
- _copy_chars_from_sp_entries(ad, collection);
-
- ret = setting_password_main_check_simple_password(collection);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
-
- ret = setting_password_check_password(collection, NULL, NULL);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_COMPARE_PW_FAIL;
- }
-
- int value = 0;
-
- if ( 0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_SIMPLE_PASSWORD"))
- {
- setting_get_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, &value, &err);
- SETTING_TRACE_DEBUG("get VCONF POWER_ON_LOCK : %d", value);
-
- if (value == 0)
- ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK,
- SETTING_ON_OFF_BTN_ON, &err);
- else
- ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK,
- SETTING_ON_OFF_BTN_OFF, &err);
-
- /* reset VCONF */
- setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT,
- PHONE_LOCK_ATTEMPS_MAX, &err);
- setting_retvm_if(err == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "[Error] set value of vconf fail.");
-
- /* Correct Password. Send Bundle to caller for status change */
- }
-
- service_h svc;
- if (service_create(&svc))
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
-
- service_add_extra_data(svc, "result", ad->view_type_string);
-
- if(0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE"))
- service_add_extra_data(svc, "current", collection);
-
- /* reset static variables */
- memset(collection, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
-
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
- service_destroy(svc);
- /* Send destroy request */
- ug_destroy_me(ad->ug);
-
- return SETTING_RETURN_SUCCESS;
-}
-#if DISABLED_CODE
-static int _handle_step_sp(void *data, int *step, char *collection1, char *collection2)
-{
- retv_if(data == NULL, SETTING_RETURN_FAIL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- int ret = 0;
-
- char svalue[SHA256_DIGEST_LENGTH];
- memset(svalue, 0x0, SHA256_DIGEST_LENGTH);
-
- if(ad->is_simple_password_on == 1)
- {
- SETTING_TRACE_DEBUG("case ON->OFF");
- _copy_chars_from_sp_entries(ad, collection1);
-
- ret = setting_password_main_check_simple_password(collection1);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
-
- SETTING_TRACE_DEBUG("collection_step1 : %s", collection1);
-
- ret = setting_password_check_password(collection1, NULL, NULL);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
- ad->cur_pwd = (char*)strdup(collection1);
-
- /* reset static variables */
- memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
-
- if(ad->sp_entry1 == NULL || ad->sp_entry2 == NULL || ad->sp_entry3 == NULL || ad->sp_entry4 == NULL)
- return SETTING_RETURN_FAIL;
-
- evas_object_event_callback_del(ad->sp_entry1, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry2, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry3, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry4, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
-
- evas_object_smart_callback_del(ad->sp_entry1, "changed", _sp_changed_cb1);
- evas_object_smart_callback_del(ad->sp_entry2, "changed", _sp_changed_cb2);
- evas_object_smart_callback_del(ad->sp_entry3, "changed", _sp_changed_cb3);
- evas_object_smart_callback_del(ad->sp_entry4, "changed", _sp_changed_cb4);
-
- if(ad->ly_main)
- {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
- }
- if(ad->remove_timer)
- {
- ecore_timer_del(ad->remove_timer);
- ad->remove_timer = NULL;
- }
-
-#ifdef SUPPORT_MDM
- if((ad->mdm_policy) && (ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED))
- {
- ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY;
- ad->step1_str = ad->cur_pwd;
- }
- else
- {
- ad->step1_str = NULL;
- }
-#endif
- __create_common_password_frame(ad);
- setting_password_main_draw_2line_password(ad, NULL);
- }
- else if(ad->is_simple_password_on == 0)
- {
- SETTING_TRACE_DEBUG("case OFF->ON");
- if(*step == 0) /* Enter new password */
- {
- _copy_chars_from_sp_entries(ad, collection1);
-
- ret = setting_password_main_check_simple_password(collection1);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 1);
- return SETTING_RETURN_FAIL;
- }
- (*step)++;
- setting_password_main_draw_next_simple_password(ad, 2);
- }
- else if(*step == 1) /* Enter password again */
- {
- _copy_chars_from_sp_entries(ad, collection2);
-
- ret = setting_password_main_check_simple_password(collection2);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
-
- SETTING_TRACE_DEBUG("collection_step1 : %s", collection1);
- SETTING_TRACE_DEBUG("collection_step2 : %s", collection2);
-
- /* compare two input passwords : collection_step1, collection_step2 */
- if(safeStrNCmp(collection1, collection2, 4) == 0)
- {
- ret = setting_password_set_password(ad->cur_pwd, collection1, ad);
- FREE(ad->cur_pwd);
-
- /* Modify Setting Password */
- if (SETTING_RETURN_SUCCESS == ret) {
- SETTING_TRACE_DEBUG("success to save new password");
-
- /* set vconfkey ON : if fail, try one more time. */
- if(vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, 1) < 0)
- return SETTING_RETURN_FAIL;
- else
- SETTING_TRACE_DEBUG("set vconfkey : simple password is ON");
-
- /* Display popup */
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE);
-
- *step = 0;
- /* reset static variables */
- memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
- memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
-
- /* Correct Password. Send Bundle to caller for status change */
- service_h svc;
- if (service_create(&svc))
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
-
- 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);
- /* Send destroy request */
- ug_destroy_me(ad->ug);
- }
- else
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
- }
- else
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
- }
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-#endif
-
-static int _handle_step2(void *data, int *step, char *collection1, char*collection2)
-{
- retv_if(data == NULL, SETTING_RETURN_FAIL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- int ret = 0;
-
- if(*step == 0) /* Enter new password */
- {
- _copy_chars_from_sp_entries(ad, collection1);
-
- ret = setting_password_main_check_simple_password(collection1);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 1);
- return SETTING_RETURN_FAIL;
- }
- (*step)++;
- setting_password_main_draw_next_simple_password(ad, 2);
- }
- else if(*step == 1) /* Enter password again */
- {
- _copy_chars_from_sp_entries(ad, collection2);
-
- ret = setting_password_main_check_simple_password(collection2);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
-
- /* compare two input passwords : collection_step1, collection_step2 */
- if(safeStrNCmp(collection1, collection2, 4) == 0)
- {
-#ifdef SUPPORT_MDM
- if((ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE) && (ad->step1_str))
- {
- ret = setting_password_set_password(ad->step1_str, collection1, ad);
- }
- else
-#endif
- ret = setting_password_set_password(ad->cur_pwd, collection1, ad);
-
- if (SETTING_RETURN_SUCCESS == ret)
- {
-#ifdef SUPPORT_MDM
- FREE(ad->step1_str);
-#endif
-
- if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD"))
- {
- int err;
- int ret;
-
- ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK,
- SETTING_ON_OFF_BTN_ON, &err);
- retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey failed.");
- }
-#ifdef SUPPORT_MDM
- else if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_MDM_CHANGE_PASSWORD"))
- {
- int err;
- int ret;
-
- ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK,
- SETTING_ON_OFF_BTN_ON, &err);
- retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey(phonelock) failed.");
-
- ret = vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, TRUE);
- retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey(simplepassword) failed.");
-
- mdm_set_password_status(MDM_PASSWORD_CHANGED);
- }
-#endif
-
- service_h svc;
- if (service_create(&svc))
- return SETTING_RETURN_FAIL;
-
- service_add_extra_data(svc, "result", ad->view_type_string);
- service_add_extra_data(svc, "current", collection1);
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", ad->view_type_string);
-
- service_destroy(svc);
-
- if(safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET"))
- /* Display popup */
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE);
- /* Send destroy request */
- ug_destroy_me(ad->ug);
- }
- else
- {
-#ifdef SUPPORT_MDM
- if(ad->notify)
- {
- evas_object_del(ad->notify);
- ad->notify = NULL;
- }
-#endif
- setting_password_main_draw_simple_password(ad, 1);
- }
-
- *step = 0;
- /* reset static variables */
- memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
- memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
- }
- else
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
- }
- return SETTING_RETURN_SUCCESS;
-}
-
-static int _handle_step3(void *data, int *step, char *collection1, char *collection2, char *collection3)
-{
- retv_if(data == NULL, SETTING_RETURN_FAIL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
- int ret = 0;
- int err = 0;
-
- char svalue[SHA256_DIGEST_LENGTH];
- memset(svalue, 0x0, SHA256_DIGEST_LENGTH);
-
- if(*step == 0) /* Enter current password */
- {
- _copy_chars_from_sp_entries(ad, collection1);
-
- ret = setting_password_main_check_simple_password(collection1);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
-
- ret = setting_password_check_password(collection1, NULL, NULL);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- setting_password_main_draw_simple_password(ad, 3);
- return SETTING_RETURN_FAIL;
- }
- (*step)++;
- setting_password_main_draw_next_simple_password(ad, 1);
- }
- else if(*step == 1) /* Enter new password */
- {
- _copy_chars_from_sp_entries(ad, collection2);
-
- ret = setting_password_main_check_simple_password(collection2);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 1);
- return SETTING_RETURN_FAIL;
- }
-
- (*step)++;
- setting_password_main_draw_next_simple_password(ad, 2);
- }
- else if(*step == 2) /* Enter password again */
- {
- _copy_chars_from_sp_entries(ad, collection3);
-
- ret = setting_password_main_check_simple_password(collection3);
- if(ret < 0)
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
-
- /* compare two input passwords : collection_step1, collection_step2 */
- if(safeStrNCmp(collection2, collection3, 4) == 0)
- {
- ret = setting_password_set_password(collection1, collection2, ad);
- /* Modify Setting Password */
- if (SETTING_RETURN_FAIL != ret) {
- /* Display popup */
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_PASSWORD_CHANGED"), TRUE);
- } else {
- /* Error Msg */
- SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s",
- SETTING_FONT_RED, err, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_COM_POP_ERROR"), FALSE);
- }
- }
- else
- {
- setting_password_main_draw_simple_password(ad, 2);
- return SETTING_RETURN_FAIL;
- }
- *step = 0;
- /* reset static variables */
- memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
- memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
- memset(collection3, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1);
-
- /* Send destroy request */
- ug_destroy_me(ad->ug);
- }
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_password_main_done_simple_password(void *data, int on_locking)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, SETTING_RETURN_FAIL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- static int step = 0;
-
- static char collection_step1[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,};
- static char collection_step2[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,};
- static char collection_step3[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,};
-
- switch(ad->view_type)
- {
- case SETTING_PW_TYPE_SIMPLE_PASSWORD:
- SETTING_TRACE_DEBUG("case SIMPLE_PASSWORD");
- return _handle_step1(ad, collection_step1);
- break;
- case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_TO_SIMPLE:
-#endif
- SETTING_TRACE_DEBUG("case SET_SIMPLE_PASSWORD");
- return _handle_step2(ad, &step, collection_step1, collection_step2);
- break;
- case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD:
- SETTING_TRACE_DEBUG("case CHANGE_SIMPLE_PASSWORD");
- return _handle_step3(ad, &step, collection_step1, collection_step2, collection_step3);
- break;
- default:
- break;
- }
- return SETTING_RETURN_SUCCESS;
-}
-
-static void _sp_changed_cb1(void *data, Evas_Object *obj, void *event_info)
-{
- ret_if(data == NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if((ad->sp_entry1 == NULL) || (ad->sp_entry1 != obj) || (ad->sp_entry2 == NULL))
- return;
-
- if(!elm_entry_is_empty(ad->sp_entry1) && elm_entry_is_empty(ad->sp_entry2))
- {
- SETTING_TRACE_DEBUG("entry1 : %s", elm_entry_entry_get(ad->sp_entry1));
- if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry1), "<font_size=52 align=center>", safeStrLen("<font_size=52 align=center>")) == 0)
- return;
- /* focus on next entry */
- elm_object_focus_set(ad->sp_entry2, EINA_TRUE);
- elm_entry_entry_set(ad->sp_entry2, "<font_size=52 align=center>");
- elm_entry_cursor_end_set(ad->sp_entry2);
- ad->sp_focused = ad->sp_entry2;
- }
-}
-
-static void _sp_changed_cb2(void *data, Evas_Object *obj, void *event_info)
-{
- ret_if(data == NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if((ad->sp_entry2 == NULL) || (ad->sp_entry2 != obj) || (ad->sp_entry3 == NULL))
- return;
-
- if(!elm_entry_is_empty(ad->sp_entry2) && elm_entry_is_empty(ad->sp_entry3))
- {
- SETTING_TRACE_DEBUG("entry2 : %s", elm_entry_entry_get(ad->sp_entry2));
- if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry2), "<font_size=52 align=center>", safeStrLen("<font_size=52 align=center>")) == 0)
- return;
- /* focus on next entry */
- elm_object_focus_set(ad->sp_entry3, EINA_TRUE);
- elm_entry_entry_set(ad->sp_entry3, "<font_size=52 align=center>");
- elm_entry_cursor_end_set(ad->sp_entry3);
- ad->sp_focused = ad->sp_entry3;
- }
-}
-
-static void _sp_changed_cb3(void *data, Evas_Object *obj, void *event_info)
-{
- ret_if(data == NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if((ad->sp_entry3 == NULL) || (ad->sp_entry3 != obj) || (ad->sp_entry4 == NULL))
- return;
-
- if(!elm_entry_is_empty(ad->sp_entry3) && elm_entry_is_empty(ad->sp_entry4))
- {
- SETTING_TRACE_DEBUG("entry3 : %s", elm_entry_entry_get(ad->sp_entry3));
- if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry3), "<font_size=52 align=center>", safeStrLen("<font_size=52 align=center>")) == 0)
- return;
- /* focus on next entry */
- elm_object_focus_set(ad->sp_entry4, EINA_TRUE);
- elm_entry_entry_set(ad->sp_entry4, "<font_size=52 align=center>");
- elm_entry_cursor_end_set(ad->sp_entry4);
- ad->sp_focused = ad->sp_entry4;
- }
-}
-
-static void _sp_changed_cb4(void *data, Evas_Object *obj, void *event_info)
-{
- ret_if(data == NULL);
-
- static int counter = 0;
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if((ad->sp_entry4 == NULL) || (ad->sp_entry4 != obj))
- return;
- if((ad->sp_entry1 == NULL) || (ad->sp_entry2 == NULL) || (ad->sp_entry3 == NULL))
- return;
-
- if(strcmp(elm_entry_entry_get(ad->sp_entry4), "") == 0)
- {
- SETTING_TRACE_DEBUG("this is align text");
- return;
- }
- if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry4), "<font_size=52 align=center>", safeStrLen("<font_size=52 align=center>")) == 0)
- return;
-
- SETTING_TRACE_DEBUG("entry4 : %s", elm_entry_entry_get(ad->sp_entry4));
- /* add this below for removing IMF faster */
- /* need to discuss with IMF or Entry developer more */
- elm_object_focus_set(ad->sp_entry4, EINA_FALSE);
- /* end */
- counter++;
-
- if(counter == ENTRY_CALLBACK_REPEAT_MAX)
- {
- int ret = 0;
-
- ret = setting_password_main_done_simple_password(ad, TRUE);
-
- if(ret == SETTING_RETURN_FAIL)
- {
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_INCORRECT_PASSWORD_TRY_AGAIN"), FALSE);
- }
- else if(ret == SETTING_COMPARE_PW_FAIL)
- {
- if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET")
- || 0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE"))
- {
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_INCORRECT_PASSWORD"), FALSE);
- return;
- }
-
- /** @todo setting_password_ug_check_attemps_left */
- setting_int_slp_list item_attempts_left;
- setting_str_slp_list item_lock_timestamp;
- int attemps_left_max = 5;
-
- item_attempts_left = INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT;
- item_lock_timestamp = STR_SLP_SETTING_PHONE_LOCK_TIMESTAMP;
- attemps_left_max = PHONE_LOCK_ATTEMPS_MAX;
-
- int value = -1;
- int err = SETTING_RETURN_SUCCESS;
- setting_get_int_slp_key(item_attempts_left, &value, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] get value of vconf fail.");
-
- value--;
-
- if (value > 0 && value <= attemps_left_max) {
- setting_set_int_slp_key(item_attempts_left, value, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail.");
-
- char speciliztion[MAX_SPECIALIZITION_LEN] = { 0, };
- char temp[MAX_SPECIALIZITION_LEN] = {0,};
-
- if(value > 1)
- snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPTS_DESC);
- else
- snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPT_DESC);
-
- snprintf(speciliztion, sizeof(speciliztion), temp, value);
- setting_password_ug_display_desc(ad, speciliztion, FALSE);
- } else if (value == 0) {
- /* store the lock timestamp */
- elm_object_focus_set(ad->sp_entry1, EINA_FALSE);
- time_t cur_time = time(NULL);
- char cur_timestamp[LOCK_TIMESTAMP_LEN] = { 0, };
- int ret = snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time);
- ret_if(ret < 0);
-
- setting_set_string_slp_key(item_lock_timestamp, cur_timestamp, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL,
- "[Error] set value of vconf fail.");
-
- setting_set_int_slp_key(item_attempts_left, value, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL,
- "[Error] set value of vconf fail.");
-
- ad->disable_item_type = ad->view_type;
-
- char temp[MAX_SPECIALIZITION_LEN] = {0,};
- snprintf(temp, sizeof(temp), PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME);
- setting_password_ug_create_popup_notitle_nobtn(ad, temp, TRUE);
- }
- }
- else
- {
- /* if you have more cases, modify here. */
- }
- counter = 0;
- }
- return;
-}
-
-static char *__gl_sp_text_get(void *data, Evas_Object *obj, const char *part)
-{
- retv_if(data == NULL, NULL);
- SettingPasswordUG *ad = (SettingPasswordUG*)data;
-
- SETTING_TRACE_DEBUG("[sp_label_get] label intex, %d", ad->sp_title_index);
-
- if(ad->sp_title_index < SETTING_SP_TITLE_INDEX_START || ad->sp_title_index > SETTING_SP_TITLE_INDEX_MAX)
- {
- SETTING_TRACE_DEBUG("title index is invalid");
- return NULL;
- }
- else
- {
- return strdup(_(sp_titles[ad->sp_title_index]));
- }
-}
-
-static Evas_Object* __gl_sp_content_get(void *data, Evas_Object *obj, const char *part)
-{
- retv_if(data == NULL, NULL);
- SettingPasswordUG *ad = (SettingPasswordUG*)data;
-
- Evas_Object *entry = NULL;
-
- static Elm_Entry_Filter_Limit_Size limit_filter_data;
- limit_filter_data.max_byte_count = 0;
- limit_filter_data.max_char_count = 1;
-
- entry = elm_entry_add(obj);
- elm_entry_password_set(entry, EINA_TRUE);
- elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
- elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
- elm_entry_entry_set(entry, "<font_size=52 align=center>");
- evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_UP, _sp_back_key_up, ad);
-
- elm_config_password_show_last_set(EINA_TRUE);
- elm_config_password_show_last_timeout_set(0.1);
-
- if(safeStrCmp("elm.icon.1", part) == 0)
- {
- SETTING_TRACE_DEBUG("create entry1");
- evas_object_smart_callback_add(entry, "changed", _sp_changed_cb1, ad);
- ad->sp_entry1 = entry;
- }
- else if(safeStrCmp("elm.icon.2", part) == 0)
- {
- SETTING_TRACE_DEBUG("create entry2");
- evas_object_smart_callback_add(entry, "changed", _sp_changed_cb2, ad);
- ad->sp_entry2 = entry;
- }
- else if(safeStrCmp("elm.icon.3", part) == 0)
- {
- SETTING_TRACE_DEBUG("create entry3");
- evas_object_smart_callback_add(entry, "changed", _sp_changed_cb3, ad);
- ad->sp_entry3 = entry;
- }
- else if(safeStrCmp("elm.icon.4", part) == 0)
- {
- SETTING_TRACE_DEBUG("create entry4");
- evas_object_smart_callback_add(entry, "changed", _sp_changed_cb4, ad);
- ad->sp_entry4 = entry;
- }
-
- return entry;
-}
-
static int
setting_password_main_create(void *cb)
{
SettingPasswordUG *ad = (SettingPasswordUG *) cb;
int ret = 0;
- ad->itc_sp_bg_1icon.item_style = "dialogue/1text.4icon";
- ad->itc_sp_bg_1icon.func.text_get = __gl_sp_text_get;
- ad->itc_sp_bg_1icon.func.content_get = __gl_sp_content_get;
- ad->itc_sp_bg_1icon.func.state_get = NULL;
- ad->itc_sp_bg_1icon.func.del = NULL;
-
ret = __create_common_password_frame(ad);
if(ret < 0)
ecore_timer_del(ad->remove_timer);
ad->remove_timer = NULL;
}
-#ifdef SUPPORT_MDM
- if(ad->set_history_timer)
- {
- ecore_timer_del(ad->set_history_timer);
- ad->set_history_timer = NULL;
- }
-#endif
- if( (ad->view_type == SETTING_PW_TYPE_SIMPLE_PASSWORD)
- || (ad->view_type == SETTING_PW_TYPE_SET_SIMPLE_PASSWORD)
- || (ad->view_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD))
- {
- evas_object_event_callback_del(ad->sp_entry1, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry2, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry3, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- evas_object_event_callback_del(ad->sp_entry4, EVAS_CALLBACK_KEY_UP, _sp_back_key_up);
- }
-#ifdef SUPPORT_MDM
- if(ad->step1_str)
- FREE(ad->step1_str);
-#endif
- if(ad->cur_pwd)
- FREE(ad->cur_pwd);
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
SETTING_TRACE_DEBUG("ad->view_type=%d ***", ad->view_type);
switch (ad->view_type) {
- case SETTING_PW_TYPE_PASSWORD:
case SETTING_PW_TYPE_SIM_LOCK_OFF:
case SETTING_PW_TYPE_PIN_LOCK_ON:
case SETTING_PW_TYPE_PIN_LOCK_OFF:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD:
-#endif
setting_password_main_draw_1line_password(ad, NULL);
break;
case SETTING_PW_TYPE_SIM_LOCK_ON:
- case SETTING_PW_TYPE_SET_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_NEW_POLICY:
-#endif
setting_password_main_draw_2line_password(ad, NULL);
break;
- case SETTING_PW_TYPE_CHANGE_PASSWORD:
case SETTING_PW_TYPE_CHANGE_PIN1:
case SETTING_PW_TYPE_CHANGE_PIN2:
case SETTING_PW_TYPE_PIN1_BLOCKED:
setting_password_main_draw_3line_password(ad, NULL);
break;
- case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_TO_SIMPLE:
-#endif
- setting_password_main_draw_simple_password(ad, 1);
-
- break;
-
- case SETTING_PW_TYPE_SIMPLE_PASSWORD:
- case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD:
- setting_password_main_draw_simple_password(ad, 3);
- break;
-
default:
SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s",
SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
}
-static Eina_Bool __focus_sp_on_idler(void *data)
-{
- /* error check */
- retv_if(data == NULL, FALSE);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- if(ad->sp_entry1)
- {
- elm_object_focus_set(ad->sp_entry1, EINA_TRUE);
- ad->sp_focused = ad->sp_entry1;
- }
-
- return ECORE_CALLBACK_CANCEL;
-}
-
static Eina_Bool __focus_on_idler(void *data)
{
/* error check */
{
/* no matter how many edifileds, it only need focus on 1st editfiled */
elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE);
- }
- }
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-
-static int setting_password_main_draw_next_simple_password(void *data, int title_index)
-{
- /* error check */
- retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER,
- "[Setting > Password] Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- setting_password_main_draw_simple_password(ad, title_index);
-
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_password_main_draw_simple_password(void *data, int title_index)
-{
- /* 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_SIMPLE_PASSWORD:
- case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD:
- case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_TO_SIMPLE:
-#endif
- ad->sp_title_index = title_index;
-
- if(ad->sp_item != NULL)
- {
- elm_genlist_item_update(ad->sp_item);
- }
- else
- {
- elm_genlist_clear(ad->scroller);
- ad->sp_item = elm_genlist_item_append(ad->scroller, &(ad->itc_sp_bg_1icon), ad, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- }
-#ifdef SUPPORT_MDM
- if(ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE)
- {
- if(ad->is_expired == SETTING_PW_STATUS_EXPIRED)
- setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED);
- else
- setting_password_ug_display_mdm_desc(ad, NEW_PASSWORD_NECESSARY);
- }
-#endif
-
- ecore_idler_add(__focus_sp_on_idler, ad);
- default:
- break;
+ }
}
- return 0;
+
+ return ECORE_CALLBACK_CANCEL;
}
static int setting_password_main_draw_1line_password(void *data, void *cb)
SettingPasswordUG *ad = (SettingPasswordUG *) data;
switch (ad->view_type) {
- case SETTING_PW_TYPE_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD:
-#endif
- ad->ed_pw1 =
- setting_create_Gendial_field_entry(ad->scroller,
- &
- (ad->itc_variable_height),
- NULL, ad,
- SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0,
- "IDS_COM_BODY_PASSWORD",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NORMAL,
- TRUE, TRUE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, NULL);
- break;
- case SETTING_PW_TYPE_SIM_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_SIM_PASSWORD",
- NULL,
- setting_password_main_entry_changed_cb,
- ELM_INPUT_PANEL_LAYOUT_NUMBERONLY,
- TRUE, TRUE,
- SETTING_PW_UG_SIM_MAX_LENGTH,
- 0, "0123456789", NULL);
- break;
-
case SETTING_PW_TYPE_PIN_LOCK_ON:
case SETTING_PW_TYPE_PIN_LOCK_OFF:
ad->ed_pw1 =
SettingPasswordUG *ad = (SettingPasswordUG *) data;
switch (ad->view_type) {
- case SETTING_PW_TYPE_SET_PASSWORD:
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_NEW_POLICY:
-#endif
- 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_NORMAL,
- TRUE, TRUE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, 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_NORMAL,
- TRUE, FALSE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, NULL);
-#ifdef SUPPORT_MDM
- if(ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY)
- {
- if(ad->is_expired == SETTING_PW_STATUS_EXPIRED)
- {
- setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED);
- }
- else
- {
- setting_password_ug_display_mdm_desc(ad, NEW_PASSWORD_NECESSARY);
- }
- }
-
-#endif
- break;
-
case SETTING_PW_TYPE_SIM_LOCK_ON:
ad->ed_pw1 =
setting_create_Gendial_field_entry(ad->scroller,
"[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_PASSWORD:
- 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_CURRENT_PASSWORD",
- NULL,
- setting_password_main_entry_changed_cb,
- ime_style,
- TRUE, TRUE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, 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_PASSWORD",
- NULL,
- setting_password_main_entry_changed_cb,
- ime_style,
- TRUE, FALSE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, 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_PASSWORD",
- NULL,
- setting_password_main_entry_changed_cb,
- ime_style,
- TRUE, FALSE,
- SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH,
- 0, NULL, NULL);
-#ifdef SUPPORT_MDM
- if(ad->mdm_data != NULL)
- {
- ad->mdm_policy = (mdm_password_policy_t*)(ad->mdm_data->data);
-
- if(ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED)
- elm_genlist_item_append(ad->scroller, &(ad->itc_mdm_desc), ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- }
-#endif
- break;
-
case SETTING_PW_TYPE_CHANGE_PIN1:
ad->ed_pw1 =
setting_create_Gendial_field_entry(ad->scroller,
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"));
- return 0;
-}
-
-static int setting_password_main_check_simple_password(const char *collection)
-{
- retv_if(collection == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- int sp_len = safeStrLen(collection);
- int index = 0;
- char temp;
-
- SETTING_TRACE_DEBUG("collection length is %d", sp_len);
-
- if(sp_len != 4)
- return SETTING_RETURN_FAIL;
-
- /* check if digit. */
- for(index = 0; index < sp_len; index++)
- {
- temp = (char)(collection[index]);
- if((temp < '0') || ( temp > '9'))
- return SETTING_RETURN_FAIL;
- else
- SETTING_TRACE_DEBUG("temp %c", temp);
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_password_main_check_1line_password(void *data)
-{
- /* error check */
- retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- const char *entry_str = ad->ed_pw1->sub_desc;
- ad->focus_data = ad->ed_pw1;
-
- /* Empty Check */
- if (isEmptyStr(entry_str)) {
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_BODY_PASSWORD_EMPTY"),
- FALSE);
-#else
- setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-
-#endif
- return SETTING_ENTRY_RETURN_NULL_STR_ERR;
- }
-
- /* Length Check */
- int entry_str_len = safeStrLen(entry_str);
- switch (ad->view_type) {
- case SETTING_PW_TYPE_PASSWORD:
- {
- 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;
- }
-#ifdef SUPPORT_MDM
- int letter = 0;
- int digit = 0;
- int symbol = 0;
-
- if( _count_string(entry_str, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS)
- {
- if(letter < 1)
- return SETTING_PW_ERROR_INCLUDE_NO_LETTER;
- }
-#endif
- }
- break;
- 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;
- }
- return SETTING_RETURN_SUCCESS;
-}
-
-#ifdef SUPPORT_MDM
-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);
-
- int length = strlen(str);
- int index = 0;
- char temp = 0;
- int letter = 0;
- int digit = 0;
- int symbol = 0;
-
- if(length <= 0)
- {
- SETTING_TRACE_DEBUG("[DEBUG] invalid input length");
- return SETTING_RETURN_FAIL;
- }
-
- for(index = 0; index < length; index++)
- {
- temp = (char)(str[index]);
- SETTING_TRACE_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_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;
-}
-
-int _check_min_length(int str_length, int min_length)
-{
- /* if min_length is 0~3, it operates the same as 4. */
- if((min_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH)
- && (str_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH))
- {
- return SETTING_RETURN_FAIL;
- }
- else if(min_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH)
- {
- /* do nothing */
- }
- else if((min_length > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH)
- || (str_length > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH))
- {
- return SETTING_RETURN_FAIL;
- }
- else if(min_length > str_length)
- {
- return SETTING_RETURN_FAIL;
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-
-int _check_min_complex(int min_complex, int digit, int symbol)
-{
- switch(min_complex)
- {
- case 0:
- case 1:
- if(digit < 1)
- {
- SETTING_TRACE_DEBUG("[ERROR] should include 1 digit at list.");
- return SETTING_RETURN_FAIL;
- }
- break;
- case 2:
- if((digit < 1) || (symbol < 1))
- {
- SETTING_TRACE_DEBUG("[ERROR] should include 1 digit and 1 symbol at list.");
- return SETTING_RETURN_FAIL;
- }
- break;
- case 3:
- if((digit >= 1) && (symbol >= 2))
- {
- /* do nothing */
- }
- else if((digit >= 2) && (symbol >= 1))
- {
- /* do nothing */
- }
- else
- {
- SETTING_TRACE_DEBUG("[ERROR] digits or symbols are not enough.");
- return SETTING_RETURN_FAIL;
- }
- break;
- case 4:
- if((digit >= 1) && (symbol >= 3))
- {
- /* do nothing */
- }
- else if((digit >= 3) && (symbol >= 1))
- {
- /* do nothing */
- }
- else if((digit >= 2) && (symbol >= 2))
- {
- /* do nothing */
- }
- else
- {
- SETTING_TRACE_DEBUG("[ERROR] digits or symbols are not enough.");
- return SETTING_RETURN_FAIL;
- }
- break;
- default:
- SETTING_TRACE_DEBUG("unknown value of min_complex, %d", min_complex);
- }
- return SETTING_RETURN_SUCCESS;
-}
-
-int _is_numeric(const char *str)
-{
- SETTING_TRACE_BEGIN;
- int length = strlen(str);
- int index = 0;
- char temp = 0;
-
- if(length <= 0)
- {
- SETTING_TRACE_DEBUG("[DEBUG] invalid input length");
- return SETTING_RETURN_FAIL;
- }
- for(index = 0; index < length; index++)
- {
- temp = (char)(str[index]);
- if((temp < '0') || ( temp > '9'))
- {
- SETTING_TRACE_DEBUG("[DEBUG] %c is not a digit", temp);
- return SETTING_RETURN_FAIL;
- }
- else
- SETTING_TRACE_DEBUG("temp %c", temp);
- }
- return SETTING_RETURN_SUCCESS;
+ elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+ return 0;
}
-static int setting_password_main_match_with_mdm_policy(const char* input, mdm_password_policy_t *policy)
+static int setting_password_main_check_1line_password(void *data)
{
- retv_if(input == NULL || policy == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- int letter = 0;
- int digit = 0;
- int symbol = 0;
- int length = strlen(input);
- int ret = 0;
+ /* error check */
+ retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
- if(_count_string(input, &letter, &digit, &symbol) != SETTING_RETURN_SUCCESS)
- return SETTING_RETURN_FAIL;
+ SettingPasswordUG *ad = (SettingPasswordUG *) data;
- if(letter < 1) /* should include 1 letter at least. */
- return SETTING_PW_ERROR_INCLUDE_NO_LETTER;
+ const char *entry_str = ad->ed_pw1->sub_desc;
+ ad->focus_data = ad->ed_pw1;
- ret = _check_min_length(length, policy->min_length);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- SETTING_TRACE_DEBUG("[ERROR] _check_min_length(): invalid return %d", ret);
- return SETTING_PW_ERROR_INVALID_LENGTH;
- }
+ /* Empty Check */
+ if (isEmptyStr(entry_str)) {
+ setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
- if(policy->quality == MDM_PASSWORD_QUALITY_ALPHANUMERIC)
- {
- ret = _check_min_complex(policy->min_complex, digit, symbol);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- SETTING_TRACE_DEBUG("[ERROR] _check_min_complex(): invalid return %d", ret);
- return SETTING_PW_ERROR_NO_MATCH_MIN_COMPLEX;
- }
+ return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
- // check pattern
- int cflags = REG_EXTENDED;
- int eflags = 0;
- int match_len = 0;
- regex_t reg;
- regmatch_t pmatch;
-
- if((policy->pattern != NULL) && (strlen(policy->pattern) > 0))
- {
- ret = regcomp(®, policy->pattern, cflags);
- if(ret != 0)
- {
- SETTING_TRACE_DEBUG("[DEBUG] fail to compile pattern");
- return SETTING_RETURN_FAIL;
- }
- ret = regexec(®, policy->pattern, 1, &pmatch, eflags);
- if(ret != 0)
+ /* 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:
{
- SETTING_TRACE_DEBUG("[DEBUG] input does not match with pattern");
- return SETTING_RETURN_FAIL;
+ 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;
+ }
}
- match_len = pmatch.rm_eo - pmatch.rm_so;
- if((pmatch.rm_so != 0) || (match_len != strlen(policy->pattern)))
+ break;
+ case SETTING_PW_TYPE_SIM_LOCK_OFF:
{
- SETTING_TRACE_DEBUG("[DEBUG] input does not match with pattern");
- return SETTING_RETURN_FAIL;
+ 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;
+ }
}
- regfree(®);
+ default:
+ break;
}
-
- // 3. no need to check max_num_wipe, expire time, and history count
-
return SETTING_RETURN_SUCCESS;
}
-#endif
static int setting_password_main_check_2line_password(void *data)
{
/* Empty Check */
if (isEmptyStr(entry_str1)) {
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#endif
+
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
if (isEmptyStr(entry_str2)) {
ad->focus_data = ad->ed_pw2;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#endif
+
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
/* Length Check */
int entry_str_len = safeStrLen(entry_str1);
switch (ad->view_type) {
- case SETTING_PW_TYPE_SET_PASSWORD:
- {
- 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;
- }
- }
- break;
-
case SETTING_PW_TYPE_SIM_LOCK_ON:
{
if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH
/* Match Check */
if (0 != safeStrCmp(entry_str1, entry_str2)) {
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-#endif
- return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
- }
-
-#ifdef SUPPORT_MDM
- if(ad->view_type == SETTING_PW_TYPE_SET_PASSWORD)
- {
- int letter = 0;
- int digit = 0;
- int symbol = 0;
- if( _count_string(entry_str1, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS)
- {
- if(letter < 1)
- return SETTING_PW_ERROR_INCLUDE_NO_LETTER;
- }
+ return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
}
-#endif
-#ifdef SUPPORT_MDM
- if(ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY)
- {
- int ret = 0;
- ret = setting_password_main_match_with_mdm_policy(entry_str1, ad->mdm_policy);
- if(ret == SETTING_RETURN_FAIL)
- return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
- }
-#endif
return SETTING_RETURN_SUCCESS;
}
snprintf(str, MAX_SPECIALIZITION_LEN, "%d~%d %s", min, max, _("characters required"));
- /* SETTING_TRACE("str:%s", str); */
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, str, FALSE);
-#else
setting_password_ug_display_desc(ad, str, FALSE);
-#endif
+
}
static int setting_password_main_check_3line_password(void *data)
/* Empty Check */
if (isEmptyStr(entry_str1)) {
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#endif
+
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
if (isEmptyStr(entry_str2)) {
ad->focus_data = ad->ed_pw2;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#endif
+
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
if (isEmptyStr(entry_str3)) {
ad->focus_data = ad->ed_pw3;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE);
-#endif
+
return SETTING_ENTRY_RETURN_NULL_STR_ERR;
}
int entry_str2_len = safeStrLen(entry_str2);
int entry_str3_len = safeStrLen(entry_str3);
switch (ad->view_type) {
- case SETTING_PW_TYPE_CHANGE_PASSWORD:
- {
- if (entry_str1_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH
- || entry_str1_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;
- }
- if (entry_str2_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH
- || entry_str2_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) {
- ad->focus_data = ad->ed_pw2;
- 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;
- }
- if (entry_str3_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH
- || entry_str3_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) {
- ad->focus_data = ad->ed_pw3;
- 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;
- }
- }
- break;
-
case SETTING_PW_TYPE_PIN1_BLOCKED:
case SETTING_PW_TYPE_PIN2_BLOCKED:
case SETTING_PW_TYPE_CHANGE_PIN1:
/* Match Check */
if (0 != safeStrCmp(entry_str2, entry_str3)) {
ad->focus_data = ad->ed_pw2;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-#else
setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE);
-#endif
- return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
- }
-
-#ifdef SUPPORT_MDM
- if(ad->view_type == SETTING_PW_TYPE_CHANGE_PASSWORD)
- {
- int letter = 0;
- int digit = 0;
- int symbol = 0;
- if( _count_string(entry_str2, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS)
- {
- if(letter < 1)
- return SETTING_PW_ERROR_INCLUDE_NO_LETTER;
- }
+ return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW;
}
-#endif
return SETTING_RETURN_SUCCESS;
}
SettingPasswordUG *ad = (SettingPasswordUG *) data;
- if(ad->sp_entry4)
- {
- /* add this below for removing IMF faster */
- /* need to discuss with IMF or Entry developer more */
- elm_object_focus_set(ad->sp_entry4, EINA_FALSE);
- /* end */
- }
-
/* send result : Cancel */
service_h svc;
if(service_create(&svc))
SETTING_TRACE("ad->view_type:%d", ad->view_type);
switch (ad->view_type) {
- case SETTING_PW_TYPE_PASSWORD:
- ret = setting_password_main_check_1line_password(ad);
-
- if (ret == SETTING_RETURN_SUCCESS) {
- const char *entry_str;
- entry_str = ad->ed_pw1->sub_desc;
-
- ret = setting_password_check_password(entry_str, NULL, NULL);
- 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);
- setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail.");
- }
- else if(0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE"))
- {
- service_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;
- if (safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD") == 0) {
- setting_password_ug_check_attemps_left(ad);
- return;
- }
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_COM_POP_INCORRECT_PASSWORD"), FALSE);
-#else
- setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
-#endif
- if(safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET") == 0)
- {
- service_add_extra_data(svc, "result", "Fail");
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", "Fail");
-
- service_destroy(svc);
- /* Send destroy request */
- ug_destroy_me(ad->ug);
- }
- return;
- }
- } else {
- setting_password_main_clear_1line_password(ad);
- return;
- }
- break;
-
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_NEW_POLICY:
- SETTING_TRACE("case SETTING_PW_TYPE_MDM_NEW_POLICY");
- ret = setting_password_main_check_2line_password(ad);
-
- 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_DEBUG("%s*** [ERR] elm_entry_entry_get return NULL ***%s",
- SETTING_FONT_RED, SETTING_FONT_BLACK);
- return;
- }
-
- if(ad->step1_str)
- ret = setting_password_set_password(ad->step1_str, entry_str, ad);
- else
- ret = setting_password_set_password(NULL, entry_str, ad);
-
- if(ret == SETTING_RETURN_SUCCESS)
- {
- FREE(ad->step1_str);
-
- SETTING_TRACE_DEBUG("[DEBUG] success to set password");
-
- /* To Do : 1. phone lock on */
- /* 2. if quality is something, simple password on.*/
- /* 3. else, simple password off */
- setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK,
- SETTING_ON_OFF_BTN_ON, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail.");
-
- setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT,
- ad->mdm_policy->max_num_wipe, &err);
- setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail.");
-
- vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, FALSE);
-
- /* End */
-
- SETTING_TRACE_DEBUG("[DEBUG] send status to mdm");
- mdm_set_password_status(MDM_PASSWORD_CHANGED);
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE);
- }
- else if(ret == SECURITY_SERVER_API_ERROR_PASSWORD_REUSED)
- {
- setting_password_ug_display_mdm_desc(ad, PASSWORD_MUST_NOT_MATCH_PREV);
- return;
- }
- else
- {
- setting_password_ug_display_mdm_desc(ad, ENTER_ANOTHER_PASSWORD);
- setting_password_main_clear_2line_password(ad);
- return;
- }
- }
- else
- {
- setting_password_ug_display_mdm_desc(ad, ENTER_ANOTHER_PASSWORD);
- setting_password_main_clear_2line_password(ad);
- return;
- }
- break;
-#endif
- case SETTING_PW_TYPE_SET_PASSWORD:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_SET_PASSWORD");
- ret = setting_password_main_check_2line_password(ad);
-
- 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_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);
- return;
- }
-
- ret = setting_password_set_password(ad->cur_pwd, entry_str,ad);
-
- /* Modify Setting Password */
- if (SETTING_RETURN_FAIL != ret) {
- /* Display popup */
- service_add_extra_data(svc, "current", entry_str);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE);
- } else {
- ad->focus_data = ad->ed_pw1;
- /* Error Msg */
- SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s",
- SETTING_FONT_RED, err, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
- } else {
- setting_password_main_clear_2line_password(ad);
- return;
- }
- }
- break;
-#ifdef SUPPORT_MDM
- case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD:
- {
- SETTING_TRACE_DEBUG("case MDM_CHANGE_PASSWORD_STEP1");
- ad->step1_str = strdup(ad->ed_pw1->sub_desc);
- SETTING_TRACE_DEBUG("step1_str : %s", ad->step1_str);
-
- unsigned int remain_attempt = ATTEMPT_INFINITE;
- unsigned int valid_seconds = 0;
- char guide_text[DESC_BUF1_SIZE] = {0,};
-
- if(ad->step1_str == NULL)
- {
- SETTING_TRACE_DEBUG("step1_str is NULL");
- }
- else
- {
- ret = setting_password_check_password(ad->step1_str, &remain_attempt, &valid_seconds);
- // check current password
- if(ret != SETTING_RETURN_SUCCESS){
- setting_password_main_clear_1line_password(ad);
- ad->focus_data = ad->ed_pw1;
- FREE(ad->step1_str);
-
- if(valid_seconds == 0)
- {
- mdm_set_password_status(MDM_PASSWORD_EXPIRED);
- setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED);
- return;
- }
-
- if((remain_attempt > 0) && (ad->mdm_policy->recoverable == TRUE))
- {
- // display guide text. remain_attempt with recovery mode
- char temp[DESC_BUF1_SIZE] = {0,};
- snprintf(temp, sizeof(temp), ATTEMPTS_DESC, remain_attempt);
- snprintf(guide_text, sizeof(guide_text), "%s. %s.", PW_ERR_DESC, temp);
- setting_password_ug_display_mdm_desc(ad, guide_text);
- }
- else if((remain_attempt > 0) && (ad->mdm_policy->recoverable == FALSE))
- {
- // display guide text. remain_attempt with wipe mode
- char temp[DESC_BUF1_SIZE] = {0,};
- snprintf(temp, sizeof(temp), ATTEMPTS_DESC, remain_attempt);
- snprintf(guide_text, sizeof(guide_text), "%s. %s.", PW_ERR_DESC, temp);
- setting_password_ug_display_mdm_desc(ad, guide_text);
- }
- else if((remain_attempt == 0) && (ad->mdm_policy->recoverable == TRUE))
- {
- mdm_set_password_status(MDM_PASSWORD_FAILED);
- setting_password_ug_display_mdm_desc(ad, MAX_NUM_REACHED);
- }
- else if((remain_attempt == 0) && (ad->mdm_policy->recoverable == FALSE))
- {
- mdm_set_password_status(MDM_RECOVERY_PASSWORD_FAILED);
- setting_password_ug_display_mdm_desc(ad, MAX_NUM_REACHED);
- }
- return;
- }
- SETTING_TRACE_DEBUG("Success to check step1_str");
-
- elm_genlist_clear(ad->scroller);
- if(((ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_SOMETHING)
- || (ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_NUMERIC)))
- {
- if(ad->mdm_policy->min_length <= SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH)
- {
- ad->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE;
- __create_common_password_frame(ad);
- setting_password_main_draw_simple_password(ad, 1);
- }
- else
- {
- ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY;
- setting_password_main_draw_2line_password(ad, NULL);
- }
- }
- else if(ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_UNSPECIFIED)
- {
- ad->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE;
- __create_common_password_frame(ad);
- setting_password_main_draw_simple_password(ad, 1);
- }
- else
- {
- ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY;
- setting_password_main_draw_2line_password(ad, NULL);
- }
- }
- }
- break;
-#endif
- case SETTING_PW_TYPE_CHANGE_PASSWORD:
- {
- SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PASSWORD");
- ret = setting_password_main_check_3line_password(ad);
-
- if (SETTING_RETURN_SUCCESS == ret) {
- const char *entry_str;
-#if LEGACY
- entry_str = ad->ed_pw1->sub_desc;
-
- ret = setting_password_check_password(entry_str, NULL, NULL);
-
- if(ret != SETTING_RETURN_SUCCESS){
- setting_password_main_clear_3line_password(ad);
- ad->focus_data = ad->ed_pw1;
-
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_INCORRECT_PASSWORD"), FALSE);
-#else
- setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
-#endif
- return;
- }
-#endif
-
- entry_str = ad->ed_pw2->sub_desc;
-
- if (isEmptyStr(entry_str)) {
- ad->focus_data = ad->ed_pw2;
- SETTING_TRACE_DEBUG("%s*** [ERR] elm_entry_entry_get(pw2) return NULL ***%s",
- SETTING_FONT_RED, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
-#ifdef SUPPORT_MDM
- if(ad->mdm_data != NULL)
- {
- ad->mdm_policy = (mdm_password_policy_t*)(ad->mdm_data->data);
-
- if(ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED)
- {
- SETTING_TRACE_DEBUG("checking policy");
- ret = setting_password_main_match_with_mdm_policy(entry_str, ad->mdm_policy);
- if(ret != SETTING_RETURN_SUCCESS)
- {
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
- }
- }
-#endif
-
- ret = setting_password_set_password(ad->ed_pw1->sub_desc, entry_str, ad);
-
- /* Modify Setting Password */
- if (SETTING_RETURN_FAIL != ret) {
- /* Display popup */
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORD_CHANGED"), TRUE);
- } else {
- ad->focus_data = ad->ed_pw2;
- /* Error Msg */
- SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s",
- SETTING_FONT_RED, err, SETTING_FONT_BLACK);
- setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE);
- return;
- }
-
- } else {
- setting_password_main_clear_3line_password(ad);
- setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
- return;
- }
- }
- break;
-
case SETTING_PW_TYPE_PIN_LOCK_ON:
{
SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_ON");
#endif
default:
- break;
+ return;
}
service_add_extra_data(svc, "result", ad->view_type_string);