Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57973c32 authored by Alina Zaidi's avatar Alina Zaidi
Browse files

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.

Bug: 191980945
Test: Tested manually.
1) Open widget picker, scroll.
2) Enable dark mode, scroll.
3) Type search query, scroll.
4) Disable dark mode, scroll.
5) Have work profile in phone and repeat the above with work tab open
and search.

Change-Id: I106717091a88868c4bbe3fad0dd71c8344e9c8ed
parent 9f2674b6
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -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 mViewPagerTopPadding;
    private final int mSearchAndRecommendationContainerBottomMargin;
@@ -303,6 +319,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mActivityContext.getAppWidgetHost().removeProviderChangeListener(this);
        mAdapters.get(AdapterHolder.PRIMARY).mWidgetsRecyclerView
                .removeOnAttachStateChangeListener(mBindScrollbarInSearchMode);
        if (mHasWorkProfile) {
            mAdapters.get(AdapterHolder.WORK).mWidgetsRecyclerView
                    .removeOnAttachStateChangeListener(mBindScrollbarInSearchMode);
        }
    }

    @Override
@@ -752,6 +774,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet
            mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this);
            mWidgetsRecyclerView.setEdgeEffectFactory(
                    ((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.setMaxHorizontalSpansPerRow(mMaxSpansPerRow);
        }