Adding more checks to prevent unsync'd dragging states in customization drawer.
Change-Id: I7e4ed80d9bd5ce1e899827eafd0f44a88cce4346
diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java
index 3f72292..5fa7be7 100644
--- a/src/com/android/launcher2/PagedViewWithDraggableItems.java
+++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java
@@ -35,6 +35,7 @@
implements View.OnLongClickListener, View.OnTouchListener {
private View mLastTouchedItem;
private boolean mIsDragging;
+ private boolean mIsDragEnabled;
private float mDragSlopeThreshold;
public PagedViewWithDraggableItems(Context context) {
@@ -58,6 +59,7 @@
protected void cancelDragging() {
mIsDragging = false;
mLastTouchedItem = null;
+ mIsDragEnabled = false;
}
private void handleTouchEvent(MotionEvent ev) {
@@ -65,9 +67,10 @@
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
cancelDragging();
+ mIsDragEnabled = true;
break;
case MotionEvent.ACTION_MOVE:
- if (mTouchState != TOUCH_STATE_SCROLLING && !mIsDragging) {
+ if (mTouchState != TOUCH_STATE_SCROLLING && !mIsDragging && mIsDragEnabled) {
determineDraggingStart(ev);
}
break;
@@ -89,6 +92,7 @@
@Override
public boolean onTouch(View v, MotionEvent event) {
mLastTouchedItem = v;
+ mIsDragEnabled = true;
return false;
}
@@ -153,7 +157,7 @@
@Override
protected void onDetachedFromWindow() {
- mLastTouchedItem = null;
+ cancelDragging();
super.onDetachedFromWindow();
}
}