Merge "Widgets: Only reset expanded item & scroll to top if the user switch tab" into sc-dev
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