From f5f40b0ded9761adb6d31511cf044f8feb8d6480 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Wed, 5 Aug 2015 13:07:36 +0900 Subject: [PATCH] base: show play info item when the app is launched Change-Id: I2457e8f289a78be8fd44088f9a2c66b2836bf43b Signed-off-by: Jehun Lim --- src/layout/movie.c | 33 ++++++++++++++++++++++++++++++++- src/layout/music.c | 31 ++++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/layout/movie.c b/src/layout/movie.c index c5c3767..ba40e5f 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -401,6 +402,30 @@ static void _update_content_list(struct _priv *priv) _update_content_info(priv); } +static app_media *_get_recent_item(Eina_List *list) +{ + GList *rlist; + app_media *am; + struct recent_data *rdata; + int r; + + rlist = NULL; + am = NULL; + r = app_contents_get_recent_list(CONTENTS_MOVIE, 1, &rlist); + if (r != APP_CONTENTS_ERROR_NONE) { + _ERR("failed to get movie recent list"); + return NULL; + } + + rdata = g_list_nth_data(rlist, 0); + if (rdata && rdata->id) + am = util_find_media_info(list, rdata->id); + + app_contents_free_recent_list(rlist); + + return am; +} + static void _update_recent_item(struct _priv *priv, int index) { Eina_List *list; @@ -408,7 +433,12 @@ static void _update_recent_item(struct _priv *priv, int index) app_media_info *info; list = mediadata_get_medialist(priv->md); - am = eina_list_nth(list, index); + + if (index >= 0) + am = eina_list_nth(list, index); + else + am = _get_recent_item(list); + if (!am) { _ERR("failed to get app media"); return; @@ -588,6 +618,7 @@ static void _update(void *layout_data, int update_type, void *data) switch (update_type) { case UPDATE_CONTENT: _update_content_list(priv); + _update_recent_item(priv, -1); break; case UPDATE_FOCUS: if (!vdata) { diff --git a/src/layout/music.c b/src/layout/music.c index 49db424..b9c6a63 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -375,6 +375,30 @@ static void _update_content_list(struct _priv *priv) _update_content_info(priv); } +static app_media *_get_playing_item(Eina_List *list) +{ + GList *rlist; + app_media *am; + struct recent_data *rdata; + int r; + + rlist = NULL; + am = NULL; + r = app_contents_get_recent_list(CONTENTS_MUSIC, 1, &rlist); + if (r != APP_CONTENTS_ERROR_NONE) { + _ERR("failed to get movie recent list"); + return NULL; + } + + rdata = g_list_nth_data(rlist, 0); + if (rdata && rdata->id) + am = util_find_media_info(list, rdata->id); + + app_contents_free_recent_list(rlist); + + return am; +} + static void _update_playing_item(struct _priv *priv, int index) { Eina_List *list; @@ -382,7 +406,11 @@ static void _update_playing_item(struct _priv *priv, int index) app_media_info *info; list = mediadata_get_medialist(priv->md); - am = eina_list_nth(list, index); + if (index >= 0) + am = eina_list_nth(list, index); + else + am = _get_playing_item(list); + if (!am) { _ERR("failed to get app media"); return; @@ -559,6 +587,7 @@ static void _update(void *layout_data, int update_type, void *data) switch (update_type) { case UPDATE_CONTENT: _update_content_list(priv); + _update_playing_item(priv, -1); break; case UPDATE_PLAY_INFO: if (!vdata) { -- 2.7.4