From 5c6bdbbc27525acc8c49cea6a1de36723a13fac7 Mon Sep 17 00:00:00 2001 From: Winson Date: Thu, 3 Sep 2015 11:36:19 -0700 Subject: [PATCH] Fixing regression, reset AllApps when the screen turns off. - Now that we are debouncing the workspace state, we were no longer resetting the all apps view when the screen turns off when the user is already on the workspace. Bug: 23759455 Change-Id: I996b595945de96ae6ff2344349027d4722921984 --- src/com/android/launcher3/Launcher.java | 32 ++++++++++++++----- .../allapps/AllAppsContainerView.java | 13 ++++++-- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 2873d37332..7ad858cca4 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1614,7 +1614,10 @@ public class Launcher extends Activity // processing a multi-step drop if (mAppsView != null && mWidgetsView != null && mPendingAddInfo.container == ItemInfo.NO_ID) { - showWorkspace(false); + if (!showWorkspace(false)) { + // If we are already on the workspace, then manually reset all apps + mAppsView.reset(); + } } } else if (Intent.ACTION_USER_PRESENT.equals(action)) { mUserPresent = true; @@ -3259,20 +3262,32 @@ public class Launcher extends Activity } } - public void showWorkspace(boolean animated) { - showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null); + /** + * @return whether or not the Launcher state changed. + */ + public boolean showWorkspace(boolean animated) { + return showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null); } - public void showWorkspace(boolean animated, Runnable onCompleteRunnable) { - showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, + /** + * @return whether or not the Launcher state changed. + */ + public boolean showWorkspace(boolean animated, Runnable onCompleteRunnable) { + return showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, onCompleteRunnable); } - protected void showWorkspace(int snapToPage, boolean animated) { - showWorkspace(snapToPage, animated, null); + /** + * @return whether or not the Launcher state changed. + */ + protected boolean showWorkspace(int snapToPage, boolean animated) { + return showWorkspace(snapToPage, animated, null); } - void showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable) { + /** + * @return whether or not the Launcher state changed. + */ + boolean showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable) { boolean changed = mState != State.WORKSPACE || mWorkspace.getState() != Workspace.State.NORMAL; if (changed) { @@ -3298,6 +3313,7 @@ public class Launcher extends Activity getWindow().getDecorView() .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); } + return changed; } void showOverviewMode(boolean animated) { diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 88c6acadac..564527e28a 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -290,6 +290,15 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } } + /** + * Resets the state of AllApps. + */ + public void reset() { + // Reset the search bar and base recycler view after transitioning home + mSearchBarController.reset(); + mAppsRecyclerView.reset(); + } + @Override protected void onFinishInflate() { super.onFinishInflate(); @@ -555,9 +564,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc @Override public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) { if (toWorkspace) { - // Reset the search bar and base recycler view after transitioning home - mSearchBarController.reset(); - mAppsRecyclerView.reset(); + reset(); } }