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

Commit e657cae4 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by Automerger Merge Worker
Browse files

Merge "Use launchRootTask to determine parent of stack we getting" into rvc-dev am: 6d99b579

Change-Id: I3793c132a4260030bdc37558dbdbdc568b3d73a4
parents 48b90c78 6d99b579
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -732,11 +732,11 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
    /**
     * Returns an existing stack compatible with the windowing mode and activity type or creates one
     * if a compatible stack doesn't exist.
     * @see #getOrCreateStack(int, int, boolean, Intent, Task, boolean)
     * @see #getOrCreateStack(int, int, boolean, Intent, Task)
     */
    ActivityStack getOrCreateStack(int windowingMode, int activityType, boolean onTop) {
        return getOrCreateStack(windowingMode, activityType, onTop, null /* intent */,
                null /* candidateTask */, false /* createdByOrganizer */);
                null /* candidateTask */);
    }

    /**
@@ -748,7 +748,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
     * @see #createStack(int, int, boolean)
     */
    ActivityStack getOrCreateStack(int windowingMode, int activityType, boolean onTop,
            Intent intent, Task candidateTask, boolean createdByOrganizer) {
            Intent intent, Task candidateTask) {
        if (!alwaysCreateStack(windowingMode, activityType)) {
            ActivityStack stack = getStack(windowingMode, activityType);
            if (stack != null) {
@@ -757,13 +757,13 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
        } else if (candidateTask != null) {
            final ActivityStack stack = (ActivityStack) candidateTask;
            final int position = onTop ? POSITION_TOP : POSITION_BOTTOM;
            if (isSplitScreenModeActivated()) {
                final Task splitRootSecondary = getTask(t -> t.mCreatedByOrganizer && t.isRootTask()
                        && t.inSplitScreenSecondaryWindowingMode());
            Task launchRootTask = updateLaunchRootTask(windowingMode);

            if (launchRootTask != null) {
                if (stack.getParent() == null) {
                    splitRootSecondary.addChild(stack, position);
                } else if (stack.getParent() != splitRootSecondary) {
                    stack.reparent(splitRootSecondary, position);
                    launchRootTask.addChild(stack, position);
                } else if (stack.getParent() != launchRootTask) {
                    stack.reparent(launchRootTask, position);
                }
            } else if (stack.getDisplay() != mDisplayContent || !stack.isRootTask()) {
                if (stack.getParent() == null) {
@@ -779,7 +779,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
            return stack;
        }
        return createStack(windowingMode, activityType, onTop, null /*info*/, intent,
                createdByOrganizer);
                false /* createdByOrganizer */);
    }

    /**
@@ -798,7 +798,7 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
        // it's display's windowing mode.
        windowingMode = validateWindowingMode(windowingMode, r, candidateTask, activityType);
        return getOrCreateStack(windowingMode, activityType, onTop, null /* intent */,
                candidateTask, false /* createdByOrganizer */);
                candidateTask);
    }

    @VisibleForTesting
+3 −3
Original line number Diff line number Diff line
@@ -277,9 +277,9 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
                    return null;
                }

                final Task task = display.mTaskContainers.getOrCreateStack(windowingMode,
                        ACTIVITY_TYPE_UNDEFINED, false /* onTop */, new Intent(),
                        null /* candidateTask */, true /* createdByOrganizer */);
                final Task task = display.mTaskContainers.createStack(windowingMode,
                        ACTIVITY_TYPE_UNDEFINED, false /* onTop */, null /* info */, new Intent(),
                        true /* createdByOrganizer */);
                RunningTaskInfo out = task.getTaskInfo();
                mLastSentTaskInfos.put(task, out);
                return out;