Eina_List *media_list;
- app_media *recent_info;
+ char *recent_id;
int view_mode;
int source_type;
static bool _update_recent(void *data, Evas_Object *base)
{
+ Eina_List *list;
Evas_Object *recent;
+ app_media *am;
app_media_info *info;
+ struct datamgr *dmgr;
struct _priv *priv;
if (!data || !base) {
return false;
}
- info = app_media_get_info(priv->recent_info);
+ am = NULL;
+
+ dmgr = priv->dmgr[E_DATA_MEDIA];
+ if (!dmgr)
+ return false;
+
+ list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL);
+
+ am = util_find_media_info(list, priv->recent_id);
+ if (!am) {
+ _ERR("failed to get app media");
+ return false;
+ }
+
+ info = app_media_get_info(am);
if (!info) {
_ERR("failed to get app media info");
return false;
!strcmp(ev->keyname, KEY_CONTEXT_MENU)) {
vdata.list = dmgr->ops->get_list(dmgr->handle,
E_LIST_MEDIA, NULL);
- vdata.index = util_get_media_index(vdata.list,
- priv->recent_info);
+ vdata.index = util_get_media_index_from_id(vdata.list,
+ priv->recent_id);
vdata.id = VIEW_BASE;
viewmgr_update_view(VIEW_ACTION_MENU, UPDATE_CONTENT, &vdata);
return;
vdata.list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL);
- vdata.index = util_get_media_index(vdata.list, priv->recent_info);
+ vdata.index = util_get_media_index_from_id(vdata.list, priv->recent_id);
+
vdata.id = VIEW_BASE;
viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata);
if (!dmgr)
return;
+ free(priv->recent_id);
+ priv->recent_id = NULL;
+
info = NULL;
list = dmgr->ops->get_list(dmgr->handle, E_LIST_MEDIA, NULL);
_ERR("failed to get app media info");
}
- priv->recent_info = am;
+ if (info && info->media_id)
+ priv->recent_id = strdup(info->media_id);
if (!listmgr_update_play_info(priv->listmgr, info))
_ERR("failed to update recently watched item");
_destroy_utils(priv);
+ free(priv->recent_id);
+
evas_object_del(priv->layout);
free(priv);
struct view_update_data *vdata;
struct _priv *priv;
struct datamgr *dmgr;
- app_media_info *mi;
int mode;
if (!layout_data) {
case UPDATE_CONTENT_ITEM:
listmgr_update_content_item(priv->listmgr);
- if (priv->recent_info) {
- mi = app_media_get_info(priv->recent_info);
- _update_recent_item(priv, mi->media_id);
- }
+ if (priv->recent_id)
+ _update_recent_item(priv, priv->recent_id);
break;
case UPDATE_FOCUS:
if (!data) {