summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2010-12-04 03:56:01 +0000
committerRicardo Cerqueira <cyanogenmod@cerqueira.org>2010-12-04 03:56:01 +0000
commit34f354cf66dd4e777422019ae77346b02440b59d (patch)
treedc51f88023dddc91668a50d3d1ee4d10551a7fc4
parent04d8fc705dcd80dd0a91f9f811c6aa8fe7329ba6 (diff)
downloadframeworks_base-34f354cf66dd4e777422019ae77346b02440b59d.zip
frameworks_base-34f354cf66dd4e777422019ae77346b02440b59d.tar.gz
frameworks_base-34f354cf66dd4e777422019ae77346b02440b59d.tar.bz2
Make sure overscroll isn't applied in views it shouldn't be
These checks should've been there in the first place. If overscroll can't be applied, touchMode can never be OVERSCROLL nor OVERFLING. Change-Id: I7f60ee456c0109f792883fcfdfdecce8339830c0
-rw-r--r--core/java/android/widget/AbsListView.java20
1 files changed, 11 insertions, 9 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 39d2387..f52e00b 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -1967,7 +1967,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
// Check if we have moved far enough that it looks more like a
// scroll than a tap
final int distance = Math.abs(deltaY);
- final boolean overscroll = mScrollY != 0;
+ final boolean overscroll = mScrollY != 0 && (getOverscrollMode() != OVERSCROLL_NEVER);
if (overscroll || distance > mTouchSlop) {
createScrollingCache();
mTouchMode = overscroll ? TOUCH_MODE_OVERSCROLL : TOUCH_MODE_SCROLL;
@@ -2147,15 +2147,17 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
int motionPosition = findMotionRow(y);
if (motionPosition >= 0) {
final View motionView = getChildAt(motionPosition - mFirstPosition);
- // Apply overscroll
- final int motionViewRealTop = motionView.getTop();
-
- int overscroll = -incrementalDeltaY -
+ if (getOverscrollMode() != OVERSCROLL_NEVER) {
+ // Apply overscroll
+ final int motionViewRealTop = motionView.getTop();
+
+ int overscroll = -incrementalDeltaY -
(motionViewRealTop - mMotionViewOriginalTop);
- overscrollBy(0, overscroll, 0, mScrollY, 0, 0,
- 0, getOverscrollMax(), true);
- mTouchMode = TOUCH_MODE_OVERSCROLL;
- invalidate();
+ overscrollBy(0, overscroll, 0, mScrollY, 0, 0,
+ 0, getOverscrollMax(), true);
+ mTouchMode = TOUCH_MODE_OVERSCROLL;
+ invalidate();
+ }
mMotionViewOriginalTop = motionView.getTop();
}
mMotionY = y;