Fixing bug where search bar is not updated when search package is first installed.

- Fixing issue where we weren't disabling HW layers when you don't finish a swipe-to-dismiss
- Preventing tapping on a task that is currently being dismissed
- Adding a debug trigger for internal testing
- Minor refactoring

Change-Id: Id7dcc8a4b5a080402c2761cd555b8a882498ad29
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java
index d2f18ae..f9c5f13 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java
@@ -371,11 +371,13 @@
 
     @Override
     public void onBeginDrag(View v) {
-        // Enable HW layers
-        mSv.addHwLayersRefCount("swipeBegin");
-        // Disable clipping with the stack while we are swiping
         TaskView tv = (TaskView) v;
+        // Disable clipping with the stack while we are swiping
         tv.setClipViewInStack(false);
+        // Enable HW layers on that task
+        tv.enableHwLayers();
+        // Disallow touch events from this task view
+        mSv.setTouchOnTaskView(tv, false);
         // Disallow parents from intercepting touch events
         final ViewParent parent = mSv.getParent();
         if (parent != null) {
@@ -391,25 +393,31 @@
     @Override
     public void onChildDismissed(View v) {
         TaskView tv = (TaskView) v;
-        mSv.onTaskDismissed(tv);
-
+        // Disable HW layers on that task
+        if (mSv.mHwLayersTrigger.getCount() == 0) {
+            tv.disableHwLayers();
+        }
         // Re-enable clipping with the stack (we will reuse this view)
         tv.setClipViewInStack(true);
-
-        // Disable HW layers
-        mSv.decHwLayersRefCount("swipeComplete");
+        // Remove the task view from the stack
+        mSv.onTaskDismissed(tv);
     }
 
     @Override
     public void onSnapBackCompleted(View v) {
-        // Re-enable clipping with the stack
-        TaskView tv = (TaskView) v;
-        tv.setClipViewInStack(true);
+        onDragCancelled(v);
     }
 
     @Override
     public void onDragCancelled(View v) {
-        // Disable HW layers
-        mSv.decHwLayersRefCount("swipeCancelled");
+        TaskView tv = (TaskView) v;
+        // Disable HW layers on that task
+        if (mSv.mHwLayersTrigger.getCount() == 0) {
+            tv.disableHwLayers();
+        }
+        // Re-enable clipping with the stack
+        tv.setClipViewInStack(true);
+        // Re-enable touch events from this task view
+        mSv.setTouchOnTaskView(tv, true);
     }
 }