bug fix - user edit view 15/45115/2
authorSoohye Shin <soohye.shin@samsung.com>
Sat, 1 Aug 2015 10:04:55 +0000 (19:04 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Sat, 1 Aug 2015 10:07:47 +0000 (19:07 +0900)
- support back key
- remove pin entry
- modify name entry to focus/unfocus
- diable name entry when edit user

Change-Id: Ie6e485ca853231fe08ca4891da9e3570f8e5ccf2
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
edje/images/search_searchbar_small_bg_nor.png [new file with mode: 0644]
edje/view/useredit.edc
include/defs.h
src/utils.c
src/view/view_user_edit.c

diff --git a/edje/images/search_searchbar_small_bg_nor.png b/edje/images/search_searchbar_small_bg_nor.png
new file mode 100644 (file)
index 0000000..74848b3
Binary files /dev/null and b/edje/images/search_searchbar_small_bg_nor.png differ
index 6e6889e..67b2b02 100644 (file)
@@ -140,7 +140,7 @@ group {
                                        to, "contents";
                                        relative, 0.5 0.5;
                                }
-                               min, 1128 408;
+                               min, 1128 378;
                                fixed, 1 1;
                        }
                }
@@ -153,6 +153,7 @@ group {
                image, "ic_user_require_01.png" COMP;
                image, "ic_user_require_02.png" COMP;
                image, "btn_user_del.png" COMP;
+               image, "search_searchbar_small_bg_nor.png" COMP;
        }
        parts {
                part {
@@ -161,7 +162,7 @@ group {
                        scale, 1;
                        description {
                                state, "default" 0.0;
-                               min, 1128 408;
+                               min, 1128 378;
                                visible, 0;
                        }
                }
@@ -284,90 +285,6 @@ group {
                        }
                }
                part {
-                       name, "pad.require";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, PART_USER_EDIT_CONTENTS_PHOTO;
-                                       relative, 0.0 1.0;
-                               }
-                               rel2 {
-                                       to, PART_USER_EDIT_CONTENTS_PHOTO;
-                                       relative, 0.0 1.0;
-                               }
-                               min, 0 22;
-                               fixed, 1 1;
-                               align, 0.0 0.0;
-                               visible, 0;
-                       }
-               }
-               part {
-                       name, "icon.require";
-                       type, IMAGE;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, "pad.require";
-                                       relative, 1.0 1.0;
-                               }
-                               rel2.to, "pad.require";
-                               min, 12 24;
-                               fixed, 1 1;
-                               align, 0.0 0.0;
-                               image.normal, "ic_user_require_02.png";
-                       }
-               }
-               part {
-                       name, "pad.require.text";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, "icon.require";
-                                       relative, 1.0 0.0;
-                               }
-                               rel2 {
-                                       to, "icon.require";
-                                       relative, 1.0 0.0;
-                               }
-                               min, 6 0;
-                               align, 0.0 0.0;
-                               fixed, 1 1;
-                               visible, 0;
-                       }
-               }
-               part {
-                       name, "require";
-                       type, TEXT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1 {
-                                       to, "pad.require.text";
-                                       relative, 1.0 1.0;
-                               }
-                               rel2 {
-                                       to, "pad.require.text";
-                                       relative, 1.0 1.0;
-                               }
-                               min, 294 24;
-                               fixed, 1 1;
-                               align, 0.0 0.0;
-                               text {
-                                       font, "TizenSans";
-                                       size, 24;
-                                       align, 0.0 0.5;
-                                       text, "Required fields";
-                               }
-                               color, 64 136 211 255;
-                       }
-               }
-
-               part {
                        name, "pad.profile";
                        type, RECT;
                        scale, 1;
@@ -450,12 +367,11 @@ group {
                                min, 0 22;
                                fixed, 1 1;
                                align, 0.0 0.0;
-                               visible, 0;
                        }
                }
                part {
-                       name, PART_USER_EDIT_CONTENTS_NAME;
-                       type, SWALLOW;
+                       name, "border.name";
+                       type, IMAGE;
                        scale, 1;
                        description {
                                state, "default" 0.0;
@@ -468,10 +384,56 @@ group {
                                fixed, 1 1;
                                align, 0.0 0.0;
                                fixed, 1 1;
+                               image {
+                                       normal, "search_searchbar_small_bg_nor.png";
+                                       border, 4 4 4 4;
+                                       border_scale, 1;
+                               }
+                               visible, 1;
+                       }
+                       description {
+                               state, "focus";
+                               inherit, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+               part {
+                       name, PART_USER_EDIT_CONTENTS_NAME;
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "border.name";
+                                       relative, 0.5 0.5;
+                               }
+                               rel2 {
+                                       to, "border.name";
+                                       relative, 0.5 0.5;
+                               }
+                               min, 432 60;
+                               fixed, 1 1;
+                       }
+               }
+               part {
+                       name, "disable.name";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, PART_USER_EDIT_CONTENTS_NAME;
+                               rel2.to, PART_USER_EDIT_CONTENTS_NAME;
+                               color, 200 200 200 100;
+                               visible, 0;
+                       }
+                       description {
+                               state, "disable";
+                               inherit, "default" 0.0;
+                               visible, 1;
                        }
                }
                part {
-                       name, "pad.pin";
+                       name, "pad.lock";
                        type, RECT;
                        scale, 1;
                        description {
@@ -484,157 +446,154 @@ group {
                                        to, PART_USER_EDIT_CONTENTS_NAME;
                                        relative, 0.0 1.0;
                                }
-                               min, 0 32;
+                               min, 0 42;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, "pin";
+                       name, "lock";
                        type, TEXT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.pin";
-                                       relative, 0.0 1.0;
-                               }
-                               rel2 {
-                                       to, "pad.pin";
-                                       relative, 0.0 1.0;
+                                       to, "pad.lock";
+                                       relative, 1.0 1.0;
                                }
+                               rel2.to, "pad.lock";
                                min, 436 32;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                text {
-                                       text, "Pin code";
                                        font, "TizenSans";
                                        size, 32;
+                                       text, "Privacy lock";
                                        align, 0.0 0.5;
                                }
                                color, 77 77 77 255;
                        }
                }
                part {
-                       name, "pad.pin.down";
+                       name, "pad.lock.down";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pin";
+                                       to, "lock";
                                        relative, 0.0 1.0;
                                }
                                rel2 {
-                                       to, "pin";
+                                       to, "lock";
                                        relative, 0.0 1.0;
                                }
                                min, 0 22;
