From 41f33c3cfd3b1b93a092d8a776e5731989590c33 Mon Sep 17 00:00:00 2001 From: Thales Lima Date: Tue, 24 Aug 2021 11:54:03 +0100 Subject: [PATCH] workspace: get the correct page when setting paddings When adding a new page to the workspace, mWorkspaceScreens doesn't necessarily keeps the order. We should use the mScreenOrder field to get the correct index of pages. Fixes: 197198491 Test: drag an app from first page and paddings should be correct Change-Id: I4f79c164391348b53b71a87d5d49cfc4d3d35e5a --- src/com/android/launcher3/Workspace.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index d162abdecc..1e20fa1be4 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -333,7 +333,8 @@ public class Workspace extends PagedView int paddingBottom = grid.cellLayoutBottomPaddingPx; int panelCount = getPanelCount(); - for (int i = mWorkspaceScreens.size() - 1; i >= 0; i--) { + int numberOfScreens = mScreenOrder.size(); + for (int i = 0; i < numberOfScreens; i++) { int paddingLeft = paddingLeftRight; int paddingRight = paddingLeftRight; if (panelCount > 1) { @@ -348,7 +349,9 @@ public class Workspace extends PagedView paddingRight = 0; } } - mWorkspaceScreens.valueAt(i).setPadding(paddingLeft, 0, paddingRight, paddingBottom); + // SparseArrayMap doesn't keep the order + mWorkspaceScreens.get(mScreenOrder.get(i)) + .setPadding(paddingLeft, 0, paddingRight, paddingBottom); } }