From af110e8603b2f372286d9155cbe8955a6a329e2d Mon Sep 17 00:00:00 2001 From: Allan Wojciechowski Date: Thu, 12 Sep 2013 10:48:23 +0100 Subject: [PATCH] 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 --- src/com/android/launcher3/Launcher.java | 15 ++++++++---- src/com/android/launcher3/Workspace.java | 29 ++++++++++++++++++++---- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index c282890ee0..408f61a473 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1631,10 +1631,7 @@ public class Launcher extends Activity // 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 @@ public class Launcher extends Activity } } + protected void showWorkspace() { + showWorkspace(true); + if (mWorkspace.isInOverviewMode()) { + mWorkspace.exitOverviewMode(); + } + } + @Override public void onRestoreInstanceState(Bundle state) { super.onRestoreInstanceState(state); @@ -1941,6 +1945,9 @@ public class Launcher extends Activity } } + 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 ee4bf664a6..672a38717d 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1333,7 +1333,7 @@ public class Workspace extends SmoothPagedView } 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 @@ public class Workspace extends SmoothPagedView } } - 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) {