From ad813d0c45a7062f4373342fbfc34834ce97073f Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Mon, 28 Jun 2021 17:20:39 +0800 Subject: [PATCH] Always using middle position to resize layout After rotation, the divider should always in middle if not in minimized mode, so it should use middle position rather than divider current position to resize split on rotation callback. Fix: 192219057 Test: manual Test: atest WMShellUnitTests Change-Id: I255c1d6aad9a796ca3ec722f45977eb360fe3805 --- .../legacysplitscreen/LegacySplitScreenController.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/legacysplitscreen/LegacySplitScreenController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/legacysplitscreen/LegacySplitScreenController.java index 261ff2f8de838..ea2fc1aae2908 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/legacysplitscreen/LegacySplitScreenController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/legacysplitscreen/LegacySplitScreenController.java @@ -146,10 +146,8 @@ public class LegacySplitScreenController implements DisplayController.OnDisplays new LegacySplitDisplayLayout(mContext, displayLayout, mSplits); sdl.rotateTo(toRotation); mRotateSplitLayout = sdl; - final int position = isDividerVisible() - ? (mMinimized ? mView.mSnapTargetBeforeMinimized.position - : mView.getCurrentPosition()) - // snap resets to middle target when not in split-mode + // snap resets to middle target when not minimized and rotation changed. + final int position = mMinimized ? mView.mSnapTargetBeforeMinimized.position : sdl.getSnapAlgorithm().getMiddleTarget().position; DividerSnapAlgorithm snap = sdl.getSnapAlgorithm(); final DividerSnapAlgorithm.SnapTarget target =