Add appcore event 45/101345/1
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 1 Dec 2016 02:29:19 +0000 (11:29 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 1 Dec 2016 02:29:19 +0000 (11:29 +0900)
- APPCORE_EVENT_UPDATE_REQUESTED

Change-Id: Ib50a6b9bdf7eaf3f12f9a3606fac92361ee9e2fb
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
include/appcore-common.h
include/appcore-internal.h
src/appcore-efl.c
src/appcore.c

index a130336..125aabe 100644 (file)
@@ -76,6 +76,8 @@ enum appcore_event {
                        /**< Region setting is changed */
        APPCORE_EVENT_SUSPENDED_STATE_CHANGE,
                        /**< The suspended state is changed */
+       APPCORE_EVENT_UPDATE_REQUESTED,
+                       /**< Update requested */
 };
 
 /**
index f16c214..a645a69 100644 (file)
@@ -117,6 +117,7 @@ enum app_event {
        AE_RESET,
        AE_LOWMEM_POST,
        AE_MEM_FLUSH,
+       AE_UPDATE_REQUESTED,
        AE_MAX
 };
 
@@ -130,6 +131,7 @@ enum sys_event {
        SE_LANGCHG,
        SE_REGIONCHG,
        SE_SUSPENDED_STATE,
+       SE_UPDATE_REQUESTED,
        SE_MAX
 };
 
index b9f062a..1378463 100644 (file)
@@ -70,8 +70,8 @@ struct ui_priv {
 
        Ecore_Timer *mftimer; /* Ecore Timer for memory flushing */
 
-#ifdef _APPFW_FEATURE_BACKGROUND_MANAGEMENT
        struct appcore *app_core;
+#ifdef _APPFW_FEATURE_BACKGROUND_MANAGEMENT
        void (*prepare_to_suspend) (void *data);
        void (*exit_from_suspend) (void *data);
 #endif
@@ -99,6 +99,7 @@ static const char *_ae_name[AE_MAX] = {
        [AE_RESET] = "RESET",
        [AE_LOWMEM_POST] = "LOWMEM_POST",
        [AE_MEM_FLUSH] = "MEM_FLUSH",
+       [AE_UPDATE_REQUESTED] = "UPDATE_REQUESTED",
 };
 
 static const char *_as_name[] = {
@@ -256,6 +257,20 @@ static void __appcore_efl_exit_from_suspend(void *data)
 }
 #endif
 
+static void __appcore_efl_update_requested(void *data)
+{
+       struct ui_priv *ui = (struct ui_priv *)data;
+       struct sys_op *op;
+       int dummy = 0;
+
+       if (ui->app_core) {
+               op = &ui->app_core->sops[SE_UPDATE_REQUESTED];
+               if (op && op->func)
+                       op->func((void *)&dummy, op->data);
+       }
+       _DBG("[__UPDATE_REQUESTED__]");
+}
+
 #if defined(MEMORY_FLUSH_ACTIVATE)
 static Eina_Bool __appcore_memory_flush_cb(void *data)
 {
@@ -533,6 +548,9 @@ static void __do_app(enum app_event event, void *data, bundle * b)
                        _DBG("[APP %d] is another state", _pid);
                }
                break;
+       case AE_UPDATE_REQUESTED:
+               __appcore_efl_update_requested(ui);
+               break;
        default:
                /* do nothing */
                break;
index 144f15d..f3a10fa 100644 (file)
@@ -58,6 +58,7 @@ static enum appcore_event to_ae[SE_MAX] = {
        APPCORE_EVENT_LANG_CHANGE,      /* SE_LANGCGH */
        APPCORE_EVENT_REGION_CHANGE,
        APPCORE_EVENT_SUSPENDED_STATE_CHANGE,
+       APPCORE_EVENT_UPDATE_REQUESTED,
 };
 
 static int appcore_event_initialized[SE_MAX] = {0,};
@@ -228,6 +229,17 @@ static int __app_pause(void *data)
        return 0;
 }
 
+static int __app_update_requested(void *data)
+{
+       struct appcore *ac = data;
+
+       _retv_if(ac == NULL || ac->ops == NULL, -1);
+       _retv_if(ac->ops->cb_app == NULL, 0);
+       ac->ops->cb_app(AE_UPDATE_REQUESTED, ac->ops->data, NULL);
+
+       return 0;
+}
+
 static int __sys_do_default(struct appcore *ac, enum sys_event event)
 {
        int r;
@@ -585,6 +597,10 @@ static int __aul_handler(aul_type type, bundle *b, void *data)
                }
                break;
 #endif
+       case AUL_UPDATE_REQUESTED:
+               _DBG("[APP %d]     AUL event: AUL_UPDATE_REQUESTED", _pid);
+               __app_update_requested(data);
+               break;
        default:
                _DBG("[APP %d]     AUL event: %d", _pid, type);
                /* do nothing */