View: Draw toast when contents is set to unfavorite 35/47135/2
authorHyojung Jo <hj903.jo@samsung.com>
Mon, 31 Aug 2015 06:45:07 +0000 (15:45 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Mon, 31 Aug 2015 07:06:22 +0000 (16:06 +0900)
Change-Id: I65416c18d1b715ca31eddb27cb56fa7db1cb3d6b
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
include/view.h
src/main.c
src/view/view_action_menu.c
src/view/view_base.c

index b0a87c9..449c5b2 100644 (file)
@@ -18,8 +18,8 @@
 #define __AIR_FAVORITE_DEFINE_H__
 
 /* View ID */
-#define VIEW_ID_BASE "VIEW_ID_BASE"
-#define VIEW_ID_ACTION_MENU "VIEW_ID_ACTION_MENU"
+#define VIEW_BASE "VIEW_BASE"
+#define VIEW_ACTION_MENU "VIEW_ACTION_MENU"
 
 /* Group */
 #define GRP_VIEW_BASE "grp.view.base"
@@ -49,6 +49,7 @@
 #define STYLE_LIVETV_BTN "style.livetv.button"
 #define STYLE_ACTION_MENU_FAV_BTN "style.action.menu.favorite.button"
 #define STYLE_ACTION_MENU_LOCK_BTN "style.action.menu.lock.button"
+#define STYLE_TOAST "style.toast"
 
 /* Signal */
 #define SIG_FOCUSED "focused"
@@ -86,6 +87,7 @@
 #define STR_CNT_WEBS "bookmark"
 #define STR_BROWSER "Web Browser"
 #define STR_LIVETV "Live TV"
+#define STR_REMOVE_FAVORITE "Removed from your favorite."
 
 /* Font */
 #define FONT_TIZENSANS_REGULAR "TizenSans"
 #define SIZE_APP_ICON_MAX 100
 #define SIZE_ACTION_TABLE_BORDER 0
 #define SIZE_COL_MAX 4
+#define SIZE_TOAST_TIMEOUT 5.0
 
 /* Count */
 #define COUNT_MENU 6
index a32afa3..159fd2e 100644 (file)
@@ -23,6 +23,7 @@ view_class *view_action_menu_get_vclass(void);
 enum update_type {
        UPDATE_DATA = 0,
        UPDATE_GRID,
+       UPDATE_SHOW_TOAST,
 };
 
 #endif /* __AIR_APPS_VIEW_H__ */
index 5fea085..2f75d0e 100644 (file)
@@ -89,8 +89,8 @@ static void _terminate(void *data)
                ad->win = NULL;
        }
 
-       viewmgr_remove_view(VIEW_ID_BASE);
-       viewmgr_remove_view(VIEW_ID_ACTION_MENU);
+       viewmgr_remove_view(VIEW_BASE);
+       viewmgr_remove_view(VIEW_ACTION_MENU);
        viewmgr_destroy();
 }
 
@@ -107,7 +107,7 @@ static void _app_control(app_control_h control, void *data)
        if (ad->win)
                elm_win_activate(ad->win);
 
-       if (!viewmgr_push_view(VIEW_ID_BASE))
+       if (!viewmgr_push_view(VIEW_BASE))
                _ERR("Push view failed.");
 }
 
index 52d8aed..81cafdd 100644 (file)
@@ -81,7 +81,7 @@ static void _livetv_selected(void)
                return;
        }
 
-       viewmgr_hide_view(VIEW_ID_ACTION_MENU);
+       viewmgr_hide_view(VIEW_ACTION_MENU);
 }
 
 static void _favorite_selected(struct grid_data *gdata)
@@ -91,8 +91,9 @@ static void _favorite_selected(struct grid_data *gdata)
                return;
        }
 
-       viewmgr_update_view(VIEW_ID_BASE, UPDATE_GRID, gdata);
-       viewmgr_hide_view(VIEW_ID_ACTION_MENU);
+       viewmgr_update_view(VIEW_BASE, UPDATE_GRID, gdata);
+       viewmgr_update_view(VIEW_BASE, UPDATE_SHOW_TOAST, STR_REMOVE_FAVORITE);
+       viewmgr_hide_view(VIEW_ACTION_MENU);
 }
 
 static void _clicked_cb(int id, void *data, Evas_Object *obj)
@@ -134,7 +135,7 @@ static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
 
        if (!strcmp(ev->keyname, KEY_BACK)
                        || !strcmp(ev->keyname, KEY_BACK_REMOTE))
-               viewmgr_hide_view(VIEW_ID_ACTION_MENU);
+               viewmgr_hide_view(VIEW_ACTION_MENU);
 }
 
 static input_handler _btn_input_handler = {
@@ -239,7 +240,7 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        priv->win = win;
        priv->base = base;
 
-       if (!viewmgr_set_view_data(VIEW_ID_ACTION_MENU, priv)) {
+       if (!viewmgr_set_view_data(VIEW_ACTION_MENU, priv)) {
                _ERR("Set view data failed.");
                evas_object_del(base);
                free(priv);
@@ -313,7 +314,7 @@ static void _destroy(void *data)
 }
 
 static view_class _vclass = {
-       .view_id = VIEW_ID_ACTION_MENU,
+       .view_id = VIEW_ACTION_MENU,
        .create = _create,
        .show = _show,
        .hide = _hide,
index d3b04de..26cb993 100644 (file)
@@ -43,6 +43,7 @@ struct _priv {
        Evas_Object *base;
        Evas_Object *box;
        Evas_Object *menu[COUNT_MENU];
+       Evas_Object *notify;
        int cur_menu_id;
 };
 
@@ -331,8 +332,11 @@ static void _grid_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
                if (!gdata)
                        return;
 
-               viewmgr_update_view(VIEW_ID_ACTION_MENU, UPDATE_DATA, gdata);
-               viewmgr_show_view(VIEW_ID_ACTION_MENU);
+               if (priv->notify)
+                       evas_object_hide(priv->notify);
+
+               viewmgr_update_view(VIEW_ACTION_MENU, UPDATE_DATA, gdata);
+               viewmgr_show_view(VIEW_ACTION_MENU);
        }
 }
 
@@ -473,7 +477,7 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                }
        }
 
-       if (!viewmgr_set_view_data(VIEW_ID_BASE, priv)) {
+       if (!viewmgr_set_view_data(VIEW_BASE, priv)) {
                _ERR("Set view data failed.");
                gridmgr_destroy(gmgr);
                goto err;
@@ -521,13 +525,27 @@ static void _hide(void *data)
 
 static void _update(void *view_data, int update_type, void *data)
 {
+       struct _priv *priv;
+
        if (!view_data) {
                _ERR("Get data failed.");
                return;
        }
+       priv = view_data;
 
-       if (update_type == UPDATE_GRID)
-               _update_current_grid(view_data);
+       switch (update_type) {
+       case UPDATE_GRID:
+               _update_current_grid(priv);
+               break;
+
+       case UPDATE_SHOW_TOAST:
+               priv->notify = utils_add_notify(priv->base, (char *)data,
+                               STYLE_TOAST, STYLE_TOAST, SIZE_TOAST_TIMEOUT);
+               break;
+
+       default:
+               _ERR("Unhandled update type.");
+       }
 }
 
 static void _destroy(void *data)
@@ -558,7 +576,7 @@ static void _destroy(void *data)
 }
 
 static view_class _vclass = {
-       .view_id = VIEW_ID_BASE,
+       .view_id = VIEW_BASE,
        .create = _create,
        .show = _show,
        .hide = _hide,