base: show play info item when the app is launched 40/45340/2
authorJehun Lim <jehun.lim@samsung.com>
Wed, 5 Aug 2015 04:07:36 +0000 (13:07 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Wed, 5 Aug 2015 04:32:17 +0000 (13:32 +0900)
Change-Id: I2457e8f289a78be8fd44088f9a2c66b2836bf43b
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
src/layout/movie.c
src/layout/music.c

index c5c3767..ba40e5f 100644 (file)
@@ -17,6 +17,7 @@
 #include <Elementary.h>
 #include <media_content.h>
 #include <app_debug.h>
+#include <app_contents.h>
 #include <app_media.h>
 #include <gridmgr.h>
 #include <layoutmgr.h>
@@ -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) {
index 49db424..b9c6a63 100644 (file)
@@ -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) {