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
This commit is contained in:
@@ -130,6 +130,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
||||
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 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
||||
|
||||
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 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
||||
if (mIsInSearchMode) return;
|
||||
setViewVisibilityBasedOnSearch(/*isInSearchMode= */ true);
|
||||
attachScrollbarToRecyclerView(mAdapters.get(AdapterHolder.SEARCH).mWidgetsRecyclerView);
|
||||
resetExpandedHeaders();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user