Merge "Allow Task#setDragResizing on W_M_MULTI_WINDOW" into main
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 6f19425..a778415 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -2909,7 +2909,7 @@
if (mDragResizing != dragResizing) {
// No need to check if allowed if it's leaving dragResize
if (dragResizing
- && !(getRootTask().getWindowingMode() == WINDOWING_MODE_FREEFORM)) {
+ && !(getRootTask().getWindowConfiguration().canResizeTask())) {
Slog.e(TAG, "Drag resize isn't allowed for root task id=" + getRootTaskId());
return;
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
index 898b751..013be25 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
@@ -1583,6 +1583,35 @@
task.getTopChild());
}
+ @Test
+ public void testSetDragResizing() {
+ final Task task = createTask(mDisplayContent);
+
+ // Allowed for freeform.
+ task.setWindowingMode(WINDOWING_MODE_FREEFORM);
+
+ task.setDragResizing(true);
+ assertTrue(task.isDragResizing());
+ task.setDragResizing(false);
+ assertFalse(task.isDragResizing());
+
+ // Allowed for multi-window.
+ task.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+
+ task.setDragResizing(true);
+ assertTrue(task.isDragResizing());
+ task.setDragResizing(false);
+ assertFalse(task.isDragResizing());
+
+ // Disallowed for fullscreen.
+ task.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+
+ task.setDragResizing(true);
+ assertFalse(task.isDragResizing());
+ task.setDragResizing(false);
+ assertFalse(task.isDragResizing());
+ }
+
private Task getTestTask() {
return new TaskBuilder(mSupervisor).setCreateActivity(true).build();
}