From c2a6f6f4ae7966bfbfde5c33885384e240ad9951 Mon Sep 17 00:00:00 2001 From: Thales Lima Date: Thu, 9 Sep 2021 17:06:22 +0100 Subject: [PATCH] launcher: correct page spacing for multiple panels in RTL Fixes 199043583 Test: manual testing in unfolded state in portrait and landscape Change-Id: Idf5bdabb50742498701681e4654e72260054ab47 --- src/com/android/launcher3/PagedView.java | 3 ++- src/com/android/launcher3/Workspace.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 2f9b5af050..7f0186fc83 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -766,7 +766,8 @@ public abstract class PagedView extends ViewGrou childStart += primaryDimension + getChildGap(); // This makes sure that the space is added after the page, not after each panel - if (i % panelCount == panelCount - 1) { + int lastPanel = mIsRtl ? 0 : panelCount - 1; + if (i % panelCount == lastPanel) { childStart += mPageSpacing; } } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index a21c8e30f1..3d1b7128b4 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -338,15 +338,17 @@ public class Workspace extends PagedView int paddingBottom = grid.cellLayoutBottomPaddingPx; int panelCount = getPanelCount(); + int rightPanelModulus = mIsRtl ? 0 : panelCount - 1; + int leftPanelModulus = mIsRtl ? panelCount - 1 : 0; int numberOfScreens = mScreenOrder.size(); for (int i = 0; i < numberOfScreens; i++) { int paddingLeft = paddingLeftRight; int paddingRight = paddingLeftRight; if (panelCount > 1) { - if (i % panelCount == 0) { // left side panel + if (i % panelCount == leftPanelModulus) { paddingLeft = paddingLeftRight; paddingRight = 0; - } else if (i % panelCount == panelCount - 1) { // right side panel + } else if (i % panelCount == rightPanelModulus) { paddingLeft = 0; paddingRight = paddingLeftRight; } else { // middle panel