Added StackWindowContainerController
For linking ActivityStack in AMS to TaskStack window container in WMS.
Change-Id: I8b9eaef49e62854d59b22d27f80f5935a5a4d7fc
Bug: 30060889
Test: bit FrameworksServicesTests:com.android.server.wm.StackWindowContainerControllerTests
Test: bit FrameworksServicesTests:com.android.server.wm.TaskWindowContainerControllerTests
Test: Existing test pass and manual testing.
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 2373ea8..f12d7b7 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -421,9 +421,10 @@
final Rect bounds = updateOverrideConfigurationFromLaunchBounds();
final Configuration overrideConfig = getOverrideConfiguration();
- mWindowContainerController = new TaskWindowContainerController(taskId, this, getStackId(),
- userId, bounds, overrideConfig, mResizeMode, mSupportsPictureInPicture,
- isHomeTask(), isOnTopLauncher(), onTop, showForAllUsers, lastTaskDescription);
+ mWindowContainerController = new TaskWindowContainerController(taskId, this,
+ getStack().getWindowContainerController(), userId, bounds, overrideConfig,
+ mResizeMode, mSupportsPictureInPicture, isHomeTask(), isOnTopLauncher(),
+ onTop, showForAllUsers, lastTaskDescription);
}
void removeWindowContainer() {
@@ -457,6 +458,12 @@
mWindowContainerController.setTaskDockedResizing(resizing);
}
+ // TODO: Consolidate this with the resize() method below.
+ @Override
+ public void requestResize(Rect bounds, int resizeMode) {
+ mService.resizeTask(taskId, bounds, resizeMode);
+ }
+
boolean resize(Rect bounds, int resizeMode, boolean preserveWindow, boolean deferResume) {
if (!isResizeable()) {
Slog.w(TAG, "resizeTask: task " + this + " not resizeable.");
@@ -527,25 +534,6 @@
false /* forced */);
}
- // TODO: Remove once we have a stack controller.
- void positionWindowContainerAt(int position) {
- mWindowContainerController.positionAt(position, mBounds, getOverrideConfiguration());
- }
-
- // TODO: Replace with moveChildToTop?
- void moveWindowContainerToTop(boolean includingParents) {
- if (mWindowContainerController != null) {
- mWindowContainerController.moveToTop(includingParents);
- }
- }
-
- // TODO: Replace with moveChildToBottom?
- void moveWindowContainerToBottom() {
- if (mWindowContainerController != null) {
- mWindowContainerController.moveToBottom();
- }
- }
-
void getWindowContainerBounds(Rect bounds) {
mWindowContainerController.getBounds(bounds);
}
@@ -563,7 +551,7 @@
// Must reparent first in window manager to avoid a situation where AM can delete the
// we are coming from in WM before we reparent because it became empty.
- mWindowContainerController.reparent(stackId, position);
+ mWindowContainerController.reparent(newStack.getWindowContainerController(), position);
final ActivityStack prevStack = mStack;
prevStack.removeTask(this, reason, REMOVE_TASK_MODE_MOVING);