#ifndef __AIR_MEDIAHUB_UTIL_H__
#define __AIR_MEDIAHUB_UTIL_H__
+#include <media_content.h>
+#include <app_media.h>
+
Evas_Object *util_add_box(Evas_Object *base);
Evas_Object *util_add_gengrid(Evas_Object *base,
int item_size_x, int item_size_y);
void util_up_string(char *str);
int util_get_media_index(Eina_List *list, void *info);
+app_media *util_find_media_info(Eina_List *list, const char *id);
#endif /* __AIR_MEDIAHUB_UTIL_H__ */
* limitations under the License.
*/
+#include <glib.h>
#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>
{
Evas_Object *recent, *image;
app_media_info *info;
+ struct tm tm;
struct _priv *priv;
char buf[32];
elm_object_part_text_set(recent, PART_RECENT_CONTENT_TITLE,
info->title);
- util_time_string(buf, sizeof(buf), info->played_time, false);
+ localtime_r(&info->played_time, &tm);
+ strftime(buf, sizeof(buf), "%Y.%m.%d", &tm);
elm_object_part_text_set(recent, PART_RECENT_CONTENT_DATE, buf);
progressbar_reset(priv->prog, info->video->position,
priv->media_list = list;
}
+static void _update_recent_item(struct _priv *priv)
+{
+ GList *list;
+ app_media *am;
+ app_media_info *info;
+ struct recent_data *recent;
+ int r;
+
+ list = NULL;
+ info = NULL;
+
+ r = app_contents_get_recent_list(CONTENTS_MOVIE, 1, &list);
+ if (r != APP_CONTENTS_ERROR_NONE) {
+ _ERR("failed to get movie recent list");
+ return;
+ }
+
+ recent = (struct recent_data *)g_list_nth_data(list, 0);
+
+ if (recent) {
+ am = util_find_media_info(mediadata_get_medialist(priv->md),
+ recent->id);
+ if (!am) {
+ _ERR("failed to get app media");
+ g_list_free(list);
+ return;
+ }
+
+ info = app_media_get_info(am);
+ if (!info) {
+ _ERR("failed to get app media info");
+ g_list_free(list);
+ return;
+ }
+
+ priv->recent_info = am;
+ }
+
+ if (!listmgr_update_play_info(priv->listmgr, info))
+ _ERR("failed to update recently watched item");
+
+
+ g_list_free(list);
+}
+
static bool _create(layoutmgr *lmgr, void *data)
{
struct listmgr *listmgr;
switch (update_type) {
case UPDATE_CONTENT:
_update_content_list(priv);
+ _update_recent_item(priv);
break;
case UPDATE_FOCUS:
if (!data) {
index = *(int *)data;
listmgr_update_focus_item(priv->listmgr, index);
+ _update_recent_item(priv);
break;
default:
break;
#include <Elementary.h>
#include <app_debug.h>
+#include "util/util.h"
+
Evas_Object *util_add_box(Evas_Object *base)
{
Evas_Object *box;
return -1;
}
+
+app_media *util_find_media_info(Eina_List *list, const char *id)
+{
+ Eina_List *l;
+ app_media *am;
+ app_media_info *info;
+
+ EINA_LIST_FOREACH(list, l, am) {
+ info = app_media_get_info(am);
+ if (!info)
+ continue;
+
+ if (!strcmp(info->media_id, id))
+ return am;
+ }
+
+ return NULL;
+}