#include "appcore_base.h"
#include "appcore_ui_base.h"
#include "appcore_ui_base_private.h"
+#include "appcore_ui_plugin.h"
enum app_state {
AS_NONE,
static void __set_bg_state(void)
{
- if (__init_wl() < 0)
+ if (!tz_policy && __init_wl() < 0)
return;
tizen_policy_set_background_state(tz_policy, getpid());
wl_display_roundtrip(dsp);
bg_state = false;
_DBG("bg state: %d", bg_state);
- __finish_wl();
}
static void __do_start(bundle *b)
return;
}
- if ((__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) &&
- bg_state) {
+ if (__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) {
bg_launch = bundle_get_val(b, AUL_SVC_K_BG_LAUNCH);
- if (!bg_launch || strcmp(bg_launch, "enable"))
- __unset_bg_state();
+ if (bg_launch && strcmp(bg_launch, "enable") == 0) {
+ if (!bg_state && __context.state != AS_RUNNING)
+ __set_bg_state();
+ } else {
+ if (bg_state)
+ __unset_bg_state();
+ }
}
- __raise_win();
+ if (__context.hint & APPCORE_UI_BASE_HINT_WINDOW_AUTO_CONTROL) {
+ if (!bg_state)
+ __raise_win();
+ }
}
EXPORT_API int appcore_ui_base_on_receive(aul_type type, bundle *b)
__do_start(b);
break;
case AUL_RESUME:
- __do_resume();
+ if (bg_state)
+ __unset_bg_state();
+ __raise_win();
break;
case AUL_TERMINATE:
break;
}
__context.state = AS_DYING;
- if (__context.hshow)
- ecore_event_handler_del(__context.hshow);
- if (__context.hhide)
- ecore_event_handler_del(__context.hhide);
- if (__context.hvchange)
- ecore_event_handler_del(__context.hvchange);
- if (__context.hlower)
- ecore_event_handler_del(__context.hlower);
-
- elm_shutdown();
-
- /* Check loader case */
- if (getenv("AUL_LOADER_INIT")) {
- unsetenv("AUL_LOADER_INIT");
- elm_shutdown();
- }
appcore_base_on_terminate();
static void __group_attach()
{
- static bool attached = false;
+ if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL))
+ return;
+
+ appcore_ui_base_group_add();
+}
+static void __group_lower()
+{
if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL))
return;
+ appcore_ui_base_group_remove();
+}
+
+EXPORT_API void appcore_ui_base_group_add()
+{
+ static bool attached = false;
_DBG("__group_attach");
if (attached)
attached = true;
}
-static void __group_lower()
+EXPORT_API void appcore_ui_base_group_remove()
{
int exit = 0;
- if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL))
- return;
-
_DBG("__group_lower");
aul_app_group_lower(&exit);
if (exit) {
bundle *b;
char appid[PATH_MAX] = {0, };
+ appcore_ui_plugin_init(&ops, &hint);
aul_app_get_appid_bypid(getpid(), appid, sizeof(appid));
__context.ops = ops;
__context.data = data;
EXPORT_API void appcore_ui_base_fini(void)
{
appcore_base_fini();
+ appcore_ui_plugin_fini();
+
+ if (__context.hshow)
+ ecore_event_handler_del(__context.hshow);
+ if (__context.hhide)
+ ecore_event_handler_del(__context.hhide);
+ if (__context.hvchange)
+ ecore_event_handler_del(__context.hvchange);
+ if (__context.hlower)
+ ecore_event_handler_del(__context.hlower);
+
+ __finish_wl();
+ elm_shutdown();
+
+ /* Check loader case */
+ if (getenv("AUL_LOADER_INIT")) {
+ unsetenv("AUL_LOADER_INIT");
+ elm_shutdown();
+ }
+
free(__context.appid);
__context.appid = NULL;
}
__context.ops.base.exit(__context.data);
}
+EXPORT_API unsigned int appcore_ui_base_get_main_window(void)
+{
+ return __get_main_window();
+}
+
+EXPORT_API unsigned int appcore_ui_base_get_main_surface(void)
+{
+ return __get_main_surface();
+}
+
static int __on_receive(aul_type type, bundle *b, void *data)
{
return appcore_ui_base_on_receive(type, b);