Load appropriate menu when called by 'more favorite' 00/47500/1
authorHyojung Jo <hj903.jo@samsung.com>
Fri, 4 Sep 2015 02:28:31 +0000 (11:28 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Fri, 4 Sep 2015 02:28:31 +0000 (11:28 +0900)
Change-Id: I3883adb24de21161b275ad57c301f99072e72cd3
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/view.h
src/main.c
src/view/view_base.c

index 88fbb88..ca7252c 100644 (file)
@@ -27,6 +27,7 @@ enum update_type {
        UPDATE_SHOW_TOAST,
        UPDATE_LOCK,
        UPDATE_UNLOCK,
+       UPDATE_MENU,
 };
 
 #endif /* __AIR_APPS_VIEW_H__ */
index 9330e02..89b2aa6 100644 (file)
@@ -19,6 +19,7 @@
 #include <viewmgr.h>
 #include <inputmgr.h>
 #include <ui-gadget.h>
+#include <app_define.h>
 #include <app_debug.h>
 
 #include "define.h"
@@ -113,6 +114,8 @@ static void _terminate(void *data)
 static void _app_control(app_control_h control, void *data)
 {
        struct _appdata *ad;
+       char *category;
+       int r;
 
        if (!data) {
                _ERR("Get data failed.");
@@ -123,6 +126,13 @@ static void _app_control(app_control_h control, void *data)
        if (ad->win)
                elm_win_activate(ad->win);
 
+       r = app_control_get_extra_data(control, PARAM_CATEGORY, &category);
+       if (r != APP_CONTROL_ERROR_NONE)
+               category = NULL;
+
+       if (category)
+               viewmgr_update_view(VIEW_BASE, UPDATE_MENU, category);
+
        if (!viewmgr_push_view(VIEW_BASE))
                _ERR("Push view failed.");
 }
index e31dff6..85a774a 100644 (file)
@@ -524,6 +524,8 @@ static void _update(void *view_data, int update_type, void *data)
 {
        struct _priv *priv;
        struct grid_data *gdata;
+       char *menu_category;
+       int i;
 
        if (!view_data) {
                _ERR("Get data failed.");
@@ -532,6 +534,24 @@ static void _update(void *view_data, int update_type, void *data)
        priv = view_data;
 
        switch (update_type) {
+       case UPDATE_MENU:
+               if (!data)
+                       return;
+
+               menu_category = data;
+
+               for (i = 0; i < COUNT_MENU; i++) {
+                       gdata = _get_grid_data[i]();
+
+                       if (gdata && gdata->id
+                                       && !strcmp(gdata->id, menu_category)) {
+                               elm_object_focus_set(priv->menu[i], EINA_TRUE);
+                               break;
+                       }
+               }
+
+               break;
+
        case UPDATE_GRID:
                _update_current_grid(priv);
                break;