Loading core/java/android/app/ActivityTransitionState.java +5 −8 Original line number Diff line number Diff line Loading @@ -204,14 +204,7 @@ class ActivityTransitionState { } mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity, resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(), 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; } }); mEnterActivityOptions.isCrossTask()); if (mEnterActivityOptions.isCrossTask()) { mExitingFrom = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); mExitingTo = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); Loading Loading @@ -280,6 +273,10 @@ class ActivityTransitionState { mEnterTransitionCoordinator.isWaitingForRemoteExit()) { restoreExitedViews(); restoreReenteringViews(); } else if (mEnterTransitionCoordinator.isReturning()) { mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> { mEnterTransitionCoordinator = null; }); } } }, 1000); Loading core/java/android/app/EnterTransitionCoordinator.java +9 −4 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.annotation.NonNull; import android.app.SharedElementCallback.OnSharedElementsReadyListener; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -70,13 +69,11 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private Runnable mOnTransitionComplete; EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask, @NonNull Runnable onTransitionComplete) { ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask) { super(activity.getWindow(), sharedElementNames, getListener(activity, isReturning && !isCrossTask), isReturning); mActivity = activity; mIsCrossTask = isCrossTask; mOnTransitionComplete = onTransitionComplete; setResultReceiver(resultReceiver); prepareEnter(); Bundle resultReceiverBundle = new Bundle(); Loading Loading @@ -570,6 +567,14 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { return transition; } public void runAfterTransitionsComplete(Runnable onTransitionComplete) { if (!isTransitionRunning()) { onTransitionsComplete(); } else { mOnTransitionComplete = onTransitionComplete; } } @Override protected void onTransitionsComplete() { moveSharedElementsFromOverlay(); Loading Loading
core/java/android/app/ActivityTransitionState.java +5 −8 Original line number Diff line number Diff line Loading @@ -204,14 +204,7 @@ class ActivityTransitionState { } mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity, resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(), 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; } }); mEnterActivityOptions.isCrossTask()); if (mEnterActivityOptions.isCrossTask()) { mExitingFrom = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); mExitingTo = new ArrayList<>(mEnterActivityOptions.getSharedElementNames()); Loading Loading @@ -280,6 +273,10 @@ class ActivityTransitionState { mEnterTransitionCoordinator.isWaitingForRemoteExit()) { restoreExitedViews(); restoreReenteringViews(); } else if (mEnterTransitionCoordinator.isReturning()) { mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> { mEnterTransitionCoordinator = null; }); } } }, 1000); Loading
core/java/android/app/EnterTransitionCoordinator.java +9 −4 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.annotation.NonNull; import android.app.SharedElementCallback.OnSharedElementsReadyListener; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -70,13 +69,11 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { private Runnable mOnTransitionComplete; EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver, ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask, @NonNull Runnable onTransitionComplete) { ArrayList<String> sharedElementNames, boolean isReturning, boolean isCrossTask) { super(activity.getWindow(), sharedElementNames, getListener(activity, isReturning && !isCrossTask), isReturning); mActivity = activity; mIsCrossTask = isCrossTask; mOnTransitionComplete = onTransitionComplete; setResultReceiver(resultReceiver); prepareEnter(); Bundle resultReceiverBundle = new Bundle(); Loading Loading @@ -570,6 +567,14 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { return transition; } public void runAfterTransitionsComplete(Runnable onTransitionComplete) { if (!isTransitionRunning()) { onTransitionsComplete(); } else { mOnTransitionComplete = onTransitionComplete; } } @Override protected void onTransitionsComplete() { moveSharedElementsFromOverlay(); Loading