Merge "Import translations. DO NOT MERGE ANYWHERE" into tm-qpr-dev
diff --git a/src/com/android/customization/model/color/ColorSectionController.java b/src/com/android/customization/model/color/ColorSectionController.java
index 2a067cb..c31f01e 100644
--- a/src/com/android/customization/model/color/ColorSectionController.java
+++ b/src/com/android/customization/model/color/ColorSectionController.java
@@ -326,8 +326,10 @@
             subOptions = colorOptions;
         }
 
+        final int padding = container.getContext().getResources().getDimensionPixelSize(
+                R.dimen.section_horizontal_padding);
         OptionSelectorController<ColorOption> adaptiveController = new OptionSelectorController<>(
-                container, subOptions, /* useGrid= */ true, CENTER);
+                container, subOptions, /* useGrid= */ true, CENTER, padding);
         adaptiveController.initOptions(mColorManager);
         setUpColorOptionsController(adaptiveController);
     }
@@ -480,7 +482,7 @@
                     final int padding = itemView.getContext().getResources().getDimensionPixelSize(
                             R.dimen.section_horizontal_padding);
                     mContainer.setPageTransformer(new MarginPageTransformer(padding * 2));
-                    mContainer.setPadding(padding, /* top= */ 0, padding, /* bottom= */ 0);
+                    mContainer.setPadding(0, /* top= */ 0, 0, /* bottom= */ 0);
                 }
                 mPageIndicator = itemView.findViewById(R.id.color_page_indicator);
                 if (ColorProvider.themeStyleEnabled) {
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java
index d60ebca..b0b1107 100644
--- a/src/com/android/customization/picker/grid/GridFragment.java
+++ b/src/com/android/customization/picker/grid/GridFragment.java
@@ -217,7 +217,7 @@
                 mLoading.hide();
                 mOptionsController = new OptionSelectorController<>(
                         mOptionsContainer, options, /* useGrid= */ false,
-                        CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED);
+                        CheckmarkStyle.CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED, 0);
                 mOptionsController.initOptions(mGridManager);
                 GridOption previouslySelectedOption = findEquivalent(options,
                         mGridOptionViewModel.getSelectedOption());
diff --git a/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java b/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java
index a1e9967..83d5e69 100644
--- a/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java
+++ b/src/com/android/customization/picker/theme/CustomThemeComponentFragment.java
@@ -95,7 +95,7 @@
     private void setUpOptions() {
         mProvider.fetch(options -> {
             mOptionsController = new OptionSelectorController(
-                    mOptionsContainer, options, mUseGridLayout, CheckmarkStyle.NONE);
+                    mOptionsContainer, options, mUseGridLayout, CheckmarkStyle.NONE, 0);
 
             mOptionsController.addListener(selected -> {
                 mSelectedOption = (ThemeComponentOption) selected;
diff --git a/src/com/android/customization/picker/theme/ThemeFragment.java b/src/com/android/customization/picker/theme/ThemeFragment.java
index 3a9a56f..493213d 100644
--- a/src/com/android/customization/picker/theme/ThemeFragment.java
+++ b/src/com/android/customization/picker/theme/ThemeFragment.java
@@ -258,7 +258,7 @@
         mThemeManager.fetchOptions(new OptionsFetchedListener<ThemeBundle>() {
             @Override
             public void onOptionsLoaded(List<ThemeBundle> options) {
-                mOptionsController = new OptionSelectorController<>(mOptionsContainer, options);
+                mOptionsController = new OptionSelectorController<>(mOptionsContainer, options, 0);
                 mOptionsController.initOptions(mThemeManager);
 
                 // Find out the selected theme option.
diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java
index fc665b9..6ca13be 100644
--- a/src/com/android/customization/widget/OptionSelectorController.java
+++ b/src/com/android/customization/widget/OptionSelectorController.java
@@ -78,25 +78,26 @@
         int CENTER_CHANGE_COLOR_WHEN_NOT_SELECTED = 3;
     }
 
-    private float mLinearLayoutHorizontalDisplayOptionsMax;
+    private final float mLinearLayoutHorizontalDisplayOptionsMax;
 
     private final RecyclerView mContainer;
     private final List<T> mOptions;
     private final boolean mUseGrid;
     @CheckmarkStyle
     private final int mCheckmarkStyle;
+    private final int mContainerInset;
 
     private final Set<OptionSelectedListener> mListeners = new HashSet<>();
     private RecyclerView.Adapter<TileViewHolder> mAdapter;
     private T mSelectedOption;
     private T mAppliedOption;
 
-    public OptionSelectorController(RecyclerView container, List<T> options) {
-        this(container, options, true, CheckmarkStyle.CORNER);
+    public OptionSelectorController(RecyclerView container, List<T> options, int containerInset) {
+        this(container, options, true, CheckmarkStyle.CORNER, containerInset);
     }
 
     public OptionSelectorController(RecyclerView container, List<T> options,
-            boolean useGrid, @CheckmarkStyle int checkmarkStyle) {
+            boolean useGrid, @CheckmarkStyle int checkmarkStyle, int containerInset) {
         mContainer = container;
         mOptions = options;
         mUseGrid = useGrid;
@@ -105,6 +106,7 @@
         mContainer.getResources().getValue(R.dimen.linear_layout_horizontal_display_options_max,
                 typedValue, true);
         mLinearLayoutHorizontalDisplayOptionsMax = typedValue.getFloat();
+        mContainerInset = containerInset;
     }
 
     public void addListener(OptionSelectedListener listener) {
@@ -302,6 +304,9 @@
             int numColumns = res.getInteger(R.integer.options_grid_num_columns);
             GridLayoutManager gridLayoutManager = new GridLayoutManager(mContainer.getContext(),
                     numColumns);
+            if (mContainerInset != 0) {
+                mContainer.setPadding(mContainerInset, 0, mContainerInset, 0);
+            }
             mContainer.setLayoutManager(gridLayoutManager);
         } else {
             final int padding = res.getDimensionPixelSize(