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) {