-                               align, 0.0 0.0;
                                fixed, 1 1;
+                               align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, PART_USER_EDIT_CONTENTS_PIN;
+                       name, PART_USER_EDIT_CONTENTS_LOCK;
                        type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.pin.down";
-                                       relative, 1.0 1.0;
-                               }
-                               rel2 {
-                                       to, "pad.pin.down";
+                                       to, "pad.lock.down";
                                        relative, 1.0 1.0;
                                }
-                               min, 436 64;
+                               rel2.to, "pad.lock.down";
+                               min, 104 54;
                                fixed, 1 1;
                                align, 0.0 0.0;
                        }
                }
                part {
-                       name, "pad.lock";
+                       name, "pad.require";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, PART_USER_EDIT_CONTENTS_PIN;
+                                       to, PART_USER_EDIT_CONTENTS_LOCK;
                                        relative, 0.0 1.0;
                                }
                                rel2 {
-                                       to, PART_USER_EDIT_CONTENTS_PIN;
+                                       to, PART_USER_EDIT_CONTENTS_LOCK;
                                        relative, 0.0 1.0;
                                }
-                               min, 0 32;
+                               min, 0 52;
                                fixed, 1 1;
                                align, 0.0 0.0;
                                visible, 0;
                        }
                }
                part {
-                       name, "lock";
-                       type, TEXT;
+                       name, "icon.require";
+                       type, IMAGE;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.lock";
+                                       to, "pad.require";
                                        relative, 1.0 1.0;
                                }
