Touch up/cancel over navigation bar will send down event to drag layer

There is no events from nav bar to send to drag layer until crossing the touch
slop on move. If up occurs, sending the touch down event will clear floating
objects such as the folders.

Change-Id: I6095506f505535e04d59c403e539f37e27295470
Fixes: 111008382
Test: open folder, touch an empty space on nav bar
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 6c54262..c555bc6 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -299,17 +299,15 @@
                             mInvalidated = true;
                         }
                         break;
+                    case ACTION_CANCEL:
+                    case ACTION_UP:
+                        startTouchTracking(ev);
+                        break;
                     case ACTION_MOVE: {
                         float displacement = ev.getY() - mDownPos.y;
                         if (Math.abs(displacement) >= mTouchSlop) {
-                            mTarget.getLocationOnScreen(mLocationOnScreen);
-
-                            // Send a down event only when mTouchSlop is crossed.
-                            MotionEvent down = MotionEvent.obtain(ev);
-                            down.setAction(ACTION_DOWN);
-                            sendEvent(down);
-                            down.recycle();
-                            mTrackingStarted = true;
+                            // Start tracking only when mTouchSlop is crossed.
+                            startTouchTracking(ev);
                         }
                     }
                 }
@@ -324,6 +322,18 @@
             }
         }
 
+        private void startTouchTracking(MotionEvent ev) {
+            mTarget.getLocationOnScreen(mLocationOnScreen);
+
+            // Send down touch event
+            MotionEvent down = MotionEvent.obtain(ev);
+            down.setAction(ACTION_DOWN);
+            sendEvent(down);
+            down.recycle();
+
+            mTrackingStarted = true;
+        }
+
         private void sendEvent(MotionEvent ev) {
             int flags = ev.getEdgeFlags();
             ev.setEdgeFlags(flags | EDGE_NAV_BAR);