bool listmgr_update_content_list(struct listmgr *lmgr, Eina_List *list);
bool listmgr_update_play_info(struct listmgr *lmgr, app_media_info *info);
-bool listmgr_update_focus_item(struct listmgr *lmgr, int index);
+bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update);
#endif /* __AIR_MEDIAHUB_LISTMGR_H__ */
struct listmgr_data *ldata;
struct mediadata *md;
+ int cur_index;
Eina_List *media_list;
};
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);
{
struct _priv *priv;
int index;
+ bool update;
if (!layout_data) {
_ERR("failed to get layout data");
}
index = *(int *)data;
- listmgr_update_focus_item(priv->listmgr, index);
+
+ if (priv->cur_index != index)
+ update = true;
+ else
+ update = false;
+
+ listmgr_update_focus_item(priv->listmgr, index, update);
break;
default:
struct progressbar *prog;
Eina_List *media_list;
+ int cur_index;
app_media *recent_info;
};
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);
{
struct _priv *priv;
int index;
+ bool update;
if (!layout_data) {
_ERR("failed to get layout data");
}
index = *(int *)data;
- listmgr_update_focus_item(priv->listmgr, index);
+ if (priv->cur_index != index)
+ update = true;
+ else
+ update = false;
+
+ listmgr_update_focus_item(priv->listmgr, index, update);
_update_recent_item(priv);
break;
default:
struct listmgr_data *ldata;
struct mediadata *md;
+ int cur_index;
Eina_List *media_list;
};
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_MPLAYER, UPDATE_CONTENT, &vdata);
viewmgr_push_view(VIEW_MPLAYER);
{
struct _priv *priv;
int index;
+ bool update;
if (!layout_data) {
_ERR("failed to get layout data");
}
index = *(int *)data;
- listmgr_update_focus_item(priv->listmgr, index);
+
+ if (priv->cur_index != index)
+ update = true;
+ else
+ update = false;
+
+ listmgr_update_focus_item(priv->listmgr, index, update);
break;
default:
return ly;
}
-bool listmgr_update_focus_item(struct listmgr *lmgr, int index)
+bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update)
{
Eina_List *item, *l;
- Evas_Object *ly, *grid;
+ Evas_Object *ly, *grid, *content;
Elm_Object_Item *it;
int count;
+ if (!update) {
+ content = elm_object_part_content_get(lmgr->focused,
+ PART_ITEM_CONTENT);
+
+ lmgr->scr_focus = EINA_FALSE;
+ elm_object_focus_set(content, EINA_TRUE);
+
+ return true;
+ }
+
item = elm_box_children_get(lmgr->box);
if (lmgr->show_play_info)
item = eina_list_next(item);