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

Commit db89c726 authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Track recents like home for times when it is separated" into rvc-dev...

Merge "Track recents like home for times when it is separated" into rvc-dev am: c5304b1a am: 97b5c175

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11854925

Change-Id: Id83c5d270e0520be0c8d70914975b8f0ce372a36
parents 88eb2a13 97b5c175
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.wm;
package com.android.server.wm;


import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
@@ -99,6 +100,9 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
    private ActivityStack mRootPinnedTask;
    private ActivityStack mRootPinnedTask;
    private ActivityStack mRootSplitScreenPrimaryTask;
    private ActivityStack mRootSplitScreenPrimaryTask;


    // TODO(b/159029784): Remove when getStack() behavior is cleaned-up
    private ActivityStack mRootRecentsTask;

    private final ArrayList<ActivityStack> mTmpAlwaysOnTopStacks = new ArrayList<>();
    private final ArrayList<ActivityStack> mTmpAlwaysOnTopStacks = new ArrayList<>();
    private final ArrayList<ActivityStack> mTmpNormalStacks = new ArrayList<>();
    private final ArrayList<ActivityStack> mTmpNormalStacks = new ArrayList<>();
    private final ArrayList<ActivityStack> mTmpHomeStacks = new ArrayList<>();
    private final ArrayList<ActivityStack> mTmpHomeStacks = new ArrayList<>();
@@ -163,6 +167,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
    ActivityStack getStack(int windowingMode, int activityType) {
    ActivityStack getStack(int windowingMode, int activityType) {
        if (activityType == ACTIVITY_TYPE_HOME) {
        if (activityType == ACTIVITY_TYPE_HOME) {
            return mRootHomeTask;
            return mRootHomeTask;
        } else if (activityType == ACTIVITY_TYPE_RECENTS) {
            return mRootRecentsTask;
        }
        }
        if (windowingMode == WINDOWING_MODE_PINNED) {
        if (windowingMode == WINDOWING_MODE_PINNED) {
            return mRootPinnedTask;
            return mRootPinnedTask;
@@ -199,6 +205,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
        return mRootHomeTask;
        return mRootHomeTask;
    }
    }


    @Nullable ActivityStack getRootRecentsTask() {
        return mRootRecentsTask;
    }

    ActivityStack getRootPinnedTask() {
    ActivityStack getRootPinnedTask() {
        return mRootPinnedTask;
        return mRootPinnedTask;
    }
    }
@@ -246,6 +256,16 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
            } else {
            } else {
                mRootHomeTask = stack;
                mRootHomeTask = stack;
            }
            }
        } else if (stack.isActivityTypeRecents()) {
            if (mRootRecentsTask != null) {
                if (!stack.isDescendantOf(mRootRecentsTask)) {
                    throw new IllegalArgumentException("addStackReferenceIfNeeded: recents stack="
                            + mRootRecentsTask + " already exist on display=" + this
                            + " stack=" + stack);
                }
            } else {
                mRootRecentsTask = stack;
            }
        }
        }


        if (!stack.isRootTask()) {
        if (!stack.isRootTask()) {
@@ -273,6 +293,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
    void removeStackReferenceIfNeeded(ActivityStack stack) {
    void removeStackReferenceIfNeeded(ActivityStack stack) {
        if (stack == mRootHomeTask) {
        if (stack == mRootHomeTask) {
            mRootHomeTask = null;
            mRootHomeTask = null;
        } else if (stack == mRootRecentsTask) {
            mRootRecentsTask = null;
        } else if (stack == mRootPinnedTask) {
        } else if (stack == mRootPinnedTask) {
            mRootPinnedTask = null;
            mRootPinnedTask = null;
        } else if (stack == mRootSplitScreenPrimaryTask) {
        } else if (stack == mRootSplitScreenPrimaryTask) {