From fe16a37d1bd2b4d312f21690198055fedaab262a Mon Sep 17 00:00:00 2001 From: Garfield Tan Date: Wed, 26 Jun 2019 16:14:33 -0700 Subject: [PATCH] Return bounds when it's in fullscreen display. These bounds won't be applied to the task when the windowing mode isn't freeform. Rather, they will be applied to the last non-fullscreen bounds which would be used to restore it back to the old bounds when display changes to freeform. Also fixed the unit test for this particular case. Bug: 135941344 Bug: 135780225 Test: Manual tests on devices where display windowing mode may change at runtime. Test: atest WmTests:TaskLaunchParamsModifierTests Change-Id: I137c9ab754fae6d50f61e55a19f931d03477d9b2 --- .../java/com/android/server/wm/TaskLaunchParamsModifier.java | 2 +- .../com/android/server/wm/TaskLaunchParamsModifierTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java index 76dd7bef6ea64..e2d0acd370134 100644 --- a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java +++ b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java @@ -278,7 +278,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { // an existing task. adjustBoundsToAvoidConflictInDisplay(display, outParams.mBounds); } - } else { + } else if (display.inFreeformWindowingMode()) { if (source != null && source.inFreeformWindowingMode() && resolvedMode == WINDOWING_MODE_FREEFORM && outParams.mBounds.isEmpty() diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java index 24ff07d4bffe8..c4b0a802a8d84 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java @@ -1196,7 +1196,7 @@ public class TaskLaunchParamsModifierTests extends ActivityTestsBase { mActivity, /* source */ null, /* options */ null, mCurrent, mResult)); // Returned bounds with in fullscreen mode will be set to last non-fullscreen bounds. - assertEquals(new Rect(0, 0, 200, 100), mCurrent.mBounds); + assertEquals(new Rect(0, 0, 200, 100), mResult.mBounds); } @Test