diff options
| author | 2011-07-14 22:31:17 -0700 | |
|---|---|---|
| committer | 2011-07-14 22:31:17 -0700 | |
| commit | c14aea262141849d83c81c1765f6c96969ac806c (patch) | |
| tree | ab0c7ce606f74903ef8e5018e0fce9157d2b8f7c | |
| parent | 119abb21cfb93966a4ce9a6ccfd760b04330bd0a (diff) | |
| parent | 2585e9bd6ded294e426607717ccc85a56bade594 (diff) | |
Merge "Frameworks: fixes possible invalid pointer index call."
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 1449b18b0bf8..3ca663503f78 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2888,7 +2888,11 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } case MotionEvent.ACTION_MOVE: { - final int pointerIndex = ev.findPointerIndex(mActivePointerId); + int pointerIndex = ev.findPointerIndex(mActivePointerId); + if (pointerIndex == -1) { + pointerIndex = 0; + mActivePointerId = ev.getPointerId(pointerIndex); + } final int y = (int) ev.getY(pointerIndex); deltaY = y - mMotionY; switch (mTouchMode) { @@ -3464,7 +3468,11 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te case MotionEvent.ACTION_MOVE: { switch (mTouchMode) { case TOUCH_MODE_DOWN: - final int pointerIndex = ev.findPointerIndex(mActivePointerId); + int pointerIndex = ev.findPointerIndex(mActivePointerId); + if (pointerIndex == -1) { + pointerIndex = 0; + mActivePointerId = ev.getPointerId(pointerIndex); + } final int y = (int) ev.getY(pointerIndex); if (startScrollIfNeeded(y - mMotionY)) { return true; |