Fix a bug about seamless launching effect 47/233747/1
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 19 May 2020 02:09:59 +0000 (11:09 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 19 May 2020 02:11:24 +0000 (11:11 +0900)
Change-Id: Ic9244135e61987687c8e9a990a9a29708974f793
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
inc/amd_api_launch_context.h
inc/amd_launch.h
modules/splash-screen/src/splash-screen.c
src/core/amd_launch.c
src/core/amd_launcher_service.c
src/lib/amd_api_launch_context.c

index 1427c10387c1956b049ba7860e299e4f83d52e93..dfe465a73efb4c07f54d2f934f06b87ef53c8845 100644 (file)
@@ -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
 }
index 1a3b9a95bf1b18dfe367d8a8e3d9fb2bfa74ef29..68cf9ee6e83e26874096e587c117254574df3f84 100644 (file)
@@ -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);
index 74a92b68906e3774e4cfa1fa0982b7ae9e0724bd..b743eabd38bae4ef9000cc6ac80eb86639c4585a 100644 (file)
@@ -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;
index 758992857289c1049be50f4a77bf997031c391b1..624ff6cbf81761dfaccf84e5fce8355530b0d9da 100644 (file)
@@ -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) {
index dd99aeb2c600bc7d87371aedcaba19c43314fc10..234a9af20c3a4694dbc14e64f9ed587fae43c4a1 100644 (file)
 #include <aul_cmd.h>
 #include <aul_sock.h>
 
-#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;
 }
index f9ff514eecca71363b1d1ee72af5ffd974678faf..c3a22465a41834923f4ccaf0b97e5c8e87a15c27 100644 (file)
@@ -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);
+}