#include <setting-password.h>
#include <security-server.h>
-#ifdef SUPPORT_MDM
-#include <Ecore_X.h>
-#include <utilX.h>
-#endif
-
#ifndef UG_MODULE_API
#define UG_MODULE_API __attribute__ ((visibility("default")))
#endif
static struct _pw_item pw_its[] = {
- { SETTING_PW_TYPE_PASSWORD, "SETTING_PW_TYPE_PASSWORD" },
- { SETTING_PW_TYPE_SET_PASSWORD, "SETTING_PW_TYPE_SET_PASSWORD" },
- { SETTING_PW_TYPE_CHANGE_PASSWORD, "SETTING_PW_TYPE_CHANGE_PASSWORD" },
- { SETTING_PW_TYPE_SIMPLE_PASSWORD, "SETTING_PW_TYPE_SIMPLE_PASSWORD" },
- { SETTING_PW_TYPE_SET_SIMPLE_PASSWORD, "SETTING_PW_TYPE_SET_SIMPLE_PASSWORD" },
- { SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD, "SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD" },
- { SETTING_PW_TYPE_ENTER_LOCK_TYPE, "SETTING_PW_TYPE_ENTER_LOCK_TYPE" },
{ SETTING_PW_TYPE_SIM_LOCK_ON, "SETTING_PW_TYPE_SIM_LOCK_ON" },
{ SETTING_PW_TYPE_SIM_LOCK_OFF, "SETTING_PW_TYPE_SIM_LOCK_OFF" },
{ SETTING_PW_TYPE_PIN_LOCK_ON, "SETTING_PW_TYPE_PIN_LOCK_ON" },
{ SETTING_PW_TYPE_PIN1_BLOCKED, "SETTING_PW_TYPE_PIN1_BLOCKED" },
{ SETTING_PW_TYPE_PIN2_BLOCKED, "SETTING_PW_TYPE_PIN2_BLOCKED" },
{ SETTING_PW_TYPE_RESET, "SETTING_PW_TYPE_RESET" },
-#ifdef SUPPORT_MDM
- { SETTING_PW_TYPE_MDM_NEW_POLICY, "SETTING_PW_TYPE_MDM_NEW_POLICY" }, /*for mdm policy */
- { SETTING_PW_TYPE_MDM_CHANGE_PASSWORD, "SETTING_PW_TYPE_MDM_CHANGE_PASSWORD" },
- { SETTING_PW_TYPE_MDM_TO_SIMPLE, "SETTING_PW_TYPE_MDM_TO_SIMPLE" },
-#endif
{ SETTING_PW_TYPE_MAX, NULL }
};
SETTING_TRACE_BEGIN;
service_get_extra_data(service, "viewtype", &(ad->view_type_string));
- service_get_extra_data(service, "current", &(ad->cur_pwd));
- if(ad->cur_pwd)
- SETTING_TRACE_DEBUG("Receive current : %s", ad->cur_pwd);
-#ifdef SUPPORT_MDM
- char *status = NULL;
- service_get_extra_data(service, "status", &status);
- if(safeStrCmp(status, "expired") == 0)
- {
- ad->is_expired = SETTING_PW_STATUS_EXPIRED;
- }
- else
- {
- ad->is_expired = SETTING_PW_STATUS_OK;
- }
- SETTING_TRACE_DEBUG("is_expired : %d", ad->is_expired);
-#endif
SETTING_TRACE("viewtype:%s", ad->view_type_string);
setting_pw_type ret_pw_type = 0;
int i;
}
}
- ad->is_empty = setting_password_is_password_empty();
-
- /* exception handle */
- if(ret_pw_type == SETTING_PW_TYPE_PASSWORD)
- {
- ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD;
- }
- else if(ret_pw_type == SETTING_PW_TYPE_SIMPLE_PASSWORD)
- {
- ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD;
- }
- else if(ret_pw_type == SETTING_PW_TYPE_CHANGE_PASSWORD)
- {
- if(ad->is_empty == TRUE)
- {
- ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD;
- }
- }
- else if(ret_pw_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD)
- {
- if(ad->is_empty == TRUE)
- {
- ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD;
- }
- }
- else if( ret_pw_type == SETTING_PW_TYPE_RESET )
- {
- if(ad->is_empty == TRUE)
- {
- /* To do : check screen lock option key */
- if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD;
- else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD;
- }
- else
- {
- if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_PASSWORD;
- else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_SIMPLE_PASSWORD;
- }
- }
- else if( ret_pw_type == SETTING_PW_TYPE_ENTER_LOCK_TYPE )
- {
- if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_PASSWORD;
- else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD)
- ret_pw_type = SETTING_PW_TYPE_SIMPLE_PASSWORD;
- }
-#ifdef SUPPORT_MDM
- else if (ret_pw_type == SETTING_PW_TYPE_MDM_CHANGE_PASSWORD)
- {
- if((ad->is_empty == TRUE)
- || (ad->is_expired == SETTING_PW_STATUS_EXPIRED))
- {
- ret_pw_type = SETTING_PW_TYPE_MDM_NEW_POLICY;
- }
- }
-#endif
/* end */
return ret_pw_type;
}
-#if DISABLED_CODE
-static void setting_password_ug_set_password_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- /* error check */
- retm_if(data == NULL, "Data parameter is NULL");
-
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- switch (btn_type(obj)) {
- case POPUP_RESPONSE_OK:
- {
- /* creating a view. */
- setting_view_create(&setting_view_password_main, (void *)ad);
- evas_object_event_callback_add(ad->win_main_layout,
- EVAS_CALLBACK_RESIZE,
- setting_password_ug_cb_resize,
- ad);
- if (ad->setpw_notify)
- {
- evas_object_del(ad->setpw_notify);
- ad->setpw_notify = NULL;
- }
- }
- break;
-
- case POPUP_RESPONSE_CANCEL:
- {
- if (ad->setpw_notify)
- {
- evas_object_del(ad->setpw_notify);
- ad->setpw_notify = NULL;
- }
-
- /* send result : Cancel */
- service_h svc;
- if(service_create(&svc))
- return;
-
- service_add_extra_data(svc, "result", "Cancel");
- ug_send_result(ad->ug, svc);
- SETTING_TRACE("Send Result : %s\n", "Cancel");
-
- service_destroy(svc);
-
- ug_destroy_me(ad->ug);
- }
- break;
- default:
- break;
- }
-}
-#endif
static char *__gl_err_desc_text_get(void *data, Evas_Object *obj, const char *part)
{
retv_if(data == NULL, NULL);
return strdup(buf);
}
-#ifdef SUPPORT_MDM
-void setting_password_ug_display_mdm_desc(void *data, const char* guide_text)
-{
- SETTING_TRACE_BEGIN;
- ret_if(data == NULL || guide_text == NULL);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if(ad->mdm_desc != NULL)
- {
- elm_object_item_del(ad->mdm_desc);
- ad->mdm_desc = NULL;
- }
-
- ad->guide_str = (char *)guide_text;
-
- ad->mdm_desc = elm_genlist_item_append(ad->scroller, &(ad->itc_mdm_desc), ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static char *__gl_mdm_desc_text_get(void *data, Evas_Object *obj, const char *part)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, NULL);
- char buf[MAX_DESC_BUF_SIZE] = {0,};
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if(ad->mdm_policy == NULL)
- return NULL;
-
- if(ad->guide_str)
- safeCopyStr(buf, ad->guide_str, MAX_DESC_BUF_SIZE);
-
- SETTING_TRACE_END;
- return strdup(buf);
-}
-
-static Eina_Bool __setting_password_ug_keydown_cb(void *data, int type, void *event)
-{
- SETTING_TRACE_BEGIN;
-
- Ecore_Event_Key *ev = event;
-
- if(!strcmp(ev->keyname, KEY_END) || !strcmp(ev->keyname, KEY_SELECT))
- {
- SETTING_TRACE_DEBUG("event key name : %s", ev->keyname);
- // nothing to do.
- }
- return ECORE_CALLBACK_DONE;
-}
-
-static void __setting_password_ug_key_grab(SettingPasswordUG *ad)
-{
- SETTING_TRACE_BEGIN;
- Ecore_X_Window xwin = 0;
- Ecore_X_Display *disp = NULL;
-
- int ret = 0;
-
- if(ad == NULL)
- return;
-
- disp = ecore_x_display_get();
- xwin = elm_win_xwindow_get((Evas_Object*)ug_get_window());
-
- ret = utilx_grab_key(disp, xwin, KEY_SELECT, EXCLUSIVE_GRAB);
- if(ret)
- return;
-
- ad->event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __setting_password_ug_keydown_cb, ad);
- SETTING_TRACE_END;
-}
-static void __setting_password_ug_key_ungrab(SettingPasswordUG *ad)
-{
- SETTING_TRACE_BEGIN;
- Ecore_X_Window xwin = 0;
- Ecore_X_Display *disp = NULL;
-
- int ret = 0;
-
- if(ad == NULL)
- return;
-
- disp = ecore_x_display_get();
- xwin = elm_win_xwindow_get((Evas_Object*)ug_get_window());
-
- ret = utilx_ungrab_key(disp, xwin, KEY_HOME);
- if(ret)
- return;
-
- ecore_event_handler_del(ad->event_handler);
-}
-#endif
-
static void *setting_password_ug_on_create(ui_gadget_h ug,
enum ug_mode mode, service_h service,
void *priv)
setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
FREE(pa_path);
- setting_create_Gendial_itc("dialogue/title", &(passwordUG->itc_title));
setting_create_Gendial_itc("dialogue/1icon",&(passwordUG->itc_variable_height));
passwordUG->itc_seperator.item_style = "dialogue/separator/21/with_line";
passwordUG->itc_seperator.func.text_get = NULL;
passwordUG->itc_err_desc.func.content_get = NULL;
passwordUG->itc_err_desc.func.state_get = NULL;
passwordUG->itc_err_desc.func.del = NULL;
-#ifdef SUPPORT_MDM
- passwordUG->itc_mdm_desc.item_style = "multiline/1text";
- passwordUG->itc_mdm_desc.func.text_get = __gl_mdm_desc_text_get;
- passwordUG->itc_mdm_desc.func.content_get = NULL;
- passwordUG->itc_mdm_desc.func.state_get = NULL;
- passwordUG->itc_mdm_desc.func.del = NULL;
-#endif
-
- /* get screen lock type */
- if( vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &(passwordUG->screen_lock_type)) < 0) {
- passwordUG->screen_lock_type = 0;
- }
- SETTING_TRACE_DEBUG("screen lock type : %d", passwordUG->screen_lock_type);
-
- passwordUG->cur_pwd = NULL;
/* init */
passwordUG->view_type = __get_password_view_type(passwordUG, service);
setting_tapi_init(passwordUG);
-#ifdef SUPPORT_MDM
- /* To do : check for MDM server */
- passwordUG->mdm_data = NULL;
- passwordUG->mdm_policy = NULL;
-
- passwordUG->mdm_status = mdm_get_service();
-
- if(passwordUG->mdm_status == MDM_RESULT_SUCCESS)
- {
- passwordUG->mdm_data = mdm_get_password_policy();
-
- passwordUG->mdm_policy = (mdm_password_policy_t*)(passwordUG->mdm_data->data);
-
- if ((SETTING_PW_TYPE_MDM_NEW_POLICY == passwordUG->view_type) /* support mdm policy */
- || (SETTING_PW_TYPE_MDM_CHANGE_PASSWORD == passwordUG->view_type))
- {
- if(passwordUG->mdm_policy != NULL)
- {
- if((passwordUG->mdm_policy->quality == MDM_PASSWORD_QUALITY_SOMETHING)
- || (passwordUG->mdm_policy->quality == MDM_PASSWORD_QUALITY_NUMERIC))
- {
- if( (passwordUG->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY)
- && (passwordUG->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD))
- {
- /*if only length is 0~4, apply simple password mode */
- if(passwordUG->mdm_policy->min_length <= SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH)
- {
- passwordUG->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE;
- }
- else
- {
- if(vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, FALSE) != 0)
- {
- SETTING_TRACE_DEBUG("[ERROR] setting VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL failed");
- }
- }
- }
- }
-
- ecore_x_netwm_window_type_set(elm_win_xwindow_get(passwordUG->win_get), ECORE_X_WINDOW_TYPE_NOTIFICATION);
- utilx_set_system_notification_level(ecore_x_display_get(), elm_win_xwindow_get(passwordUG->win_get), UTILX_NOTIFICATION_LEVEL_NORMAL);
-
- /* creating a view. */
- setting_view_create(&setting_view_password_main,(void *)passwordUG);
- evas_object_event_callback_add(passwordUG->win_main_layout,
- EVAS_CALLBACK_RESIZE,
- setting_password_ug_cb_resize,
- passwordUG);
- __setting_password_ug_key_grab(passwordUG);
-
- return passwordUG->ly_main;
- }
- else
- {
- /* unexpected case */
- SETTING_TRACE_DEBUG("[ERROR] no policy");
- if (SETTING_PW_TYPE_MDM_NEW_POLICY == passwordUG->view_type)
- passwordUG->view_type = SETTING_PW_TYPE_SET_PASSWORD;
- else if (SETTING_PW_TYPE_MDM_CHANGE_PASSWORD == passwordUG->view_type)
- passwordUG->view_type = SETTING_PW_TYPE_CHANGE_PASSWORD;
- }
- }
- else
- {
- SETTING_TRACE_DEBUG("[ERROR] failed to connect mdm server");
- }
- }
-#endif
-#ifdef SUPPORT_MDM
- if (SETTING_PW_TYPE_CHANGE_PASSWORD == passwordUG->view_type)
- {
- // to do : if policy exist and quality is not unspecified,
- // change view type to SETTING_PW_TYPE_MDM_CHANGE_PASSWORD
- if((passwordUG->mdm_policy) && (passwordUG->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED))
- {
- passwordUG->view_type = SETTING_PW_TYPE_MDM_CHANGE_PASSWORD;
- SETTING_TRACE_DEBUG("change view type to SETTING_PW_TYPE_MDM_CHANGE_PASSWORD");
- }
- // end
- }
-#endif
/* creating a view. */
setting_view_create(&setting_view_password_main,(void *)passwordUG);
evas_object_event_callback_add(passwordUG->win_main_layout,
ecore_timer_del(passwordUG->remove_timer);
passwordUG->remove_timer = NULL;
}
-#ifdef SUPPORT_MDM
- if(passwordUG->event_handler)
- {
- __setting_password_ug_key_ungrab(passwordUG);
- }
- if(passwordUG->mdm_status == MDM_RESULT_SUCCESS)
- {
- mdm_release_service();
- }
-#endif
/* delete the allocated objects. */
setting_view_destroy(&setting_view_password_main, passwordUG);
if (TAPI_SIM_PTYPE_PUK1 == sim_event_data->type)
{
- //if (TAPI_SIM_PIN_REQUIRED == sec_rt){
if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){
+ SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN1_UNBLOCKED")+1);
setting_password_ug_create_popup_notitle_nobtn(ad, _("Verfy PUK1 Sucessfully"), TRUE);
return;
} else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
else if (TAPI_SIM_PTYPE_PUK2 == sim_event_data->type)
{
- //if (TAPI_SIM_PUK_REQUIRED == sec_rt)
if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){
+ SETTING_TRACE_DEBUG("SIM_PIN2_UNBLOCKED");
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN2_UNBLOCKED")+1);
setting_password_ug_create_popup_notitle_nobtn(ad, _("Verfy PUK2 Sucessfully"), TRUE);
return;
} else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) {
/* Sim Lock */
if (TAPI_SIM_LOCK_PS == sim_event_data->type) {
+ SETTING_TRACE_DEBUG("SIM lOCK");
if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt)
result_info.stat = SIM_LOCK_OFF_SUCCESS;
else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt)
}
/* Pin Lock */
else if (TAPI_SIM_LOCK_SC == sim_event_data->type) {
+ SETTING_TRACE_DEBUG("PIN LOCK");
if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt)
result_info.stat = SIM_PIN_LOCK_OFF_SUCCESS;
else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) {
setting_retm_if(ret < 0, "snprintf fail");
ret_str = tmp_str;
} else {
- ret_str = _("IDS_ST_POP_INCORRECT_PIN1");
+ int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PIN_ERR_DESC, result->retry_cnt);
+ setting_retm_if(ret < 0, "snprintf fail");
+ ret_str = tmp_str;
+ ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
}
ad->focus_data = ad->ed_pw1;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, (char *)ret_str, FALSE);
-#else
+
setting_password_ug_display_desc(ad, (char *)ret_str, FALSE);
-#endif
+
}
break;
case SIM_INCORRECT_PIN2_CODE:
setting_retm_if(ret < 0, "snprintf fail");
ret_str = tmp_str;
} else {
- ret_str = _("IDS_ST_POP_INCORRECT_PIN2");
+ ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT");
}
ad->focus_data = ad->ed_pw1;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
-#else
+
setting_password_ug_display_desc(ad, ret_str, FALSE);
-#endif
+
}
break;
case SIM_INCORRECT_PUK1_CODE:
ret_str = _("IDS_ST_POP_INCORRECT_PUK1_CODE");
}
ad->focus_data = ad->ed_pw1;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
-#else
+
setting_password_ug_display_desc(ad, ret_str, FALSE);
-#endif
+
}
break;
case SIM_INCORRECT_PUK2_CODE:
ret_str = _("IDS_ST_POP_INCORRECT_PUK2");
}
ad->focus_data = ad->ed_pw1;
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE);
-#else
+
setting_password_ug_display_desc(ad, ret_str, FALSE);
-#endif
+
}
break;
case SIM_PIN1_CHANGE_SUCCESS:
_("IDS_ST_POP_PIN2_CHANGED"), TRUE);
break;
case SIM_PIN1_BLOCKED:
+ SETTING_TRACE_DEBUG("SIM_PIN1_BLOCKED");
+ ad->view_type = SETTING_PW_TYPE_PIN1_BLOCKED;
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN1_BLOCKED")+1);
setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_PIN1_BLOCKED"), TRUE);
+ _("IDS_ST_POP_PIN1_BLOCKED"), FALSE);
break;
case SIM_PIN2_BLOCKED:
+ SETTING_TRACE_DEBUG("SIM_PIN2_BLOCKED");
+ ad->view_type = SETTING_PW_TYPE_PIN2_BLOCKED;
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN2_BLOCKED")+1);
setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_ST_POP_PIN2_BLOCKED"), TRUE);
+ _("IDS_ST_POP_PIN2_BLOCKED"), FALSE);
break;
case SIM_PIN1_UNBLOCKED:
+ SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED");
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_LOCK_ON", sizeof("SETTING_PW_TYPE_PIN_LOCK_ON")+1);
setting_password_ug_create_popup_notitle_nobtn(ad,
_("IDS_ST_POP_PIN_UNBLOCKED"), TRUE);
break;
case SIM_PUK1_BLOCKED:
setting_password_ug_create_popup_notitle_nobtn(ad,
_("IDS_ST_BODY_PUK1_BLOCKED"), TRUE);
- /* Call Permernent UG */
+ /* Phone blocked. Call Permernent UG */
break;
case SIM_PUK2_BLOCKED:
setting_password_ug_create_popup_notitle_nobtn(ad,
/* Call Permernent UG */
break;
case SIM_REQUIRED_PUK_CODE:
+ SETTING_TRACE_DEBUG("SIM_REQUIRED_PUK_CODE");
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_BLOCKED", sizeof("SETTING_PW_TYPE_PIN1_BLOCKED")+1);
+ setting_password_ug_create_popup_notitle_nobtn(ad,
+ _("IDS_ST_POP_PIN1_BLOCKED"), TRUE);
break;
case SIM_OPERATION_UNAVAILABLE:
setting_password_ug_create_popup_notitle_nobtn(ad,
case SIM_REQ_PIN:
case SIM_OPERATION_OFF:
case SIM_LOCK_ON_FAIL:
+ SETTING_TRACE_DEBUG("SIM_LOCK_ON_FAIL");
+ {
+ int err = SETTING_RETURN_SUCCESS;
+
+ if(result->retry_cnt > 0)
+ {
+ setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
+ }
+ else
+ {
+ char tmp_str[SETTING_STR_SLP_LEN] = {0,};
+ int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME);
+ safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_SIM_LOCK_DISABLE", sizeof("SETTING_PW_TYPE_SIM_LOCK_DISABLE")+1);
+ setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
+ }
+ }
case SIM_PIN1_CHANGE_FAIL:
case SIM_PIN2_CHANGE_FAIL:
+ setting_password_ug_create_popup_notitle_nobtn(ad,
+ _("Change Failed"), TRUE);
break;
default:
break;
ug_destroy_me(ad->ug);
} else {
char *diable_view_type = NULL;
- //if (ad->disable_item_type == SETTING_PW_TYPE_PASSWORD) {
- // diable_view_type = "SETTING_PW_TYPE_PHONE_LOCK_DISABLE";
- //} else
+ if (ad->view_type == SETTING_PW_TYPE_PIN1_BLOCKED)
+ {
+ setting_view_destroy(&setting_view_password_main, ad);
+ setting_view_create(&setting_view_password_main, ad);
+ return;
+ }
+ else if (ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED)
+ {
+ setting_view_destroy(&setting_view_password_main, ad);
+ setting_view_create(&setting_view_password_main, ad);
+ return;
+ }
+
if (ad->disable_item_type == SETTING_PW_TYPE_SIM_LOCK_OFF) {
diable_view_type = "SETTING_PW_TYPE_SIM_LOCK_DISABLE";
}
ug_destroy_me(ad->ug);
} else {
char *diable_view_type = NULL;
- //if (ad->disable_item_type == SETTING_PW_TYPE_PASSWORD) {
- // diable_view_type = "SETTING_PW_TYPE_PHONE_LOCK_DISABLE";
- //} else
if (ad->disable_item_type == SETTING_PW_TYPE_SIM_LOCK_OFF) {
diable_view_type = "SETTING_PW_TYPE_SIM_LOCK_DISABLE";
}
POPUP_INTERVAL, FALSE, FALSE);
}
-void setting_password_ug_check_attemps_left(void *data)
-{
- ret_if(!data);
- SettingPasswordUG *ad = (SettingPasswordUG *) data;
-
- setting_int_slp_list item_attempts_left;
- setting_str_slp_list item_lock_timestamp;
- int attemps_left_max = 5;
-
- if (ad->view_type == SETTING_PW_TYPE_PASSWORD) {
- 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;
- } else if (ad->view_type == SETTING_PW_TYPE_SIM_LOCK_OFF) {
- item_attempts_left = INT_SLP_SETTING_SIM_LOCK_ATTEMPTS_LEFT;
- item_lock_timestamp = STR_SLP_SETTING_SIM_LOCK_TIMESTAMP;
- attemps_left_max = SIM_LOCK_ATTEMPS_MAX;
- } else {
- return;
- }
-
- 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 temp_str[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);
-
- int ret = snprintf(temp_str, MAX_SPECIALIZITION_LEN, temp, value);
-
- ret_if(ret < 0);
-
-#ifdef SUPPORT_POPUP
- setting_password_ug_create_popup_notitle_nobtn(ad, temp_str, FALSE);
-#else
- setting_password_ug_display_desc(ad, temp_str, FALSE);
-#endif
- } else if (value == 0) {
- /* store the lock timestamp */
- 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, FALSE);
- } else {
- setting_password_ug_create_popup_notitle_nobtn(ad,
- _("IDS_COM_POP_ERROR"), FALSE);
- }
-
-}
-
-int setting_password_is_password_empty()
-{
- SETTING_TRACE_BEGIN;
- int ret = 0;
- unsigned int attempt = 0;
- unsigned int max_attempt = 0;
- unsigned int expire_sec = 0;
-
- ret = security_server_is_pwd_valid(&attempt, &max_attempt, &expire_sec);
- SETTING_TRACE_DEBUG("status of password : %d", ret);
-
- if(ret == SECURITY_SERVER_API_ERROR_NO_PASSWORD)
- return SETTING_RETURN_SUCCESS;
- else
- return SETTING_RETURN_FAIL;
-}
-int setting_password_check_password(const char *challenge, unsigned int *remain_attempt, unsigned int *valid_sec)
-{
- SETTING_TRACE_BEGIN;
- retv_if(challenge == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- int inner_ret = 0;
- int ret = 0;
- unsigned int current_attempt = 0;
- unsigned int max_attempt = 0;
- unsigned int valid_secs = 0;
-
- inner_ret = security_server_chk_pwd(challenge, ¤t_attempt, &max_attempt, &valid_secs);
-
- SETTING_TRACE_DEBUG("chk password : %d", inner_ret);
- SETTING_TRACE_DEBUG("current_attempt : %d, max_attempt : %d, valid_secs : %d secs", current_attempt, max_attempt, valid_secs);
-
- if(inner_ret == SECURITY_SERVER_API_SUCCESS)
- {
- ret = SETTING_RETURN_SUCCESS;
- }
- else
- {
- if(remain_attempt != NULL)
- {
- if(max_attempt > 0)
- *remain_attempt = max_attempt - current_attempt;
- else
- *remain_attempt = ATTEMPT_INFINITE; // infinite
- ret = SETTING_RETURN_FAIL;
- }
- }
-
- if(valid_sec != NULL)
- *valid_sec = valid_secs;
-
- return ret;
-}
-#ifdef SUPPORT_MDM
-static Eina_Bool __set_history_cb(void *data)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_FALSE);
-
- SettingPasswordUG *ad = (SettingPasswordUG *)data;
-
- if(ad->mdm_policy)
- security_server_set_pwd_history(ad->mdm_policy->history_cnt);
-
- return EINA_FALSE;
-}
-#endif
-
-int setting_password_set_password(const char *cur_pwd, const char *new_pwd, void *data)
-{
- SETTING_TRACE_BEGIN;
- retv_if(new_pwd == NULL || data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SettingPasswordUG *ad = (SettingPasswordUG*)data;
- int ret = 0;
-
-#ifdef SUPPORT_MDM
- if((ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY)
- || (ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE))
- {
- if(cur_pwd)
- {
- SETTING_TRACE_DEBUG("cur_pwd : %s, new_pwd : %s", cur_pwd, new_pwd);
- ret = security_server_set_pwd(cur_pwd, new_pwd, ad->mdm_policy->max_num_wipe, ad->mdm_policy->expire);
-
- if(ret == SECURITY_SERVER_API_ERROR_PASSWORD_REUSED)
- {
- SETTING_TRACE_DEBUG("[ERROR - security_server_set_pwd()] password reused");
- }
- else
- {
- SETTING_TRACE_DEBUG("[security_server_set_pwd()] returns %d", ret);
- }
- }
- else
- {
- SETTING_TRACE_DEBUG("new_pwd : %s", new_pwd);
- ret = mdm_reset_password((char*)new_pwd);
- SETTING_TRACE_DEBUG("[mdm_reset_password()] returns %d", ret);
- }
-
- if((ret == MDM_RESULT_SUCCESS) || (ret == SECURITY_SERVER_API_SUCCESS))
- {
- ad->set_history_timer = ecore_timer_add(1, (Ecore_Task_Cb)__set_history_cb, ad);
- return SETTING_RETURN_SUCCESS;
- }
- else
- {
- return ret;
- }
- }
- else
-#endif
- {
- /* max attempt count will be handled in passwordug for a while. */
- if(cur_pwd == NULL || ad->is_empty == TRUE)
- {
- ret = security_server_set_pwd(NULL, new_pwd, 0, PW_ERR_DELAY_TIME);
- SETTING_TRACE_DEBUG("new_pwd : %s", new_pwd);
- }
- else
- {
- ret = security_server_set_pwd(cur_pwd, new_pwd, 0, PW_ERR_DELAY_TIME);
- SETTING_TRACE_DEBUG("cur_pwd : %s, new_pwd : %s", cur_pwd, new_pwd);
- }
- SETTING_TRACE_DEBUG("set password : %d", ret);
-
- if(ret == SECURITY_SERVER_API_SUCCESS)
- return SETTING_RETURN_SUCCESS;
- else
- return SETTING_RETURN_FAIL;
- }
-}