Exit overview mode after setting wallpaper

Also, create method to exit overview mode without
an animation
Bug: 10332065
Change-Id: Iaade5ccb07aefa7d19be5f07db821a69762cb1bb
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 408f61a..0a92f35 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -660,9 +660,6 @@
                 completeAddAppWidget(appWidgetId, args.container, args.screenId, null, null);
                 result = true;
                 break;
-            case REQUEST_PICK_WALLPAPER:
-                // We just wanted the activity result here so we can clear mWaitingForResult
-                break;
         }
         // Before adding this resetAddInfo(), after a shortcut was added to a workspace screen,
         // if you turned the screen off and then back while in All Apps, Launcher would not
@@ -686,7 +683,13 @@
                 addAppWidgetImpl(appWidgetId, mPendingAddInfo, null, mPendingAddWidgetInfo);
             }
             return;
+        } else if (requestCode == REQUEST_PICK_WALLPAPER) {
+            if (resultCode == RESULT_OK && mWorkspace.isInOverviewMode()) {
+                mWorkspace.exitOverviewMode(false);
+            }
+            return;
         }
+
         boolean delayExitSpringLoadedMode = false;
         boolean isWidgetDrop = (requestCode == REQUEST_PICK_APPWIDGET ||
                 requestCode == REQUEST_CREATE_APPWIDGET);
@@ -1631,7 +1634,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();
+                        showWorkspaceAndExitOverviewMode();
                     } else {
                         mOnResumeState = State.WORKSPACE;
                     }
@@ -1665,10 +1668,10 @@
         }
     }
 
-    protected void showWorkspace() {
+    protected void showWorkspaceAndExitOverviewMode() {
         showWorkspace(true);
         if (mWorkspace.isInOverviewMode()) {
-            mWorkspace.exitOverviewMode();
+            mWorkspace.exitOverviewMode(true);
         }
     }
 
@@ -2128,7 +2131,7 @@
         if (isAllAppsVisible()) {
             showWorkspace(true);
         } else if (mWorkspace.isInOverviewMode()) {
-            mWorkspace.exitOverviewMode();
+            mWorkspace.exitOverviewMode(true);
         } else if (mWorkspace.getOpenFolder() != null) {
             Folder openFolder = mWorkspace.getOpenFolder();
             if (openFolder.isEditingName()) {
@@ -2178,7 +2181,7 @@
 
         if (v instanceof CellLayout) {
             if (mWorkspace.isInOverviewMode()) {
-                mWorkspace.exitOverviewMode(mWorkspace.indexOfChild(v));
+                mWorkspace.exitOverviewMode(mWorkspace.indexOfChild(v), true);
             }
         }