summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Toshiki Kikuchi <toshikikikuchi@google.com> 2023-11-09 17:18:23 +0900
committer Toshiki Kikuchi <toshikikikuchi@google.com> 2023-11-09 17:59:29 +0900
commit2970ffce18fa567ea429f1a94dbbc4db616d42a8 (patch)
treef0d062f31f00732cea5024159025346d5bd54398
parent2ef3c46388d6cb99889d176b2d06652daf67b5f9 (diff)
Allow Task#setDragResizing on W_M_MULTI_WINDOW
This CL unlocks the capability to set Task#setDragResizing for tasks in WINDOWING_MODE_MULTI_WINDOW. With Task#setDragResizing, some resizing optimizations (e.g., using a fullscreen-sized surface to reduce reallocations) are applied while resizing. Because W_M_MULTI_WINDOW is also allowed to be resized from the Shell, we need such optimizations for W_M_MULTI_WINDOW as well. It used to be allowed for legacy docked tasks, but the docked mode refactoring accidentally cleaned this up. This CL restores the capability. Bug: 308722494 Test: TaskTests Change-Id: I4dc9150ebbcc0cb55eddb7d52090da6e983fe06e
-rw-r--r--services/core/java/com/android/server/wm/Task.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TaskTests.java29
2 files changed, 30 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 71dbd29a0410..af86a88942f2 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -2914,7 +2914,7 @@ class Task extends TaskFragment {
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 0c580697bc4a..b5cf06aa459f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
@@ -1579,6 +1579,35 @@ public class TaskTests extends WindowTestsBase {
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();
}