#include <bundle.h>
#include <bundle_internal.h>
#include <aul.h>
+#include <aul_widget.h>
#include <dlog.h>
#include <glib.h>
#include <glib-object.h>
#include <widget_errno.h>
#include <widget_instance.h>
#include <aul_app_com.h>
-#include <Ecore_Wayland.h>
+#include <Ecore_Wl2.h>
#include <system_info.h>
#include <vconf.h>
#include <vconf-internal-keys.h>
widget_base_instance_data *data;
char *content = NULL;
+ if (appcore_multiwindow_base_instance_find(id)) {
+ LOGE("Already exist id (%s)", id);
+ return;
+ }
+
data = (widget_base_instance_data *)
calloc(1, sizeof(widget_base_instance_data));
if (!data) {
__context.ops.exit(data);
}
+static void __multiwindow_trim_memory(void *data)
+{
+ if (__context.ops.trim_memory)
+ __context.ops.trim_memory(data);
+}
+
EXPORT_API int widget_base_exit(void)
{
+ int ret;
+
appcore_multiwindow_base_exit();
- if (appcore_multiwindow_base_instance_get_cnt() != 0 && __is_permanent)
- aul_notify_exit();
+ if (appcore_multiwindow_base_instance_get_cnt() == 0 && __is_permanent) {
+ ret = aul_notify_exit();
+ aul_widget_write_log(LOG_TAG, "[%s:%d] permanent exit : %d",
+ __FUNCTION__, __LINE__, ret);
+ }
return 0;
}
raw_ops.base.finish = __multiwindow_finish;
raw_ops.base.run = __multiwindow_run;
raw_ops.base.exit = __multiwindow_exit;
+ raw_ops.base.trim_memory = __multiwindow_trim_memory;
if (!__is_widget_feature_enabled()) {
LOGE("not supported"); /* LCOV_EXCL_LINE */
kb = bundle_import_from_argv(argc, argv);
if (kb) {
- bundle_get_str(kb, WIDGET_K_ENDPOINT, &viewer_endpoint);
+ bundle_get_str(kb, AUL_K_WIDGET_VIEWER, &viewer_endpoint);
if (viewer_endpoint) {
LOGD("viewer endpoint :%s", viewer_endpoint);
__viewer_endpoint = strdup(viewer_endpoint);
widget_base_on_exit();
}
+static void __on_trim_memory(void *data)
+{
+ widget_base_on_trim_memory();
+}
+
EXPORT_API int widget_base_on_create(void)
{
appcore_multiwindow_base_on_create();
{
}
+EXPORT_API int widget_base_on_trim_memory(void)
+{
+ appcore_multiwindow_base_on_trim_memory();
+
+ return 0;
+}
+
EXPORT_API widget_base_ops widget_base_get_default_ops(void)
{
widget_base_ops ops;
ops.finish = __on_finish;
ops.run = __on_run;
ops.exit = __on_exit;
+ ops.trim_memory = __on_trim_memory;
return ops;
}
EXPORT_API int widget_base_context_window_bind(
widget_base_instance_h instance_h, const char *id,
- Ecore_Wl_Window *wl_win)
+ Ecore_Wl2_Window *wl_win)
{
struct wl_surface *surface;
- surface = ecore_wl_window_surface_get(wl_win);
+ surface = ecore_wl2_window_surface_get(wl_win);
if (surface == NULL) {
LOGE("failed to get surface"); /* LCOV_EXCL_LINE */
return WIDGET_BASE_ERROR_FAULT; /* LCOV_EXCL_LINE */
if (!__fg_signal) {
LOGD("Send fg signal to resourceD");
- aul_send_app_status_change_signal(getpid(),
- __appid,
- __package_id,
- STATUS_FOREGROUND,
- APP_TYPE_WIDGET);
+ aul_widget_instance_change_status(class_id, STATUS_FOREGROUND);
__fg_signal = true;
}
}
if (__fg_signal) {
LOGD("Send bg signal to resourceD");
- aul_send_app_status_change_signal(getpid(),
- __appid,
- __package_id,
- STATUS_BACKGROUND,
- APP_TYPE_WIDGET);
+ aul_widget_instance_change_status(class_id, STATUS_BACKGROUND);
__fg_signal = false;
}
}
if (cls->ops.destroy)
cls->ops.destroy(instance_h, reason, content_info, class_data);
- LOGD("%s is destroyed %d", id, reason);
+ LOGW("%s is destroyed %d", id, reason);
if (reason == WIDGET_BASE_DESTROY_TYPE_PERMANENT) {
__is_permanent = true;
event = WIDGET_INSTANCE_EVENT_DESTROY;