From: Hyojung Jo Date: Mon, 3 Aug 2015 06:35:22 +0000 (+0900) Subject: Removed the resume callback and fixed the focus bug X-Git-Tag: submit/tizen/20150804.130701~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afc8150c77e5a498f44cfd0332b32e380bbddefe;p=profile%2Ftv%2Fapps%2Fnative%2Fair_apps.git Removed the resume callback and fixed the focus bug Change-Id: I11d233881c6172d308ec91b61c28b46ea6a3cf0b Signed-off-by: Hyojung Jo --- diff --git a/include/view_base.h b/include/view_base.h index 5c6282a..0afd592 100644 --- a/include/view_base.h +++ b/include/view_base.h @@ -19,6 +19,4 @@ view_class *view_base_get_vclass(void); -#define UPDATE_LIST 0 - #endif /* __AIR_APPS_VIEW_BASE_H__ */ diff --git a/src/main.c b/src/main.c index 05a1321..52e3631 100644 --- a/src/main.c +++ b/src/main.c @@ -117,17 +117,6 @@ static void _app_control(app_control_h control, void *data) _ERR("Push view failed."); } -static void _resume(void *data) -{ - if (!data) { - _ERR("Get data failed."); - return; - } - - if (!viewmgr_update_view(VIEW_BASE, UPDATE_LIST, NULL)) - _ERR("Update view failed."); -} - int main(int argc, char *argv[]) { struct _appdata ad; @@ -135,7 +124,6 @@ int main(int argc, char *argv[]) .create = _create, .terminate = _terminate, .app_control = _app_control, - .resume = _resume, }; memset(&ad, 0x00, sizeof(ad)); diff --git a/src/view/view_base.c b/src/view/view_base.c index 309058c..7af5126 100644 --- a/src/view/view_base.c +++ b/src/view/view_base.c @@ -61,7 +61,7 @@ struct _priv { Evas_Object *sort_btn; Evas_Object *sort_popup; Evas_Object *grid; - Elm_Object_Item *cur_grid_item; + Elm_Object_Item *cur_selected_item; struct gridmgr *gmgr; Eina_List *app_list; enum sort_type sort_type; @@ -446,34 +446,25 @@ static void _grid_focused_cb(int id, void *data, Evas_Object *obj, elm_object_signal_emit(priv->focused_menu, SIG_SELECTED, SRC_MENU_BTN); - if (priv->cur_grid_item) - elm_object_item_focus_set(priv->cur_grid_item, EINA_TRUE); -} - -static void _grid_item_focused_cb(void *data, Elm_Object_Item *it, - const char *emission, const char *source) -{ - struct _priv *priv; - - if (!data) { - _ERR("Invalid argument."); - return; + if (priv->cur_selected_item) { + elm_object_item_focus_set(priv->cur_selected_item, EINA_TRUE); + priv->cur_selected_item = NULL; } - priv = data; - - priv->cur_grid_item = (Elm_Object_Item *)it; } static void _grid_item_selected_cb(void *data, Elm_Object_Item *it, const char *emission, const char *source) { - struct app_data *adata; + struct _priv *priv; + struct app_data *adata, *new_adata; + Elm_Object_Item *item; int r; - if (!it) { + if (!data || !it) { _ERR("Invalid argument."); return; } + priv = data; adata = elm_object_item_data_get(it); r = aul_open_app(get_app_id(adata)); @@ -483,6 +474,24 @@ static void _grid_item_selected_cb(void *data, Elm_Object_Item *it, } elm_gengrid_item_selected_set(it, EINA_FALSE); + + if (priv->sort_type == SORT_RECENT) { + _sort_by_recently_used(priv); + gridmgr_append_list(priv->gmgr, STR_MYAPPS, priv->app_list); + + item = elm_gengrid_first_item_get(priv->grid); + priv->cur_selected_item = NULL; + + while (item) { + new_adata = elm_object_item_data_get(item); + if (adata == new_adata) { + priv->cur_selected_item = item; + break; + } + + item = elm_gengrid_item_next_get(item); + } + } } static void _grid_realized_cb(int id, void *data, Evas_Object *obj, @@ -497,8 +506,6 @@ static void _grid_realized_cb(int id, void *data, Evas_Object *obj, adata = elm_object_item_data_get(item); - elm_object_item_signal_callback_add(item, SIG_ITEM_FOCUSED, - SIG_SOURCE_EDC, _grid_item_focused_cb, data); elm_object_item_signal_callback_add(item, SIG_ITEM_SELECTED, SIG_SOURCE_EDC, _grid_item_selected_cb, data); @@ -515,8 +522,6 @@ static void _grid_unrealized_cb(int id, void *data, Evas_Object *obj, return; } - elm_object_item_signal_callback_del(item, SIG_ITEM_FOCUSED, - SIG_SOURCE_EDC, _grid_item_focused_cb); elm_object_item_signal_callback_del(item, SIG_ITEM_SELECTED, SIG_SOURCE_EDC, _grid_item_selected_cb); } @@ -667,7 +672,7 @@ static bool _draw_myapps_grid(struct _priv *priv) elm_object_part_content_set(priv->base, PART_GENGRID, priv->grid); - priv->cur_grid_item = elm_gengrid_first_item_get(priv->grid); + priv->cur_selected_item = NULL; return true; } @@ -818,22 +823,6 @@ static void _hide(void *data) evas_object_hide(priv->base); } -static void _update(void *view_data, int update_type, void *data) -{ - struct _priv *priv; - - if (!view_data) { - _ERR("Get data failed."); - return; - } - priv = view_data; - - if (update_type == UPDATE_LIST && priv->sort_type == SORT_RECENT) { - _sort_by_recently_used(priv); - gridmgr_append_list(priv->gmgr, STR_MYAPPS, priv->app_list); - } -} - static void _destroy(void *data) { struct _priv *priv; @@ -858,7 +847,6 @@ static view_class _vclass = { .create = _create, .show = _show, .hide = _hide, - .update = _update, .destroy = _destroy, };