#include <tv_service_proxy_channel_info.h>
#include <media_content.h>
#include <app_media.h>
+#include <time.h>
#include "data_recent.h"
#include "datamgr.h"
static struct datamgr_item *_new_datamgr_item(char *title, char *thumb,
char *subtitle, char *parameter, char *key, char *value,
- char *icon, int type)
+ char *icon, int type, time_t time)
{
struct datamgr_item *di;
di->type = type;
di->parameter = strdup(parameter);
di->action = ITEM_SELECT_ACTION_LAUNCH;
+ di->time = time;
if (thumb)
di->icon = strdup(thumb);
if (subtitle)
thumb = IMAGE_RECENT_THUMB_APP;
di = _new_datamgr_item(label, thumb, NULL, rdata->id, NULL, NULL,
- IMAGE_RECENT_ICON_APP, 0);
+ IMAGE_RECENT_ICON_APP, 0, rdata->time);
if (di)
dm->list = eina_list_append(dm->list, di);
channel.program_name : "");
di = _new_datamgr_item(buf, NULL, NULL, PACKAGE_LIVETV, KEY_CHANNEL,
- rdata->id, IMAGE_RECENT_ICON_CHANNEL, 1);
+ rdata->id, IMAGE_RECENT_ICON_CHANNEL, 1, rdata->time);
if (di)
dm->list = eina_list_append(dm->list, di);
}
di = _new_datamgr_item(aminfo->title, aminfo->thumbnail_path, NULL,
PACKAGE_MEDIAHUB, KEY_MEDIA, rdata->id,
- IMAGE_RECENT_ICON_GALLERY, 1);
+ IMAGE_RECENT_ICON_GALLERY, 1, rdata->time);
if (di)
dm->list = eina_list_append(dm->list, di);
di = _new_datamgr_item(aminfo->title, aminfo->thumbnail_path,
dur ? dur : NULL, PACKAGE_MEDIAHUB, KEY_MEDIA,
- rdata->id, IMAGE_RECENT_ICON_MOVIE, 1);
+ rdata->id, IMAGE_RECENT_ICON_MOVIE, 1, rdata->time);
if (di)
dm->list = eina_list_append(dm->list, di);
di = _new_datamgr_item(aminfo->title, aminfo->thumbnail_path,
aminfo->audio->artist, PACKAGE_MEDIAHUB, KEY_MEDIA,
- rdata->id, IMAGE_RECENT_ICON_MUSIC, 1);
+ rdata->id, IMAGE_RECENT_ICON_MUSIC, 1, rdata->time);
if (di)
dm->list = eina_list_append(dm->list, di);
dm->list = NULL;
}
+static int _sort_list(const void *data1, const void *data2)
+{
+ struct datamgr_item *di1, *di2;
+
+ di1 = (struct datamgr_item *)data1;
+ di2 = (struct datamgr_item *)data2;
+
+ if (!di1 || !di2)
+ return -1;
+
+ if (di1->time < di2->time)
+ return 1;
+
+ return -1;
+}
+
static Eina_List *_get_items(struct datamgr *dm)
{
if (!dm) {
if (!_load_recent(dm, CONTENTS_MUSIC, 1, _music_list_foreach))
_ERR("failed to load recent music contents");
- /* TODO: Sort for contents list */
+ dm->list = eina_list_sort(dm->list, 0, _sort_list);
return dm->list;
}