From 11835666b82ed9356b066901d7ad3e5817b82676 Mon Sep 17 00:00:00 2001 From: Maryam Dehaini Date: Tue, 27 Jun 2023 13:24:38 -0700 Subject: [PATCH] Initialize stable bounds during onDragStart The display appearance is occurring after the task appearance. Because of this, we cannot initialize the stable bounds in the task positioners' constructors. Test: atest CtsWindowManagerDeviceTestCases -- --abi x86_64 Bug: 289101765 Change-Id: Ia994ba2eb81a558a53de17839c8959b830bff970 --- .../wm/shell/windowdecor/FluidResizeTaskPositioner.java | 6 ++++-- .../wm/shell/windowdecor/VeiledResizeTaskPositioner.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java index 917abf5524a4a..e1b6db5959754 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/FluidResizeTaskPositioner.java @@ -63,8 +63,6 @@ class FluidResizeTaskPositioner implements DragPositioningCallback { mDragStartListener = dragStartListener; mTransactionSupplier = supplier; mDisallowedAreaForEndBoundsHeight = disallowedAreaForEndBoundsHeight; - mDisplayController.getDisplayLayout(windowDecoration.mDisplay.getDisplayId()) - .getStableBounds(mStableBounds); } @Override @@ -80,6 +78,10 @@ class FluidResizeTaskPositioner implements DragPositioningCallback { mTaskOrganizer.applyTransaction(wct); } mRepositionTaskBounds.set(mTaskBoundsAtDragStart); + if (mStableBounds.isEmpty()) { + mDisplayController.getDisplayLayout(mWindowDecoration.mDisplay.getDisplayId()) + .getStableBounds(mStableBounds); + } } @Override diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java index bf3ff3fa83ef9..ae3b5eb6a5b51 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/VeiledResizeTaskPositioner.java @@ -80,8 +80,6 @@ public class VeiledResizeTaskPositioner implements DragPositioningCallback, mTransactionSupplier = supplier; mTransitions = transitions; mDisallowedAreaForEndBoundsHeight = disallowedAreaForEndBoundsHeight; - mDisplayController.getDisplayLayout(windowDecoration.mDisplay.getDisplayId()) - .getStableBounds(mStableBounds); } @Override @@ -100,6 +98,10 @@ public class VeiledResizeTaskPositioner implements DragPositioningCallback, } mDragStartListener.onDragStart(mDesktopWindowDecoration.mTaskInfo.taskId); mRepositionTaskBounds.set(mTaskBoundsAtDragStart); + if (mStableBounds.isEmpty()) { + mDisplayController.getDisplayLayout(mDesktopWindowDecoration.mDisplay.getDisplayId()) + .getStableBounds(mStableBounds); + } } @Override