display toast when add/update/delete user 32/47032/1 accepted/tizen/tv/20150829.030927 submit/tizen/20150828.103950
authorSoohye Shin <soohye.shin@samsung.com>
Fri, 28 Aug 2015 09:02:40 +0000 (18:02 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Fri, 28 Aug 2015 09:03:09 +0000 (18:03 +0900)
Change-Id: I9783bbb2e9a98f5c276094c568b1ee90c6eb0132
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
include/datamgr.h
include/defs.h
src/data/data_home.c
src/data/data_recent.c
src/data/data_user.c
src/data/datamgr.c
src/view/view_user_edit.c

index b63de7e..ffeee86 100644 (file)
@@ -54,10 +54,10 @@ struct datamgr_item {
 struct data_class {
        bool (*init)(struct datamgr *dm);
        void (*fini)(struct datamgr *dm);
-       void (*select)(struct datamgr_item *di);
+       bool (*select)(struct datamgr_item *di);
        Eina_List *(*get_items)(struct datamgr *dm);
        void (*clear)(struct datamgr *dm);
-       void (*add)(struct datamgr *dm, const char *title, const char *icon,
+       bool (*add)(struct datamgr *dm, const char *title, const char *icon,
                        const char *parameter);
        /* It should be added later */
 };
@@ -65,9 +65,9 @@ struct data_class {
 struct datamgr *datamgr_init(struct data_class *dclass, const char *view_id);
 void datamgr_fini(struct datamgr *dm);
 Eina_List *datamgr_get_items(struct datamgr *dm);
-void datamgr_select_item(struct datamgr *dm, struct datamgr_item *di);
+bool datamgr_select_item(struct datamgr *dm, struct datamgr_item *di);
 void datamgr_clear_item(struct datamgr *dm);
-void datamgr_add_item(struct datamgr *dm, const char *title, const char *icon,
+bool datamgr_add_item(struct datamgr *dm, const char *title, const char *icon,
                const char *parameter);
 
 #endif /* __AIR_HOME_DATAMGR_H__ */
index 958c165..44d1fe2 100644 (file)
 #define MESSAGE_RESET_CONTENTS "Reset all entered data?<br>If you choose the Reset, all data will be deleted"
 #define MESSAGE_SUCCESS "success"
 #define MESSAGE_FAIL "fail"
+#define MESSAGE_USER_ADD "is added."
+#define MESSAGE_USER_DELETE "is removed."
+#define MESSAGE_USER_UPDATE "is updated."
 
 #define GUM_ATTR_NAME "username"
 #define GUM_ATTR_USERTYPE "usertype"
index e55a0a4..636bfe7 100644 (file)
@@ -342,22 +342,27 @@ static bool _init(struct datamgr *dm)
        return _load_home(dm);
 }
 
-static void _select(struct datamgr_item *di)
+static bool _select(struct datamgr_item *di)
 {
+       bool r;
+
        if (!di || !di->parameter)
-               return;
+               return false;
 
+       r = false;
        switch (di->action) {
        case ITEM_SELECT_ACTION_LAUNCH:
-               utils_launch_app(di->parameter, NULL, NULL);
+               r = utils_launch_app(di->parameter, NULL, NULL);
                break;
        case ITEM_SELECT_ACTION_PUSH:
-               viewmgr_push_view(di->parameter);
+               r = viewmgr_push_view(di->parameter);
                break;
        default:
                _ERR("Invalid state");
-               return;
+               break;
        }
+
+       return r;
 }
 
 static struct data_class dclass = {
index f9b99b2..30dd154 100644 (file)
@@ -491,19 +491,24 @@ static bool _init(struct datamgr *dm)
        return true;
 }
 
-static void _select(struct datamgr_item *di)
+static bool _select(struct datamgr_item *di)
 {
+       bool r;
+
        if (!di || !di->parameter)
-               return;
+               return false;
 
+       r = false;
        switch (di->action) {
        case ITEM_SELECT_ACTION_LAUNCH:
-               utils_launch_app(di->parameter, di->key, di->value);
+               r = utils_launch_app(di->parameter, di->key, di->value);
                break;
        default:
                _ERR("Invalid state");
-               return;
+               break;
        }
+
+       return r;
 }
 
 static void _clear(struct datamgr *dm)
index 6ecbd10..06f3fd2 100644 (file)
@@ -73,7 +73,7 @@ static GDBusConnection *_get_bus_connection(GError **error)
                        NULL, NULL, error);
 }
 
-static void _switch(char *name, char *password)
+static bool _switch(char *name, char *password)
 {
        GDBusConnection *conn;
        GError *error;
@@ -82,7 +82,7 @@ static void _switch(char *name, char *password)
        guint32 serial;
 
        if (!name || !password)
-               return;
+               return false;
 
        error = NULL;
        conn = _get_bus_connection(&error);
@@ -90,7 +90,7 @@ static void _switch(char *name, char *password)
                _ERR("failed to get connection, %s",
                                error ? error->message : "");
                g_error_free(error);
-               return;
+               return false;
        }
 
        param = _build_env_param(name, password);
@@ -116,12 +116,15 @@ static void _switch(char *name, char *password)
        g_object_unref(res);
        g_object_unref(msg);
        g_object_unref(conn);
+
+       return true;
 err:
        g_object_unref(conn);
        g_error_free(error);
+       return false;
 }
 
-static void _update(struct datamgr_item *di)
+static bool _update(struct datamgr_item *di)
 {
        GumUser *user;
        gboolean r;
@@ -129,7 +132,7 @@ static void _update(struct datamgr_item *di)
        user = gum_user_get_by_name_sync(di->title, FALSE);
        if (!user) {
                _ERR("failed to get user");
-               return;
+               return false;
        }
 
        g_object_set(G_OBJECT(user), GUM_ATTR_PASSWORD, di->parameter,
@@ -138,13 +141,16 @@ static void _update(struct datamgr_item *di)
        r = gum_user_update_sync(user);
        if (!r) {
                _ERR("failed to update user");
-               return;
+               g_object_unref(user);
+               return false;
        }
 
        g_object_unref(user);
+
+       return true;
 }
 
-static void _delete(struct datamgr_item *di)
+static bool _delete(struct datamgr_item *di)
 {
        GumUser *user;
        gboolean r;
@@ -152,42 +158,54 @@ static void _delete(struct datamgr_item *di)
        user = gum_user_get_by_name_sync(di->title, FALSE);
        if (!user) {
                _ERR("failed to get user");
-               return;
+               return false;
        }
 
        r = gum_user_delete_sync(user, FALSE);
-       if (!r)
+       if (!r) {
                _ERR("failed to delete user");
+               g_object_unref(user);
+               return false;
+       }
 
        g_object_unref(user);
+
+       return true;
 }
 
-static void _select(struct datamgr_item *di)
+static bool _select(struct datamgr_item *di)
 {
-       if (!di)
-               return;
+       bool r;
+
+       if (!di) {
+               _ERR("Invalid argument");
+               return false;
+       }
 
+       r = false;
        switch (di->action) {
        case ITEM_SELECT_ACTION_SWITCH:
                /* It should be implemented later */
-               _switch(di->title, "");
+               r = _switch(di->title, "");
                break;
        case ITEM_SELECT_ACTION_PUSH:
-               viewmgr_push_view(di->parameter);
+               r = viewmgr_push_view(di->parameter);
                break;
        case ITEM_SELECT_ACTION_POP:
-               viewmgr_pop_view();
+               r = viewmgr_pop_view();
                break;
        case ITEM_SELECT_ACTION_UPDATE:
-               _update(di);
+               r = _update(di);
                break;
        case ITEM_SELECT_ACTION_DELETE:
-               _delete(di);
+               r = _delete(di);
                break;
        default:
                _ERR("Invalid state");
-               return;
+               break;
        }
+
+       return r;
 }
 
 static void _unload_user(struct datamgr *dm)
@@ -422,7 +440,7 @@ static bool _init(struct datamgr *dm)
        return _load_user(dm);
 }
 
-static void _add(struct datamgr *dm, const char *title, const char *icon,
+static bool _add(struct datamgr *dm, const char *title, const char *icon,
                const char *parameter)
 {
        GumUser *user;
@@ -430,13 +448,13 @@ static void _add(struct datamgr *dm, const char *title, const char *icon,
 
        if (!dm || !title || !icon) {
                _ERR("Invalid argument");
-               return;
+               return false;
        }
 
        user = gum_user_create_sync(FALSE);
        if (!user) {
                _ERR("failed to get user");
-               return;
+               return false;
        }
 
        g_object_set(G_OBJECT(user), GUM_ATTR_NAME, title,
@@ -445,10 +463,15 @@ static void _add(struct datamgr *dm, const char *title, const char *icon,
                        GUM_ATTR_USERTYPE, GUM_USERTYPE_NORMAL, NULL);
 
        r = gum_user_add_sync(user);
-       if (!r)
+       if (!r) {
                _ERR("failed to add user");
+               g_object_unref(user);
+               return false;
+       }
 
        g_object_unref(user);
+
+       return true;
 }
 
 static struct data_class dclass = {
index 6448db9..6f5e0eb 100644 (file)
@@ -73,17 +73,17 @@ Eina_List *datamgr_get_items(struct datamgr *dm)
        return dm->dclass->get_items(dm);
 }
 
-void datamgr_select_item(struct datamgr *dm, struct datamgr_item *di)
+bool datamgr_select_item(struct datamgr *dm, struct datamgr_item *di)
 {
        if (!dm || !dm->dclass || !di) {
                _ERR("Invalid argument");
-               return;
+               return false;
        }
 
        if (!dm->dclass->select)
-               return;
+               return true;
 
-       dm->dclass->select(di);
+       return dm->dclass->select(di);
 }
 
 void datamgr_clear_item(struct datamgr *dm)
@@ -99,16 +99,16 @@ void datamgr_clear_item(struct datamgr *dm)
        dm->dclass->clear(dm);
 }
 
-void datamgr_add_item(struct datamgr *dm, const char *title, const char *icon,
+bool datamgr_add_item(struct datamgr *dm, const char *title, const char *icon,
                const char *parameter)
 {
        if (!dm || !dm->dclass) {
                _ERR("Invalid argument");
-               return;
+               return false;
        }
 
        if (!dm->dclass->add)
-               return;
+               return true;
 
-       dm->dclass->add(dm, title, icon, parameter);
+       return dm->dclass->add(dm, title, icon, parameter);
 }
index 3e48415..cc7442e 100644 (file)
@@ -624,6 +624,7 @@ static void _select_eo(struct _priv *priv, Evas_Object *obj)
 static void _select_btn_done(struct _priv *priv)
 {
        const char *name, *photo;
+       char buf[MAX_BUF];
 
        _get_profile(priv, &name, &photo);
        if (priv->di) {
@@ -631,13 +632,19 @@ static void _select_btn_done(struct _priv *priv)
                priv->di->title = strdup(name ? name : "");
                priv->di->icon = strdup(photo ? photo :
                                IMAGE_USER_DEFAULT);
-               datamgr_select_item(priv->dm, priv->di);
+               if (datamgr_select_item(priv->dm, priv->di)) {
+                       snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_UPDATE);
+                       utils_add_toast(priv->win, buf);
+               }
        } else {
                if (!name || !strcmp(name, "")) {
                        elm_object_focus_set(priv->name, EINA_TRUE);
                        return;
                }
-               datamgr_add_item(priv->dm, name, photo, "");
+               if (datamgr_add_item(priv->dm, name, photo, "")) {
+                       snprintf(buf, sizeof(buf), "%s %s", name, MESSAGE_USER_ADD);
+                       utils_add_toast(priv->win, buf);
+               }
        }
 
        priv->di = NULL;
@@ -657,6 +664,8 @@ static void _disable_pin(struct _priv *priv)
 
 static void _select(struct _priv *priv, int id, Evas_Object *obj)
 {
+       char buf[MAX_BUF];
+
        switch (id) {
        case INPUT_HANDLER_TYPE_LOCK:
                if (priv->locked) {
@@ -696,7 +705,11 @@ static void _select(struct _priv *priv, int id, Evas_Object *obj)
                _delete_popup(priv, obj);
                elm_object_focus_allow_set(priv->del, EINA_TRUE);
                priv->di->action = ITEM_SELECT_ACTION_DELETE;
-               datamgr_select_item(priv->dm, priv->di);
+               if (datamgr_select_item(priv->dm, priv->di)) {
+                       snprintf(buf, sizeof(buf), "%s %s", priv->di->title,
+                                       MESSAGE_USER_DELETE);
+                       utils_add_toast(priv->win, buf);
+               }
                viewmgr_pop_view();
                break;
        case INPUT_HANDLER_TYPE_POPUP_BTN_DISCARD: