#include <aul_svc.h>
#include <bundle_internal.h>
#include <ttrace.h>
+#include <voice_control_elm.h>
+#include <voice_control_elm_private.h>
#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) {
const char *bg_launch;
bundle *b;
char appid[PATH_MAX] = {0, };
+ int r;
+ bool is_vc_vt_automode = false;
+ appcore_ui_plugin_init(&ops, &hint);
aul_app_get_appid_bypid(getpid(), appid, sizeof(appid));
__context.ops = ops;
__context.data = data;
LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:main:done]", appid);
elm_init(argc, argv);
+ r = vc_elm_is_supported_vt_auto(&is_vc_vt_automode);
+ if (r != 0) {
+ _ERR("[VC] Fail to get vconfkey of vt_automode");
+ } else {
+ if (is_vc_vt_automode == true) {
+ vc_elm_initialize();
+ vc_elm_set_auto_register_mode(2, 0);
+ }
+ }
+
if (__context.hint & APPCORE_UI_BASE_HINT_HW_ACC_CONTROL) {
hwacc = getenv("HWACC");
EXPORT_API void appcore_ui_base_fini(void)
{
+ bool is_vc_vt_automode = false;
+ int r;
+
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();
+
+ r = vc_elm_is_supported_vt_auto(&is_vc_vt_automode);
+ if (r != 0) {
+ _ERR("[VC] Fail to get vconfkey of vt_automode");
+ } else {
+ if (is_vc_vt_automode == true)
+ vc_elm_deinitialize();
+ }
+
+ 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);