summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJehun Lim <jehun.lim@samsung.com>2015-10-02 14:08:45 +0900
committerJehun Lim <jehun.lim@samsung.com>2015-10-02 14:13:55 +0900
commita759a446c4093a7dc0eeaed907caae7f6fd7d781 (patch)
tree218431d612fbbe536434c417f3b690384c7fb2e9
parentbdd565b2695b50c3fb772af9841f3a0d7f216811 (diff)
downloadair_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.c1
-rw-r--r--src/grid/grid_movie.c1
-rw-r--r--src/grid/grid_music.c1
-rw-r--r--src/layout/gallery.c1
-rw-r--r--src/layout/movie.c2
-rw-r--r--src/layout/music.c2
-rw-r--r--src/view/action_menu.c1
-rw-r--r--src/view/base.c1
-rw-r--r--src/view/detail.c1
-rw-r--r--src/view/mplayer.c15
-rw-r--r--src/view/viewer.c14
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;