diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java index fdfbca3470230..90f36b8bc0882 100644 --- a/core/java/android/app/EnterTransitionCoordinator.java +++ b/core/java/android/app/EnterTransitionCoordinator.java @@ -58,6 +58,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private Bundle mSharedElementsBundle; private boolean mWasOpaque; private boolean mAreViewsReady; + private boolean mIsViewsTransitionStarted; public EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList sharedElementNames, boolean isReturning) { @@ -219,7 +220,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private void cancel() { if (!mIsCanceled) { mIsCanceled = true; - if (getViewsTransition() == null) { + if (getViewsTransition() == null || mIsViewsTransitionStarted) { setViewVisibility(mSharedElements, View.VISIBLE); } else { mTransitioningViews.addAll(mSharedElements); @@ -363,6 +364,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { stripOffscreenViews(); } } + mIsViewsTransitionStarted = mIsViewsTransitionStarted || startEnterTransition; Transition transition = mergeTransitions(sharedElementTransition, viewsTransition); if (startSharedElementTransition) { diff --git a/core/java/android/app/ExitTransitionCoordinator.java b/core/java/android/app/ExitTransitionCoordinator.java index 51d18f96aeabe..0fbd68543ac42 100644 --- a/core/java/android/app/ExitTransitionCoordinator.java +++ b/core/java/android/app/ExitTransitionCoordinator.java @@ -116,6 +116,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { setViewVisibility(mTransitioningViews, View.VISIBLE); setViewVisibility(mSharedElements, View.VISIBLE); mIsHidden = true; + clearState(); } private void sharedElementExitBack() { @@ -357,7 +358,6 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { } if (!mIsReturning && mExitNotified) { mActivity = null; // don't need it anymore - clearState(); } }