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

Commit 588771a9 authored by Tony Huang's avatar Tony Huang Committed by Android (Google) Code Review
Browse files

Merge "Fix updateRecentTasksSplitPair unexpectly" into sc-v2-dev

parents 07a5dd0c b5fe809a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -367,6 +367,8 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            float splitRatio, RemoteAnimationAdapter adapter) {
        // Init divider first to make divider leash for remote animation target.
        setDividerVisibility(true /* visible */);
        // Set false to avoid record new bounds with old task still on top;
        mShouldUpdateRecents = false;
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        final WindowContainerTransaction evictWct = new WindowContainerTransaction();
        prepareEvictChildTasks(SPLIT_POSITION_TOP_OR_LEFT, evictWct);
@@ -393,6 +395,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                            @Override
                            public void onAnimationFinished() throws RemoteException {
                                mIsDividerRemoteAnimating = false;
                                mShouldUpdateRecents = true;
                                mSyncQueue.queue(evictWct);
                                mSyncQueue.runInSync(t -> applyDividerVisibility(t));
                                finishedCallback.onAnimationFinished();
@@ -416,6 +419,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            @Override
            public void onAnimationCancelled() {
                mIsDividerRemoteAnimating = false;
                mShouldUpdateRecents = true;
                mSyncQueue.queue(evictWct);
                mSyncQueue.runInSync(t -> applyDividerVisibility(t));
                try {
@@ -782,7 +786,9 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            mLogger.logSideStageAppChange(getSideStagePosition(), mSideStage.getTopChildTaskUid(),
                    mSplitLayout.isLandscape());
        }
        if (present && visible) {
            updateRecentTasksSplitPair();
        }

        for (int i = mListeners.size() - 1; i >= 0; --i) {
            mListeners.get(i).onTaskStageChanged(taskId, stage, visible);
@@ -798,7 +804,6 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        if (!mShouldUpdateRecents) {
            return;
        }

        mRecentTasks.ifPresent(recentTasks -> {
            Rect topLeftBounds = mSplitLayout.getBounds1();
            Rect bottomRightBounds = mSplitLayout.getBounds2();