summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2016-12-01 11:29:19 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2016-12-01 11:29:19 +0900
commit7d1b28a03b12a9b44891f88b0ec74934859c5c23 (patch)
tree23562fdf2b431f6abdf24896b60cc8de51d7ffab
parente99b988250767f34e5e5ab0703a8a36ecf7502cc (diff)
downloadapp-core-7d1b28a03b12a9b44891f88b0ec74934859c5c23.tar.gz
app-core-7d1b28a03b12a9b44891f88b0ec74934859c5c23.tar.bz2
app-core-7d1b28a03b12a9b44891f88b0ec74934859c5c23.zip
Add appcore event
- APPCORE_EVENT_UPDATE_REQUESTED Change-Id: Ib50a6b9bdf7eaf3f12f9a3606fac92361ee9e2fb Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--include/appcore-common.h2
-rw-r--r--include/appcore-internal.h2
-rw-r--r--src/appcore-efl.c20
-rw-r--r--src/appcore.c16
4 files changed, 39 insertions, 1 deletions
diff --git a/include/appcore-common.h b/include/appcore-common.h
index a130336..125aabe 100644
--- a/include/appcore-common.h
+++ b/include/appcore-common.h
@@ -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 */
};
/**
diff --git a/include/appcore-internal.h b/include/appcore-internal.h
index f16c214..a645a69 100644
--- a/include/appcore-internal.h
+++ b/include/appcore-internal.h
@@ -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
};
diff --git a/src/appcore-efl.c b/src/appcore-efl.c
index b9f062a..1378463 100644
--- a/src/appcore-efl.c
+++ b/src/appcore-efl.c
@@ -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;
diff --git a/src/appcore.c b/src/appcore.c
index 144f15d..f3a10fa 100644
--- a/src/appcore.c
+++ b/src/appcore.c
@@ -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 */