diff options
| -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) { |