Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1380583c authored by George Mount's avatar George Mount Committed by Android (Google) Code Review
Browse files

Merge "Clear the EnterTransitionCoordinator only after onResume."

parents 94483f4b c8fe3628
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -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());
@@ -280,6 +273,10 @@ class ActivityTransitionState {
                            mEnterTransitionCoordinator.isWaitingForRemoteExit()) {
                        restoreExitedViews();
                        restoreReenteringViews();
                    } else if (mEnterTransitionCoordinator.isReturning()) {
                        mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
                            mEnterTransitionCoordinator = null;
                        });
                    }
                }
            }, 1000);
+9 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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();
@@ -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();