From e76291f55c8983e8e2563bbda61ec82098ad38ec Mon Sep 17 00:00:00 2001 From: Helen Cheuk Date: Tue, 14 Feb 2023 17:11:05 +0000 Subject: [PATCH] =?UTF-8?q?Pad=20large=20screen=20hotseat=20in=C2=A0RTL?= =?UTF-8?q?=C2=A03=20button=20nav=20mode=20by=20swapping=20left=20and=20ri?= =?UTF-8?q?ght=20padding=20to=20avoid=20overlapping=20with=20nav=20buttons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hotseat was overlapped with 3 navigation buttons in large screen RTL mode. This fix is to pad hotseat properly by swapping the left and right paddings in RTL mode Bug: 268178394 Test: manual Change-Id: I2b073a1b532bf3aae3ab1bec98ad70713742c672 --- src/com/android/launcher3/DeviceProfile.java | 24 ++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 2c34b3f822..e63b0540cd 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -1315,23 +1315,29 @@ public class DeviceProfile { hotseatBarSizePx - hotseatBarBottomPadding - hotseatCellHeightPx; int hotseatWidth = getHotseatRequiredWidth(); - int leftSpacing = (availableWidthPx - hotseatWidth) / 2; - int rightSpacing = leftSpacing; + int startSpacing; + int endSpacing; // Hotseat aligns to the left with nav buttons if (hotseatBarEndOffset > 0) { - leftSpacing = inlineNavButtonsEndSpacing; - rightSpacing = availableWidthPx - hotseatWidth - leftSpacing + hotseatBorderSpace; + startSpacing = inlineNavButtonsEndSpacing; + endSpacing = availableWidthPx - hotseatWidth - startSpacing + hotseatBorderSpace; + } else { + startSpacing = (availableWidthPx - hotseatWidth) / 2; + endSpacing = startSpacing; } + startSpacing += getAdditionalQsbSpace(); - hotseatBarPadding.set(leftSpacing, hotseatBarTopPadding, rightSpacing, - hotseatBarBottomPadding); - + hotseatBarPadding.top = hotseatBarTopPadding; + hotseatBarPadding.bottom = hotseatBarBottomPadding; boolean isRtl = Utilities.isRtl(context.getResources()); if (isRtl) { - hotseatBarPadding.right += getAdditionalQsbSpace(); + hotseatBarPadding.left = endSpacing; + hotseatBarPadding.right = startSpacing; } else { - hotseatBarPadding.left += getAdditionalQsbSpace(); + hotseatBarPadding.left = startSpacing; + hotseatBarPadding.right = endSpacing; } + } else if (isScalableGrid) { int sideSpacing = (availableWidthPx - hotseatQsbWidth) / 2; hotseatBarPadding.set(sideSpacing,