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();
     }
 }