-                               rel2.to, "pad.lock";
-                               min, 436 32;
+                               rel2.to, "pad.require";
+                               min, 12 24;
                                fixed, 1 1;
                                align, 0.0 0.0;
-                               text {
-                                       font, "TizenSans";
-                                       size, 32;
-                                       text, "Privacy lock";
-                                       align, 0.0 0.5;
-                               }
-                               color, 77 77 77 255;
+                               image.normal, "ic_user_require_02.png";
                        }
                }
                part {
-                       name, "pad.lock.down";
+                       name, "pad.require.text";
                        type, RECT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "lock";
-                                       relative, 0.0 1.0;
+                                       to, "icon.require";
+                                       relative, 1.0 0.0;
                                }
                                rel2 {
-                                       to, "lock";
-                                       relative, 0.0 1.0;
+                                       to, "icon.require";
+                                       relative, 1.0 0.0;
                                }
-                               min, 0 22;
-                               fixed, 1 1;
+                               min, 6 0;
                                align, 0.0 0.0;
+                               fixed, 1 1;
                                visible, 0;
                        }
                }
                part {
-                       name, PART_USER_EDIT_CONTENTS_LOCK;
-                       type, SWALLOW;
+                       name, "require";
+                       type, TEXT;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                rel1 {
-                                       to, "pad.lock.down";
+                                       to, "pad.require.text";
                                        relative, 1.0 1.0;
                                }
-                               rel2.to, "pad.lock.down";
-                               min, 104 54;
+                               rel2 {
+                                       to, "pad.require.text";
+                                       relative, 1.0 1.0;
+                               }
+                               min, 294 24;
                                fixed, 1 1;
                                align, 0.0 0.0;
+                               text {
+                                       font, "TizenSans";
+                                       size, 24;
+                                       align, 0.0 0.5;
+                                       text, "Required fields";
+                               }
+                               color, 64 136 211 255;
                        }
                }
-
                part {
                        name, "pad.delete";
                        type, RECT;
@@ -643,15 +602,15 @@ group {
                                state, "default" 0.0;
                                rel1 {
                                        to, PART_USER_EDIT_CONTENTS_NAME;
-                                       relative, 1.0 0.0;
+                                       relative, 1.0 0.5;
                                }
                                rel2 {
                                        to, PART_USER_EDIT_CONTENTS_NAME;
-                                       relative, 1.0 0.0;
+                                       relative, 1.0 0.5;
                                }
                                min, 14 0;
                                fixed, 1 1;
-                               align, 0.0 0.0;
+                               align, 0.0 0.5;
                                visible, 0;
                        }
                }
@@ -663,18 +622,48 @@ group {
                                state, "default" 0.0;
                                rel1 {
                                        to, "pad.delete";
-                                       relative, 1.0 0.0;
+                                       relative, 1.0 0.5;
                                }
                                rel2 {
                                        to, "pad.delete";
-                                       relative, 1.0 0.0;
+                                       relative, 1.0 0.5;
                                }
                                min, 174 64;
                                fixed, 1 1;
-                               align, 0.0 0.0;
+                               align, 0.0 0.5;
                        }
                }
        }
