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

Commit 02e5d63f authored by Hyunyoung Song's avatar Hyunyoung Song
Browse files

Fix fast scroller issues / remove fast thumb access / fix wrong popup location

(1) Remove jumping to arbitrary fast scroller position
because back gesture can trigger arbitrary fast scrolling
(2) Pop up would show up in random location when user combines
touching the track and scrolling. This was because thumb
location was not updating when user was scrolling on the main
container.

Bug: 193177670
Bug: 191562400

Test: manual
Change-Id: I129aaa37ca911666453a8c98e24eaac33827238f
parent a5e98ad9
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -278,12 +278,7 @@ public class RecyclerViewFastScroller extends View {
                mIgnoreDragGesture |= absDeltaY > mConfig.getScaledPagingTouchSlop();

                if (!mIsDragging && !mIgnoreDragGesture && mRv.supportsFastScrolling()) {
                    // condition #1: triggering thumb is distance, angle based
                    if ((isNearThumb(mDownX, mLastY)
                            && absDeltaY > mConfig.getScaledPagingTouchSlop()
                            && absDeltaY > absDeltaX)
                            // condition#2: Fastscroll function is now time based
                            || (isNearScrollBar(mDownX) && ev.getEventTime() - mDownTimeStampMillis
                    if ((isNearThumb(mDownX, mLastY) && ev.getEventTime() - mDownTimeStampMillis
                                    > FASTSCROLL_THRESHOLD_MILLIS)) {
                        calcTouchOffsetAndPrepToFastScroll(mDownY, mLastY);
                    }
@@ -433,9 +428,6 @@ public class RecyclerViewFastScroller extends View {
    }

    private void updatePopupY(int lastTouchY) {
        if (!mPopupVisible) {
            return;
        }
        int height = mPopupView.getHeight();
        // Aligns the rounded corner of the pop up with the top of the thumb.
        float top = mRv.getScrollBarTop() + lastTouchY + (getScrollThumbRadius() / 2f)