Widgets: Only reset expanded item & scroll to top if the user switch tab

Test: Open widgets picker, then adb install an app that has widget.
      Observe the newly installed app widget is shown and the widgets
      picker doesn't scroll itself back to top.
Bug: 188425375
Change-Id: I7ac29f08b06d528ef64e902e678a67e56971c681
diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
index e44acc3..bfdddeb 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
@@ -130,6 +130,7 @@
     private final int mTabsHeight;
     private final int mWidgetCellHorizontalPadding;
 
+    @Nullable private WidgetsRecyclerView mCurrentWidgetsRecyclerView;
     @Nullable private PersonalWorkPagedView mViewPager;
     private boolean mIsInSearchMode;
     private int mMaxSpansPerRow = 4;
@@ -222,13 +223,18 @@
 
         updateRecyclerViewVisibility(currentAdapterHolder);
         attachScrollbarToRecyclerView(currentRecyclerView);
-        resetExpandedHeaders();
     }
 
     private void attachScrollbarToRecyclerView(WidgetsRecyclerView recyclerView) {
         recyclerView.bindFastScrollbar();
-        mSearchAndRecommendationsScrollController.setCurrentRecyclerView(recyclerView);
-        reset();
+        if (mCurrentWidgetsRecyclerView != recyclerView) {
+            // Only reset the scroll position & expanded apps if the currently shown recycler view
+            // has been updated.
+            reset();
+            resetExpandedHeaders();
+            mCurrentWidgetsRecyclerView = recyclerView;
+            mSearchAndRecommendationsScrollController.setCurrentRecyclerView(recyclerView);
+        }
     }
 
     private void updateRecyclerViewVisibility(AdapterHolder adapterHolder) {
@@ -413,7 +419,6 @@
         if (mIsInSearchMode) return;
         setViewVisibilityBasedOnSearch(/*isInSearchMode= */ true);
         attachScrollbarToRecyclerView(mAdapters.get(AdapterHolder.SEARCH).mWidgetsRecyclerView);
-        resetExpandedHeaders();
     }
 
     @Override