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

Commit 1f29b4cd authored by Adam Powell's avatar Adam Powell Committed by Android Git Automerger
Browse files

am 21990922: Merge "Fix AbsListView scrolling behavior at edges." into froyo

Merge commit '21990922' into froyo-plus-aosp

* commit '21990922':
  Fix AbsListView scrolling behavior at edges.
parents 750edffb 21990922
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -2059,12 +2059,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                    deltaY -= mMotionCorrection;
                    int incrementalDeltaY = mLastY != Integer.MIN_VALUE ? y - mLastY : deltaY;
                    
                    int motionViewPrevTop = 0;
                    View motionView = this.getChildAt(mMotionPosition - mFirstPosition);
                    if (motionView != null) {
                        motionViewPrevTop = motionView.getTop();
                    }
                    
                    // No need to do all this work if we're not going to move anyway
                    boolean atEdge = false;
                    if (incrementalDeltaY != 0) {
@@ -2072,14 +2066,19 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                    }

                    // Check to see if we have bumped into the scroll limit
                    motionView = this.getChildAt(mMotionPosition - mFirstPosition);
                    if (motionView != null) {
                        // Check if the top of the motion view is where it is
                        // supposed to be
                        final int motionViewRealTop = motionView.getTop();
                        if (atEdge) {
                            invalidate();
                    if (atEdge && getChildCount() > 0) {
                        // Treat this like we're starting a new scroll from the current
                        // position. This will let the user start scrolling back into
                        // content immediately rather than needing to scroll back to the
                        // point where they hit the limit first.
                        int motionPosition = findMotionRow(y);
                        if (motionPosition >= 0) {
                            final View motionView = getChildAt(motionPosition - mFirstPosition);
                            mMotionViewOriginalTop = motionView.getTop();
                        }
                        mMotionY = y;
                        mMotionPosition = motionPosition;
                        invalidate();
                    }
                    mLastY = y;
                }