From 57b99a295f09d33b9454e755696b6582d9d48cb8 Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Wed, 17 May 2023 15:31:59 -0700 Subject: [PATCH] Plumb the animation info from convertToTranslucent to transition convertToTranslucent is currently its own sort-of startActivity. Because it doesn't go through normal startActivity flow, the activity-options used for it's transition weren't being plumbed into the transition system. This adds that for the only current use-case (shared-element transitions). Bug: 283213473 Test: Open messages, search, click back out of search. Change-Id: I12befccffc198ab73ef8038527c0dea416a6f3ca --- .../com/android/server/wm/ActivityClientController.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java index 6b90181cff0b0..aafff2c70b8b1 100644 --- a/services/core/java/com/android/server/wm/ActivityClientController.java +++ b/services/core/java/com/android/server/wm/ActivityClientController.java @@ -18,6 +18,7 @@ package com.android.server.wm; import static android.Manifest.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS; import static android.app.Activity.FULLSCREEN_MODE_REQUEST_ENTER; +import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION; import static android.app.ActivityTaskManager.INVALID_TASK_ID; import static android.app.ActivityTaskManager.INVALID_WINDOWING_MODE; import static android.app.FullscreenRequestHandler.REMOTE_CALLBACK_RESULT_KEY; @@ -818,6 +819,13 @@ class ActivityClientController extends IActivityClientController.Stub { null /*startTask */, null /* remoteTransition */, null /* displayChange */); r.mTransitionController.setReady(r.getDisplayContent()); + if (under != null && under.returningOptions != null + && under.returningOptions.getAnimationType() + == ANIM_SCENE_TRANSITION) { + // Pass along the scene-transition animation-type + transition.setOverrideAnimation(TransitionInfo.AnimationOptions + .makeSceneTransitionAnimOptions(), null, null); + } } else { transition.abort(); }