Merge "Track recents like home for times when it is separated" into rvc-dev am: c5304b1a61 am: 4529987a0b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11854925 Change-Id: I10b2f8347adbac39854b8fc2c38800b117a7566d
This commit is contained in:
@@ -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;
|
||||
@@ -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<>();
|
||||
@@ -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;
|
||||
@@ -199,6 +205,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
|
||||
return mRootHomeTask;
|
||||
}
|
||||
|
||||
@Nullable ActivityStack getRootRecentsTask() {
|
||||
return mRootRecentsTask;
|
||||
}
|
||||
|
||||
ActivityStack getRootPinnedTask() {
|
||||
return mRootPinnedTask;
|
||||
}
|
||||
@@ -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()) {
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user