WIP: Add moveToCustomContentScreen method

To allow as to move to the -1 screen from GEL. Also added a
showWorkspace method to handle intents when we are in All Apps.

Related GEL CL at ag/357408

Change-Id: I0a4d03df2bf035d342b74f6c3c9b3fe9105f1c59
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index c282890..408f61a 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1631,10 +1631,7 @@
                     // If we are already on home, then just animate back to the workspace,
                     // otherwise, just wait until onResume to set the state back to Workspace
                     if (alreadyOnHome) {
-                        showWorkspace(true);
-                        if (mWorkspace.isInOverviewMode()) {
-                            mWorkspace.exitOverviewMode();
-                        }
+                        showWorkspace();
                     } else {
                         mOnResumeState = State.WORKSPACE;
                     }
@@ -1668,6 +1665,13 @@
         }
     }
 
+    protected void showWorkspace() {
+        showWorkspace(true);
+        if (mWorkspace.isInOverviewMode()) {
+            mWorkspace.exitOverviewMode();
+        }
+    }
+
     @Override
     public void onRestoreInstanceState(Bundle state) {
         super.onRestoreInstanceState(state);
@@ -1941,6 +1945,9 @@
         }
     }
 
+    protected void moveToCustomContentScreen(boolean animate) {
+        mWorkspace.moveToCustomContentScreen(animate);
+    }
     /**
      * Process a shortcut drop.
      *
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index ee4bf66..672a387 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1333,7 +1333,7 @@
     }
 
     private void updateStateForCustomContent(int screenCenter) {
-        if (hasCustomContent() && !isSmall() && !isSwitchingState()) {
+        if (hasCustomContent()) {
             int index = mScreenOrder.indexOf(CUSTOM_CONTENT_SCREEN_ID);
             int scrollDelta = getScrollForPage(index + 1) - getScrollX();
             float translationX = Math.max(scrollDelta, 0);
@@ -4127,20 +4127,39 @@
         }
     }
 
-    void moveToDefaultScreen(boolean animate) {
+    private void moveToScreen(int page, boolean animate) {
         if (!isSmall()) {
             if (animate) {
-                snapToPage(mDefaultPage);
+                snapToPage(page);
             } else {
-                setCurrentPage(mDefaultPage);
+                setCurrentPage(page);
             }
         }
-        View child = getChildAt(mDefaultPage);
+        View child = getChildAt(page);
         if (child != null) {
             child.requestFocus();
         }
     }
 
+    void moveToDefaultScreen(boolean animate) {
+        moveToScreen(mDefaultPage, animate);
+    }
+
+    void moveToCustomContentScreen(boolean animate) {
+        if (hasCustomContent()) {
+            int ccIndex = getPageIndexForScreenId(CUSTOM_CONTENT_SCREEN_ID);
+            if (animate) {
+                snapToPage(ccIndex);
+            } else {
+                setCurrentPage(ccIndex);
+            }
+            View child = getChildAt(ccIndex);
+            if (child != null) {
+                child.requestFocus();
+            }
+         }
+    }
+
     @Override
     protected int getPageIndicatorMarker(int pageIndex) {
         if (getScreenIdForPageIndex(pageIndex) == CUSTOM_CONTENT_SCREEN_ID) {