Implement Simple password lockscreen on RSA.
[apps/home/lockscreen.git] / src / simple-password.c
index afe9ab1..5216f62 100755 (executable)
@@ -137,49 +137,61 @@ static void __simple_password_mouse_move_cb(void *data, Evas * evas, Evas_Object
        LOCK_SCREEN_TRACE_DBG("__simple_password_mouse_move_cb");\r
 }\r
 \r
-void __simple_password_check_result(void *data)\r
+void __simple_password_check_result(void *data, char *event)\r
 {\r
        struct appdata *ad = (struct appdata *) data;\r
 \r
        int value = -1;\r
+       int ret = 0;\r
 \r
-       vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value);\r
+       ret = vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value);\r
        value--;\r
 \r
-       if (value > 0 && value <= PASSWORD_ATTEMPTS_MAX_NUM) {\r
-               char temp_str[200] = {0};\r
-               char temp_left[50] = {0};\r
+       if(ret == 0) {\r
+               if (value > 0 && value <= PASSWORD_ATTEMPTS_MAX_NUM) {\r
+                       char temp_str[200] = {0};\r
+                       char temp_left[50] = {0};\r
 \r
-               vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT,\r
-                             value);\r
-               if(value == 1)\r
-               {\r
-                       snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_1_ATTEMPT_LEFT"));\r
-               }\r
-               else\r
-               {\r
-                       snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), value);\r
-               }\r
-               snprintf(temp_str, sizeof(temp_str), "%s, %s", _("IDS_IDLE_BODY_INCORRECT_PASSWORD"), temp_left);\r
-               edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str);\r
-       } else if (value == 0) {\r
-               time_t cur_time = time(NULL);\r
-               char cur_timestamp[64] = {0};\r
-               char temp_str[512] = {0};\r
+                       vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT,\r
+                                     value);\r
+                       if(value == 1)\r
+                       {\r
+                               snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_1_ATTEMPT_LEFT"));\r
+                       }\r
+                       else\r
+                       {\r
+                               snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), value);\r
+                       }\r
+                       snprintf(temp_str, sizeof(temp_str), "%s, %s", _("IDS_IDLE_BODY_INCORRECT_PASSWORD"), temp_left);\r
+                       edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str);\r
+               } else if (value == 0) {\r
+                       time_t cur_time = time(NULL);\r
+                       char cur_timestamp[64] = {0};\r
+                       char temp_str[512] = {0};\r
 \r
-               snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time);\r
-               vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp);\r
-               vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value);\r
-               ad->block_seconds = PASSWORD_BLOCK_SECONDS;\r
+                       snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time);\r
+                       vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp);\r
+                       vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value);\r
+                       ad->block_seconds = PASSWORD_BLOCK_SECONDS;\r
 \r
-               snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds);\r
+                       snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds);\r
+                       edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str);\r
+               }\r
+       } else {\r
+               char temp_str[200] = {0};\r
+               snprintf(temp_str, sizeof(temp_str), _("IDS_IDLE_BODY_INCORRECT_PASSWORD"));\r
                edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str);\r
+\r
+               while(simple_password_length != 0) {\r
+                       simple_password_length--;\r
+                       simple_password[simple_password_length] = '\0';\r
+               }\r
        }\r
 }\r
 \r
 static void __simple_password_check_result_cb (const char *event, void *data)\r
 {\r
-       __simple_password_check_result(data);\r
+       __simple_password_check_result(data, event);\r
 }\r
 \r
 static void __simple_password_results_update(void *data)\r
@@ -296,9 +308,9 @@ void simple_password_layout_create(void *data)
        elm_object_part_content_set(ad->ly_simple_password, "sw.keypad.number", keypad_layout);\r
        edje_object_signal_emit(_EDJ(ad->ly_simple_password), "show,numberkeyboard", "sw.keypad.number");\r
        edje_object_signal_callback_add(_EDJ(keypad_layout), "keypad_down_clicked", "*", __simple_password_keypad_process, ad);\r
-       evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_DOWN, __simple_password_mouse_down_cb, ad);\r
-       evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_MOVE, __simple_password_mouse_move_cb, ad);\r
-       evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_UP, __simple_password_mouse_up_cb, ad);\r
+       //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_DOWN, __simple_password_mouse_down_cb, ad);\r
+       //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_MOVE, __simple_password_mouse_move_cb, ad);\r
+       //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_UP, __simple_password_mouse_up_cb, ad);\r
        evas_object_show(keypad_layout);\r
        vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, __simple_password_check_vconf_value_cb, ad);\r
        __simple_password_check_vconf_value(ad);\r