diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 3cc9ba8719e89..a07ed2e5a6169 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -2208,9 +2208,9 @@ public final class ActivityStackSupervisor implements DisplayListener { // Temporarily disable resizeablility of task we are moving. We don't want it to be resized // if a docked stack is created below which will lead to the stack we are moving from and // its resizeable tasks being resized. - task.mResizeMode = RESIZE_MODE_UNRESIZEABLE; + task.mTemporarilyUnresizable = true; final ActivityStack stack = getStack(stackId, CREATE_IF_NEEDED, toTop); - task.mResizeMode = resizeMode; + task.mTemporarilyUnresizable = false; mWindowManager.moveTaskToStack(task.taskId, stack.mStackId, toTop); stack.addTask(task, toTop, reason); diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index a56f04ba4493d..703dfca27f2a6 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -162,6 +162,8 @@ final class TaskRecord { int mResizeMode; // The resize mode of this task and its activities. // Based on the {@link ActivityInfo#resizeMode} of the root activity. + boolean mTemporarilyUnresizable; // Separate flag from mResizeMode used to suppress resize + // changes on a temporary basis. int mLockTaskMode; // Which tasklock mode to launch this task in. One of // ActivityManager.LOCK_TASK_LAUNCH_MODE_* private boolean mPrivileged; // The root activity application of this task holds @@ -939,7 +941,7 @@ final class TaskRecord { boolean isResizeable() { return !isHomeTask() && (mService.mForceResizableActivities - || ActivityInfo.isResizeableMode(mResizeMode)); + || ActivityInfo.isResizeableMode(mResizeMode)) && !mTemporarilyUnresizable; } boolean inCropWindowsResizeMode() {