Preserving the last state when going to overview.
> Resetting the state to NORMAL on every onStop so that the user
never starts on the overview screen
Change-Id: If3c17693b7125a3969809e60891a2ab978fe83bc
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index b01b86c..5da4944 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -788,6 +788,7 @@
mStateManager.getState().containerType);
}
NotificationListener.removeNotificationsChangedListener();
+ getStateManager().moveToRestState();
}
@Override
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index 6eafc89..4aed520 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -85,6 +85,8 @@
private LauncherState mLastStableState = NORMAL;
private LauncherState mCurrentStableState = NORMAL;
+ private LauncherState mRestState;
+
private StateListener mStateListener;
public LauncherStateManager(Launcher l) {
@@ -289,12 +291,32 @@
mLauncher.getWorkspace().setClipChildren(!state.disablePageClipping);
mLauncher.getUserEventDispatcher().resetElapsedContainerMillis();
mLauncher.finishAutoCancelActionMode();
+
+ if (state == NORMAL) {
+ setRestState(null);
+ }
}
public LauncherState getLastState() {
return mLastStableState;
}
+ public void moveToRestState() {
+ if (mState.disableRestore) {
+ goToState(getRestState());
+ // Reset history
+ mLastStableState = NORMAL;
+ }
+ }
+
+ public LauncherState getRestState() {
+ return mRestState == null ? NORMAL : mRestState;
+ }
+
+ public void setRestState(LauncherState restState) {
+ mRestState = restState;
+ }
+
/**
* Cancels the current animation.
*/