diff options
author | Soohye Shin <soohye.shin@samsung.com> | 2015-12-10 17:39:32 +0900 |
---|---|---|
committer | Soohye Shin <soohye.shin@samsung.com> | 2015-12-10 17:39:32 +0900 |
commit | 0c3863d34c4a95cd0b9733e5d8b2cea06e68d153 (patch) | |
tree | c390cc1a387d846415ab42da4f32a9f8efcb9645 | |
parent | 42a1b2425ae76e166db7818105286a1cac861896 (diff) | |
download | air_home-0c3863d34c4a95cd0b9733e5d8b2cea06e68d153.tar.gz air_home-0c3863d34c4a95cd0b9733e5d8b2cea06e68d153.tar.bz2 air_home-0c3863d34c4a95cd0b9733e5d8b2cea06e68d153.zip |
modify user edit view
Change-Id: I49c9e4ba1c54d6f9c0f090198ceb03efecb972e4
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
-rw-r--r-- | edje/view/useredit.edc | 516 | ||||
-rw-r--r-- | include/defs.h | 2 | ||||
-rw-r--r-- | src/data/data_user.c | 3 | ||||
-rw-r--r-- | src/view/view_user_edit.c | 271 |
4 files changed, 121 insertions, 671 deletions
diff --git a/edje/view/useredit.edc b/edje/view/useredit.edc index 258ef38..8ddcddc 100644 --- a/edje/view/useredit.edc +++ b/edje/view/useredit.edc @@ -140,7 +140,7 @@ group { to, "contents"; relative, 0.5 0.5; } - min, 1128 378; + min, 812 348; fixed, 1 1; } } @@ -149,12 +149,6 @@ group { group { name, GRP_USER_EDIT_CONTENTS; - images { - 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 { name, "bg"; @@ -162,20 +156,7 @@ group { scale, 1; description { state, "default" 0.0; - min, 1128 378; - visible, 0; - } - } - part { - name, "pad"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - min, 138 0; - rel2.relative, 0.0 1.0; - fixed, 1 0; - align, 0.0 0.5; + min, 812 348; visible, 0; } } @@ -185,14 +166,7 @@ group { scale, 1; description { state, "default" 0.0; - rel1 { - to, "pad"; - relative, 1.0 0.0; - } - rel2 { - to, "pad"; - relative, 1.0 0.0; - } + rel2.relative, 0.0 0.0; min, 90 32; fixed, 1 1; align, 0.0 0.0; @@ -206,46 +180,6 @@ group { } } part { - name, "pad.photo.require"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "photo"; - relative, 1.0 0.0; - } - rel2 { - to, "photo"; - relative, 1.0 0.0; - } - min, 6 0; - fixed, 1 1; - align, 0.0 0.0; - visible, 0; - } - } - part { - name, "photo.require"; - type, IMAGE; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "pad.photo.require"; - relative, 1.0 0.0; - } - rel2 { - to, "pad.photo.require"; - relative, 1.0 0.0; - } - min, 16 20; - fixed, 1 1; - align, 0.0 0.0; - image.normal, "ic_user_require_01.png"; - } - } - part { name, "pad.photo"; type, RECT; scale, 1; @@ -285,89 +219,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 26; - 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, FONT_LIGHT; - size, 24; - align, 0.0 0.5; - text, "Required fields"; - } - color, 64 136 211 255; - } - } - part { name, "pad.profile"; type, RECT; scale, 1; @@ -414,26 +265,6 @@ group { } } part { - name, "name.require"; - type, IMAGE; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "name"; - relative, 1.0 0.0; - } - rel2 { - to, "name"; - relative, 1.0 0.0; - } - min, 16 20; - fixed, 1 1; - align, 0.0 0.0; - image.normal, "ic_user_require_01.png"; - } - } - part { name, "pad.name"; type, RECT; scale, 1; @@ -463,13 +294,13 @@ group { relative, 1.0 1.0; } rel2.to, "pad.name"; - min, 436 64; + min, 446 64; fixed, 1 1; align, 0.0 0.0; } } part { - name, "pad.pin"; + name, "pad.delete"; type, RECT; scale, 1; description { @@ -489,144 +320,24 @@ group { } } part { - name, "pin"; - type, TEXT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "pad.pin"; - relative, 1.0 1.0; - } - rel2.to, "pad.pin"; - min, 436 32; - fixed, 1 1; - align, 0.0 0.0; - text { - font, FONT_LIGHT; - size, 32; - text, "Pin code"; - align, 0.0 0.5; - } - color, 77 77 77 255; - } - } - part { - name, "pad.pin.down"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "pin"; - relative, 0.0 1.0; - } - rel2 { - to, "pin"; - relative, 0.0 1.0; - } - min, 0 22; - fixed, 1 1; - align, 0.0 0.0; - visible, 0; - } - } - part { - name, PART_USER_EDIT_CONTENTS_PIN; + name, PART_USER_EDIT_CONTENTS_DELETE; type, SWALLOW; scale, 1; description { state, "default" 0.0; rel1 { - to, "pad.pin.down"; - relative, 0.0 1.0; - } - rel2 { - to, "pad.pin.down"; - relative, 0.0 1.0; - } - min, 298 64; - fixed, 1 1; - align, 0.0 0.0; - } - } - part { - name, "pad.lock"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, PART_USER_EDIT_CONTENTS_PIN; - relative, 0.0 1.0; - } - rel2 { - to, PART_USER_EDIT_CONTENTS_PIN; - relative, 0.0 1.0; - } - min, 0 42; - fixed, 1 1; - align, 0.0 0.0; - visible, 0; - } - } - part { - name, "lock"; - type, TEXT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "pad.lock"; - relative, 1.0 1.0; - } - rel2.to, "pad.lock"; - min, 436 32; - fixed, 1 1; - align, 0.0 0.0; - text { - font, FONT_LIGHT; - size, 32; - text, "Privacy lock"; - align, 0.0 0.5; - } - color, 77 77 77 255; - } - } - part { - name, "pad.lock.down"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "lock"; + to, "pad.delete"; relative, 0.0 1.0; } rel2 { - to, "lock"; + to, "pad.delete"; relative, 0.0 1.0; } - min, 0 22; - fixed, 1 1; - align, 0.0 0.0; - visible, 0; - } - } - part { - name, PART_USER_EDIT_CONTENTS_LOCK; - type, SWALLOW; - scale, 1; - description { - state, "default" 0.0; - rel1 { - to, "pad.lock.down"; - relative, 1.0 1.0; - } - rel2.to, "pad.lock.down"; - min, 104 54; + min, 174 64; fixed, 1 1; align, 0.0 0.0; + color, 0 0 255 255; + visible, 1; } } } @@ -756,11 +467,7 @@ group { } group { - name, GRP_USER_EDIT_SWITCH; - images { - image, "btn_switch_off_nor.png" COMP; - image, "btn_switch_on_nor.png" COMP; - } + name, GRP_USER_EDIT_ICON_LIST; parts { part { name, "bg"; @@ -768,36 +475,33 @@ group { scale, 1; description { state, "default" 0.0; - min, 104 54; - visible, 0; + min, 589 295; + color, 194 194 194 255; } } part { - name, "switch"; - type, IMAGE; + name, PART_USER_EDIT_ICON_LIST; + type, SWALLOW; scale, 1; description { state, "default" 0.0; fixed, 1 1; - image.normal, "btn_switch_on_nor.png"; - } - description { - state, "disable" 0.0; - inherit, "default" 0.0; - image.normal, "btn_switch_off_nor.png"; } } + } +} + +group { + name, GRP_USER_EDIT_ICON_LIST_ITEM; + parts { part { - name, "pad.up"; + name, "bg"; type, RECT; scale, 1; description { state, "default" 0.0; - min, 0 3; - rel2.relative, 1.0 0.0; - fixed, 0 1; - align, 0.5 0.0; - color, 0 0 0 0; + min, 146 146; + color, 255 255 255 255; } description { state, "focus" 0.0; @@ -806,71 +510,41 @@ group { } } part { - name, "pad.left"; + name, "clip"; type, RECT; scale, 1; description { state, "default" 0.0; - min, 3 0; - rel1 { - to, "pad.up"; - relative, 0.0 1.0; - } - rel2.relative, 0.0 1.0; - fixed, 1 0; - align, 0.0 0.5; color, 0 0 0 0; } description { state, "focus" 0.0; inherit, "default" 0.0; - color, 0 119 246 255; + color, 255 255 255 255; } } part { - name, "pad.right"; - type, RECT; + name, PART_USER_EDIT_ICON_LIST_ITEM; + type, SWALLOW; scale, 1; description { state, "default" 0.0; - min, 3 0; - rel1 { - to, "pad.up"; - relative, 1.0 1.0; - } - fixed, 1 0; - align, 1.0 0.5; - color, 0 0 0 0; - } - description { - state, "focus" 0.0; - inherit, "default" 0.0; - color, 0 119 246 255; + min, 70 70; + rel1.relative, 0.5 0.5; + rel2.relative, 0.5 0.5; + fixed, 1 1; } } part { - name, "pad.down"; - type, RECT; + name, PART_USER_EDIT_ICON_LIST_ITEM_FOCUS; + type, SWALLOW; scale, 1; + clip_to, "clip"; description { state, "default" 0.0; - min, 0 3; - rel1 { - to, "pad.left"; - relative, 1.0 1.0; - } - rel2 { - to, "pad.right"; - relative, 0.0 1.0; - } - fixed, 0 1; - align, 0.5 1.0; - color, 0 0 0 0; - } - description { - state, "focus" 0.0; - inherit, "default" 0.0; - color, 0 119 246 255; + rel1.to, PART_USER_EDIT_ICON_LIST_ITEM; + rel2.to, PART_USER_EDIT_ICON_LIST_ITEM; + fixed, 1 1; } } } @@ -880,42 +554,24 @@ group { signal, SIG_FOCUS; source, SRC_PROG; action, STATE_SET "focus" 0.0; - transition, TRANSITION_LINEAR; - target, "pad.up"; - target, "pad.right"; - target, "pad.left"; - target, "pad.down"; + transition, TRANSITION_DECEL; + target, "clip"; + target, "bg"; } program { name, "sig,unfocus"; signal, SIG_UNFOCUS; source, SRC_PROG; action, STATE_SET "default" 0.0; - transition, TRANSITION_LINEAR; - target, "pad.up"; - target, "pad.right"; - target, "pad.left"; - target, "pad.down"; - } - program { - name, "sig,disable"; - signal, SIG_DISABLE; - source, SRC_PROG; - action, STATE_SET "disable" 0.0; - target, "switch"; - } - program { - name, "sig,enable"; - signal, SIG_ENABLE; - source, SRC_PROG; - action, STATE_SET "default" 0.0; - target, "switch"; + transition, TRANSITION_DECEL; + target, "clip"; + target, "bg"; } } } group { - name, GRP_USER_EDIT_ICON_LIST; + name, GRP_USER_EDIT_DELETE; parts { part { name, "bg"; @@ -923,76 +579,32 @@ group { scale, 1; description { state, "default" 0.0; - min, 589 295; - color, 194 194 194 255; - } - } - part { - name, PART_USER_EDIT_ICON_LIST; - type, SWALLOW; - scale, 1; - description { - state, "default" 0.0; - fixed, 1 1; - } - } - } -} - -group { - name, GRP_USER_EDIT_ICON_LIST_ITEM; - parts { - part { - name, "bg"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - min, 146 146; - color, 255 255 255 255; + min, 174 64; + color, 126 145 172 255; } description { state, "focus" 0.0; inherit, "default" 0.0; color, 0 119 246 255; } - } - part { - name, "clip"; - type, RECT; - scale, 1; - description { - state, "default" 0.0; - color, 0 0 0 0; - } description { - state, "focus" 0.0; + state, "disable" 0.0; inherit, "default" 0.0; - color, 255 255 255 255; - } - } - part { - name, PART_USER_EDIT_ICON_LIST_ITEM; - type, SWALLOW; - scale, 1; - description { - state, "default" 0.0; - min, 70 70; - rel1.relative, 0.5 0.5; - rel2.relative, 0.5 0.5; - fixed, 1 1; + color, 166 166 166 255; } } part { - name, PART_USER_EDIT_ICON_LIST_ITEM_FOCUS; - type, SWALLOW; + name, "delete"; + type, TEXT; scale, 1; - clip_to, "clip"; description { state, "default" 0.0; - rel1.to, PART_USER_EDIT_ICON_LIST_ITEM; - rel2.to, PART_USER_EDIT_ICON_LIST_ITEM; fixed, 1 1; + text { + text, "Delete user"; + size, 28; + font, FONT_LIGHT; + } } } } @@ -1002,8 +614,7 @@ group { signal, SIG_FOCUS; source, SRC_PROG; action, STATE_SET "focus" 0.0; - transition, TRANSITION_DECEL; - target, "clip"; + transition, TRANSITION_LINEAR; target, "bg"; } program { @@ -1011,8 +622,15 @@ group { signal, SIG_UNFOCUS; source, SRC_PROG; action, STATE_SET "default" 0.0; - transition, TRANSITION_DECEL; - target, "clip"; + transition, TRANSITION_LINEAR; + target, "bg"; + } + program { + name, "sig,disable"; + signal, SIG_DISABLE; + source, SRC_PROG; + action, STATE_SET "disable" 0.0; + transition, TRANSITION_LINEAR; target, "bg"; } } diff --git a/include/defs.h b/include/defs.h index 104719b..0218117 100644 --- a/include/defs.h +++ b/include/defs.h @@ -45,6 +45,7 @@ #define GRP_USER_EDIT_SWITCH "group.user.edit.switch" #define GRP_USER_EDIT_PHOTO "group.user.edit.photo" #define GRP_USER_EDIT_ENTRY "group.user.edit.entry" +#define GRP_USER_EDIT_DELETE "group.user.edit.delete" #define GRP_USER_EDIT_ICON_LIST "group.user.edit.icon.list" #define GRP_USER_EDIT_ICON_LIST_ITEM "group.user.edit.icon.list.item" #define GRP_BAR_ITEM "group.bar.item" @@ -77,6 +78,7 @@ #define PART_USER_EDIT_CONTENTS_NAME "part.user.edit.contents.name" #define PART_USER_EDIT_CONTENTS_PIN "part.user.edit.contents.pin" #define PART_USER_EDIT_CONTENTS_LOCK "part.user.edit.contents.lock" +#define PART_USER_EDIT_CONTENTS_DELETE "part.user.edit.contents.delete" #define PART_USER_EDIT_PHOTO "part.user.edit.photo" #define PART_USER_EDIT_PHOTO_FOCUS "part.user.edit.photo.focus" #define PART_USER_EDIT_ENTRY "part.user.edit.entry" diff --git a/src/data/data_user.c b/src/data/data_user.c index fb2a1f1..6738568 100644 --- a/src/data/data_user.c +++ b/src/data/data_user.c @@ -136,8 +136,7 @@ static int _update(struct datamgr_item *di) return ITEM_SELECT_ERROR_INVALID_OPERATION; } - g_object_set(G_OBJECT(user), GUM_ATTR_PASSWORD, di->parameter, - GUM_ATTR_ICON, di->icon, NULL); + g_object_set(G_OBJECT(user), GUM_ATTR_ICON, di->icon, NULL); r = gum_user_update_sync(user); if (!r) { diff --git a/src/view/view_user_edit.c b/src/view/view_user_edit.c index f85285f..e67b5d6 100644 --- a/src/view/view_user_edit.c +++ b/src/view/view_user_edit.c @@ -31,22 +31,18 @@ #define CTXPOPUP_Y 310 #define MAX_BUF 128 #define MAX_PHOTO 160 -#define COUNT_PIN 4 -#define PADDING_PIN 14 #define CHARACTER_PATTERN "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define PIN_PATTERN "0123456789" enum input_handler_type { INPUT_HANDLER_TYPE_PHOTO, + INPUT_HANDLER_TYPE_DELETE, INPUT_HANDLER_TYPE_EO, INPUT_HANDLER_TYPE_BTN_DONE, INPUT_HANDLER_TYPE_BTN_CANCEL, INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD, INPUT_HANDLER_TYPE_POPUP_BTN_CANCEL, - INPUT_HANDLER_TYPE_ENTRY, - INPUT_HANDLER_TYPE_LOCK, - INPUT_HANDLER_TYPE_PIN + INPUT_HANDLER_TYPE_ENTRY }; enum user_item_type { @@ -68,8 +64,7 @@ struct _priv { Evas_Object *cancel; Evas_Object *ctxpopup; Evas_Object *popup; - Evas_Object *lock; - Evas_Object *pin[COUNT_PIN]; + Evas_Object *delete; Eina_Bool locked; char *selected_photo; @@ -80,32 +75,16 @@ struct _priv { enum user_item_type user_type; }; -static void _reset_pin(struct _priv *priv, bool focus) -{ - int i; - - for (i = 0; i < COUNT_PIN; i++) { - elm_entry_entry_set(priv->pin[i], ""); - elm_object_focus_allow_set(priv->pin[i], EINA_FALSE); - elm_object_signal_emit(priv->pin[i], SIG_ENABLE, SRC_ELM); - } - - elm_object_focus_allow_set(priv->pin[0], EINA_TRUE); - if (focus) - elm_object_focus_set(priv->pin[0], EINA_TRUE); -} - static void _focused(int id, void *data, Evas_Object *obj, Elm_Object_Item *item) { switch (id) { case INPUT_HANDLER_TYPE_PHOTO: + case INPUT_HANDLER_TYPE_DELETE: case INPUT_HANDLER_TYPE_EO: - case INPUT_HANDLER_TYPE_LOCK: elm_object_signal_emit(obj, SIG_FOCUS, SRC_PROG); break; case INPUT_HANDLER_TYPE_ENTRY: - case INPUT_HANDLER_TYPE_PIN: elm_object_signal_emit(obj, SIG_SELECT, SRC_ELM); break; default: @@ -119,11 +98,10 @@ static void _unfocused(int id, void *data, Evas_Object *obj, switch (id) { case INPUT_HANDLER_TYPE_PHOTO: case INPUT_HANDLER_TYPE_EO: - case INPUT_HANDLER_TYPE_LOCK: + case INPUT_HANDLER_TYPE_DELETE: elm_object_signal_emit(obj, SIG_UNFOCUS, SRC_PROG); break; case INPUT_HANDLER_TYPE_ENTRY: - case INPUT_HANDLER_TYPE_PIN: elm_object_signal_emit(obj, SIG_UNSELECT, SRC_ELM); break; default: @@ -211,23 +189,13 @@ static void _add_discard_popup(struct _priv *priv) static bool _check_changed_input(struct _priv *priv) { const char *photo, *name; - int i; /** * Default value * - * locked is true, pin and name is empty. * Icon is user icon or default icon */ - if (!priv->locked) - return true; - - for (i = 0; i < COUNT_PIN; i++) { - if (!elm_entry_is_empty(priv->pin[i])) - return true; - } - _get_profile(priv, &name, &photo); if (priv->di) { @@ -412,55 +380,9 @@ static void _add_icon_list(struct _priv *priv) priv->ctxpopup = ctxpopup; } -static bool _add_pin(Evas_Object *ly, struct _priv *priv) -{ - Evas_Object *pin, *box; - Elm_Entry_Filter_Limit_Size pin_size = { - .max_char_count = 1, - }; - Elm_Entry_Filter_Accept_Set pin_char = { - .accepted = PIN_PATTERN, - }; - int i; - - box = utils_add_box(ly, true); - if (!box) { - _ERR("failed to add box"); - return false; - } - elm_object_part_content_set(ly, PART_USER_EDIT_CONTENTS_PIN, box); - elm_box_padding_set(box, PADDING_PIN, 0); - - for (i = 0; i < COUNT_PIN; i++) { - pin = utils_add_entry(box, true, false, NULL, - STYLE_INPUT_PIN); - if (!pin) { - _ERR("failed to add entry"); - memset(priv->pin, 0x00, sizeof(priv->pin)); - evas_object_del(box); - return false; - } - elm_entry_markup_filter_append(pin, elm_entry_filter_limit_size, - &pin_size); - elm_entry_markup_filter_append(pin, elm_entry_filter_accept_set, - &pin_char); - - elm_box_pack_end(box, pin); - - inputmgr_add_callback(pin, INPUT_HANDLER_TYPE_PIN, &handler, - priv); - priv->pin[i] = pin; - if (i != 0) - elm_object_focus_allow_set(pin, EINA_FALSE); - - } - - return true; -} - static Evas_Object *_add_layout(struct _priv *priv) { - Evas_Object *ly, *photo, *name, *lock; + Evas_Object *ly, *photo, *name; Elm_Entry_Filter_Accept_Set name_char = { .accepted = CHARACTER_PATTERN, }; @@ -484,23 +406,11 @@ static Evas_Object *_add_layout(struct _priv *priv) elm_entry_markup_filter_append(name, elm_entry_filter_accept_set, &name_char); - lock = utils_add_layout(ly, GRP_USER_EDIT_SWITCH, true, - PART_USER_EDIT_CONTENTS_LOCK); - if (!lock) - goto err; - - if (!_add_pin(ly, priv)) { - _ERR("failed to add pin"); - goto err; - } - inputmgr_add_callback(photo, INPUT_HANDLER_TYPE_PHOTO, &handler, priv); inputmgr_add_callback(name, INPUT_HANDLER_TYPE_ENTRY, &handler, priv); - inputmgr_add_callback(lock, INPUT_HANDLER_TYPE_LOCK, &handler, priv); priv->photo = photo; priv->name = name; - priv->lock = lock; return ly; err: @@ -607,19 +517,24 @@ static void _select_eo(struct _priv *priv, Evas_Object *obj) static void _reset(struct _priv *priv); -static void _update_user(struct _priv *priv, const char *pincode) +static void _update_user(struct _priv *priv) { const char *name, *photo; char buf[MAX_BUF]; _get_profile(priv, &name, &photo); + if (!strcmp(name, "")) { + elm_object_focus_set(priv->name, EINA_TRUE); + return; + } + 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(pincode ? pincode : ""); + priv->di->parameter = strdup(""); snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_UPDATE); if (datamgr_select_item(priv->dm, priv->di) != ITEM_SELECT_ERROR_NONE) { @@ -628,8 +543,7 @@ static void _update_user(struct _priv *priv, const char *pincode) } } else { snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_ADD); - if (!datamgr_add_item(priv->dm, name, photo, - pincode ? pincode : "")) { + if (!datamgr_add_item(priv->dm, name, photo, "")) { _reset(priv); return; } @@ -640,79 +554,28 @@ static void _update_user(struct _priv *priv, const char *pincode) viewmgr_pop_view(); } -static void _disable_pin(struct _priv *priv) -{ - int i; - - for (i = 0; i < COUNT_PIN; i++) { - elm_entry_entry_set(priv->pin[i], ""); - elm_object_focus_allow_set(priv->pin[i], EINA_FALSE); - elm_object_signal_emit(priv->pin[i], SIG_DISABLE, SRC_ELM); - } -} - -static bool _check_done(struct _priv *priv) -{ - int i; - const char *entry; - - entry = elm_entry_entry_get(priv->name); - if (!entry) { - _ERR("failed to get entry"); - return false; - } - - if (!strcmp(entry, "")) { - elm_object_focus_set(priv->name, EINA_TRUE); - return false; - } - - if (!priv->locked) { - _update_user(priv, NULL); - return false; - } - - for (i = 0; i < COUNT_PIN; i++) { - if (elm_entry_is_empty(priv->pin[i])) { - elm_object_focus_set(priv->pin[i], EINA_TRUE); - return false; - } - } - - return true; -} - -static void _select_done(struct _priv *priv) +static void _delete_user(struct _priv *priv) { - char pincode[8]; + char buf[MAX_BUF]; - if (!_check_done(priv)) + priv->di->action = ITEM_SELECT_ACTION_DELETE; + if (datamgr_select_item(priv->dm, priv->di) != ITEM_SELECT_ERROR_NONE) { + _ERR("failed to delete user"); return; + } - snprintf(pincode, sizeof(pincode), "%s%s%s%s", - elm_entry_entry_get(priv->pin[0]), - elm_entry_entry_get(priv->pin[1]), - elm_entry_entry_get(priv->pin[2]), - elm_entry_entry_get(priv->pin[3])); - - viewmgr_update_view(VIEW_PIN, UPDATE_TYPE_PIN_CODE, pincode); - viewmgr_show_view(VIEW_PIN); + snprintf(buf, sizeof(buf), "%s %s", priv->di->title, + MESSAGE_USER_DELETE); + utils_add_toast(priv->win, buf); + priv->di = NULL; + viewmgr_pop_view(); } static void _select(struct _priv *priv, int id, Evas_Object *obj) { switch (id) { - case INPUT_HANDLER_TYPE_LOCK: - if (priv->locked) { - _disable_pin(priv); - elm_object_signal_emit(priv->lock, SIG_DISABLE, - SRC_PROG); - } else { - _reset_pin(priv, false); - elm_object_signal_emit(priv->lock, SIG_ENABLE, - SRC_PROG); - } - priv->locked = !priv->locked; + case INPUT_HANDLER_TYPE_DELETE: + _delete_user(priv); break; case INPUT_HANDLER_TYPE_PHOTO: _add_icon_list(priv); @@ -724,7 +587,7 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj) elm_object_focus_set(priv->done, EINA_TRUE); break; case INPUT_HANDLER_TYPE_BTN_DONE: - _select_done(priv); + _update_user(priv); break; case INPUT_HANDLER_TYPE_BTN_CANCEL: if (_check_changed_input(priv)) { @@ -745,36 +608,6 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj) } } -static void _select_pin(struct _priv *priv, Evas_Object *obj) -{ - int i, j, v; - - for (i = 0; i < COUNT_PIN; i++) { - if (priv->pin[i] == obj) - break; - } - - if (i == 0) { - for (j = 1; j < COUNT_PIN; j++) { - elm_entry_entry_set(priv->pin[j], ""); - elm_object_signal_emit(priv->pin[j], - SIG_ENABLE, SRC_ELM); - } - } - - v = (i + 1) % COUNT_PIN; - elm_object_focus_allow_set(priv->pin[v], EINA_TRUE); - if (v == 0) { - elm_object_focus_set(priv->done, EINA_TRUE); - elm_object_signal_emit(priv->pin[v], - SIG_ENABLE, SRC_ELM); - } else - elm_object_focus_set(priv->pin[v], EINA_TRUE); - - elm_object_signal_emit(obj, SIG_DISABLE, SRC_ELM); - elm_object_focus_allow_set(obj, EINA_FALSE); -} - /* FIXME: block action menu */ @@ -822,7 +655,7 @@ static void _key_up(int id, void *data, Evas *e, Evas_Object *obj, } viewmgr_pop_view(); } else if (!strcmp(ev->keyname, KEY_ENTER)) { - _select_done(priv); + _update_user(priv); } } @@ -841,10 +674,9 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj, !strcmp(ev->keyname, KEY_ESC)) { switch (id) { case INPUT_HANDLER_TYPE_PHOTO: + case INPUT_HANDLER_TYPE_DELETE: case INPUT_HANDLER_TYPE_BTN_CANCEL: case INPUT_HANDLER_TYPE_ENTRY: - case INPUT_HANDLER_TYPE_PIN: - case INPUT_HANDLER_TYPE_LOCK: if (_check_changed_input(priv)) { _add_discard_popup(priv); return; @@ -864,18 +696,6 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj, } else if (!strcmp(ev->keyname, KEY_ENTER)) { _select(priv, id, obj); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; - } else if (!strcmp(ev->keyname, KEY_0) || - !strcmp(ev->keyname, KEY_1) || - !strcmp(ev->keyname, KEY_2) || - !strcmp(ev->keyname, KEY_3) || - !strcmp(ev->keyname, KEY_4) || - !strcmp(ev->keyname, KEY_5) || - !strcmp(ev->keyname, KEY_6) || - !strcmp(ev->keyname, KEY_7) || - !strcmp(ev->keyname, KEY_8) || - !strcmp(ev->keyname, KEY_9)) { - if (id == INPUT_HANDLER_TYPE_PIN) - _select_pin(priv, obj); } } @@ -922,10 +742,21 @@ static void _reset(struct _priv *priv) _load_user_icon(priv, IMAGE_USER_CURRENT_DEFAULT, IMAGE_USER_CURRENT_DEFAULT_FOCUS); } +} - _reset_pin(priv, false); - elm_object_signal_emit(priv->lock, SIG_ENABLE, SRC_PROG); - priv->locked = EINA_TRUE; +static void _add_delete_user(struct _priv *priv) +{ + if (priv->user_type != USER_ITEM_ADMIN || + priv->di->type == USER_ITEM_ADMIN) { + priv->delete = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, + false, PART_USER_EDIT_CONTENTS_DELETE); + elm_object_signal_emit(priv->delete, SIG_DISABLE, SRC_PROG); + } else { + priv->delete = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, + true, PART_USER_EDIT_CONTENTS_DELETE); + inputmgr_add_callback(priv->delete, INPUT_HANDLER_TYPE_DELETE, + &handler, priv); + } } static void _show(void *data) @@ -944,6 +775,7 @@ static void _show(void *data) MESSAGE_EDIT_USER); _change_entry(priv->name, EINA_FALSE, priv->di->title, SIG_DISABLE); + _add_delete_user(priv); } else { elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE, MESSAGE_ADD_USER); @@ -970,6 +802,12 @@ static void _hide(void *data) _delete_popup(priv); _delete_ctxpopup(priv); + if (priv->delete) { + evas_object_del(priv->delete); + inputmgr_remove_callback(priv->delete, &handler); + priv->delete = NULL; + } + priv->selected_photo = NULL; evas_object_hide(priv->base); } @@ -989,7 +827,6 @@ static void _destroy(void *data) inputmgr_remove_callback(priv->done, &handler); inputmgr_remove_callback(priv->cancel, &handler); inputmgr_remove_callback(priv->name, &handler); - inputmgr_remove_callback(priv->lock, &handler); viewmgr_remove_view(VIEW_PHOTO); viewmgr_remove_view(VIEW_ACTION_MENU); evas_object_del(priv->base); @@ -1020,12 +857,6 @@ static void _update(void *view_data, int update_type, void *data) case UPDATE_TYPE_RESET: _reset(priv); break; - case UPDATE_TYPE_PIN_RESULT: - if (!data) - return; - - _update_user(priv, data); - break; default: _ERR("Invalid type"); return; |