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
This commit is contained in:
Riddle Hsu
2023-05-19 21:01:22 +08:00
parent 9a50b8adbc
commit a877b9f941

View File

@@ -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);