@Override
    public void onScroll(final AbsListView view, final int firstVisibleItem, final int visibleItemCount, final int totalItemCount) {
        mLastScroll = System.currentTimeMillis();
        mLastFirstVisibleItem = firstVisibleItem;
        if (mScrollState == SCROLL_STATE_FLING && !listView.isFastScrollEnabled()) {
            if (mFlingStartPos < 0) {
                mFlingStartPos = firstVisibleItem;
            } else if (Math.abs(firstVisibleItem - mFlingStartPos) >= MIN_COVERED_ENTRIES) {
                // must have moved at least xx entries up or down in fling mode, before fastscroll gets enabled
                listView.setFastScrollEnabled(true);
                listView.setFastScrollAlwaysVisible(true);
                listView.postDelayed(this::checkScrollState, AUTO_DISABLE_ON_IDLE);
            }
        }
    }
Tame default fast scroll behavior a bit:
- only activate fast scroll when in FLING mode, not in standard scroll mode;
- and only acticate after having covered a certain minimum amount of entries (3) in FLING mode
- automatically disable after a certain amount of time (1s) without scrolling
main/src/main/java/cgeo/geocaching/ui/FastScrollListener.java