diff options
author | Hyojung Jo <hj903.jo@samsung.com> | 2015-08-25 14:26:51 +0900 |
---|---|---|
committer | Hyojung Jo <hj903.jo@samsung.com> | 2015-08-25 14:26:51 +0900 |
commit | 13d61c71cb31c22268cdcfed58710b5f32e1e156 (patch) | |
tree | 469e06c782f89e0de03c45052ebdecc46adaaa42 | |
parent | 6da68aba338bf4a97c4d40c21a2227878acabae0 (diff) | |
download | air_favorite-13d61c71cb31c22268cdcfed58710b5f32e1e156.tar.gz air_favorite-13d61c71cb31c22268cdcfed58710b5f32e1e156.tar.bz2 air_favorite-13d61c71cb31c22268cdcfed58710b5f32e1e156.zip |
View: Update base view when contents is unfavorited
Change-Id: I3fdda1eded635a901b9bb8fee8ef09a8f3fe2a59
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
-rw-r--r-- | include/define.h | 2 | ||||
-rw-r--r-- | res/favorite.edc | 2 | ||||
-rw-r--r-- | src/view/view_action_menu.c | 39 | ||||
-rw-r--r-- | src/view/view_base.c | 29 |
4 files changed, 50 insertions, 22 deletions
diff --git a/include/define.h b/include/define.h index b34be59..cc46ce6 100644 --- a/include/define.h +++ b/include/define.h @@ -111,7 +111,7 @@ /* Count */ #define COUNT_MENU 6 -#define COUNT_ACTION 3 +#define COUNT_ACTION 2 /* Image */ #define PLAY_ICON_PNG "ic_thumbnail_play.png" diff --git a/res/favorite.edc b/res/favorite.edc index 128a83a..5942d58 100644 --- a/res/favorite.edc +++ b/res/favorite.edc @@ -455,7 +455,7 @@ collections { to, "padding.menu.divider.up"; relative, 0.0 1.0; } - min, 375 124; + min, 250 124; align, 0.0 0.0; fixed, 1 1; } diff --git a/src/view/view_action_menu.c b/src/view/view_action_menu.c index 6991151..0f063a5 100644 --- a/src/view/view_action_menu.c +++ b/src/view/view_action_menu.c @@ -73,46 +73,45 @@ static void _mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj, elm_object_focus_set(obj, EINA_TRUE); } -static void _livetv_selected(void *data, Evas_Object *obj) +static void _livetv_selected(void) { - /* It will be implemented later */ -} - -static void _favorite_selected(void *data, Evas_Object *obj) -{ - struct _priv *priv; - struct grid_data *gdata; - - if (!data) { - _ERR("Invalid argument."); + if (!utils_launch_app(STR_LIVETV_APP_ID, NULL, NULL)) { + _ERR("Launch live tv failed."); return; } - priv = data; - - if (!priv->gdata) - return; - gdata = priv->gdata; + viewmgr_hide_view(VIEW_ID_ACTION_MENU); +} +static void _favorite_selected(struct grid_data *gdata) +{ if (!gdata->item_action(gdata->focused_item, ACTION_UPDATE_FAVORITE)) { _ERR("Unfavorite failed."); return; } - /* FIXME: The base view will be reloaded later */ - + viewmgr_update_view(VIEW_ID_BASE, UPDATE_GRID, gdata); viewmgr_hide_view(VIEW_ID_ACTION_MENU); } static void _clicked_cb(int id, void *data, Evas_Object *obj) { + struct _priv *priv; + + if (!data) + return; + priv = data; + + if (!priv->gdata) + return; + switch (id) { case BTN_LIVETV: - _livetv_selected(data, obj); + _livetv_selected(); break; case BTN_FAVORITE: - _favorite_selected(data, obj); + _favorite_selected(priv->gdata); break; case BTN_LOCK: diff --git a/src/view/view_base.c b/src/view/view_base.c index 7390fdf..c3ef441 100644 --- a/src/view/view_base.c +++ b/src/view/view_base.c @@ -500,6 +500,34 @@ static void _hide(void *data) evas_object_hide(priv->base); } +static void _update(void *view_data, int update_type, void *data) +{ + struct _priv *priv; + struct grid_data *gdata; + + if (!view_data || !data) { + _ERR("Get data failed."); + return; + } + priv = view_data; + gdata = data; + + if (update_type == UPDATE_GRID) { + if (!priv || !priv->gmgr || !priv->base) + return; + + gdata->list = gdata->create_item_list(); + if (!gdata->list) + elm_object_part_text_set(priv->base, PART_NO_CONTENTS, + STR_NO_CONTENTS); + else + gridmgr_append_list(priv->gmgr, gdata->id, gdata->list); + + _draw_content_count(priv->base, eina_list_count(gdata->list), + priv->cur_menu_id); + } +} + static void _destroy(void *data) { struct _priv *priv; @@ -532,6 +560,7 @@ static view_class _vclass = { .create = _create, .show = _show, .hide = _hide, + .update = _update, .destroy = _destroy, }; |