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

Commit 59c4cb9e authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review...

Merge "DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll" into gingerbread
parents 5a5fff71 737e8fe2
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -6895,7 +6895,7 @@
 visibility="public"
>
</field>
<field name="overscrollFooter"
<field name="overScrollFooter"
 type="int"
 transient="false"
 volatile="false"
@@ -6906,7 +6906,7 @@
 visibility="public"
>
</field>
<field name="overscrollHeader"
<field name="overScrollHeader"
 type="int"
 transient="false"
 volatile="false"
@@ -6917,7 +6917,7 @@
 visibility="public"
>
</field>
<field name="overscrollMode"
<field name="overScrollMode"
 type="int"
 transient="false"
 volatile="false"
@@ -186040,7 +186040,7 @@
 visibility="public"
>
</method>
<method name="getOverscrollMode"
<method name="getOverScrollMode"
 return="int"
 abstract="false"
 native="false"
@@ -187204,7 +187204,7 @@
<parameter name="heightMeasureSpec" type="int">
</parameter>
</method>
<method name="onOverscrolled"
<method name="onOverScrolled"
 return="void"
 abstract="false"
 native="false"
@@ -187376,7 +187376,7 @@
<parameter name="visibility" type="int">
</parameter>
</method>
<method name="overscrollBy"
<method name="overScrollBy"
 return="boolean"
 abstract="false"
 native="false"
@@ -187398,9 +187398,9 @@
</parameter>
<parameter name="scrollRangeY" type="int">
</parameter>
<parameter name="maxOverscrollX" type="int">
<parameter name="maxOverScrollX" type="int">
</parameter>
<parameter name="maxOverscrollY" type="int">
<parameter name="maxOverScrollY" type="int">
</parameter>
<parameter name="isTouchEvent" type="boolean">
</parameter>
@@ -188244,7 +188244,7 @@
<parameter name="l" type="android.view.View.OnTouchListener">
</parameter>
</method>
<method name="setOverscrollMode"
<method name="setOverScrollMode"
 return="void"
 abstract="false"
 native="false"
@@ -188254,7 +188254,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="overscrollMode" type="int">
<parameter name="overScrollMode" type="int">
</parameter>
</method>
<method name="setPadding"
@@ -188879,7 +188879,7 @@
 visibility="public"
>
</field>
<field name="OVERSCROLL_ALWAYS"
<field name="OVER_SCROLL_ALWAYS"
 type="int"
 transient="false"
 volatile="false"
@@ -188890,7 +188890,7 @@
 visibility="public"
>
</field>
<field name="OVERSCROLL_IF_CONTENT_SCROLLS"
<field name="OVER_SCROLL_IF_CONTENT_SCROLLS"
 type="int"
 transient="false"
 volatile="false"
@@ -188901,7 +188901,7 @@
 visibility="public"
>
</field>
<field name="OVERSCROLL_NEVER"
<field name="OVER_SCROLL_NEVER"
 type="int"
 transient="false"
 volatile="false"
@@ -216094,7 +216094,7 @@
 visibility="public"
>
</method>
<method name="isOverscrolled"
<method name="isOverScrolled"
 return="boolean"
 abstract="false"
 native="false"
@@ -216139,7 +216139,7 @@
<parameter name="overY" type="int">
</parameter>
</method>
<method name="springback"
<method name="springBack"
 return="boolean"
 abstract="false"
 native="false"
