Loading core/java/android/app/ActivityTransitionState.java +10 −2 Original line number Diff line number Diff line Loading @@ -197,13 +197,21 @@ class ActivityTransitionState { mHasExited = false; ArrayList<String> sharedElementNames = mEnterActivityOptions.getSharedElementNames(); ResultReceiver resultReceiver = mEnterActivityOptions.getResultReceiver(); if (mEnterActivityOptions.isReturning()) { final boolean isReturning = mEnterActivityOptions.isReturning(); if (isReturning) { restoreExitedViews(); activity.getWindow().getDecorView().setVisibility(View.VISIBLE); } mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity, resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(), mEnterActivityOptions.isCrossTask()); mEnterActivityOptions.isCrossTask(), () -> { if (isReturning) { // once it is done transitioning, we don't need the coordinator -- // if we kept it around, it could leak Views mEnterTransitionCoordinator = null; } }); if (mEnterActivityOptions.isCrossTask()) { mExitingFrom = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); mExitingTo = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); Loading core/java/android/app/EnterTransitionCoordinator.java +14 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.annotation.NonNull; import android.app.SharedElementCallback.OnSharedElementsReadyListener; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -66,13 +67,16 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private final boolean mIsCrossTask; private Drawable mReplacedBackground; private ArrayList<String> mPendingExitNames; private Runnable mOnTransitionComplete; public EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask) { EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask, @NonNull Runnable onTransitionComplete) { super(activity.getWindow(), sharedElementNames, getListener(activity, isReturning && !isCrossTask), isReturning); mActivity = activity; mIsCrossTask = isCrossTask; mOnTransitionComplete = onTransitionComplete; setResultReceiver(resultReceiver); prepareEnter(); Bundle resultReceiverBundle = new Bundle(); Loading Loading @@ -578,6 +582,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { window.setBackgroundDrawable(null); } } if (mOnTransitionComplete != null) { mOnTransitionComplete.run(); mOnTransitionComplete = null; } } private void sharedElementTransitionStarted() { Loading Loading @@ -672,6 +680,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mBackgroundAnimator.cancel(); mBackgroundAnimator = null; } if (mOnTransitionComplete != null) { mOnTransitionComplete.run(); mOnTransitionComplete = null; } super.clearState(); } Loading Loading
core/java/android/app/ActivityTransitionState.java +10 −2 Original line number Diff line number Diff line Loading @@ -197,13 +197,21 @@ class ActivityTransitionState { mHasExited = false; ArrayList<String> sharedElementNames = mEnterActivityOptions.getSharedElementNames(); ResultReceiver resultReceiver = mEnterActivityOptions.getResultReceiver(); if (mEnterActivityOptions.isReturning()) { final boolean isReturning = mEnterActivityOptions.isReturning(); if (isReturning) { restoreExitedViews(); activity.getWindow().getDecorView().setVisibility(View.VISIBLE); } mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity, resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(), mEnterActivityOptions.isCrossTask()); mEnterActivityOptions.isCrossTask(), () -> { if (isReturning) { // once it is done transitioning, we don't need the coordinator -- // if we kept it around, it could leak Views mEnterTransitionCoordinator = null; } }); if (mEnterActivityOptions.isCrossTask()) { mExitingFrom = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); mExitingTo = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); Loading
core/java/android/app/EnterTransitionCoordinator.java +14 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.annotation.NonNull; import android.app.SharedElementCallback.OnSharedElementsReadyListener; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -66,13 +67,16 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private final boolean mIsCrossTask; private Drawable mReplacedBackground; private ArrayList<String> mPendingExitNames; private Runnable mOnTransitionComplete; public EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask) { EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask, @NonNull Runnable onTransitionComplete) { super(activity.getWindow(), sharedElementNames, getListener(activity, isReturning && !isCrossTask), isReturning); mActivity = activity; mIsCrossTask = isCrossTask; mOnTransitionComplete = onTransitionComplete; setResultReceiver(resultReceiver); prepareEnter(); Bundle resultReceiverBundle = new Bundle(); Loading Loading @@ -578,6 +582,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { window.setBackgroundDrawable(null); } } if (mOnTransitionComplete != null) { mOnTransitionComplete.run(); mOnTransitionComplete = null; } } private void sharedElementTransitionStarted() { Loading Loading @@ -672,6 +680,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mBackgroundAnimator.cancel(); mBackgroundAnimator = null; } if (mOnTransitionComplete != null) { mOnTransitionComplete.run(); mOnTransitionComplete = null; } super.clearState(); } Loading