Merge "Uses WorkspaceSurfaceHolderCallback for GridPreviewer" into ub-launcher3-master
diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java
index 5b76b36..ef97385 100644
--- a/src/com/android/customization/widget/OptionSelectorController.java
+++ b/src/com/android/customization/widget/OptionSelectorController.java
@@ -160,6 +160,11 @@
                 return mOptions.get(position).getLayoutResId();
             }
 
+            @Override
+            public long getItemId(int position) {
+                return position;
+            }
+
             @NonNull
             @Override
             public TileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -225,6 +230,11 @@
         mContainer.setLayoutManager(new LinearLayoutManager(mContainer.getContext(),
                 LinearLayoutManager.HORIZONTAL, false));
         Resources res = mContainer.getContext().getResources();
+
+        // A workaround from b/37088814, fix TalkBack will lose focus when receive notify*Changed()
+        mAdapter.setHasStableIds(true);
+        mContainer.setItemAnimator(null);
+
         mContainer.setAdapter(mAdapter);
 
         // Measure RecyclerView to get to the total amount of space used by all options.