From: Hwankyu Jhun Date: Tue, 19 May 2020 02:09:59 +0000 (+0900) Subject: Fix a bug about seamless launching effect X-Git-Tag: submit/tizen/20200529.041354~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a76a3b18b9e65b7f6fa54f75e76134760f1ea35e;p=platform%2Fcore%2Fappfw%2Famd.git Fix a bug about seamless launching effect Change-Id: Ic9244135e61987687c8e9a990a9a29708974f793 Signed-off-by: Hwankyu Jhun --- diff --git a/inc/amd_api_launch_context.h b/inc/amd_api_launch_context.h index 1427c103..dfe465a7 100644 --- a/inc/amd_api_launch_context.h +++ b/inc/amd_api_launch_context.h @@ -39,6 +39,9 @@ int amd_launch_context_set_app_status(amd_launch_context_h h, amd_app_status_h status); int amd_launch_context_set_comp_status(amd_launch_context_h h, amd_comp_status_h status); +void amd_launch_context_set_custom_effect(amd_launch_context_h h, + bool is_custom_effect); +bool amd_launch_context_is_custom_effect(amd_launch_context_h h); #ifdef __cplusplus } diff --git a/inc/amd_launch.h b/inc/amd_launch.h index 1a3b9a95..68cf9ee6 100644 --- a/inc/amd_launch.h +++ b/inc/amd_launch.h @@ -71,6 +71,8 @@ const char *_launch_context_get_instance_id(launch_h h); bool _launch_context_is_subapp(launch_h h); bool _launch_context_is_bg_launch(launch_h h); const struct appinfo *_launch_context_get_appinfo(launch_h h); +void _launch_context_set_custom_effect(launch_h h, bool is_custom_effect); +bool _launch_context_is_custom_effect(launch_h h); void _launch_set_mode(launch_mode_e mode); int _launch_resume_inst(int pid, request_h req); int _launch_pause_inst(int pid, request_h req); diff --git a/modules/splash-screen/src/splash-screen.c b/modules/splash-screen/src/splash-screen.c index 74a92b68..b743eabd 100644 --- a/modules/splash-screen/src/splash-screen.c +++ b/modules/splash-screen/src/splash-screen.c @@ -280,7 +280,7 @@ static struct image_info_s *__get_default_image_info(bundle *kb) } static splash_image_h __splash_screen_create_image(amd_appinfo_h ai, - bundle *kb, int cmd, bool is_subapp) + bundle *kb, int cmd, bool is_subapp, bool custom_effect) { amd_appinfo_splash_image_h image_info; struct splash_image_s *si; @@ -389,9 +389,7 @@ static splash_image_h __splash_screen_create_image(amd_appinfo_h ai, si->rotation = rotation.angle; si->indicator = indicator; si->color_depth = color_depth; - - if (bundle_get_val(kb, AUL_K_LAUNCHER_SERVICE)) - si->custom_effect = true; + si->custom_effect = custom_effect; si->timer = g_timeout_add(TIMEOUT_INTERVAL, __timeout_handler, si); __set_splash_image(si); @@ -850,7 +848,8 @@ static int __on_launch_start(const char *msg, int arg1, int arg2, void *arg3, cur_splash_image = __splash_screen_create_image( amd_launch_context_get_appinfo(h), kb, cmd, - amd_launch_context_is_subapp(h)); + amd_launch_context_is_subapp(h), + amd_launch_context_is_custom_effect(h)); __splash_screen_send_image(cur_splash_image); return 0; diff --git a/src/core/amd_launch.c b/src/core/amd_launch.c index 75899285..624ff6cb 100644 --- a/src/core/amd_launch.c +++ b/src/core/amd_launch.c @@ -96,6 +96,7 @@ struct launch_s { const char *comp_id; compinfo_h ci; comp_status_h comp_status; + bool is_custom_effect; }; struct fgmgr { @@ -3356,6 +3357,26 @@ const struct appinfo *_launch_context_get_appinfo(launch_h h) return h->ai; } +void _launch_context_set_custom_effect(launch_h h, bool is_custom_effect) +{ + struct launch_s *context = h; + + if (!context) + return; + + h->is_custom_effect = is_custom_effect; +} + +bool _launch_context_is_custom_effect(launch_h h) +{ + struct launch_s *context = h; + + if (!context) + return false; + + return h->is_custom_effect; +} + void _launch_set_mode(launch_mode_e mode) { if (mode > LAUNCH_MODE_BLOCK) { diff --git a/src/core/amd_launcher_service.c b/src/core/amd_launcher_service.c index dd99aeb2..234a9af2 100644 --- a/src/core/amd_launcher_service.c +++ b/src/core/amd_launcher_service.c @@ -24,12 +24,13 @@ #include #include -#include "amd_util.h" #include "amd_app_com.h" -#include "amd_noti.h" -#include "amd_request.h" #include "amd_app_status.h" +#include "amd_launch.h" #include "amd_launcher_service.h" +#include "amd_noti.h" +#include "amd_request.h" +#include "amd_util.h" struct launcher_service_context_s { char *launcher_service; @@ -126,9 +127,10 @@ static int __on_launch_do_starting_app_end(const char *msg, return NOTI_CONTINUE; } -static int __on_launch_prepare_end(const char *msg, +static int __on_launch_prepare_start(const char *msg, int arg1, int arg2, void *arg3, bundle *data) { + launch_h h = arg3; const char *val; if (__context.launcher_service) { @@ -153,8 +155,11 @@ static int __on_launch_prepare_end(const char *msg, bundle_del(data, AUL_K_LAUNCHER_SERVICE_SERIAL); } - _D("launcher_service(%s), serial(%s)", - __context.launcher_service, __context.serial); + if (__context.launcher_service && __context.serial) { + _launch_context_set_custom_effect(h, true); + _D("launcher_service(%s), serial(%s)", + __context.launcher_service, __context.serial); + } return NOTI_CONTINUE; } @@ -237,8 +242,11 @@ int _launcher_service_init(void) __on_launch_do_starting_app_end); _noti_listen(NOTI_MSG_LAUNCH_DO_STARTING_APP_END, __on_launch_do_starting_app_end); - _noti_listen(NOTI_MSG_LAUNCH_PREPARE_END, - __on_launch_prepare_end); + _noti_listen(NOTI_MSG_LAUNCH_PREPARE_UI_START, + __on_launch_prepare_start); + _noti_listen(NOTI_MSG_LAUNCH_PREPARE_COMPONENT_BASED_START, + __on_launch_prepare_start); + return 0; } diff --git a/src/lib/amd_api_launch_context.c b/src/lib/amd_api_launch_context.c index f9ff514e..c3a22465 100644 --- a/src/lib/amd_api_launch_context.c +++ b/src/lib/amd_api_launch_context.c @@ -79,3 +79,14 @@ EXPORT_API int amd_launch_context_set_comp_status(amd_launch_context_h h, { return _launch_context_set_comp_status(h, status); } + +EXPORT_API void amd_launch_context_set_custom_effect(amd_launch_context_h h, + bool is_custom_effect) +{ + _launch_context_set_custom_effect(h, is_custom_effect); +} + +EXPORT_API bool amd_launch_context_is_custom_effect(amd_launch_context_h h) +{ + return _launch_context_is_custom_effect(h); +}