diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index cfe4cb720de74..ba89ef3e6cbd0 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -3654,7 +3654,8 @@ public abstract class AbsListView extends AdapterView implements Te vt.computeCurrentVelocity(1000, mMaximumVelocity); final float yvel = -vt.getYVelocity(activeId); - if (scroller.isScrollingInDirection(0, yvel)) { + if (Math.abs(yvel) >= mMinimumVelocity + && scroller.isScrollingInDirection(0, yvel)) { // Keep the fling alive a little longer postDelayed(this, FLYWHEEL_TIMEOUT); } else { diff --git a/core/java/android/widget/OverScroller.java b/core/java/android/widget/OverScroller.java index 542a1ef2acdaa..e5719981e6489 100644 --- a/core/java/android/widget/OverScroller.java +++ b/core/java/android/widget/OverScroller.java @@ -532,7 +532,7 @@ public class OverScroller { final int dx = mScrollerX.mFinal - mScrollerX.mStart; final int dy = mScrollerY.mFinal - mScrollerY.mStart; return !isFinished() && Math.signum(xvel) == Math.signum(dx) && - Math.signum(yvel) == Math.signum(dy); + Math.signum(yvel) == Math.signum(dy); } static class SplineOverScroller { diff --git a/libs/ui/Input.cpp b/libs/ui/Input.cpp index a5ba57dba78f4..3de75bae94045 100644 --- a/libs/ui/Input.cpp +++ b/libs/ui/Input.cpp @@ -1020,6 +1020,8 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const return true; } } + *outVx = 0; + *outVy = 0; return false; }