Fix prevent issues
[apps/core/preloaded/settings.git] / setting-password / src / setting-password.c
index cdbfb2a..071548b 100755 (executable)
@@ -19,7 +19,7 @@
  *
  */
 #include <setting-password.h>
-#include <security-server.h>
+//#include <security-server.h>
 
 #ifndef UG_MODULE_API
 #define UG_MODULE_API __attribute__ ((visibility("default")))
@@ -166,8 +166,9 @@ static void *setting_password_ug_on_create(ui_gadget_h ug,
        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.item_style = "dialogue/separator";
        passwordUG->itc_seperator.func.text_get = NULL;
        passwordUG->itc_seperator.func.content_get = NULL;
        passwordUG->itc_seperator.func.state_get = NULL;
@@ -239,6 +240,11 @@ static void setting_password_ug_on_event(ui_gadget_h ug,
                                         enum ug_event event, service_h service,
                                         void *priv)
 {
+       if (!priv)
+               return;
+
+       SettingPasswordUG *ad = (SettingPasswordUG*)priv;
+
        switch (event) {
        case UG_EVENT_LOW_MEMORY:
                break;
@@ -247,12 +253,22 @@ static void setting_password_ug_on_event(ui_gadget_h ug,
        case UG_EVENT_LANG_CHANGE:
                break;
        case UG_EVENT_ROTATE_PORTRAIT:
-               break;
        case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
-               break;
        case UG_EVENT_ROTATE_LANDSCAPE:
-               break;
        case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               /* Focus entry */
+               SETTING_TRACE_DEBUG("get rotation event");
+               if(ad->ed_pw1)
+               {
+                       if (ad->ed_pw1->isFocusFlag || (ad->ed_pw1->eo_check != NULL))
+                       {
+                               SETTING_TRACE_DEBUG("set focus");
+                               /* 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);
+                       }
+               }
+
                break;
        case UG_EVENT_REGION_CHANGE:
                break;
@@ -300,11 +316,14 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
        ops->priv = passwordUG;
        ops->opt = UG_OPT_INDICATOR_ENABLE;
 
+       memset(passwordUG, 0x00, sizeof(SettingPasswordUG));
+
        return 0;
 }
 
 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
 {
+       SETTING_TRACE_BEGIN;
        struct SettingPasswordUG *passwordUG;
        setting_retm_if(!ops, "ops == NULL");
 
@@ -313,6 +332,59 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
                FREE(passwordUG);
 }
 
+void setting_get_sim_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       ret_if(data == NULL || user_data == NULL);
+
+       TelSimPinOperationResult_t sec_rt = result;
+       TelSimLockInfo_t *lock = data;
+
+       SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
+
+       SETTING_TRACE_DEBUG("sec_ret[%d], lock_type[%d], lock_status[%d], retry_count[%d]", sec_rt, lock->lock_type, lock->lock_status, lock->retry_count);
+
+       char temp[256] ={0,};
+       if(lock->retry_count > 1)
+               snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
+       else if(lock->retry_count > 0)
+               snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
+
+       if(ad->err_desc)
+       {
+               elm_object_item_del(ad->err_desc);
+               ad->err_desc = NULL;
+       }
+
+       ad->err_desc = elm_genlist_item_append(ad->scroller, &(ad->itc_err_desc), temp, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
+void setting_get_pin_lock_info_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+
+       TelSimPinOperationResult_t sec_rt = result;
+       TelSimLockInfo_t *lock = data;
+
+       SettingPasswordUG *ad = (SettingPasswordUG *)user_data;
+
+       SETTING_TRACE_DEBUG("sec_ret[%d], lock_type[%d], lock_status[%d], retry_count[%d]", sec_rt, lock->lock_type, lock->lock_status, lock->retry_count);
+
+       char temp[256] ={0,};
+       if(lock->retry_count > 1)
+               snprintf(temp, 256, _(ATTEMPTS_DESC), lock->retry_count);
+       else if(lock->retry_count > 0)
+               snprintf(temp, 256, _(ATTEMPT_DESC), lock->retry_count);
+
+       if(ad->err_desc)
+       {
+               elm_object_item_del(ad->err_desc);
+               ad->err_desc = NULL;
+       }
+
+       ad->err_desc = elm_genlist_item_append(ad->scroller, &(ad->itc_err_desc), temp, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
 void setting_sim_change_pins_cb(TapiHandle *handle, int result, void *data, void *user_data)
 {
        SETTING_TRACE_BEGIN;
@@ -367,6 +439,7 @@ void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void
 
        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);
@@ -382,6 +455,7 @@ void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void
 
        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);
@@ -511,6 +585,7 @@ void setting_sim_facility_disable_cb(TapiHandle *handle, int result, void *data,
 static void setting_password_ug_display_result_popup(tapi_receive_info *result,
                                                     SettingPasswordUG *ad)
 {
+       SETTING_TRACE_BEGIN;
        switch (result->stat) {
        case SIM_OPERATION_OK:
        case SIM_LOCK_ON_SUCCESS:
@@ -543,8 +618,11 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result,
                }
                break;
        case SIM_LOCK_INCORRECT_PASSWORD:
-               ad->focus_data = ad->ed_pw1;
-               setting_password_ug_check_attemps_left(ad);
+               {
+                       SETTING_TRACE_DEBUG("SIM LOCK INCORRECT PASSWORD");
+                       ad->focus_data = ad->ed_pw1;
+                       setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE);
+               }
                break;
        case SIM_INCORRECT_PIN1_CODE:
                {
@@ -700,6 +778,7 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result,
                                setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE);
                        }
                }
+               break;
        case SIM_PIN1_CHANGE_FAIL:
        case SIM_PIN2_CHANGE_FAIL:
                setting_password_ug_create_popup_notitle_nobtn(ad,