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

Commit 70ce9e04 authored by George Mount's avatar George Mount
Browse files

Only use return transition when requested.

Fixes: 233975804

When exiting back, the activity transition should not
run unless an activity transition has been requested.

Test: existing ActivityTransitionTests, manually use Settings
Change-Id: Ice2cf6d82c25c65076a9656ddd847a9e2aa68b80
parent fc1f09ff
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -145,7 +145,10 @@ class ActivityTransitionState {
     * that it is preserved through activty destroy and restore.
     */
    private ArrayList<String> getPendingExitNames() {
        if (mPendingExitNames == null && mEnterTransitionCoordinator != null) {
        if (mPendingExitNames == null
                && mEnterTransitionCoordinator != null
                && !mEnterTransitionCoordinator.isReturning()
        ) {
            mPendingExitNames = mEnterTransitionCoordinator.getPendingExitSharedElementNames();
        }
        return mPendingExitNames;
@@ -202,6 +205,7 @@ class ActivityTransitionState {
            restoreExitedViews();
            activity.getWindow().getDecorView().setVisibility(View.VISIBLE);
        }
        getPendingExitNames(); // Set mPendingExitNames before resetting mEnterTransitionCoordinator
        mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity,
                resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(),
                mEnterActivityOptions.isCrossTask());
@@ -250,6 +254,7 @@ class ActivityTransitionState {
    public void onStop(Activity activity) {
        restoreExitedViews();
        if (mEnterTransitionCoordinator != null) {
            getPendingExitNames(); // Set mPendingExitNames before clearing
            mEnterTransitionCoordinator.stop();
            mEnterTransitionCoordinator = null;
        }
@@ -275,6 +280,7 @@ class ActivityTransitionState {
                        restoreReenteringViews();
                    } else if (mEnterTransitionCoordinator.isReturning()) {
                        mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
                            getPendingExitNames(); // Set mPendingExitNames before clearing
                            mEnterTransitionCoordinator = null;
                        });
                    }
@@ -374,6 +380,7 @@ class ActivityTransitionState {
    }

    public void startExitOutTransition(Activity activity, Bundle options) {
        getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator
        mEnterTransitionCoordinator = null;
        if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
                mExitTransitionCoordinators == null) {