ListViewScrollHandlingDelegate implements ScrollHandlingDelegate,
        AbsListView.OnScrollListener { @Override public void startListening() { if (mListView != null) { mListView.setOnScrollListener(this); final ListAdapter adapter = mListView.getAdapter(); if (mListView.getLastVisiblePosition() < adapter.getCount()) { mRequireScrollMixin.notifyScrollabilityChange(true); } } else { Log.w(TAG, "Cannot require scroll. List view is null"); } } ListViewScrollHandlingDelegate(
            @NonNull RequireScrollMixin requireScrollMixin,
            @Nullable ListView listView); @Override void startListening(); @Override void pageScrollDown(); @Override void onScrollStateChanged(AbsListView view, int scrollState); @Override void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
            int totalItemCount);  }
@Test public void testRequireScroll() throws Throwable { mDelegate.startListening(); verify(mRequireScrollMixin).notifyScrollabilityChange(true); }