+67 −67
Original line number Diff line number Diff line
@@ -1551,38 +1551,38 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
    private static final int AWAKEN_SCROLL_BARS_ON_ATTACH = 0x08000000;

    /**
     * Always allow a user to overscroll this view, provided it is a
     * Always allow a user to over-scroll this view, provided it is a
     * view that can scroll.
     *
     * @see #getOverscrollMode()
     * @see #setOverscrollMode(int)
     * @see #getOverScrollMode()
     * @see #setOverScrollMode(int)
     */
    public static final int OVERSCROLL_ALWAYS = 0;
    public static final int OVER_SCROLL_ALWAYS = 0;

    /**
     * Allow a user to overscroll this view only if the content is large
     * Allow a user to over-scroll this view only if the content is large
     * enough to meaningfully scroll, provided it is a view that can scroll.
     *
     * @see #getOverscrollMode()
     * @see #setOverscrollMode(int)
     * @see #getOverScrollMode()
     * @see #setOverScrollMode(int)
     */
    public static final int OVERSCROLL_IF_CONTENT_SCROLLS = 1;
    public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1;

    /**
     * Never allow a user to overscroll this view.
     * Never allow a user to over-scroll this view.
     *
     * @see #getOverscrollMode()
     * @see #setOverscrollMode(int)
     * @see #getOverScrollMode()
     * @see #setOverScrollMode(int)
     */
    public static final int OVERSCROLL_NEVER = 2;
    public static final int OVER_SCROLL_NEVER = 2;

    /**
     * Controls the overscroll mode for this view.
     * See {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)},
     * {@link #OVERSCROLL_ALWAYS}, {@link #OVERSCROLL_IF_CONTENT_SCROLLS},
     * and {@link #OVERSCROLL_NEVER}.
     * Controls the over-scroll mode for this view.
     * See {@link #overScrollBy(int, int, int, int, int, int, int, int, boolean)},
     * {@link #OVER_SCROLL_ALWAYS}, {@link #OVER_SCROLL_IF_CONTENT_SCROLLS},
     * and {@link #OVER_SCROLL_NEVER}.
     */
    private int mOverscrollMode;
    private int mOverScrollMode;

    /**
     * The parent this view is attached to.
@@ -1876,7 +1876,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
        // Used for debug only
        //++sInstanceCount;
        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        setOverscrollMode(OVERSCROLL_ALWAYS);
        setOverScrollMode(OVER_SCROLL_IF_CONTENT_SCROLLS);
    }

    /**
@@ -1942,7 +1942,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility

        int scrollbarStyle = SCROLLBARS_INSIDE_OVERLAY;

        int overscrollMode = mOverscrollMode;
        int overScrollMode = mOverScrollMode;
        final int N = a.getIndexCount();
        for (int i = 0; i < N; i++) {
            int attr = a.getIndex(i);
@@ -2148,13 +2148,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                        });
                    }
                    break;
                case R.styleable.View_overscrollMode:
                    overscrollMode = a.getInt(attr, OVERSCROLL_ALWAYS);
                case R.styleable.View_overScrollMode:
                    overScrollMode = a.getInt(attr, OVER_SCROLL_IF_CONTENT_SCROLLS);
                    break;
            }
        }

        setOverscrollMode(overscrollMode);
        setOverScrollMode(overScrollMode);

        if (background != null) {
            setBackgroundDrawable(background);
@@ -8810,8 +8810,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
    /**
     * Scroll the view with standard behavior for scrolling beyond the normal
     * content boundaries. Views that call this method should override
     * {@link #onOverscrolled(int, int, boolean, boolean)} to respond to the
     * results of an overscroll operation.
     * {@link #onOverScrolled(int, int, boolean, boolean)} to respond to the
     * results of an over-scroll operation.
     *
     * Views can use this method to handle any touch or fling-based scrolling.
     *
@@ -8821,44 +8821,44 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
     * @param scrollY Current Y scroll value in pixels before applying deltaY
     * @param scrollRangeX Maximum content scroll range along the X axis
     * @param scrollRangeY Maximum content scroll range along the Y axis
     * @param maxOverscrollX Number of pixels to overscroll by in either direction
     * @param maxOverScrollX Number of pixels to overscroll by in either direction
     *          along the X axis.
     * @param maxOverscrollY Number of pixels to overscroll by in either direction
     * @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
     * @return true if scrolling was clamped to an over-scroll boundary along either
     *          axis, false otherwise.
     */
    protected boolean overscrollBy(int deltaX, int deltaY,
    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 int overScrollMode = mOverScrollMode;
        final boolean canScrollHorizontal =
                computeHorizontalScrollRange() > computeHorizontalScrollExtent();
        final boolean canScrollVertical =
                computeVerticalScrollRange() > computeVerticalScrollExtent();
        final boolean overscrollHorizontal = overscrollMode == OVERSCROLL_ALWAYS ||
                (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollHorizontal);
        final boolean overscrollVertical = overscrollMode == OVERSCROLL_ALWAYS ||
                (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && canScrollVertical);
        final boolean overScrollHorizontal = overScrollMode == OVER_SCROLL_ALWAYS ||
                (overScrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS && canScrollHorizontal);
        final boolean overScrollVertical = overScrollMode == OVER_SCROLL_ALWAYS ||
                (overScrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS && canScrollVertical);

        int newScrollX = scrollX + deltaX;
        if (!overscrollHorizontal) {
            maxOverscrollX = 0;
        if (!overScrollHorizontal) {
            maxOverScrollX = 0;
        }

        int newScrollY = scrollY + deltaY;
        if (!overscrollVertical) {
            maxOverscrollY = 0;
        if (!overScrollVertical) {
            maxOverScrollY = 0;
        }

        // Clamp values if at the limits and record
        final int left = -maxOverscrollX;
        final int right = maxOverscrollX + scrollRangeX;
        final int top = -maxOverscrollY;
        final int bottom = maxOverscrollY + scrollRangeY;
        final int left = -maxOverScrollX;
        final int right = maxOverScrollX + scrollRangeX;
        final int top = -maxOverScrollY;
        final int bottom = maxOverScrollY + scrollRangeY;

        boolean clampedX = false;
        if (newScrollX > right) {
@@ -8878,55 +8878,55 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            clampedY = true;
        }

        onOverscrolled(newScrollX, newScrollY, clampedX, clampedY);
        onOverScrolled(newScrollX, newScrollY, clampedX, clampedY);

        return clampedX || clampedY;
    }

    /**
     * Called by {@link #overscrollBy(int, int, int, int, int, int, int, int, boolean)} to
     * respond to the results of an overscroll operation.
     * Called by {@link #overScrollBy(int, int, int, int, int, int, int, int, boolean)} to
     * respond to the results of an over-scroll operation.
     *
     * @param scrollX New X scroll value in pixels
     * @param scrollY New Y scroll value in pixels
     * @param clampedX True if scrollX was clamped to an overscroll boundary
     * @param clampedY True if scrollY was clamped to an overscroll boundary
     * @param clampedX True if scrollX was clamped to an over-scroll boundary
     * @param clampedY True if scrollY was clamped to an over-scroll boundary
     */
    protected void onOverscrolled(int scrollX, int scrollY,
    protected void onOverScrolled(int scrollX, int scrollY,
            boolean clampedX, boolean clampedY) {
        // Intentionally empty.
    }

    /**
     * Returns the overscroll mode for this view. The result will be
     * one of {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS}
     * (allow overscrolling only if the view content is larger than the container),
     * or {@link #OVERSCROLL_NEVER}.
     * Returns the over-scroll mode for this view. The result will be
     * one of {@link #OVER_SCROLL_ALWAYS} (default), {@link #OVER_SCROLL_IF_CONTENT_SCROLLS}
     * (allow over-scrolling only if the view content is larger than the container),
     * or {@link #OVER_SCROLL_NEVER}.
     *
     * @return This view's overscroll mode.
     * @return This view's over-scroll mode.
     */
    public int getOverscrollMode() {
        return mOverscrollMode;
    public int getOverScrollMode() {
        return mOverScrollMode;
    }

    /**
     * Set the overscroll mode for this view. Valid overscroll modes are
     * {@link #OVERSCROLL_ALWAYS} (default), {@link #OVERSCROLL_IF_CONTENT_SCROLLS}
     * (allow overscrolling only if the view content is larger than the container),
     * or {@link #OVERSCROLL_NEVER}.
     * Set the over-scroll mode for this view. Valid over-scroll modes are
     * {@link #OVER_SCROLL_ALWAYS} (default), {@link #OVER_SCROLL_IF_CONTENT_SCROLLS}
     * (allow over-scrolling only if the view content is larger than the container),
     * or {@link #OVER_SCROLL_NEVER}.
     *
     * Setting the overscroll mode of a view will have an effect only if the
     * Setting the over-scroll mode of a view will have an effect only if the
     * view is capable of scrolling.
     *
     * @param overscrollMode The new overscroll mode for this view.
     * @param overScrollMode The new over-scroll mode for this view.
     */
    public void setOverscrollMode(int overscrollMode) {
        if (overscrollMode != OVERSCROLL_ALWAYS &&
                overscrollMode != OVERSCROLL_IF_CONTENT_SCROLLS &&
                overscrollMode != OVERSCROLL_NEVER) {
            throw new IllegalArgumentException("Invalid overscroll mode " + overscrollMode);
    public void setOverScrollMode(int overScrollMode) {
        if (overScrollMode != OVER_SCROLL_ALWAYS &&
                overScrollMode != OVER_SCROLL_IF_CONTENT_SCROLLS &&
                overScrollMode != OVER_SCROLL_NEVER) {
            throw new IllegalArgumentException("Invalid overscroll mode " + overScrollMode);
        }
        mOverscrollMode = overscrollMode;
        mOverScrollMode = overScrollMode;
    }

    /**
+12 −12
Original line number Diff line number Diff line
@@ -1043,9 +1043,9 @@ public class WebView extends AbsoluteLayout
    }

    @Override
    public void setOverscrollMode(int mode) {
        super.setOverscrollMode(mode);
        if (mode != OVERSCROLL_NEVER) {
    public void setOverScrollMode(int mode) {
        super.setOverScrollMode(mode);
        if (mode != OVER_SCROLL_NEVER) {
            if (mEdgeGlowTop == null) {
                final Resources res = getContext().getResources();
                final Drawable edge = res.getDrawable(R.drawable.overscroll_edge);
@@ -2565,7 +2565,7 @@ public class WebView extends AbsoluteLayout
    }

    @Override
    protected void onOverscrolled(int scrollX, int scrollY, boolean clampedX,
    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
            boolean clampedY) {
        mInOverScrollMode = false;
        int maxX = computeMaxScrollX();
@@ -2942,12 +2942,12 @@ public class WebView extends AbsoluteLayout
            if (oldX != x || oldY != y) {
                final int rangeX = computeMaxScrollX();
                final int rangeY = computeMaxScrollY();
                overscrollBy(x - oldX, y - oldY, oldX, oldY,
                overScrollBy(x - oldX, y - oldY, oldX, oldY,
                        rangeX, rangeY,
                        mOverflingDistance, mOverflingDistance, false);

                if (mEdgeGlowTop != null) {
                    if (rangeY > 0 || getOverscrollMode() == OVERSCROLL_ALWAYS) {
                    if (rangeY > 0 || getOverScrollMode() == OVER_SCROLL_ALWAYS) {
                        if (y < 0 && oldY >= 0) {
                            mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity());
                            if (!mEdgeGlowBottom.isFinished()) {
@@ -5457,7 +5457,7 @@ public class WebView extends AbsoluteLayout
                            doFling();
                            break;
                        } else {
                            if (mScroller.springback(mScrollX, mScrollY, 0,
                            if (mScroller.springBack(mScrollX, mScrollY, 0,
                                    computeMaxScrollX(), 0,
                                    computeMaxScrollY())) {
                                invalidate();
@@ -5481,7 +5481,7 @@ public class WebView extends AbsoluteLayout
            }
            case MotionEvent.ACTION_CANCEL: {
                if (mTouchMode == TOUCH_DRAG_MODE) {
                    mScroller.springback(mScrollX, mScrollY, 0,
                    mScroller.springBack(mScrollX, mScrollY, 0,
                            computeMaxScrollX(), 0, computeMaxScrollY());
                    invalidate();
                }
@@ -5550,7 +5550,7 @@ public class WebView extends AbsoluteLayout
            final int oldY = mScrollY;
            final int rangeX = computeMaxScrollX();
            final int rangeY = computeMaxScrollY();
            overscrollBy(deltaX, deltaY, oldX, oldY,
            overScrollBy(deltaX, deltaY, oldX, oldY,
                    rangeX, rangeY,
                    mOverscrollDistance, mOverscrollDistance, true);

@@ -5571,7 +5571,7 @@ public class WebView extends AbsoluteLayout
                    }
                }

                if (rangeY > 0 || getOverscrollMode() == OVERSCROLL_ALWAYS) {
                if (rangeY > 0 || getOverScrollMode() == OVER_SCROLL_ALWAYS) {
                    final int pulledToY = oldY + deltaY;
                    if (pulledToY < 0) {
                        mEdgeGlowTop.onPull((float) deltaY / getHeight());
@@ -5990,7 +5990,7 @@ public class WebView extends AbsoluteLayout
        if ((maxX == 0 && vy == 0) || (maxY == 0 && vx == 0)) {
            WebViewCore.resumePriority();
            WebViewCore.resumeUpdatePicture(mWebViewCore);
            if (mScroller.springback(mScrollX, mScrollY, 0, computeMaxScrollX(),
            if (mScroller.springBack(mScrollX, mScrollY, 0, computeMaxScrollX(),
                    0, computeMaxScrollY())) {
                invalidate();
            }
@@ -7096,7 +7096,7 @@ public class WebView extends AbsoluteLayout
                            case MotionEvent.ACTION_CANCEL:
                                if (mDeferTouchMode == TOUCH_DRAG_MODE) {
                                    // no fling in defer process
                                    mScroller.springback(mScrollX, mScrollY, 0,
                                    mScroller.springBack(mScrollX, mScrollY, 0,
                                            computeMaxScrollX(), 0,
                                            computeMaxScrollY());
                                    invalidate();
+18 −18
Original line number Diff line number Diff line
@@ -647,8 +647,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
    }

    @Override
    public void setOverscrollMode(int mode) {
        if (mode != OVERSCROLL_NEVER) {
    public void setOverScrollMode(int mode) {
        if (mode != OVER_SCROLL_NEVER) {
            if (mEdgeGlowTop == null) {
                final Resources res = getContext().getResources();
                final Drawable edge = res.getDrawable(R.drawable.overscroll_edge);
@@ -660,7 +660,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            mEdgeGlowTop = null;
            mEdgeGlowBottom = null;
        }
        super.setOverscrollMode(mode);
        super.setOverScrollMode(mode);
    }

    /**
@@ -2232,16 +2232,16 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

                            int overscroll = -incrementalDeltaY -
                                    (motionViewRealTop - motionViewPrevTop);
                            overscrollBy(0, overscroll, 0, mScrollY, 0, 0,
                            overScrollBy(0, overscroll, 0, mScrollY, 0, 0,
                                    0, mOverscrollDistance, true);
                            if (Math.abs(mOverscrollDistance) == Math.abs(mScrollY)) {
                                // Don't allow overfling if we're at the edge.
                                mVelocityTracker.clear();
                            }

                            final int overscrollMode = getOverscrollMode();
                            if (overscrollMode == OVERSCROLL_ALWAYS ||
                                    (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS &&
                            final int overscrollMode = getOverScrollMode();
                            if (overscrollMode == OVER_SCROLL_ALWAYS ||
                                    (overscrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS &&
                                            !contentFits())) {
                                mDirection = 0; // Reset when entering overscroll.
                                mTouchMode = TOUCH_MODE_OVERSCROLL;
@@ -2299,11 +2299,11 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                            mMotionPosition = motionPosition;
                        }
                    } else {
                        overscrollBy(0, -incrementalDeltaY, 0, mScrollY, 0, 0,
                        overScrollBy(0, -incrementalDeltaY, 0, mScrollY, 0, 0,
                                0, mOverscrollDistance, true);
                        final int overscrollMode = getOverscrollMode();
                        if (overscrollMode == OVERSCROLL_ALWAYS ||
                                (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS &&
                        final int overscrollMode = getOverScrollMode();
                        if (overscrollMode == OVER_SCROLL_ALWAYS ||
                                (overscrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS &&
                                        !contentFits())) {
                            if (rawDeltaY > 0) {
                                mEdgeGlowTop.onPull((float) -incrementalDeltaY / getHeight());
@@ -2542,7 +2542,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
    }

    @Override
    protected void onOverscrolled(int scrollX, int scrollY,
    protected void onOverScrolled(int scrollX, int scrollY,
            boolean clampedX, boolean clampedY) {
        mScrollY = scrollY;

@@ -2767,7 +2767,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
        }

        void startSpringback() {
            if (mScroller.springback(0, mScrollY, 0, 0, 0, 0)) {
            if (mScroller.springBack(0, mScrollY, 0, 0, 0, 0)) {
                mTouchMode = TOUCH_MODE_OVERFLING;
                invalidate();
                post(this);
@@ -2787,9 +2787,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

        void edgeReached(int delta) {
            mScroller.notifyVerticalEdgeReached(mScrollY, 0, mOverflingDistance);
            final int overscrollMode = getOverscrollMode();
            if (overscrollMode == OVERSCROLL_ALWAYS ||
                    (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && !contentFits())) {
            final int overscrollMode = getOverScrollMode();
            if (overscrollMode == OVER_SCROLL_ALWAYS ||
                    (overscrollMode == OVER_SCROLL_IF_CONTENT_SCROLLS && !contentFits())) {
                mTouchMode = TOUCH_MODE_OVERFLING;
                final int vel = (int) mScroller.getCurrVelocity();
                if (delta > 0) {
@@ -2875,7 +2875,7 @@ 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,
                        overScrollBy(0, overshoot, 0, mScrollY, 0, 0,
                                0, mOverflingDistance, false);
                    }
                    edgeReached(delta);
@@ -2904,7 +2904,7 @@ 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,
                    if (overScrollBy(0, deltaY, 0, scrollY, 0, 0,
                            0, mOverflingDistance, false)) {
                        startSpringback();
                    } else {
+16 −16

File changed.

Preview size limit exceeded, changes collapsed.

Loading