Loading core/java/android/app/ActivityTransitionCoordinator.java +9 −0 Original line number Diff line number Diff line Loading @@ -799,6 +799,15 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { mIsStartingTransition = false; } /** * Cancels any pending transitions and returns true if there is a transition is in * the middle of starting. */ protected boolean cancelPendingTransitions() { mPendingTransition = null; return mIsStartingTransition; } protected void moveSharedElementsToOverlay() { if (mWindow == null || !mWindow.getSharedElementsUseOverlay()) { return; Loading core/java/android/app/ActivityTransitionState.java +21 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.util.ArrayMap; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.Window; import java.lang.ref.WeakReference; Loading Loading @@ -252,7 +253,7 @@ class ActivityTransitionState { } } public boolean startExitBackTransition(Activity activity) { public boolean startExitBackTransition(final Activity activity) { if (mEnteringNames == null) { return false; } else { Loading @@ -260,10 +261,11 @@ class ActivityTransitionState { mHasExited = true; Transition enterViewsTransition = null; ViewGroup decor = null; boolean delayExitBack = false; if (mEnterTransitionCoordinator != null) { enterViewsTransition = mEnterTransitionCoordinator.getEnterViewsTransition(); decor = mEnterTransitionCoordinator.getDecor(); mEnterTransitionCoordinator.cancelEnter(); delayExitBack = mEnterTransitionCoordinator.cancelEnter(); mEnterTransitionCoordinator = null; if (enterViewsTransition != null && decor != null) { enterViewsTransition.pause(decor); Loading @@ -275,8 +277,24 @@ class ActivityTransitionState { if (enterViewsTransition != null && decor != null) { enterViewsTransition.resume(decor); } if (delayExitBack && decor != null) { final ViewGroup finalDecor = decor; decor.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { finalDecor.getViewTreeObserver().removeOnPreDrawListener(this); if (mReturnExitCoordinator != null) { mReturnExitCoordinator.startExit(activity.mResultCode, activity.mResultData); } return true; } }); } else { mReturnExitCoordinator.startExit(activity.mResultCode, activity.mResultData); } } return true; } } Loading core/java/android/app/EnterTransitionCoordinator.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.app; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.graphics.Matrix; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.ResultReceiver; Loading Loading @@ -565,7 +564,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { clearState(); } public void cancelEnter() { /** * Cancels the enter transition. * @return True if the enter transition is still pending capturing the target state. If so, * any transition started on the decor will do nothing. */ public boolean cancelEnter() { setGhostVisibility(View.INVISIBLE); mHasStopped = true; mIsCanceled = true; Loading @@ -576,6 +580,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { } mActivity = null; clearState(); return super.cancelPendingTransitions(); } private void makeOpaque() { Loading Loading
core/java/android/app/ActivityTransitionCoordinator.java +9 −0 Original line number Diff line number Diff line Loading @@ -799,6 +799,15 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { mIsStartingTransition = false; } /** * Cancels any pending transitions and returns true if there is a transition is in * the middle of starting. */ protected boolean cancelPendingTransitions() { mPendingTransition = null; return mIsStartingTransition; } protected void moveSharedElementsToOverlay() { if (mWindow == null || !mWindow.getSharedElementsUseOverlay()) { return; Loading
core/java/android/app/ActivityTransitionState.java +21 −3 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.util.ArrayMap; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.Window; import java.lang.ref.WeakReference; Loading Loading @@ -252,7 +253,7 @@ class ActivityTransitionState { } } public boolean startExitBackTransition(Activity activity) { public boolean startExitBackTransition(final Activity activity) { if (mEnteringNames == null) { return false; } else { Loading @@ -260,10 +261,11 @@ class ActivityTransitionState { mHasExited = true; Transition enterViewsTransition = null; ViewGroup decor = null; boolean delayExitBack = false; if (mEnterTransitionCoordinator != null) { enterViewsTransition = mEnterTransitionCoordinator.getEnterViewsTransition(); decor = mEnterTransitionCoordinator.getDecor(); mEnterTransitionCoordinator.cancelEnter(); delayExitBack = mEnterTransitionCoordinator.cancelEnter(); mEnterTransitionCoordinator = null; if (enterViewsTransition != null && decor != null) { enterViewsTransition.pause(decor); Loading @@ -275,8 +277,24 @@ class ActivityTransitionState { if (enterViewsTransition != null && decor != null) { enterViewsTransition.resume(decor); } if (delayExitBack && decor != null) { final ViewGroup finalDecor = decor; decor.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { finalDecor.getViewTreeObserver().removeOnPreDrawListener(this); if (mReturnExitCoordinator != null) { mReturnExitCoordinator.startExit(activity.mResultCode, activity.mResultData); } return true; } }); } else { mReturnExitCoordinator.startExit(activity.mResultCode, activity.mResultData); } } return true; } } Loading
core/java/android/app/EnterTransitionCoordinator.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.app; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.graphics.Matrix; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.ResultReceiver; Loading Loading @@ -565,7 +564,12 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { clearState(); } public void cancelEnter() { /** * Cancels the enter transition. * @return True if the enter transition is still pending capturing the target state. If so, * any transition started on the decor will do nothing. */ public boolean cancelEnter() { setGhostVisibility(View.INVISIBLE); mHasStopped = true; mIsCanceled = true; Loading @@ -576,6 +580,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { } mActivity = null; clearState(); return super.cancelPendingTransitions(); } private void makeOpaque() { Loading