Fix recyclerview items setup wrong description

 - Adjust the recyclerview setLayoutManager() timing, since we set it twice when using gird layout, it will mis-trigger our setContentDescription() method randomly and make some options setup wrong content description
 video: https://drive.google.com/file/d/1xGjw9zacgeQsPtQA7DkWo3d-TvzPUYIi/view?usp=sharing

 Fixes: 160761967
 Test: manually

Change-Id: I52eec0f40e5c65c5e520abe32a08611959ce5d13
diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java
index 49dfb82..db09aa6 100644
--- a/src/com/android/customization/widget/OptionSelectorController.java
+++ b/src/com/android/customization/widget/OptionSelectorController.java
@@ -228,9 +228,14 @@
             }
         };
 
-        mContainer.setLayoutManager(new LinearLayoutManager(mContainer.getContext(),
-                LinearLayoutManager.HORIZONTAL, false));
         Resources res = mContainer.getContext().getResources();
+        if (mUseGrid) {
+            mContainer.setLayoutManager(new GridLayoutManager(mContainer.getContext(),
+                    res.getInteger(R.integer.options_grid_num_columns)));
+        } else {
+            mContainer.setLayoutManager(new LinearLayoutManager(mContainer.getContext(),
+                    LinearLayoutManager.HORIZONTAL, false));
+        }
 
         mContainer.setAdapter(mAdapter);
 
@@ -250,14 +255,18 @@
 
         if (mUseGrid) {
             int numColumns = res.getInteger(R.integer.options_grid_num_columns);
-            int widthPerItem = totalWidth / mAdapter.getItemCount();
+            int widthPerItem = res.getDimensionPixelOffset(R.dimen.option_tile_width);
             int extraSpace = availableWidth - widthPerItem * numColumns;
             while (extraSpace < 0) {
                 numColumns -= 1;
                 extraSpace = availableWidth - widthPerItem * numColumns;
             }
-            int containerSidePadding = extraSpace / (numColumns + 1);
-            mContainer.setLayoutManager(new GridLayoutManager(mContainer.getContext(), numColumns));
+
+            if (mContainer.getLayoutManager() != null) {
+                ((GridLayoutManager) mContainer.getLayoutManager()).setSpanCount(numColumns);
+            }
+
+            int containerSidePadding = (extraSpace / (numColumns + 1)) / 2;
             mContainer.setPaddingRelative(containerSidePadding, 0, containerSidePadding, 0);
             mContainer.setOverScrollMode(View.OVER_SCROLL_NEVER);
             return;