From 73336d81a62a975b4f57f592ff46fa3223f7df27 Mon Sep 17 00:00:00 2001 From: Andrii Kulian Date: Thu, 24 Mar 2016 12:56:08 -0700 Subject: [PATCH] Use correct task bounds after updating override config Use new task bounds after updating override configuration when we move existing task to front or launch new one. This fixes issues when task with defined minimal size is launched in freeform or split-screen modes. In these cases minimal size was not applied until task was resized manually. Bug: 27621228 Change-Id: I0630962578815a77bfb556150cb71fec5a74ee37 --- .../java/com/android/server/am/ActivityStackSupervisor.java | 2 +- services/core/java/com/android/server/am/TaskRecord.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 0e6d174864f9a..950320ec49a54 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -1798,7 +1798,7 @@ public final class ActivityStackSupervisor implements DisplayListener { // WM resizeTask must be done after the task is moved to the correct stack, // because Task's setBounds() also updates dim layer's bounds, but that has // dependency on the stack. - mWindowManager.resizeTask(task.taskId, bounds, task.mOverrideConfig, + mWindowManager.resizeTask(task.taskId, task.mBounds, task.mOverrideConfig, false /* relayout */, false /* forced */); } } diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index 4eae45c616e58..cc5e687527119 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -1502,6 +1502,9 @@ final class TaskRecord { Rect updateOverrideConfigurationFromLaunchBounds() { final Rect bounds = validateBounds(getLaunchBounds()); updateOverrideConfiguration(bounds); + if (bounds != null) { + bounds.set(mBounds); + } return bounds; }