From d55c997dc2d8a36bd73ba261fb203a904d4d99ce Mon Sep 17 00:00:00 2001 From: Semun Lee Date: Thu, 10 May 2018 09:55:26 +0900 Subject: [PATCH 01/16] Release version 1.2.11 Changes: - Remove unused dependency to dbus-glib Change-Id: Ifaa964b5f94604014e73cff5c8133db7507f5cd0 Signed-off-by: Semun Lee --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 502df34..0d27e46 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.2.10 +Version: 1.2.11 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From ba6b1d532574ddac7a4881d7a8cb1515e1ba23ae Mon Sep 17 00:00:00 2001 From: hyunho Date: Wed, 30 May 2018 10:37:41 +0900 Subject: [PATCH 02/16] Control iconify state according to resume/pause Change-Id: Idd952efc564fe6c8f92f646aaf076fe947ea2791 Signed-off-by: hyunho --- src/efl_base/widget_app.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/efl_base/widget_app.c b/src/efl_base/widget_app.c index 9386044..ba8be44 100644 --- a/src/efl_base/widget_app.c +++ b/src/efl_base/widget_app.c @@ -37,9 +37,12 @@ #endif #define LOG_TAG "CAPI_WIDGET_APPLICATION" +#define ICONIFY_TIMEOUT 500 struct instance_data { Evas_Object *win; + guint iconify_timer; + bool is_iconified; }; struct app_cb_info { @@ -141,6 +144,8 @@ static int __class_destroy(widget_base_instance_h instance_h, data = (struct instance_data *)widget_base_context_get_user_data(instance_h); if (data != NULL) { widget_base_context_set_user_data(instance_h, NULL); + if (data->iconify_timer > 0) + g_source_remove(data->iconify_timer); free(data); } @@ -149,11 +154,36 @@ static int __class_destroy(widget_base_instance_h instance_h, return ret; } +static gboolean __iconify_timeout_cb(gpointer user_data) +{ + struct instance_data *data = user_data; + Ecore_Wl2_Window *win = ecore_evas_wayland2_window_get( + ecore_evas_ecore_evas_get(evas_object_evas_get(data->win))); + + if (win) { + ecore_wl2_window_iconified_set(win, EINA_TRUE); + data->is_iconified = true; + _D("set iconify true"); + } + + data->iconify_timer = 0; + + return G_SOURCE_REMOVE; +} + static int __class_pause(widget_base_instance_h instance_h, void *class_data) { int ret = 0; struct app_class_cb_info *callback_data = (struct app_class_cb_info *)class_data; + struct instance_data *data = (struct instance_data *) + widget_base_context_get_user_data(instance_h); + + if (data->iconify_timer > 0) + g_source_remove(data->iconify_timer); + + data->iconify_timer = g_timeout_add(ICONIFY_TIMEOUT, + __iconify_timeout_cb, data); widget_base_class_on_pause(instance_h); if (callback_data && callback_data->callback.pause) { @@ -170,6 +200,24 @@ static int __class_resume(widget_base_instance_h instance_h, void *class_data) int ret = 0; struct app_class_cb_info *callback_data = (struct app_class_cb_info *)class_data; + Ecore_Wl2_Window *win; + struct instance_data *data = (struct instance_data *) + widget_base_context_get_user_data(instance_h); + + if (data->iconify_timer > 0) { + g_source_remove(data->iconify_timer); + data->iconify_timer = 0; + } + + if (data->is_iconified) { + win = ecore_evas_wayland2_window_get( + ecore_evas_ecore_evas_get(evas_object_evas_get(data->win))); + if (win) { + ecore_wl2_window_iconified_set(win, EINA_FALSE); + data->is_iconified = false; + _D("set iconify false"); + } + } widget_base_class_on_resume(instance_h); if (callback_data && callback_data->callback.resume) { -- 2.7.4 From 8fdae70dabc2215009fe3e5e76d26b7c11b15ed3 Mon Sep 17 00:00:00 2001 From: hyunho Date: Thu, 14 Jun 2018 13:36:35 +0900 Subject: [PATCH 03/16] Release version 1.2.12 Changes: - Control iconify state according to resume/pause Change-Id: I43d4eec8fee688a46172eaabe803d5db8c884d67 Signed-off-by: hyunho --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 0d27e46..7c27134 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.2.11 +Version: 1.2.12 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From 4c2e75906bbbd812b2dec4b324746b9cfb42fd87 Mon Sep 17 00:00:00 2001 From: hyunho Date: Mon, 16 Jul 2018 10:00:46 +0900 Subject: [PATCH 04/16] Handling instance id duplication Change-Id: I9bdc7ef624e0db2f02104974a6e3a40dabbb72c2 Signed-off-by: hyunho --- src/base/widget_base.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index 2d7d29c..4272147 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -308,6 +308,11 @@ static void __control_create(const char *class_id, const char *id, bundle *b) 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) { -- 2.7.4 From 9e400636dde36090666548e386dfb27134684a40 Mon Sep 17 00:00:00 2001 From: hyunho Date: Mon, 16 Jul 2018 10:34:14 +0900 Subject: [PATCH 05/16] Release version 1.2.13 Changes: - Handling instance id duplication Change-Id: I86510ce48bb9357327d7660a1aedb541d51e58c1 Signed-off-by: hyunho --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 7c27134..e26ff5a 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.2.12 +Version: 1.2.13 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From d474326a4a1b8218da23088fa9e3fe8ad53c009e Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 18 Jul 2018 19:28:11 +0900 Subject: [PATCH 06/16] Modified flushing memory logic elm_cache_all_flush() is separated from appcore_base_flush_memory(). This patch adds trim_memory() callback function type to add entry point. Change-Id: I94dfcd3e31bc151630e8a78b61d1e25f5dcfe502 Signed-off-by: Hwankyu Jhun --- include/widget_base.h | 2 ++ src/base/widget_base.c | 20 ++++++++++++++++++++ src/efl_base/widget_app.c | 8 ++++++++ 3 files changed, 30 insertions(+) diff --git a/include/widget_base.h b/include/widget_base.h index bf40ad3..80e1a57 100644 --- a/include/widget_base.h +++ b/include/widget_base.h @@ -75,6 +75,7 @@ typedef struct _widget_base_ops { void (*finish)(void); void (*run)(void *data); void (*exit)(void *data); + void (*trim_memory)(void *data); } widget_base_ops; typedef struct _widget_base_class { @@ -108,6 +109,7 @@ int widget_base_on_init(int argc, char **argv); void widget_base_on_finish(void); void widget_base_on_run(void); void widget_base_on_exit(void); +int widget_base_on_trim_memory(void); widget_base_ops widget_base_get_default_ops(void); void widget_base_fini(void); int widget_base_exit(void); diff --git a/src/base/widget_base.c b/src/base/widget_base.c index 4272147..0878b87 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -779,6 +779,12 @@ static void __multiwindow_exit(void *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; @@ -1152,6 +1158,7 @@ EXPORT_API int widget_base_init(widget_base_ops ops, int argc, char **argv, 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 */ @@ -1210,6 +1217,11 @@ static void __on_exit(void *data) 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(); @@ -1241,6 +1253,13 @@ EXPORT_API void widget_base_on_exit(void) { } +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; @@ -1252,6 +1271,7 @@ EXPORT_API widget_base_ops widget_base_get_default_ops(void) ops.finish = __on_finish; ops.run = __on_run; ops.exit = __on_exit; + ops.trim_memory = __on_trim_memory; return ops; } diff --git a/src/efl_base/widget_app.c b/src/efl_base/widget_app.c index ba8be44..174195f 100644 --- a/src/efl_base/widget_app.c +++ b/src/efl_base/widget_app.c @@ -288,6 +288,13 @@ static void __widget_app_exit(void *data) elm_exit(); } +static void __widget_app_trim_memory(void *data) +{ + _D("Trim memory"); + elm_cache_all_flush(); + widget_base_on_trim_memory(); +} + EXPORT_API int widget_app_main(int argc, char **argv, widget_app_lifecycle_callback_s *callback, void *user_data) { @@ -311,6 +318,7 @@ EXPORT_API int widget_app_main(int argc, char **argv, ops.finish = __widget_app_finish; ops.run = __widget_app_run; ops.exit = __widget_app_exit; + ops.trim_memory = __widget_app_trim_memory; cb_info.callback = callback; cb_info.user_data = user_data; -- 2.7.4 From 3757bb77556f24768a5e5579623a2ea697a1f381 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 25 Jul 2018 13:27:10 +0900 Subject: [PATCH 07/16] Release version 1.3.0 Changes: - Modified flushing memory logic Change-Id: I5b4fcb1a8ff715c0f8a8c2a5823944c72ce6cd16 Signed-off-by: Hwankyu Jhun --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index e26ff5a..2dbac2d 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.2.13 +Version: 1.3.0 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From 2f826977eb4c2ede75899b1281e6bff232a52542 Mon Sep 17 00:00:00 2001 From: hyunho Date: Mon, 23 Jul 2018 17:06:46 +0900 Subject: [PATCH 08/16] Use aul key for end point data Change-Id: I60a5126405c4fe86566d46f8122677fc1267e668 Signed-off-by: hyunho --- src/base/widget_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index 0878b87..efa1394 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -1167,7 +1167,7 @@ EXPORT_API int widget_base_init(widget_base_ops ops, int argc, char **argv, 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); -- 2.7.4 From f89e0908ada716a1d3755f8f21968949cbc34af8 Mon Sep 17 00:00:00 2001 From: hyunho Date: Thu, 26 Jul 2018 15:34:47 +0900 Subject: [PATCH 09/16] Release version 1.3.1 Changes: - Use aul key for end point data Change-Id: I76b5728070cec076c1b3874b0c226d4167d6b5f3 Signed-off-by: hyunho --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 2dbac2d..acbad7e 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.3.0 +Version: 1.3.1 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From eaf6c143ac7eae93e312d9bb96ad01ccd91cb08c Mon Sep 17 00:00:00 2001 From: hyunho Date: Mon, 11 Mar 2019 17:57:27 +0900 Subject: [PATCH 10/16] Remove unused codes Change-Id: I340a1292f7f2a208bc666c7786df27a2a0bed856 Signed-off-by: hyunho --- CMakeLists.txt | 2 -- packaging/appcore-widget.spec | 2 -- src/base/widget_base.c | 30 ------------------------------ 3 files changed, 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 369fd82..c3ac5b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,8 +28,6 @@ pkg_check_modules(pkg_widget_base REQUIRED dlog appcore-common capi-appfw-app-common - vconf - vconf-internal-keys widget_service capi-system-info ecore-wl2 diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index acbad7e..794970b 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -8,8 +8,6 @@ Source0: appcore-widget-%{version}.tar.gz BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(elementary) -BuildRequires: pkgconfig(vconf) -BuildRequires: pkgconfig(vconf-internal-keys) BuildRequires: pkgconfig(appcore-common) BuildRequires: pkgconfig(capi-appfw-app-common) BuildRequires: pkgconfig(widget_service) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index efa1394..c443d00 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -31,8 +31,6 @@ #include #include #include -#include -#include #include #include @@ -154,27 +152,6 @@ static bool __is_widget_feature_enabled(void) return feature; } -/* LCOV_EXCL_START */ -static void __on_poweroff(keynode_t *key, void *data) -{ - int val; - - val = vconf_keynode_get_int(key); - switch (val) { - case VCONFKEY_SYSMAN_POWER_OFF_DIRECT: - case VCONFKEY_SYSMAN_POWER_OFF_RESTART: - LOGI("power off changed: %d", val); - widget_base_exit(); - break; - case VCONFKEY_SYSMAN_POWER_OFF_NONE: - case VCONFKEY_SYSMAN_POWER_OFF_POPUP: - default: - /* DO NOTHING */ - break; - } -} -/* LCOV_EXCL_STOP */ - static void __check_empty_instance(void) { int cnt = appcore_multiwindow_base_instance_get_cnt(); @@ -607,10 +584,6 @@ static int __multiwindow_create(void *data) } screen_connector_provider_init(); - vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, - __on_poweroff, NULL); - - if (__context.ops.create) ret = __context.ops.create(data); @@ -622,9 +595,6 @@ static int __multiwindow_terminate(void *data) { if (__context.ops.terminate) __context.ops.terminate(data); - - vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, - __on_poweroff); screen_connector_provider_fini(); if (__viewer_endpoint) { -- 2.7.4 From 0a2d3f9baea6bee4c1b9e8e499d640fc5931b8ed Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Mar 2019 09:53:30 +0900 Subject: [PATCH 11/16] Release version 1.3.2 Changes: - Remove unused codes Change-Id: I552b15f6ddc6d794a1602205409b4b1aaa294c07 Signed-off-by: root --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 794970b..a532a0f 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.3.1 +Version: 1.3.2 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From 08b93b50c0e23df0e3ef749b2a682bfe7b9dfc00 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 15 Apr 2019 11:39:35 +0900 Subject: [PATCH 12/16] Add an exception handling Before setting the data of the widget instance, we should check whether the instance is running or not. If the create callback function returns a negative error value, the instance is dropped. ASAN Report: ERROR: AddressSanitizer: heap-use-after-free on address 0xaf6ccb90 at pc 0xb54cda33 bp 0xbed9accc sp 0xbed9acc4 WRITE of size 4 at 0xaf6ccb90 thread T0 - #0 0xb54cda31 in __control_create /usr/src/debug/appcore-widget-1.3.1/src/base/widget_base.c:328 - #1 0xb54cda31 in __multiwindow_control /usr/src/debug/appcore-widget-1.3.1/src/base/widget_base.c:672 - #2 0xb47540f1 in appcore_base_on_receive /usr/src/debug/app-core-1.13.0/src/base/appcore_base.c:1178 previously allocated by thread T0 here: - #0 0xb6aa9695 in calloc asan_rtl (discriminator 2) - #1 0xb54cd7a3 in __control_create /usr/src/debug/appcore-widget-1.3.1/src/base/widget_base.c:316 - #2 0xb54cd7a3 in __multiwindow_control /usr/src/debug/appcore-widget-1.3.1/src/base/widget_base.c:672 - #3 0xb47540f1 in appcore_base_on_receive /usr/src/debug/app-core-1.13.0/src/base/appcore_base.c:1178 Change-Id: I88bb7df5a8bc62f9b44ae338fb16663b36fbcd9b Signed-off-by: Hwankyu Jhun --- src/base/widget_base.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index c443d00..71f41a2 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -302,11 +302,12 @@ static void __control_create(const char *class_id, const char *id, bundle *b) /* call stub create */ appcore_multiwindow_base_instance_run(class_id, id, data); - data->args = NULL; - bundle_get_str(b, WIDGET_K_CONTENT_INFO, &content); - if (content) - data->content = strdup(content); - + if (appcore_multiwindow_base_instance_find(id)) { + data->args = NULL; + bundle_get_str(b, WIDGET_K_CONTENT_INFO, &content); + if (content) + data->content = strdup(content); + } } static void __control_resume(const char *class_id, const char *id, bundle *b) -- 2.7.4 From f6e137a86558dfbd1711aaa46dabc243bd9d783a Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 15 Apr 2019 13:09:12 +0900 Subject: [PATCH 13/16] Release version 1.3.3 Changes: - Add an exception handling Change-Id: Ief72adae90ecdbf57589f7aed4b24f5e1931d922 Signed-off-by: Hwankyu Jhun --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index a532a0f..83345ed 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.3.2 +Version: 1.3.3 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From 61598b9ad47ab19e07694d7c4317a221a389b7c9 Mon Sep 17 00:00:00 2001 From: "SukHyung, Kang" Date: Thu, 18 Apr 2019 12:46:09 +0900 Subject: [PATCH 14/16] Fix API reference error Change-Id: Iddb04ca105e49573a2821c20e1198a1ccc8adfb6 Signed-off-by: SukHyung, Kang --- include/widget_app.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/widget_app.h b/include/widget_app.h index 9e309d2..35d864d 100755 --- a/include/widget_app.h +++ b/include/widget_app.h @@ -80,7 +80,7 @@ typedef int (*widget_instance_create_cb)(widget_context_h context, bundle *conte * In this callback, you can finalize resources for this instance. * If reason is not #WIDGET_APP_DESTROY_TYPE_TEMPORARY, it should store the current status by using incoming bundle. * @since_tizen 2.3.1 - * @remark Note that the parameter 'content' is used to save the status of the widget instance. + * @remarks Note that the parameter 'content' is used to save the status of the widget instance. * As a input parameter, content contains the saved status of the widget instance. * You can fill the content parameter with the current status in this callback, * then the framework will save the content by receiving it as a output parameter. @@ -326,10 +326,10 @@ int widget_app_remove_event_handler(app_event_handler_h event_handler); * @brief Gets a widget instance id. * @since_tizen 2.3.1 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. - * @remark You must not free returned widget instance id - * @remark The returned widget instance id is volatile. If the device reboots or the widget's process restarts, it will be changed.\n + * @remarks You must not free returned widget instance id + * @remarks The returned widget instance id is volatile. If the device reboots or the widget's process restarts, it will be changed.\n * So, you should not assume this value is a persistent one. - * @remark widget_service_trigger_update(), widget_service_change_period(), widget_service_get_content_of_widget_instance()\n + * @remarks widget_service_trigger_update(), widget_service_change_period(), widget_service_get_content_of_widget_instance()\n * can be called with returned instance id. * @param[in] context The context for widget instance * @return widget instance id on success, -- 2.7.4 From c6f02505d9e6a2e026e7c0c5a7d26f872a96f400 Mon Sep 17 00:00:00 2001 From: "SukHyung, Kang" Date: Thu, 18 Apr 2019 13:49:57 +0900 Subject: [PATCH 15/16] Release version 1.3.4 Changes: - Fix API reference error Change-Id: I8e94c62138be9a0fcb19a186b7e2bd6e1c3ee720 Signed-off-by: SukHyung, Kang --- packaging/appcore-widget.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/appcore-widget.spec b/packaging/appcore-widget.spec index 83345ed..885b060 100644 --- a/packaging/appcore-widget.spec +++ b/packaging/appcore-widget.spec @@ -1,6 +1,6 @@ Name: appcore-widget Summary: Widget Application -Version: 1.3.3 +Version: 1.3.4 Release: 1 Group: Application Framework/Libraries License: Apache-2.0 -- 2.7.4 From d04aa9d7d7541f984fc3a82d28d8be05edd4b28c Mon Sep 17 00:00:00 2001 From: hyunho Date: Fri, 28 Jun 2019 13:32:56 +0900 Subject: [PATCH 16/16] Writing a file log for widget app exit Change-Id: I976f3c07e32c1afa96d4d7c6444b8017e2c851c9 Signed-off-by: hyunho --- src/base/widget_base.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index 71f41a2..c11f0af 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -758,14 +758,17 @@ static void __multiwindow_trim_memory(void *data) EXPORT_API int widget_base_exit(void) { - int ret; + int ret = 0; + int cnt; appcore_multiwindow_base_exit(); - if (appcore_multiwindow_base_instance_get_cnt() == 0 && __is_permanent) { + cnt = appcore_multiwindow_base_instance_get_cnt(); + if (cnt == 0 && __is_permanent) ret = aul_notify_exit(); - aul_widget_write_log(LOG_TAG, "[%s:%d] permanent exit : %d", - __FUNCTION__, __LINE__, ret); - } + + aul_widget_write_log(LOG_TAG, + "[%s:%d] exit : ret(%d), cnt(%d), permanent(%d)", + __FUNCTION__, __LINE__, ret, cnt, __is_permanent); return 0; } -- 2.7.4