diff options
author | Jehun Lim <jehun.lim@samsung.com> | 2015-10-02 14:08:45 +0900 |
---|---|---|
committer | Jehun Lim <jehun.lim@samsung.com> | 2015-10-02 14:13:55 +0900 |
commit | a759a446c4093a7dc0eeaed907caae7f6fd7d781 (patch) | |
tree | 218431d612fbbe536434c417f3b690384c7fb2e9 | |
parent | bdd565b2695b50c3fb772af9841f3a0d7f216811 (diff) | |
download | air_mediahub-a759a446c4093a7dc0eeaed907caae7f6fd7d781.tar.gz air_mediahub-a759a446c4093a7dc0eeaed907caae7f6fd7d781.tar.bz2 air_mediahub-a759a446c4093a7dc0eeaed907caae7f6fd7d781.zip |
viewer/mplayer: add previous view id
Change-Id: I0064d747e2bda2e35c36445483c6e384684f54ae
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
-rw-r--r-- | src/grid/grid_gallery.c | 1 | ||||
-rw-r--r-- | src/grid/grid_movie.c | 1 | ||||
-rw-r--r-- | src/grid/grid_music.c | 1 | ||||
-rw-r--r-- | src/layout/gallery.c | 1 | ||||
-rw-r--r-- | src/layout/movie.c | 2 | ||||
-rw-r--r-- | src/layout/music.c | 2 | ||||
-rw-r--r-- | src/view/action_menu.c | 1 | ||||
-rw-r--r-- | src/view/base.c | 1 | ||||
-rw-r--r-- | src/view/detail.c | 1 | ||||
-rw-r--r-- | src/view/mplayer.c | 15 | ||||
-rw-r--r-- | src/view/viewer.c | 14 |
11 files changed, 32 insertions, 8 deletions
diff --git a/src/grid/grid_gallery.c b/src/grid/grid_gallery.c index e8e3295..2ea4cd5 100644 --- a/src/grid/grid_gallery.c +++ b/src/grid/grid_gallery.c @@ -299,6 +299,7 @@ static void _media_selected_cb(void *data, Elm_Object_Item *it) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index(vdata.list, am); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); diff --git a/src/grid/grid_movie.c b/src/grid/grid_movie.c index 70c54b5..04f7e0a 100644 --- a/src/grid/grid_movie.c +++ b/src/grid/grid_movie.c @@ -276,6 +276,7 @@ static void _media_selected_cb(void *data, Elm_Object_Item *it) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index(vdata.list, am); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); diff --git a/src/grid/grid_music.c b/src/grid/grid_music.c index 2bf8a38..928478d 100644 --- a/src/grid/grid_music.c +++ b/src/grid/grid_music.c @@ -343,6 +343,7 @@ static void _media_selected_cb(void *data, Elm_Object_Item *it) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index(vdata.list, am); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_MPLAYER); diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 0fd1cfa..779de14 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -82,6 +82,7 @@ static void _recent_item_selected(struct _priv *priv, app_media *am) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index_from_id(vdata.list, info->media_id); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); diff --git a/src/layout/movie.c b/src/layout/movie.c index 37023bd..509fa12 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -253,6 +253,7 @@ static void _recent_item_selected(struct _priv *priv, app_media *am) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index_from_id(vdata.list, info->media_id); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); @@ -275,6 +276,7 @@ static void _recent_selected_cb(void *data, Evas_Object *obj) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index(vdata.list, priv->recent_info); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); diff --git a/src/layout/music.c b/src/layout/music.c index cf1ac9a..cb9ec00 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -197,6 +197,7 @@ static void _recent_item_selected(struct _priv *priv, app_media *am) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index_from_id(vdata.list, info->media_id); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_MPLAYER); @@ -219,6 +220,7 @@ static void _playing_selected_cb(void *data, Evas_Object *obj) vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL); vdata.index = util_get_media_index(vdata.list, priv->playing_info); + vdata.id = VIEW_BASE; viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_MPLAYER); diff --git a/src/view/action_menu.c b/src/view/action_menu.c index 0eb90b6..5a86e49 100644 --- a/src/view/action_menu.c +++ b/src/view/action_menu.c @@ -350,6 +350,7 @@ static void _grid_selected(void *data) vdata.list = priv->favorite_list; vdata.index = util_get_media_index(vdata.list, am); + vdata.id = VIEW_BASE; _hide_view(priv, false); diff --git a/src/view/base.c b/src/view/base.c index 3f8150e..03f2961 100644 --- a/src/view/base.c +++ b/src/view/base.c @@ -457,6 +457,7 @@ static void _update_favorite_view(struct _priv *priv, const char *id) vdata.list = _get_favorite_list(type); vdata.index = _get_media_index(vdata.list, info->media_id); + vdata.id = NULL; if (type == CONTENTS_MOVIE || type == CONTENTS_GALLERY) { viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); diff --git a/src/view/detail.c b/src/view/detail.c index d1d95f2..f7ec7de 100644 --- a/src/view/detail.c +++ b/src/view/detail.c @@ -210,6 +210,7 @@ static void _media_selected(void *data) vdata.list = priv->media_list; vdata.index = util_get_media_index(vdata.list, am); + vdata.id = VIEW_DETAIL; switch (priv->view_type) { case E_DETAIL_MOVIE_GENRE: diff --git a/src/view/mplayer.c b/src/view/mplayer.c index f207e9c..9144827 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -74,6 +74,8 @@ struct _priv { struct playermgr *player; struct progressbar *progress; struct controller *ctl; + + const char *prev_view; }; struct _btn_info { @@ -570,7 +572,13 @@ static void _pop_view(struct _priv *priv) { struct view_update_data vdata; - if (viewmgr_active_view_count() > 1) { + if (!priv->prev_view) { + viewmgr_pop_view(); + ui_app_exit(); + return; + } + + if (!strcmp(priv->prev_view, VIEW_BASE)) { vdata.index = _playlist_get_index(priv->playlist.list_org, priv->playlist.list, priv->playlist.cur); vdata.id = _playlist_get_current_media_id(priv); @@ -578,9 +586,6 @@ static void _pop_view(struct _priv *priv) } viewmgr_pop_view(); - - if (viewmgr_active_view_count() == 0) - ui_app_exit(); } static void _key_down(int id, void *data, Evas *e, Evas_Object *obj, @@ -1085,6 +1090,8 @@ static void _update(void *view_data, int update_type, void *data) vdata->list, vdata->index); } + priv->prev_view = vdata->id; + _add_playlist_item(priv); break; case UPDATE_PLAYER: diff --git a/src/view/viewer.c b/src/view/viewer.c index ff7bc71..51420de 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -87,6 +87,8 @@ struct _priv { struct _slideshow slideshow; bool bar_show; + + const char *prev_view; }; struct _btn_info { @@ -752,16 +754,19 @@ static void _pop_view(struct _priv *priv) priv->viewer.cur == VIEWER_VIDEO) _player_stop(priv); - if (viewmgr_active_view_count() > 1) { + if (!priv->prev_view) { + viewmgr_pop_view(); + ui_app_exit(); + return; + } + + if (!strcmp(priv->prev_view, VIEW_BASE)) { vdata.index = priv->playlist.cur; vdata.id = _get_current_media_id(priv); viewmgr_update_view(VIEW_BASE, UPDATE_FOCUS, &vdata); } viewmgr_pop_view(); - - if (viewmgr_active_view_count() == 0) - ui_app_exit(); } static int _player_get_position(void *data) @@ -1280,6 +1285,7 @@ static void _update(void *view_data, int update_type, void *data) priv->playlist.list = vdata->list; priv->playlist.cur = vdata->index; + priv->prev_view = vdata->id; priv->viewer.foc = BTN_LOC_NONE; priv->slideshow.enable = false; break; |