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

Commit 7e7ea3ca authored by Tony Huang's avatar Tony Huang Committed by Automerger Merge Worker
Browse files

Merge "Update the timing of clearing SplitRequest" into tm-qpr-dev am: 1254c78a am: 522bda6b

parents 11088136 522bda6b
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -1090,7 +1090,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    private void onRemoteAnimationFinishedOrCancelled(WindowContainerTransaction evictWct) {
        mIsDividerRemoteAnimating = false;
        mShouldUpdateRecents = true;
        mSplitRequest = null;
        clearRequestIfPresented();
        // If any stage has no child after animation finished, it means that split will display
        // nothing, such status will happen if task and intent is same app but not support
        // multi-instance, we should exit split and expand that app as full screen.
@@ -1110,7 +1110,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
    private void onRemoteAnimationFinished(RemoteAnimationTarget[] apps) {
        mIsDividerRemoteAnimating = false;
        mShouldUpdateRecents = true;
        mSplitRequest = null;
        clearRequestIfPresented();
        // If any stage has no child after finished animation, that side of the split will display
        // nothing. This might happen if starting the same app on the both sides while not
        // supporting multi-instance. Exit the split screen and expand that app to full screen.
@@ -1383,6 +1383,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        });
        mShouldUpdateRecents = false;
        mIsDividerRemoteAnimating = false;
        mSplitRequest = null;

        mSplitLayout.getInvisibleBounds(mTempRect1);
        if (childrenToTop == null || childrenToTop.getTopVisibleChildTaskId() == INVALID_TASK_ID) {
@@ -1475,6 +1476,13 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        }
    }

    private void clearRequestIfPresented() {
        if (mSideStageListener.mVisible && mSideStageListener.mHasChildren
                && mMainStageListener.mVisible && mSideStageListener.mHasChildren) {
            mSplitRequest = null;
        }
    }

    /**
     * Returns whether the split pair in the recent tasks list should be broken.
     */
@@ -1853,6 +1861,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                    true /* setReparentLeafTaskIfRelaunch */);
            setRootForceTranslucent(true, wct);
        } else {
            clearRequestIfPresented();
            wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token,
                    false /* setReparentLeafTaskIfRelaunch */);
            setRootForceTranslucent(false, wct);
@@ -2012,7 +2021,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        }
        if (mMainStageListener.mHasChildren && mSideStageListener.mHasChildren) {
            mShouldUpdateRecents = true;
            mSplitRequest = null;
            clearRequestIfPresented();
            updateRecentTasksSplitPair();

            if (!mLogger.hasStartedSession()) {
@@ -2720,6 +2729,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            }
        });
        mShouldUpdateRecents = false;
        mSplitRequest = null;

        // Update local states.
        setSplitsVisible(false);