From 3c0f4c156d01941cf505c982647d84a2b0e9c041 Mon Sep 17 00:00:00 2001 From: Pat Manning Date: Thu, 19 May 2022 18:48:14 +0100 Subject: [PATCH] Bound drop target layout values to left and right. Test: manual Fix: 232636570 Bug: 233225825 Change-Id: I388cb3407cb9f887ccc222f4804636f9f7651884 --- src/com/android/launcher3/DropTargetBar.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/DropTargetBar.java b/src/com/android/launcher3/DropTargetBar.java index 6a8ba1bec4..37cb4a1e74 100644 --- a/src/com/android/launcher3/DropTargetBar.java +++ b/src/com/android/launcher3/DropTargetBar.java @@ -285,13 +285,21 @@ public class DropTargetBar extends FrameLayout int buttonPlusGapWidth = leftButtonWidth + buttonGap + rightButtonWidth; int extraSpace = end - start - buttonPlusGapWidth; - start = (start - left) + (extraSpace / 2); + int leftBound = Math.max(left, 0); + int rightBound = Math.min(right, dp.availableWidthPx); - leftButton.layout(start, 0, start + leftButtonWidth, + int leftButtonStart = Utilities.boundToRange( + (start - left) + (extraSpace / 2), leftBound, rightBound); + int leftButtonEnd = Utilities.boundToRange( + leftButtonStart + leftButtonWidth, leftBound, rightBound); + int rightButtonStart = Utilities.boundToRange( + leftButtonEnd + buttonGap, leftBound, rightBound); + int rightButtonEnd = Utilities.boundToRange( + rightButtonStart + rightButtonWidth, leftBound, rightBound); + + leftButton.layout(leftButtonStart, 0, leftButtonEnd, leftButton.getMeasuredHeight()); - - int rightButtonStart = start + leftButtonWidth + buttonGap; - rightButton.layout(rightButtonStart, 0, rightButtonStart + rightButtonWidth, + rightButton.layout(rightButtonStart, 0, rightButtonEnd, rightButton.getMeasuredHeight()); } }