From: Hwankyu Jhun Date: Thu, 1 Dec 2016 02:29:19 +0000 (+0900) Subject: Add appcore event X-Git-Tag: accepted/tizen/3.0/common/20161213.163932~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fappfw%2Fapp-core.git;a=commitdiff_plain;h=7d1b28a03b12a9b44891f88b0ec74934859c5c23 Add appcore event - APPCORE_EVENT_UPDATE_REQUESTED Change-Id: Ib50a6b9bdf7eaf3f12f9a3606fac92361ee9e2fb Signed-off-by: Hwankyu Jhun --- 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 */