Fixing up click / long click to enter / exit overview mode

Change-Id: I1ec7ab7f3e5c67add9ae64901e0ea377e265ed84
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index ca1074b..d70a3a9 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -2175,9 +2175,9 @@
             return;
         }
 
-        if (v instanceof PageIndicator) {
-            if (!mWorkspace.isInOverviewMode()) {
-                mWorkspace.enterOverviewMode();
+        if (v instanceof Workspace) {
+            if (mWorkspace.isInOverviewMode()) {
+                mWorkspace.exitOverviewMode(true);
             }
             return;
         }
@@ -2589,6 +2589,15 @@
         if (isWorkspaceLocked()) return false;
         if (mState != State.WORKSPACE) return false;
 
+        if (v instanceof Workspace) {
+            if (!mWorkspace.isInOverviewMode()) {
+                mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
+                        HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+                mWorkspace.enterOverviewMode();
+            }
+            return true;
+        }
+
         if (!(v instanceof CellLayout)) {
             v = (View) v.getParent().getParent();
         }
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 0b0c4b9..30c3ea7 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -341,7 +341,6 @@
             }
 
             mPageIndicator.addMarkers(markers, mAllowPagedViewAnimations);
-            mPageIndicator.setOnClickListener((Launcher) getContext());
         }
     }
 
@@ -585,6 +584,7 @@
         for (int i = 0; i < count; i++) {
             getPageAt(i).setOnLongClickListener(l);
         }
+        super.setOnLongClickListener(l);
     }
 
     @Override
@@ -1591,6 +1591,8 @@
             return false;
         }
 
+        super.onTouchEvent(ev);
+
         // Skip touch handling if there are no pages to swipe
         if (getChildCount() <= 0) return super.onTouchEvent(ev);
 
@@ -1886,7 +1888,9 @@
         mActivePointerId = INVALID_POINTER;
     }
 
-    protected void onUnhandledTap(MotionEvent ev) {}
+    protected void onUnhandledTap(MotionEvent ev) {
+        ((Launcher) getContext()).onClick(this);
+    }
 
     @Override
     public boolean onGenericMotionEvent(MotionEvent event) {