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

Commit 11372fa4 authored by Vladislav Kaznacheev's avatar Vladislav Kaznacheev
Browse files

Resolve pointer icon over FastScroller to arrow.

Currently the icon defined by the host AbsListView is displayed
over the fast scroll area.

Bug: 35424111
Test: manual
Change-Id: Ia9897a44550922f16573b97337841c3f6ae263da
parent d0e10222
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.PointerIcon;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
@@ -4401,6 +4402,17 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
        return super.onInterceptHoverEvent(event);
    }

    @Override
    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
        if (mFastScroll != null) {
            PointerIcon pointerIcon = mFastScroll.onResolvePointerIcon(event, pointerIndex);
            if (pointerIcon != null) {
                return pointerIcon;
            }
        }
        return super.onResolvePointerIcon(event, pointerIndex);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        final int actionMasked = ev.getActionMasked();
+8 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.util.Property;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.PointerIcon;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewConfiguration;
@@ -1441,6 +1442,13 @@ class FastScroller {
        return false;
    }

    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
        if (mState == STATE_DRAGGING || isPointInside(event.getX(), event.getY())) {
            return PointerIcon.getSystemIcon(mList.getContext(), PointerIcon.TYPE_ARROW);
        }
        return null;
    }

    public boolean onTouchEvent(MotionEvent me) {
        if (!isEnabled()) {
            return false;