From a877b9f94181720e52d81f6a51ac6bbd408c1aec Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Fri, 19 May 2023 21:01:22 +0800 Subject: [PATCH] Skip default animation of embedded activity for scene transition If the app specifies makeSceneTransitionAnimation. The animation should be handled by itself. Bug: 283213473 Test: On device which supports embedded activity: Open Settings, search, click back arrow to leave search. It should run a fade animation by ExitTransitionCoordinator instead of with an additional slide animation. Change-Id: Ie056da5711c4bc04bf5ccfd1fe12c181daa956c2 --- .../activityembedding/ActivityEmbeddingController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java index bfbddbbe4aa00..58e7b8d473407 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java @@ -16,6 +16,7 @@ package com.android.wm.shell.activityembedding; +import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION; import static android.window.TransitionInfo.FLAG_FILLS_TASK; import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY; @@ -111,6 +112,11 @@ public class ActivityEmbeddingController implements Transitions.TransitionHandle if (containsNonEmbeddedChange && !handleNonEmbeddedChanges(changes)) { return false; } + final TransitionInfo.AnimationOptions options = info.getAnimationOptions(); + if (options != null && options.getType() == ANIM_SCENE_TRANSITION) { + // Scene-transition will be handled by app side. + return false; + } // Start ActivityEmbedding animation. mTransitionCallbacks.put(transition, finishCallback);