Merge "Make sure search recycler view is bound to fast scroller if user is in search mode at the time of attachment of work/personal recycler view." into sc-dev am: 7ed32025f1 am: dd0b46e6db
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15142492 Change-Id: Ib28fa301f01f9bf3493891c0fcf911b8a1832d9a
This commit is contained in:
@@ -129,6 +129,22 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final OnAttachStateChangeListener mBindScrollbarInSearchMode =
|
||||||
|
new OnAttachStateChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onViewAttachedToWindow(View view) {
|
||||||
|
WidgetsRecyclerView searchRecyclerView =
|
||||||
|
mAdapters.get(AdapterHolder.SEARCH).mWidgetsRecyclerView;
|
||||||
|
if (mIsInSearchMode && searchRecyclerView != null) {
|
||||||
|
searchRecyclerView.bindFastScrollbar();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewDetachedFromWindow(View view) {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private final int mTabsHeight;
|
private final int mTabsHeight;
|
||||||
private final int mViewPagerTopPadding;
|
private final int mViewPagerTopPadding;
|
||||||
private final int mSearchAndRecommendationContainerBottomMargin;
|
private final int mSearchAndRecommendationContainerBottomMargin;
|
||||||
@@ -303,6 +319,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
|||||||
protected void onDetachedFromWindow() {
|
protected void onDetachedFromWindow() {
|
||||||
super.onDetachedFromWindow();
|
super.onDetachedFromWindow();
|
||||||
mActivityContext.getAppWidgetHost().removeProviderChangeListener(this);
|
mActivityContext.getAppWidgetHost().removeProviderChangeListener(this);
|
||||||
|
mAdapters.get(AdapterHolder.PRIMARY).mWidgetsRecyclerView
|
||||||
|
.removeOnAttachStateChangeListener(mBindScrollbarInSearchMode);
|
||||||
|
if (mHasWorkProfile) {
|
||||||
|
mAdapters.get(AdapterHolder.WORK).mWidgetsRecyclerView
|
||||||
|
.removeOnAttachStateChangeListener(mBindScrollbarInSearchMode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -752,6 +774,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet
|
|||||||
mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this);
|
mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this);
|
||||||
mWidgetsRecyclerView.setEdgeEffectFactory(
|
mWidgetsRecyclerView.setEdgeEffectFactory(
|
||||||
((TopRoundedCornerView) mContent).createEdgeEffectFactory());
|
((TopRoundedCornerView) mContent).createEdgeEffectFactory());
|
||||||
|
// Recycler view binds to fast scroller when it is attached to screen. Make sure
|
||||||
|
// search recycler view is bound to fast scroller if user is in search mode at the time
|
||||||
|
// of attachment.
|
||||||
|
if (mAdapterType == PRIMARY || mAdapterType == WORK) {
|
||||||
|
mWidgetsRecyclerView.addOnAttachStateChangeListener(mBindScrollbarInSearchMode);
|
||||||
|
}
|
||||||
mWidgetsListAdapter.setApplyBitmapDeferred(false, mWidgetsRecyclerView);
|
mWidgetsListAdapter.setApplyBitmapDeferred(false, mWidgetsRecyclerView);
|
||||||
mWidgetsListAdapter.setMaxHorizontalSpansPerRow(mMaxSpansPerRow);
|
mWidgetsListAdapter.setMaxHorizontalSpansPerRow(mMaxSpansPerRow);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user