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
This commit is contained in:
Evan Rosky
2023-05-17 15:31:59 -07:00
parent 413bb027b1
commit 57b99a295f

View File

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