summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyojung Jo <hj903.jo@samsung.com>2015-09-04 11:28:31 +0900
committerHyojung Jo <hj903.jo@samsung.com>2015-09-04 11:28:31 +0900
commit414ac6cde719907858aff74bb056d7637e78471a (patch)
tree65a86f8529b44cb59e02c013c7b46deaa9a44362
parent12bc19146da33b5e64df281969935178e873898d (diff)
downloadair_favorite-414ac6cde719907858aff74bb056d7637e78471a.tar.gz
air_favorite-414ac6cde719907858aff74bb056d7637e78471a.tar.bz2
air_favorite-414ac6cde719907858aff74bb056d7637e78471a.zip
Load appropriate menu when called by 'more favorite'
Change-Id: I3883adb24de21161b275ad57c301f99072e72cd3 Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
-rw-r--r--include/view.h1
-rw-r--r--src/main.c10
-rw-r--r--src/view/view_base.c20
3 files changed, 31 insertions, 0 deletions
diff --git a/include/view.h b/include/view.h
index 88fbb88..ca7252c 100644
--- a/include/view.h
+++ b/include/view.h
@@ -27,6 +27,7 @@ enum update_type {
UPDATE_SHOW_TOAST,
UPDATE_LOCK,
UPDATE_UNLOCK,
+ UPDATE_MENU,
};
#endif /* __AIR_APPS_VIEW_H__ */
diff --git a/src/main.c b/src/main.c
index 9330e02..89b2aa6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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.");
}
diff --git a/src/view/view_base.c b/src/view/view_base.c
index e31dff6..85a774a 100644
--- a/src/view/view_base.c
+++ b/src/view/view_base.c
@@ -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;