summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/PagedViewWithDraggableItems.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2011-01-04 10:22:20 -0800
committerWinson Chung <winsonc@google.com>2011-01-04 10:22:56 -0800
commit7d1fcbc409015a46219f088c6d5edbd8ab5012f8 (patch)
treee86bd20f7247258fea021cfdb98839cf0a6185ff /src/com/android/launcher2/PagedViewWithDraggableItems.java
parent05542542c9cdca8af25c386f915af600e0768d00 (diff)
downloadandroid_packages_apps_Trebuchet-7d1fcbc409015a46219f088c6d5edbd8ab5012f8.tar.gz
android_packages_apps_Trebuchet-7d1fcbc409015a46219f088c6d5edbd8ab5012f8.tar.bz2
android_packages_apps_Trebuchet-7d1fcbc409015a46219f088c6d5edbd8ab5012f8.zip
Cancelling the current drag when customization filter type changes to prevent crashes.
Change-Id: Iaa3f2598325950769d38ad1d6e390ab06ea194d7
Diffstat (limited to 'src/com/android/launcher2/PagedViewWithDraggableItems.java')
-rw-r--r--src/com/android/launcher2/PagedViewWithDraggableItems.java37
1 files changed, 17 insertions, 20 deletions
diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java
index 283cceda3..b1f199b4e 100644
--- a/src/com/android/launcher2/PagedViewWithDraggableItems.java
+++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java
@@ -54,13 +54,16 @@ public abstract class PagedViewWithDraggableItems extends PagedView
return false;
}
- @Override
- public boolean onInterceptTouchEvent(MotionEvent ev) {
+ protected void cancelDragging() {
+ mIsDragging = false;
+ mLastTouchedItem = null;
+ }
+
+ private void handleTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
- mIsDragging = false;
- mLastTouchedItem = null;
+ cancelDragging();
break;
case MotionEvent.ACTION_MOVE:
if (mTouchState != TOUCH_STATE_SCROLLING && !mIsDragging) {
@@ -68,33 +71,27 @@ public abstract class PagedViewWithDraggableItems extends PagedView
}
break;
}
- return super.onInterceptTouchEvent(ev);
}
@Override
- public boolean onTouch(View v, MotionEvent event) {
- mLastTouchedItem = v;
- return false;
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ handleTouchEvent(ev);
+ return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
- final int action = ev.getAction();
- switch (action & MotionEvent.ACTION_MASK) {
- case MotionEvent.ACTION_DOWN:
- mIsDragging = false;
- mLastTouchedItem = null;
- break;
- case MotionEvent.ACTION_MOVE:
- if (mTouchState != TOUCH_STATE_SCROLLING && !mIsDragging) {
- determineDraggingStart(ev);
- }
- break;
- }
+ handleTouchEvent(ev);
return super.onTouchEvent(ev);
}
@Override
+ public boolean onTouch(View v, MotionEvent event) {
+ mLastTouchedItem = v;
+ return false;
+ }
+
+ @Override
public boolean onLongClick(View v) {
// Return early if this is not initiated from a touch
if (!v.isInTouchMode()) return false;