From 28032006970703240f4abd34429608abd2358645 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Thu, 13 Jul 2017 16:18:56 -0700 Subject: [PATCH] Set edgeMarginPx back to 8dp. With the new grid changes, it was set to 16dp but this caused an issue where the workspace page spacing was too large. To "restore" the original page spacing we set it back to 8dp. This caused an issue where the pages began to overlap. This CL changes the edgeMarginPx back to 8dp, and then adds the additional 8dp to the padding of the CellLayout. Bug: 63590728 Change-Id: Ie968d8bd81de19c726f73581d6609e3bc486c5ca --- res/values/dimens.xml | 3 +-- src/com/android/launcher3/CellLayout.java | 8 ++++---- src/com/android/launcher3/DeviceProfile.java | 13 ++++++++----- src/com/android/launcher3/Workspace.java | 4 ++++ 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 21abd3c936..356de7869b 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -16,7 +16,7 @@ - 16dp + 8dp 32dp 1dp 50dp @@ -30,7 +30,6 @@ 8dp - 8dp diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 42b64ea830..aac80052e4 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -860,10 +860,10 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { // Expand the background drawing bounds by the padding baked into the background drawable mBackground.getPadding(mTempRect); mBackground.setBounds( - left - mTempRect.left, - top - mTempRect.top, - right + mTempRect.right, - bottom + mTempRect.bottom); + left - mTempRect.left - getPaddingLeft(), + top - mTempRect.top - getPaddingTop(), + right + mTempRect.right + getPaddingRight(), + bottom + mTempRect.bottom + getPaddingBottom()); } /** diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 7520be2f6e..0f4abbe2e9 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -71,7 +71,8 @@ public class DeviceProfile { private final float overviewModeIconZoneRatio; // Workspace - private int desiredWorkspaceLeftRightMarginPx; + private final int desiredWorkspaceLeftRightMarginPx; + public final int cellLayoutPaddingLeftRightPx; public final int edgeMarginPx; public final Rect defaultWidgetPadding; private final int defaultPageSpacingPx; @@ -171,7 +172,8 @@ public class DeviceProfile { this.getClass().getName()); defaultWidgetPadding = AppWidgetHostView.getDefaultPaddingForWidget(context, cn, null); edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin); - desiredWorkspaceLeftRightMarginPx = edgeMarginPx; + desiredWorkspaceLeftRightMarginPx = isVerticalBarLayout() ? 0 : edgeMarginPx; + cellLayoutPaddingLeftRightPx = isVerticalBarLayout() ? 0 : edgeMarginPx; pageIndicatorSizePx = res.getDimensionPixelSize( R.dimen.dynamic_grid_min_page_indicator_size); pageIndicatorLandGutterPx = res.getDimensionPixelSize( @@ -513,7 +515,7 @@ public class DeviceProfile { // In portrait, we want the pages spaced such that there is no // overhang of the previous / next page into the current page viewport. // We assume symmetrical padding in portrait mode. - return Math.max(defaultPageSpacingPx, getWorkspacePadding(null).left / 2 + 1); + return Math.max(defaultPageSpacingPx, getWorkspacePadding(null).left + 1); } } @@ -564,7 +566,7 @@ public class DeviceProfile { lp = (FrameLayout.LayoutParams) searchBar.getLayoutParams(); lp.width = searchBarBounds.x; lp.height = searchBarBounds.y; - lp.topMargin = mInsets.top + edgeMarginPx / 2; + lp.topMargin = mInsets.top + edgeMarginPx; searchBar.setLayoutParams(lp); // Layout the workspace @@ -615,6 +617,7 @@ public class DeviceProfile { hotseatBarTopPaddingPx, hotseatAdjustment + workspacePadding.right, hotseatBarBottomPaddingPx + mInsets.bottom); } + hotseat.setPadding(cellLayoutPaddingLeftRightPx, 0, cellLayoutPaddingLeftRightPx, 0); hotseat.setLayoutParams(lp); // Layout the page indicators @@ -652,7 +655,7 @@ public class DeviceProfile { // Layout the AllAppsRecyclerView View view = launcher.findViewById(R.id.apps_list_view); - int paddingLeftRight = hasVerticalBarLayout ? 0 : edgeMarginPx; + int paddingLeftRight = desiredWorkspaceLeftRightMarginPx + cellLayoutPaddingLeftRightPx; view.setPadding(paddingLeftRight, view.getPaddingTop(), paddingLeftRight, view.getPaddingBottom()); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index f9dc796fdf..0d7e4fa569 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -666,6 +666,10 @@ public class Workspace extends PagedView newScreen.setOnLongClickListener(mLongClickListener); newScreen.setOnClickListener(mLauncher); newScreen.setSoundEffectsEnabled(false); + + int paddingLeftRight = mLauncher.getDeviceProfile().cellLayoutPaddingLeftRightPx; + newScreen.setPadding(paddingLeftRight, 0, paddingLeftRight, 0); + mWorkspaceScreens.put(screenId, newScreen); mScreenOrder.add(insertIndex, screenId); addView(newScreen, insertIndex);