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

Commit 8aef5488 authored by George Mount's avatar George Mount
Browse files

Clear mEnterTransitionCoordinator after content shows.

Fixes: 233975804

After content has been shown, we should clear the
mEnterTransitonCoordinator so that the exit doesn't
accidentally try to use the enter transition information
to remove Views.

Test: manually tested example from bug report
Change-Id: Ida7ca354cb75953d1d5ecffc159da0d7320d4349
parent a55c15df
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -263,6 +263,11 @@ class ActivityTransitionState {
        // After orientation change, the onResume can come in before the top Activity has
        // After orientation change, the onResume can come in before the top Activity has
        // left, so if the Activity is not top, wait a second for the top Activity to exit.
        // left, so if the Activity is not top, wait a second for the top Activity to exit.
        if (mEnterTransitionCoordinator == null || activity.isTopOfTask()) {
        if (mEnterTransitionCoordinator == null || activity.isTopOfTask()) {
            if (mEnterTransitionCoordinator != null) {
                mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
                    mEnterTransitionCoordinator = null;
                });
            }
            restoreExitedViews();
            restoreExitedViews();
            restoreReenteringViews();
            restoreReenteringViews();
        } else {
        } else {
@@ -271,6 +276,11 @@ class ActivityTransitionState {
                public void run() {
                public void run() {
                    if (mEnterTransitionCoordinator == null ||
                    if (mEnterTransitionCoordinator == null ||
                            mEnterTransitionCoordinator.isWaitingForRemoteExit()) {
                            mEnterTransitionCoordinator.isWaitingForRemoteExit()) {
                        if (mEnterTransitionCoordinator != null) {
                            mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
                                mEnterTransitionCoordinator = null;
                            });
                        }
                        restoreExitedViews();
                        restoreExitedViews();
                        restoreReenteringViews();
                        restoreReenteringViews();
                    } else if (mEnterTransitionCoordinator.isReturning()) {
                    } else if (mEnterTransitionCoordinator.isReturning()) {