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

Commit c205ce3b authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "When putting pip into a split stage, evict previous tasks" into main

parents b25e5b14 5ef150c4
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -599,9 +599,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            if (requestEnterSplit && mSplitScreenOptional.isPresent()) {
            if (requestEnterSplit && mSplitScreenOptional.isPresent()) {
                wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
                wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
                mSplitScreenOptional.get().prepareEnterSplitScreen(wct, mTaskInfo,
                mSplitScreenOptional.get().onPipExpandToSplit(wct, mTaskInfo);
                        isPipToTopLeft()
                                ? SPLIT_POSITION_TOP_OR_LEFT : SPLIT_POSITION_BOTTOM_OR_RIGHT);
                mPipTransitionController.startExitTransition(
                mPipTransitionController.startExitTransition(
                        TRANSIT_EXIT_PIP_TO_SPLIT, wct, destinationBounds);
                        TRANSIT_EXIT_PIP_TO_SPLIT, wct, destinationBounds);
                return;
                return;
+11 −0
Original line number Original line Diff line number Diff line
@@ -451,6 +451,17 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
        mStageCoordinator.finishEnterSplitScreen(finishT);
        mStageCoordinator.finishEnterSplitScreen(finishT);
    }
    }


    /**
     * Performs previous child eviction and such to prepare for the pip task expending into one of
     * the split stages
     *
     * @param taskInfo TaskInfo of the pip task
     */
    public void onPipExpandToSplit(WindowContainerTransaction wct,
            ActivityManager.RunningTaskInfo taskInfo) {
        mStageCoordinator.onPipExpandToSplit(wct, taskInfo);
    }

    /**
    /**
     * Doing necessary window transaction for other transition handler need to exit split in
     * Doing necessary window transaction for other transition handler need to exit split in
     * transition.
     * transition.
+19 −0
Original line number Original line Diff line number Diff line
@@ -2982,6 +2982,25 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,


    }
    }


    /**
     * Performs previous child eviction and such to prepare for the pip task expending into one of
     * the split stages
     *
     * @param taskInfo TaskInfo of the pip task
     */
    public void onPipExpandToSplit(WindowContainerTransaction wct,
            ActivityManager.RunningTaskInfo taskInfo) {
        prepareEnterSplitScreen(wct, taskInfo, getActivateSplitPosition(taskInfo),
                false /*resizeAnim*/);

        if (!isSplitScreenVisible() || mSplitRequest == null) {
            return;
        }

        boolean replacingMainStage = getMainStagePosition() == mSplitRequest.mActivatePosition;
        (replacingMainStage ? mMainStage : mSideStage).evictOtherChildren(wct, taskInfo.taskId);
    }

    boolean isLaunchToSplit(TaskInfo taskInfo) {
    boolean isLaunchToSplit(TaskInfo taskInfo) {
        return getActivateSplitPosition(taskInfo) != SPLIT_POSITION_UNDEFINED;
        return getActivateSplitPosition(taskInfo) != SPLIT_POSITION_UNDEFINED;
    }
    }