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

Commit 8a836a8b authored by Adam Powell's avatar Adam Powell
Browse files

Eliminate haptic feedback when hitting an overscroll barrier due to a fling.

Change-Id: I434ec3edd95a19677ad9dbd1ac5ca3f3f5d091cb
parent 6c261f32
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -177258,6 +177258,8 @@
</parameter>
<parameter name="maxOverscrollY" type="int">
</parameter>
<parameter name="isTouchEvent" type="boolean">
</parameter>
</method>
<method name="performClick"
 return="boolean"
@@ -385546,7 +385548,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.String">
<parameter name="message" type="java.lang.String">
</parameter>
</method>
</class>
+8 −5
Original line number Diff line number Diff line
@@ -8686,13 +8686,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
     *          along the X axis.
     * @param maxOverscrollY Number of pixels to overscroll by in either direction
     *          along the Y axis.
     * @param isTouchEvent true if this scroll operation is the result of a touch event.
     * @return true if scrolling was clamped to an overscroll boundary along either
     *          axis, false otherwise.
     */
    protected boolean overscrollBy(int deltaX, int deltaY,
            int scrollX, int scrollY,
            int scrollRangeX, int scrollRangeY,
            int maxOverscrollX, int maxOverscrollY) {
            int maxOverscrollX, int maxOverscrollY,
            boolean isTouchEvent) {
        final int overscrollMode = mOverscrollMode;
        final boolean canScrollHorizontal = 
                computeHorizontalScrollRange() > computeHorizontalScrollExtent();
@@ -8770,10 +8772,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            clampedY = true;
        }
        
        // Bump the device with some haptic feedback if we're at the edge
        // and didn't start there.
        if ((overscrollHorizontal && clampedX && scrollX != left && scrollX != right) ||
                (overscrollVertical && clampedY && scrollY != top && scrollY != bottom)) {
        // Bump the device with some haptic feedback if we're at the edge,
        // didn't start there, and the scroll is the result of a touch event.
        if (isTouchEvent &&
                ((overscrollHorizontal && clampedX && scrollX != left && scrollX != right) ||
                (overscrollVertical && clampedY && scrollY != top && scrollY != bottom))) {
            performHapticFeedback(HapticFeedbackConstants.SCROLL_BARRIER);
        }

+2 −2
Original line number Diff line number Diff line
@@ -2670,7 +2670,7 @@ public class WebView extends AbsoluteLayout
            if (oldX != x || oldY != y) {
                overscrollBy(x - oldX, y - oldY, oldX, oldY,
                        computeMaxScrollX(), computeMaxScrollY(),
                        getViewWidth() / 3, getViewHeight() / 3);
                        getViewWidth() / 3, getViewHeight() / 3, false);
                onScrollChanged(mScrollX, mScrollY, oldX, oldY);
            }
        } else {
@@ -5021,7 +5021,7 @@ public class WebView extends AbsoluteLayout
        if ((deltaX | deltaY) != 0) {
            overscrollBy(deltaX, deltaY, mScrollX, mScrollY,
                    computeMaxScrollX(), computeMaxScrollY(),
                    getViewWidth() / 3, getViewHeight() / 3);
                    getViewWidth() / 3, getViewHeight() / 3, true);
        }
        if (!getSettings().getBuiltInZoomControls()) {
            boolean showPlusMinus = mMinZoomScale < mMaxZoomScale;
+6 −4
Original line number Diff line number Diff line
@@ -2133,7 +2133,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                            int overscroll = -incrementalDeltaY - 
                                    (motionViewRealTop - motionViewPrevTop);
                            overscrollBy(0, overscroll, 0, mScrollY, 0, 0,
                                    0, getOverscrollMax());
                                    0, getOverscrollMax(), true);
                            mTouchMode = TOUCH_MODE_OVERSCROLL;
                            invalidate();
                        }
@@ -2178,7 +2178,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                        }
                    } else {
                        overscrollBy(0, -incrementalDeltaY, 0, mScrollY, 0, 0,
                                0, getOverscrollMax());
                                0, getOverscrollMax(), true);
                        invalidate();
                    }
                    mLastY = y;
@@ -2674,7 +2674,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                    if (motionView != null) {
                        // Tweak the scroll for how far we overshot
                        int overshoot = -(delta - (motionView.getTop() - oldTop));
                        overscrollBy(0, overshoot, 0, mScrollY, 0, 0, 0, getOverscrollMax());
                        overscrollBy(0, overshoot, 0, mScrollY, 0, 0,
                                0, getOverscrollMax(), false);
                    }
                    float vel = scroller.getCurrVelocity();
                    if (delta > 0) {
@@ -2706,7 +2707,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                if (scroller.computeScrollOffset()) {
                    final int scrollY = mScrollY;
                    final int deltaY = scroller.getCurrY() - scrollY;
                    if (overscrollBy(0, deltaY, 0, scrollY, 0, 0, 0, getOverscrollMax())) {
                    if (overscrollBy(0, deltaY, 0, scrollY, 0, 0,
                            0, getOverscrollMax(), false)) {
                        startSpringback();
                    } else {
                        invalidate();
+2 −2
Original line number Diff line number Diff line
@@ -508,7 +508,7 @@ public class HorizontalScrollView extends FrameLayout {
                    final int oldX = mScrollX;
                    final int oldY = mScrollY;                    
                    overscrollBy(deltaX, 0, mScrollX, 0, getScrollRange(), 0,
                            getOverscrollMax(), 0);
                            getOverscrollMax(), 0, true);
                    onScrollChanged(mScrollX, mScrollY, oldX, oldY);
                }
                break;
@@ -1042,7 +1042,7 @@ public class HorizontalScrollView extends FrameLayout {

            if (oldX != x || oldY != y) {
                overscrollBy(x - oldX, y - oldY, oldX, oldY, getScrollRange(), 0,
                        getOverscrollMax(), 0);
                        getOverscrollMax(), 0, false);
                onScrollChanged(mScrollX, mScrollY, oldX, oldY);
            }

Loading