From 38bb3b0c5c9c13c8389214a117666d599a39410c Mon Sep 17 00:00:00 2001 From: Sihua Ma Date: Mon, 21 Mar 2022 22:20:14 -0700 Subject: [PATCH] Aligning Hotseat and Workspace icons in vertical bar mode Changing the padding of the Hotseat Bar to align the hotseat icons with the Workspace icons. Test: Manual Fix: 223553482 Change-Id: I7939c3a900dfe22d2ce3f71d408f1d2778a0af2a --- src/com/android/launcher3/DeviceProfile.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 91fa4ca497..625de7ddad 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -979,8 +979,17 @@ public class DeviceProfile { */ public Rect getHotseatLayoutPadding(Context context) { if (isVerticalBarLayout()) { - int paddingTop = Math.max(mInsets.top - cellLayoutPaddingPx.top, 0); - int paddingBottom = Math.max(mInsets.bottom - cellLayoutPaddingPx.bottom, 0); + // The hotseat icons will be placed in the middle of the hotseat cells. + // Changing the hotseatCellHeightPx is not affecting hotseat icon positions + // in vertical bar layout. + // Workspace icons are moved up by a small factor. The variable diffOverlapFactor + // is set to account for that difference. + float diffOverlapFactor = iconSizePx * (ICON_OVERLAP_FACTOR - 1) / 2; + int paddingTop = Math.max((int) (mInsets.top + cellLayoutPaddingPx.top + - diffOverlapFactor), 0); + int paddingBottom = Math.max((int) (mInsets.bottom + cellLayoutPaddingPx.bottom + + diffOverlapFactor), 0); + if (isSeascape()) { mHotseatPadding.set(mInsets.left + hotseatBarSidePaddingStartPx, paddingTop, hotseatBarSidePaddingEndPx, paddingBottom);