+       programs {
+               program {
+                       name, "sig,focus";
+                       signal, SIG_FOCUS;
+                       source, SRC_PROG;
+                       action, STATE_SET "focus" 0.0;
+                       target, "border.name";
+               }
+               program {
+                       name, "sig,unfocus";
+                       signal, SIG_UNFOCUS;
+                       source, SRC_PROG;
+                       action, STATE_SET "default" 0.0;
+                       target, "border.name";
+               }
+               program {
+                       name, "sig,disable";
+                       signal, SIG_DISABLE;
+                       source, SRC_PROG;
+                       action, STATE_SET "disable" 0.0;
+                       target, "disable.name";
+               }
+               program {
+                       name, "sig,enable";
+                       signal, SIG_ENABLE;
+                       source, SRC_PROG;
+                       action, STATE_SET "default" 0.0;
+                       target, "disable.name";
+               }
+       }
 }
 
 group {
@@ -863,80 +852,6 @@ group {
 }
 
 group {
-       name, GRP_USER_EDIT_ENTRY;
-       parts {
-               part {
-                       name, "bg";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               min, 436 64;
-                               color, 194 194 194 255;
-                       }
-                       description {
-                               state, "focus" 0.0;
-                               inherit, "default" 0.0;
-                               color, 0 119 246 255;
-                       }
-                       description {
-                               state, "disable" 0.0;
-                               inherit, "default" 0.0;
-                               color, 194 194 194 120;
-                       }
-               }
-               part {
-                       name, "bg.entry";
-                       type, RECT;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               min, 432 60;
-                               rel1.relative, 0.5 0.5;
-                               rel2.relative, 0.5 0.5;
-                               fixed, 1 1;
-                       }
-               }
-               part {
-                       name, PART_USER_EDIT_ENTRY;
-                       type, SWALLOW;
-                       scale, 1;
-                       description {
-                               state, "default" 0.0;
-                               rel1.to, "bg.entry";
-                               rel2.to, "bg.entry";
-                               fixed, 1 1;
-                       }
-               }
-       }
-       programs {
-               program {
-                       name, "sig,focus";
-                       signal, SIG_FOCUS;
-                       source, SRC_PROG;
-                       action, STATE_SET "focus";
-                       transition, TRANSITION_LINEAR;
-                       target, "bg";
-               }
-               program {
-                       name, "sig,unfocus";
-                       signal, SIG_UNFOCUS;
-                       source, SRC_PROG;
-                       action, STATE_SET "default" 0.0;
-                       transition, TRANSITION_LINEAR;
-                       target, "bg";
-               }
-               program {
-                       name, "sig,disable";
-                       signal, SIG_DISABLE;
-                       source, SRC_PROG;
-                       action, STATE_SET "disable" 0.0;
-                       target, "bg";
-               }
-       }
-}
-
-group {
        name, GRP_USER_EDIT_DELETE;
        parts {
                part {
index 4f47793..752c66c 100644 (file)
@@ -25,6 +25,7 @@
 
 #define SRC_PROG "prog"
 #define SRC_EDJE "edje"
+#define SRC_ELM "elm"
 #define ICON_ADD "add"
 
 #define GRP_HOME "group.home"
 #define SIG_HIDE_RECENT "sig.hide.recent"
 #define SIG_HIDE_RECENT_DONE "sig.hide.recent.done"
 #define SIG_DISABLE "sig.disable"
+#define SIG_ENABLE "sig.enable"
 #define SIG_SHOW_MASK "sig.show.mask"
 #define SIG_SHOW "sig.show"
 #define SIG_HIDE "sig.hide"
 #define SIG_CLICK_ARROW "sig.click.arrow"
 #define SIG_SHOW_ARROW "sig.show.arrow"
 #define SIG_HIDE_ARROW "sig.hide.arrow"
+#define SIG_SELECT "elm,state,selected"
+#define SIG_UNSELECT "elm,state,unselected"
 
 #define TITLE_WIDTH "title.width"
 
 #define MESSAGE_DISCARD "Discard"
 #define MESSAGE_DELETE_CONTENTS "If you delete this user, their data will also be deleted."
 #define MESSAGE_DISCARD_CONTENTS "Discard all entered data?<br> If you are out of this screen, data won't be saved"
-#define MESSAGE_ENTRY_NAME "User Name"
-#define MESSAGE_ENTRY_PIN "Pin code"
 
 #define GUM_ATTR_NAME "username"
 #define GUM_ATTR_USERTYPE "usertype"
index cb24df5..aadb952 100644 (file)
@@ -18,7 +18,6 @@
 #include <app_debug.h>
 #include <stdbool.h>
 #include <app.h>
-#include <inputmgr.h>
 
 #include "utils.h"
 #include "defs.h"
@@ -313,35 +312,12 @@ Evas_Object *utils_add_button(Evas_Object *base, char *text, const char *part)
        return btn;
 }
 
-static void _entry_focused(int id, void *data, Evas_Object *obj,
-               Elm_Object_Item *item)
-{
-       elm_object_signal_emit(data, SIG_FOCUS, SRC_PROG);
-}
-
-static void _entry_unfocused(int id, void *data, Evas_Object *obj,
-               Elm_Object_Item *item)
-{
-       elm_object_signal_emit(data, SIG_UNFOCUS, SRC_PROG);
-}
-
-static input_handler entry_handle = {
-       .focused = _entry_focused,
-       .unfocused = _entry_unfocused
-};
-
 Evas_Object *utils_add_entry(Evas_Object *base, char *text, bool password,
                const char *part)
 {
-       Evas_Object *ly, *entry;
-
-       ly = utils_add_layout(base, GRP_USER_EDIT_ENTRY, false, part);
-       if (!ly) {
-               _ERR("failed to add entry layout");
-               return NULL;
-       }
+       Evas_Object *entry;
 
-       entry = elm_entry_add(ly);
+       entry = elm_entry_add(base);
        if (!entry) {
                _ERR("failed to add entry");
                return NULL;
@@ -362,9 +338,8 @@ Evas_Object *utils_add_entry(Evas_Object *base, char *text, bool password,
                        ELM_SCROLLER_POLICY_OFF);
        if (text)
                elm_entry_entry_set(entry, text);
-       elm_object_part_content_set(ly, PART_USER_EDIT_ENTRY, entry);
+       elm_object_part_content_set(base, part, entry);
 
-       inputmgr_add_callback(entry, 0, &entry_handle, ly);
        evas_object_show(entry);
 
        return entry;
index 6794072..0ef6b49 100644 (file)
@@ -34,7 +34,6 @@
 
 enum input_handler_type {
        INPUT_HANDLER_TYPE_PHOTO,
-       INPUT_HANDLER_TYPE_LOCK,
        INPUT_HANDLER_TYPE_DELETE,
        INPUT_HANDLER_TYPE_EO,
        INPUT_HANDLER_TYPE_BTN_DONE,
@@ -42,7 +41,8 @@ enum input_handler_type {
        INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD,
        INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL,
        INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_DELETE,
-       INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL
+       INPUT_HANDLER_TYPE_DELETE_POPUP_BTN_CANCEL,
+       INPUT_HANDLER_TYPE_ENTRY
 };
 
 enum user_item_type {
@@ -65,8 +65,6 @@ struct _priv {
        Evas_Object *ly;
        Evas_Object *photo;
        Evas_Object *name;
-       Evas_Object *pin;
-       Evas_Object *lock;
        Evas_Object *icon;
        Evas_Object *focus_icon;
        Evas_Object *done;
@@ -74,7 +72,6 @@ struct _priv {
        Evas_Object *ctxpopup;
        Evas_Object *del;
        Evas_Object *popup;
-       Evas_Object *lock_icon;
 
        char *selected_photo;
 
@@ -87,13 +84,19 @@ struct _priv {
 static void _focused(int id, void *data, Evas_Object *obj,
                Elm_Object_Item *item)
 {
+       struct _priv *priv;
+
        switch (id) {
        case INPUT_HANDLER_TYPE_PHOTO:
-       case INPUT_HANDLER_TYPE_LOCK:
        case INPUT_HANDLER_TYPE_DELETE:
        case INPUT_HANDLER_TYPE_EO:
                elm_object_signal_emit(obj, SIG_FOCUS, SRC_PROG);
                break;
+       case INPUT_HANDLER_TYPE_ENTRY:
+               priv = data;
+               elm_object_signal_emit(obj, SIG_SELECT, SRC_ELM);
+               elm_object_signal_emit(priv->ly, SIG_FOCUS, SRC_PROG);
+               break;
        default:
                 return;
        }
@@ -102,13 +105,19 @@ static void _focused(int id, void *data, Evas_Object *obj,
 static void _unfocused(int id, void *data, Evas_Object *obj,
                Elm_Object_Item *item)
 {
+       struct _priv *priv;
+
        switch (id) {
        case INPUT_HANDLER_TYPE_PHOTO:
-       case INPUT_HANDLER_TYPE_LOCK:
        case INPUT_HANDLER_TYPE_DELETE:
        case INPUT_HANDLER_TYPE_EO:
                elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG);
                break;
+       case INPUT_HANDLER_TYPE_ENTRY:
+               priv = data;
+               elm_object_signal_emit(obj, SIG_UNSELECT, SRC_ELM);
+               elm_object_signal_emit(priv->ly, SIG_UNFOCUS, SRC_PROG);
+               break;
        default:
                return;
        }
@@ -128,10 +137,9 @@ static input_handler handler = {
 };
 
 static void _get_profile(struct _priv *priv, const char **name,
-               const char **photo, const char **pin)
+               const char **photo)
 {
        *name = elm_entry_entry_get(priv->name);
-       *pin = elm_entry_entry_get(priv->pin);
        elm_image_file_get(priv->icon, photo, NULL);
        *photo = utils_get_icon_from_photo(*photo);
 }
@@ -179,18 +187,15 @@ static void _add_discard_popup(struct _priv *priv)
 
 static bool _check_changed_input(struct _priv *priv)
 {
-       const char *photo, *name, *pin;
+       const char *photo, *name;
 
-       _get_profile(priv, &name, &photo, &pin);
+       _get_profile(priv, &name, &photo);
 
        if (priv->di) {
-               if (!strcmp(name, priv->di->title) && !strcmp(pin, "") &&
-                               !strcmp(photo, priv->di->icon))
+               if (!strcmp(photo, priv->di->icon))
                        return false;
        } else {
-               if (!strcmp(name, MESSAGE_ENTRY_NAME) &&
-                               !strcmp(pin, MESSAGE_ENTRY_PIN) &&
-                               !strcmp(photo, IMAGE_USER_DEFAULT))
+               if (!strcmp(name, "") && !strcmp(photo, IMAGE_USER_DEFAULT))
                        return false;
        }
 
@@ -334,51 +339,9 @@ static void _add_icon_list(struct _priv *priv)
        priv->ctxpopup = ctxpopup;
 }
 
-static void _change_entry_status(Evas_Object *pin, Eina_Bool disable,
-               const char *signal)
-{
-       Evas_Object *parent;
-
-       elm_entry_editable_set(pin, disable);
-       parent = elm_object_parent_widget_get(pin);
-       if (parent)
-               elm_object_signal_emit(parent, signal, SRC_PROG);
-
-       elm_object_focus_allow_set(pin, disable);
-}
-
-static void _load_lock_icon(struct _priv *priv)
-{
-       const char *file = NULL;
-
-       if (!priv->lock_icon) {
-               priv->lock_icon = utils_add_icon(priv->lock, IMAGE_SWITCH_ON,
-                               PART_USER_EDIT_SWITCH);
-               _change_entry_status(priv->pin, EINA_TRUE, SIG_UNFOCUS);
-               return;
-       }
-
-       elm_image_file_get(priv->lock_icon, &file, NULL);
-       elm_object_part_content_unset(priv->lock, PART_USER_EDIT_SWITCH);
-       evas_object_del(priv->lock_icon);
-
-       if (!file || !strcmp(file, IMAGE_SWITCH_OFF)) {
-               file = IMAGE_SWITCH_ON;
-               _change_entry_status(priv->pin, EINA_TRUE, SIG_UNFOCUS);
-               elm_entry_entry_set(priv->pin, MESSAGE_ENTRY_PIN);
-       } else {
-               file = IMAGE_SWITCH_OFF;
-               _change_entry_status(priv->pin, EINA_FALSE, SIG_DISABLE);
-               elm_entry_entry_set(priv->pin, "");
-       }
-
-       priv->lock_icon = utils_add_icon(priv->lock, file,
-                       PART_USER_EDIT_SWITCH);
-}
-
 static Evas_Object *_add_layout(struct _priv *priv)
 {
-       Evas_Object *ly, *photo, *name, *pin, *lock;
+       Evas_Object *ly, *photo, *name, *lock;
 
        ly = utils_add_layout(priv->base, GRP_USER_EDIT_CONTENTS, false,
                        PART_USER_EDIT_CONTENTS);
@@ -397,23 +360,18 @@ static Evas_Object *_add_layout(struct _priv *priv)
        if (!name)
                goto err;
 
-       pin = utils_add_entry(ly, MESSAGE_ENTRY_PIN, false,
-                       PART_USER_EDIT_CONTENTS_PIN);
-       if (!pin)
-               goto err;
-
-       lock = utils_add_layout(ly, GRP_USER_EDIT_SWITCH, true,
+       lock = utils_add_layout(ly, GRP_USER_EDIT_SWITCH, false,
                        PART_USER_EDIT_CONTENTS_LOCK);
        if (!lock)
                goto err;
 
-       inputmgr_add_callback(lock, INPUT_HANDLER_TYPE_LOCK, &handler, priv);
+       utils_add_icon(lock, IMAGE_SWITCH_OFF, PART_USER_EDIT_SWITCH);
+
        inputmgr_add_callback(photo, INPUT_HANDLER_TYPE_PHOTO, &handler, priv);
+       inputmgr_add_callback(name, INPUT_HANDLER_TYPE_ENTRY, &handler, priv);
 
-       priv->lock = lock;
        priv->photo = photo;
        priv->name = name;
-       priv->pin = pin;
 
        return ly;
 err:
@@ -438,8 +396,6 @@ static bool _add_user_edit(struct _priv *priv)
                return false;
        }
 
-       /* It should be implemented later about function btn */
-
        priv->ly = ly;
 
        return true;
@@ -545,18 +501,17 @@ static void _select_eo(struct _priv *priv, Evas_Object *obj)
 
 static void _select_btn_done(struct _priv *priv)
 {
-       const char *name, *pin, *photo;
+       const char *name, *photo;
 
-       _get_profile(priv, &name, &photo, &pin);
+       _get_profile(priv, &name, &photo);
        if (priv->di) {
                priv->di->action = ITEM_SELECT_ACTION_UPDATE;
                priv->di->title = strdup(name ? name : "");
                priv->di->icon = strdup(photo ? photo :
                                IMAGE_USER_DEFAULT);
-               priv->di->parameter = strdup(pin ? pin : "");
                datamgr_select_item(priv->dm, priv->di);
        } else
-               datamgr_add_item(priv->dm, name, photo, pin);
+               datamgr_add_item(priv->dm, name, photo, "");
 
        priv->di = NULL;
        viewmgr_pop_view();
@@ -568,9 +523,6 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj)
        case INPUT_HANDLER_TYPE_PHOTO:
                _add_icon_list(priv);
                break;
-       case INPUT_HANDLER_TYPE_LOCK:
-               _load_lock_icon(priv);
-               break;
        case INPUT_HANDLER_TYPE_DELETE:
                _add_delete_popup(priv);
                break;
@@ -620,6 +572,17 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
        if (!strcmp(ev->keyname, KEY_BACK) ||
                        !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                switch (id) {
+               case INPUT_HANDLER_TYPE_PHOTO:
+               case INPUT_HANDLER_TYPE_BTN_DONE:
+               case INPUT_HANDLER_TYPE_BTN_CANCEL:
+               case INPUT_HANDLER_TYPE_DELETE:
+               case INPUT_HANDLER_TYPE_ENTRY:
+                       if (_check_changed_input(priv)) {
+                               _add_discard_popup(priv);
+                               return;
+                       }
+                       viewmgr_pop_view();
+                       break;
                case INPUT_HANDLER_TYPE_EO:
                        evas_object_del(priv->ctxpopup);
                        priv->ctxpopup = NULL;
@@ -638,8 +601,12 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
                        return;
                }
        } else if (!strcmp(ev->keyname, KEY_ENTER) ||
-                       !strcmp(ev->keyname, KEY_ENTER_REMOTE))
+                       !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
                _select(priv, id, obj);
+       } else if (!strcmp(ev->keyname, KEY_RIGHT)) {
+               if (id == INPUT_HANDLER_TYPE_PHOTO && priv->del)
+                       elm_object_focus_set(priv->del, EINA_TRUE);
+       }
 }
 
 static void _mouse_down(int id, void *data, Evas *e, Evas_Object *obj,
@@ -671,6 +638,15 @@ static void _load_del_btn(struct _priv *priv)
        priv->del = btn;
 }
 
+static void _change_entry(Evas_Object *name, Evas_Object *ly, Eina_Bool disable,
+               const char *text, const char *signal)
+{
+       elm_entry_entry_set(name, text);
+       elm_object_focus_allow_set(name, disable);
+       elm_entry_editable_set(name, disable);
+       elm_object_signal_emit(ly, signal, SRC_PROG);
+}
+
 static void _show(void *data)
 {
        struct _priv *priv;
@@ -686,8 +662,8 @@ static void _show(void *data)
        if (priv->di) {
                elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
                                MESSAGE_EDIT_USER);
-               elm_entry_entry_set(priv->name, priv->di->title);
-               elm_entry_entry_set(priv->pin, "");
+               _change_entry(priv->name, priv->ly, EINA_FALSE, priv->di->title,
+                               SIG_DISABLE);
                if (priv->selected_photo) {
                        _load_user_icon(priv, priv->selected_photo,
                                        priv->selected_photo);
@@ -702,8 +678,7 @@ static void _show(void *data)
        } else {
                elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
                                MESSAGE_ADD_USER);
-               elm_entry_entry_set(priv->name, MESSAGE_ENTRY_NAME);
-               elm_entry_entry_set(priv->pin, MESSAGE_ENTRY_PIN);
+               _change_entry(priv->name, priv->ly, EINA_TRUE, "", SIG_ENABLE);
                if (priv->selected_photo)
                        _load_user_icon(priv, priv->selected_photo,
                                        priv->selected_photo);
@@ -712,7 +687,6 @@ static void _show(void *data)
                                        IMAGE_USER_CURRENT_DEFAULT_FOCUS);
        }
 
-       _load_lock_icon(priv);
        evas_object_show(priv->base);
        elm_object_focus_set(priv->cancel, EINA_TRUE);
 }
@@ -733,11 +707,6 @@ static void _hide(void *data)
                priv->del = NULL;
        }
 
-       if (priv->lock_icon) {
-               evas_object_del(priv->lock_icon);
-               priv->lock_icon = NULL;
-       }
-
        priv->selected_photo = NULL;
        evas_object_hide(priv->base);
 }
@@ -754,7 +723,6 @@ static void _destroy(void *data)
        priv = data;
 
        inputmgr_remove_callback(priv->photo, &handler);
-       inputmgr_remove_callback(priv->lock, &handler);
        inputmgr_remove_callback(priv->done, &handler);
        inputmgr_remove_callback(priv->cancel, &handler);
        viewmgr_remove_view(VIEW_PHOTO);