diff options
| author | 2022-09-10 00:34:39 +0000 | |
|---|---|---|
| committer | 2022-09-10 00:34:39 +0000 | |
| commit | b1b41f18874770d9012647e872063a176756ba8f (patch) | |
| tree | 1b5c7af2350120aea75d3832449bd3e10687aa49 | |
| parent | c3bebf9ff1347470808d068497cd316088823e06 (diff) | |
| parent | efff8e9f030c46aa7256603eb25f3416765fd6b8 (diff) | |
Merge "Only use return transition when requested." into tm-qpr-dev am: efff8e9f03
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19682832
Change-Id: Iaa38ede6dd41b165b2690ac46ce7ffd3fb9d5a86
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/java/android/app/ActivityTransitionState.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/app/ActivityTransitionState.java b/core/java/android/app/ActivityTransitionState.java index 877e7d3b3bf7..6f4bb456c478 100644 --- a/core/java/android/app/ActivityTransitionState.java +++ b/core/java/android/app/ActivityTransitionState.java @@ -145,7 +145,10 @@ class ActivityTransitionState { * that it is preserved through activty destroy and restore. */ private ArrayList<String> getPendingExitNames() { - if (mPendingExitNames == null && mEnterTransitionCoordinator != null) { + if (mPendingExitNames == null + && mEnterTransitionCoordinator != null + && !mEnterTransitionCoordinator.isReturning() + ) { mPendingExitNames = mEnterTransitionCoordinator.getPendingExitSharedElementNames(); } return mPendingExitNames; @@ -202,6 +205,7 @@ class ActivityTransitionState { restoreExitedViews(); activity.getWindow().getDecorView().setVisibility(View.VISIBLE); } + getPendingExitNames(); // Set mPendingExitNames before resetting mEnterTransitionCoordinator mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity, resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(), mEnterActivityOptions.isCrossTask()); @@ -250,6 +254,7 @@ class ActivityTransitionState { public void onStop(Activity activity) { restoreExitedViews(); if (mEnterTransitionCoordinator != null) { + getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator.stop(); mEnterTransitionCoordinator = null; } @@ -275,6 +280,7 @@ class ActivityTransitionState { restoreReenteringViews(); } else if (mEnterTransitionCoordinator.isReturning()) { mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> { + getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator = null; }); } @@ -374,6 +380,7 @@ class ActivityTransitionState { } public void startExitOutTransition(Activity activity, Bundle options) { + getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator mEnterTransitionCoordinator = null; if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) || mExitTransitionCoordinators == null) { |