Fix overlap between app grid options in wallpaper settings. am: e04905c616
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ThemePicker/+/20446953
Change-Id: Iec4416ff3d5c617cc646dbbe66cba0ef2877b5e7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java
index ffd70e0..95924fa 100644
--- a/src/com/android/customization/widget/OptionSelectorController.java
+++ b/src/com/android/customization/widget/OptionSelectorController.java
@@ -291,13 +291,13 @@
final DisplayMetrics metrics = new DisplayMetrics();
mContainer.getContext().getSystemService(WindowManager.class)
.getDefaultDisplay().getMetrics(metrics);
- // This is based on the assumption that the parent view is the same width as the screen.
- final int availableDynamicWidth = metrics.widthPixels - 2 * res.getDimensionPixelSize(
- R.dimen.section_horizontal_padding);
- final int availableWidth = (fixWidth != 0) ? fixWidth : availableDynamicWidth;
final boolean hasDecoration = mContainer.getItemDecorationCount() != 0;
if (mUseGrid) {
+ // This is based on the assumption that the parent view is the same width as the screen.
+ final int availableDynamicWidth = metrics.widthPixels - 2 * res.getDimensionPixelSize(
+ R.dimen.section_horizontal_padding);
+ final int availableWidth = (fixWidth != 0) ? fixWidth : availableDynamicWidth;
int numColumns = res.getInteger(R.integer.options_grid_num_columns);
GridLayoutManager gridLayoutManager = new GridLayoutManager(mContainer.getContext(),
numColumns);
@@ -320,6 +320,8 @@
hasDecoration ? 0 : 2 * padding);
mContainer.setLayoutManager(new LinearLayoutManager(mContainer.getContext(),
LinearLayoutManager.HORIZONTAL, false));
+ mContainer.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+ int availableWidth = metrics.widthPixels;
int extraSpace = availableWidth - mContainer.getMeasuredWidth();
if (extraSpace >= 0) {
mContainer.setOverScrollMode(View.OVER_SCROLL_NEVER);
@@ -331,10 +333,8 @@
- mContainer.getPaddingLeft();
int itemEndMargin =
spaceBetweenItems / (int) mLinearLayoutHorizontalDisplayOptionsMax;
- if (itemEndMargin <= 0) {
- itemEndMargin = res.getDimensionPixelOffset(
- R.dimen.option_tile_margin_horizontal);
- }
+ itemEndMargin = Math.max(itemEndMargin, res.getDimensionPixelOffset(
+ R.dimen.option_tile_margin_horizontal));
mContainer.addItemDecoration(new ItemEndHorizontalSpaceItemDecoration(
mContainer.getContext(), itemEndMargin));
return;