diff options
author | Hyerim Kim <rimi.kim@samsung.com> | 2016-11-09 20:45:23 +0900 |
---|---|---|
committer | Hyerim Kim <rimi.kim@samsung.com> | 2016-11-09 20:46:28 +0900 |
commit | 56972f5002c274fb5da4004bda5e6c6bfb2fe93a (patch) | |
tree | ddf2306bfb110195e158d939a5cba0979e3efcde | |
parent | 2927be005597f5598b847cdf4bae3f5ec0fd4c26 (diff) | |
download | air_home-56972f5002c274fb5da4004bda5e6c6bfb2fe93a.tar.gz air_home-56972f5002c274fb5da4004bda5e6c6bfb2fe93a.tar.bz2 air_home-56972f5002c274fb5da4004bda5e6c6bfb2fe93a.zip |
Fixed Jira issuessubmit/tizen_3.0/20161109.115115
- TSAM-9656, TSAM-9657, TSAM-9651, TSAM-9652
Change-Id: I0da205fe0e9e432e3cab0ec006013897bec136ae
Signed-off-by: Hyerim Kim <rimi.kim@samsung.com>
-rwxr-xr-x[-rw-r--r--] | include/datamgr.h | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | include/defs.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | src/data/data_user.c | 41 | ||||
-rwxr-xr-x[-rw-r--r--] | src/data/datamgr.c | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | src/utils.c | 2 | ||||
-rwxr-xr-x | src/view/view_user_edit.c | 23 |
6 files changed, 55 insertions, 28 deletions
diff --git a/include/datamgr.h b/include/datamgr.h index 5c795a3..6777ba2 100644..100755 --- a/include/datamgr.h +++ b/include/datamgr.h @@ -38,6 +38,12 @@ enum datamgr_item_select_err { ITEM_SELECT_ERROR_SWITCH = -3 }; +enum datamgr_user_add_err { + USER_ADD_ERROR_NONE = 0, + USER_ADD_ERROR_EXIST_ALREADY = -1, + USER_ADD_ERROR_INVALID_OPERATION = -2 +}; + struct datamgr { Eina_List *list; const char *view_id; @@ -76,7 +82,7 @@ struct data_class { int (*select)(struct datamgr_item *di); Eina_List *(*get_items)(struct datamgr *dm); void (*clear)(struct datamgr *dm); - bool (*add)(struct datamgr *dm, const char *title, const char *icon, + int (*add)(struct datamgr *dm, const char *title, const char *icon, const char *parameter); /* It should be added later */ }; @@ -86,7 +92,7 @@ void datamgr_fini(struct datamgr *dm); Eina_List *datamgr_get_items(struct datamgr *dm); int datamgr_select_item(struct datamgr *dm, struct datamgr_item *di); void datamgr_clear_item(struct datamgr *dm); -bool datamgr_add_item(struct datamgr *dm, const char *title, const char *icon, +int datamgr_add_item(struct datamgr *dm, const char *title, const char *icon, const char *parameter); #endif /* __AIR_HOME_DATAMGR_H__ */ diff --git a/include/defs.h b/include/defs.h index 0218117..4952e9e 100644..100755 --- a/include/defs.h +++ b/include/defs.h @@ -229,6 +229,7 @@ #define MESSAGE_USER_ADD "is added." #define MESSAGE_USER_DELETE "is removed." #define MESSAGE_USER_UPDATE "is updated." +#define MESSAGE_USER_EXIST_ALREADY "is already existed." #define MESSAGE_NOTIFICATION "Notification" #define GUM_ATTR_NAME "username" diff --git a/src/data/data_user.c b/src/data/data_user.c index 9d90c9f..8af7246 100644..100755 --- a/src/data/data_user.c +++ b/src/data/data_user.c @@ -131,6 +131,7 @@ static int _update(struct datamgr_item *di) { GumUser *user; gboolean r; + char *exist_icon; user = gum_user_get_by_name_sync(di->title, FALSE); if (!user) { @@ -138,16 +139,21 @@ static int _update(struct datamgr_item *di) return ITEM_SELECT_ERROR_INVALID_OPERATION; } - g_object_set(G_OBJECT(user), GUM_ATTR_ICON, di->icon, NULL); + g_object_get(G_OBJECT(user), GUM_ATTR_ICON, &exist_icon, NULL); - r = gum_user_update_sync(user); - if (!r) { - _ERR("failed to update user"); - g_object_unref(user); - return ITEM_SELECT_ERROR_INVALID_OPERATION; + if (strcmp(di->icon, exist_icon)) { + g_object_set(G_OBJECT(user), GUM_ATTR_ICON, di->icon, NULL); + r = gum_user_update_sync(user); + if (!r) { + _ERR("failed to update user"); + g_object_unref(user); + free(exist_icon); + return ITEM_SELECT_ERROR_INVALID_OPERATION; + } } g_object_unref(user); + free(exist_icon); return ITEM_SELECT_ERROR_NONE; } @@ -422,21 +428,28 @@ static bool _init(struct datamgr *dm) return _load_user(dm); } -static bool _add(struct datamgr *dm, const char *title, const char *icon, +static int _add(struct datamgr *dm, const char *title, const char *icon, const char *parameter) { GumUser *user; + GumUser *exist = NULL; gboolean r; if (!dm || !title || !icon) { _ERR("Invalid argument"); - return false; + return USER_ADD_ERROR_INVALID_OPERATION; } - user = gum_user_create_sync(FALSE); - if (!user) { - _ERR("failed to get user"); - return false; + exist = gum_user_get_by_name_sync(title, FALSE); + if (!exist) { + user = gum_user_create_sync(FALSE); + if (!user) { + _ERR("failed to get user"); + return USER_ADD_ERROR_INVALID_OPERATION; + } + } else { + g_object_unref(exist); + return USER_ADD_ERROR_EXIST_ALREADY; } /* FIXME: set pincode "tizen" */ @@ -451,12 +464,12 @@ static bool _add(struct datamgr *dm, const char *title, const char *icon, if (!r) { _ERR("failed to add user"); g_object_unref(user); - return false; + return USER_ADD_ERROR_INVALID_OPERATION; } g_object_unref(user); - return true; + return USER_ADD_ERROR_NONE; } static struct data_class dclass = { diff --git a/src/data/datamgr.c b/src/data/datamgr.c index 3a91c1b..a99791f 100644..100755 --- a/src/data/datamgr.c +++ b/src/data/datamgr.c @@ -98,16 +98,16 @@ void datamgr_clear_item(struct datamgr *dm) dm->dclass->clear(dm); } -bool datamgr_add_item(struct datamgr *dm, const char *title, const char *icon, +int datamgr_add_item(struct datamgr *dm, const char *title, const char *icon, const char *parameter) { if (!dm || !dm->dclass) { _ERR("Invalid argument"); - return false; + return USER_ADD_ERROR_INVALID_OPERATION; } if (!dm->dclass->add) - return true; + return USER_ADD_ERROR_INVALID_OPERATION; return dm->dclass->add(dm, title, icon, parameter); } diff --git a/src/utils.c b/src/utils.c index 5d570c9..555dad5 100644..100755 --- a/src/utils.c +++ b/src/utils.c @@ -453,6 +453,8 @@ Evas_Object *utils_add_toast(Evas_Object *base, char *message) } elm_object_style_set(label, STYLE_TOAST); elm_object_text_set(label, message); + elm_label_line_wrap_set(label, ELM_WRAP_MIXED); + elm_label_wrap_width_set(label, 536); elm_object_content_set(notify, label); evas_object_show(notify); diff --git a/src/view/view_user_edit.c b/src/view/view_user_edit.c index 484cab5..5945028 100755 --- a/src/view/view_user_edit.c +++ b/src/view/view_user_edit.c @@ -33,6 +33,7 @@ #define MAX_PHOTO 160 #define CHARACTER_PATTERN "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" +#define MAX_LENGTH 32 enum input_handler_type { INPUT_HANDLER_TYPE_PHOTO, @@ -442,6 +443,9 @@ static Evas_Object *_add_layout(struct _priv *priv) Elm_Entry_Filter_Accept_Set name_char = { .accepted = CHARACTER_PATTERN }; + Elm_Entry_Filter_Limit_Size limit_size = { + .max_char_count = MAX_LENGTH + }; ly = utils_add_layout(priv->base, GRP_USER_EDIT_CONTENTS, false, PART_USER_EDIT_CONTENTS); @@ -461,6 +465,8 @@ static Evas_Object *_add_layout(struct _priv *priv) goto err; elm_entry_markup_filter_append(name, elm_entry_filter_accept_set, &name_char); + elm_entry_markup_filter_append(name, elm_entry_filter_limit_size, + &limit_size); inputmgr_add_callback(photo, INPUT_HANDLER_TYPE_PHOTO, &handler, priv); inputmgr_add_callback(name, INPUT_HANDLER_TYPE_ENTRY, &handler, priv); @@ -584,6 +590,7 @@ static void _update_user(struct _priv *priv) { const char *name, *photo; char buf[MAX_BUF]; + int result; _get_profile(priv, &name, &photo); @@ -605,11 +612,14 @@ static void _update_user(struct _priv *priv) return; } } else { - snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_ADD); - if (!datamgr_add_item(priv->dm, name, photo, "")) { + result = datamgr_add_item(priv->dm, name, photo, ""); + if (result == USER_ADD_ERROR_INVALID_OPERATION) { _reset(priv); return; - } + } else if (result == USER_ADD_ERROR_EXIST_ALREADY) + snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_EXIST_ALREADY); + else + snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_ADD); } utils_add_toast(priv->win, buf); @@ -646,9 +656,6 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj) case INPUT_HANDLER_TYPE_EO: _select_eo(priv, obj); break; - case INPUT_HANDLER_TYPE_ENTRY: - elm_object_focus_set(priv->done, EINA_TRUE); - break; case INPUT_HANDLER_TYPE_BTN_DONE: _update_user(priv); break; @@ -731,9 +738,7 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj, return; } } else if (!strcmp(ev->keyname, KEY_ENTER)) { - /* Do NOT handle KEY_ENTER event on entry - because KEY_ENTER event could be emitted on IME by remote controller - _select(priv, id, obj); */ + _select(priv, id, obj); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } } |