base: find the item to be focused using media id
[profile/tv/apps/native/air_mediahub.git] / src / layout / movie.c
index 9d6561c..4639e8a 100644 (file)
@@ -59,7 +59,6 @@ struct _priv {
        struct progressbar *prog;
 
        Eina_List *media_list;
-       int cur_index;
 
        app_media *recent_info;
 };
@@ -340,7 +339,6 @@ static void _item_selected(struct _priv *priv, app_media *am)
 
        vdata.list = mediadata_get_medialist(priv->md);
        vdata.index = util_get_media_index(vdata.list, am);
-       priv->cur_index = vdata.index;
 
        viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata);
        viewmgr_push_view(VIEW_VIEWER);
@@ -403,7 +401,6 @@ static void _grid_key_down_cb(void *data, Elm_Object_Item *it,
 
                vdata.list = mediadata_get_medialist(priv->md);
                vdata.index = util_get_media_index(vdata.list, am);
-               priv->cur_index = vdata.index;
 
                viewmgr_update_view(VIEW_ACTION_MENU, UPDATE_CONTENT, &vdata);
                viewmgr_show_view(VIEW_ACTION_MENU);
@@ -523,7 +520,7 @@ static app_media *_get_recent_item(Eina_List *list)
        return am;
 }
 
-static void _update_recent_item(struct _priv *priv, int index)
+static void _update_recent_item(struct _priv *priv, const char *id)
 {
        Eina_List *list;
        app_media *am;
@@ -531,8 +528,8 @@ static void _update_recent_item(struct _priv *priv, int index)
 
        list = mediadata_get_medialist(priv->md);
 
-       if (index >= 0)
-               am = eina_list_nth(list, index);
+       if (id)
+               am = util_find_media_info(list, id);
        else
                am = _get_recent_item(list);
 
@@ -714,11 +711,11 @@ 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);
+               _update_recent_item(priv, NULL);
                break;
        case UPDATE_CONTENT_ITEM:
                listmgr_update_content_item(priv->listmgr);
-               _update_recent_item(priv, -1);
+               _update_recent_item(priv, NULL);
                break;
        case UPDATE_FOCUS:
                if (!data) {
@@ -729,7 +726,7 @@ static void _update(void *layout_data, int update_type, void *data)
                vdata = data;
 
                listmgr_focus_play_info(priv->listmgr);
-               _update_recent_item(priv, vdata->index);
+               _update_recent_item(priv, vdata->id);
                break;
        case UPDATE_RECENT:
                if (!data) {