Loading services/core/java/com/android/server/wm/TaskDisplayArea.java +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.wm; 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_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; Loading Loading @@ -99,6 +100,9 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { private ActivityStack mRootPinnedTask; 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> mTmpNormalStacks = new ArrayList<>(); private final ArrayList<ActivityStack> mTmpHomeStacks = new ArrayList<>(); Loading Loading @@ -163,6 +167,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { ActivityStack getStack(int windowingMode, int activityType) { if (activityType == ACTIVITY_TYPE_HOME) { return mRootHomeTask; } else if (activityType == ACTIVITY_TYPE_RECENTS) { return mRootRecentsTask; } if (windowingMode == WINDOWING_MODE_PINNED) { return mRootPinnedTask; Loading Loading @@ -199,6 +205,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { return mRootHomeTask; } @Nullable ActivityStack getRootRecentsTask() { return mRootRecentsTask; } ActivityStack getRootPinnedTask() { return mRootPinnedTask; } Loading Loading @@ -246,6 +256,16 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { } else { 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()) { Loading Loading @@ -273,6 +293,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { void removeStackReferenceIfNeeded(ActivityStack stack) { if (stack == mRootHomeTask) { mRootHomeTask = null; } else if (stack == mRootRecentsTask) { mRootRecentsTask = null; } else if (stack == mRootPinnedTask) { mRootPinnedTask = null; } else if (stack == mRootSplitScreenPrimaryTask) { Loading Loading
services/core/java/com/android/server/wm/TaskDisplayArea.java +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.wm; 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_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; Loading Loading @@ -99,6 +100,9 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { private ActivityStack mRootPinnedTask; 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> mTmpNormalStacks = new ArrayList<>(); private final ArrayList<ActivityStack> mTmpHomeStacks = new ArrayList<>(); Loading Loading @@ -163,6 +167,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { ActivityStack getStack(int windowingMode, int activityType) { if (activityType == ACTIVITY_TYPE_HOME) { return mRootHomeTask; } else if (activityType == ACTIVITY_TYPE_RECENTS) { return mRootRecentsTask; } if (windowingMode == WINDOWING_MODE_PINNED) { return mRootPinnedTask; Loading Loading @@ -199,6 +205,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { return mRootHomeTask; } @Nullable ActivityStack getRootRecentsTask() { return mRootRecentsTask; } ActivityStack getRootPinnedTask() { return mRootPinnedTask; } Loading Loading @@ -246,6 +256,16 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { } else { 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()) { Loading Loading @@ -273,6 +293,8 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> { void removeStackReferenceIfNeeded(ActivityStack stack) { if (stack == mRootHomeTask) { mRootHomeTask = null; } else if (stack == mRootRecentsTask) { mRootRecentsTask = null; } else if (stack == mRootPinnedTask) { mRootPinnedTask = null; } else if (stack == mRootSplitScreenPrimaryTask) { Loading