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

Commit 72f2d830 authored by Tony Huang's avatar Tony Huang
Browse files

Clear pair in recents if exit by other components

Split could exit by other components, but in such situation split
will not handle the transition, so we could clear pair in recents
when the founction called.

Fix: 292184502
Test: manual
Test: pass existing tests
Change-Id: I20d8d55c3f3f28d01407398b6de3cc7828e0caca
parent 1e68575d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -590,7 +590,8 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
                SplitScreenController split = mSplitScreenOptional.get();
                if (split.isTaskInSplitScreen(mTaskInfo.lastParentTaskIdBeforePip)) {
                    split.prepareExitSplitScreen(wct, split.getStageOfTask(
                            mTaskInfo.lastParentTaskIdBeforePip));
                            mTaskInfo.lastParentTaskIdBeforePip),
                            SplitScreenController.EXIT_REASON_APP_FINISHED);
                }
            }
            mPipTransitionController.startExitTransition(TRANSIT_EXIT_PIP, wct, destinationBounds);
+2 −1
Original line number Diff line number Diff line
@@ -423,8 +423,9 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
     * transition.
     */
    public void prepareExitSplitScreen(WindowContainerTransaction wct,
            @StageType int stageToTop) {
            @StageType int stageToTop, @ExitReason int reason) {
        mStageCoordinator.prepareExitSplitScreen(stageToTop, wct);
        mStageCoordinator.clearSplitPairedInRecents(reason);
    }

    public void enterSplitScreen(int taskId, boolean leftOrTop) {
+1 −1
Original line number Diff line number Diff line
@@ -1494,7 +1494,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        }
    }

    private void clearSplitPairedInRecents(@ExitReason int exitReason) {
    void clearSplitPairedInRecents(@ExitReason int exitReason) {
        if (!shouldBreakPairedTaskInRecents(exitReason) || !mShouldUpdateRecents) return;

        mRecentTasks.ifPresent(recentTasks -> {