Merge "Cleanup deferred drag when closing deep shortcuts container." into ub-launcher3-calgary
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index b00006f..3f12abf 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -997,8 +997,8 @@
             // Don't update the predicted apps if the user is returning to launcher in the apps
             // view after launching an app, as they may be depending on the UI to be static to
             // switch to another app, otherwise, if it was
-            showAppsView(false /* animated */, false /* resetListToTop */,
-                    !launchedFromApp /* updatePredictedApps */, false /* focusSearchBar */);
+            showAppsView(false /* animated */, !launchedFromApp /* updatePredictedApps */,
+                    false /* focusSearchBar */);
         } else if (mOnResumeState == State.WIDGETS) {
             showWidgetsView(false, false);
         }
@@ -2601,8 +2601,8 @@
         if (!isAppsViewVisible()) {
             getUserEventDispatcher().logActionOnControl(LauncherLogProto.Action.TAP,
                     LauncherLogProto.ALL_APPS_BUTTON);
-            showAppsView(true /* animated */, false /* resetListToTop */,
-                    true /* updatePredictedApps */, false /* focusSearchBar */);
+            showAppsView(true /* animated */, true /* updatePredictedApps */,
+                    false /* focusSearchBar */);
         }
     }
 
@@ -2611,7 +2611,7 @@
         if (!isAppsViewVisible()) {
             getUserEventDispatcher().logActionOnControl(LauncherLogProto.Action.LONGPRESS,
                     LauncherLogProto.ALL_APPS_BUTTON);
-            showAppsView(true /* animated */, false /* resetListToTop */,
+            showAppsView(true /* animated */,
                     true /* updatePredictedApps */, true /* focusSearchBar */);
         }
     }
@@ -3356,12 +3356,9 @@
     /**
      * Shows the apps view.
      */
-    public void showAppsView(boolean animated, boolean resetListToTop, boolean updatePredictedApps,
+    public void showAppsView(boolean animated, boolean updatePredictedApps,
             boolean focusSearchBar) {
         markAppsViewShown();
-        if (resetListToTop) {
-            mAppsView.scrollToTop();
-        }
         if (updatePredictedApps) {
             tryAndUpdatePredictedApps();
         }
@@ -3488,7 +3485,7 @@
 
     void exitSpringLoadedDragMode() {
         if (mState == State.APPS_SPRING_LOADED) {
-            showAppsView(true /* animated */, false /* resetListToTop */,
+            showAppsView(true /* animated */,
                     false /* updatePredictedApps */, false /* focusSearchBar */);
         } else if (mState == State.WIDGETS_SPRING_LOADED) {
             showWidgetsView(true, false);
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 4ed2467..3c057e6 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -230,6 +230,8 @@
     public static final int QSB_ALPHA_INDEX_STATE_CHANGE = 0;
     public static final int QSB_ALPHA_INDEX_Y_TRANSLATION = 1;
     public static final int QSB_ALPHA_INDEX_PAGE_SCROLL = 2;
+    public static final int QSB_ALPHA_INDEX_OVERLAY_SCROLL = 3;
+
 
     MultiStateAlphaController mQsbAlphaController;
 
@@ -482,7 +484,7 @@
     public void initParentViews(View parent) {
         super.initParentViews(parent);
         mPageIndicator.setAccessibilityDelegate(new OverviewAccessibilityDelegate());
-        mQsbAlphaController = new MultiStateAlphaController(mLauncher.getQsbContainer(), 3);
+        mQsbAlphaController = new MultiStateAlphaController(mLauncher.getQsbContainer(), 4);
     }
 
     private int getDefaultPage() {
@@ -1465,6 +1467,8 @@
         setWorkspaceTranslationAndAlpha(Direction.X, transX, alpha);
         setHotseatTranslationAndAlpha(Direction.X, transX, alpha);
         onWorkspaceOverallScrollChanged();
+
+        mQsbAlphaController.setAlphaAtIndex(alpha, QSB_ALPHA_INDEX_OVERLAY_SCROLL);
     }
 
     /**
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 428f784..d860189 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -348,9 +348,10 @@
         mAppsRecyclerView.preMeasureViews(mAdapter);
         mAdapter.setIconFocusListener(focusedItemDecorator.getFocusListener());
 
-        // TODO(hyunyoungs): clean up setting the content and the reveal view.
         if (FeatureFlags.LAUNCHER3_ALL_APPS_PULL_UP) {
             getRevealView().setVisibility(View.VISIBLE);
+            getContentView().setVisibility(View.VISIBLE);
+            getContentView().setBackground(null);
         }
     }
 
diff --git a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java
index 7746245..b965d74 100644
--- a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java
+++ b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java
@@ -140,10 +140,11 @@
      * Resets the search bar state.
      */
     public void reset() {
-        mQuery = null;
         unfocusSearchField();
         mCb.clearSearchResult();
         mInput.setText("");
+        // We need to reset this after we clear the input text
+        mQuery = null;
         hideKeyboard();
     }
 
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index df209b5..0e9cac8 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -12,7 +12,6 @@
 import android.view.View;
 import android.view.animation.AccelerateInterpolator;
 import android.view.animation.AnimationUtils;
-import android.view.animation.DecelerateInterpolator;
 import android.view.animation.Interpolator;
 
 import com.android.launcher3.DeviceProfile;
@@ -225,7 +224,9 @@
                             LauncherLogProto.Action.UP,
                             LauncherLogProto.HOTSEAT);
                 }
-                mLauncher.showAppsView(true, true, false, false);
+                mLauncher.showAppsView(true /* animated */,
+                        false /* updatePredictedApps */,
+                        false /* focusSearchBar */);
             } else {
                 calculateDuration(velocity, Math.abs(mShiftRange - mAppsView.getTranslationY()));
                 mLauncher.showWorkspace(true);
@@ -243,7 +244,9 @@
                             LauncherLogProto.Action.UP,
                             LauncherLogProto.HOTSEAT);
                 }
-                mLauncher.showAppsView(true, true, false, false);
+                mLauncher.showAppsView(true, /* animated */
+                        false /* updatePredictedApps */,
+                        false /* focusSearchBar */);
             }
         }
     }
@@ -260,15 +263,11 @@
             // Initialize values that should not change until #onDragEnd
             mStatusBarHeight = mLauncher.getDragLayer().getInsets().top;
             mHotseat.setVisibility(View.VISIBLE);
-            mHotseat.bringToFront();
             if (!mLauncher.isAllAppsVisible()) {
                 mLauncher.tryAndUpdatePredictedApps();
                 mHotseatBackgroundColor = mHotseat.getBackgroundDrawableColor();
                 mHotseat.setBackgroundTransparent(true /* transparent */);
                 mAppsView.setVisibility(View.VISIBLE);
-                mAppsView.getContentView().setVisibility(View.VISIBLE);
-                mAppsView.getContentView().setBackground(null);
-                mAppsView.getRevealView().setVisibility(View.VISIBLE);
                 mAppsView.setRevealDrawableColor(mHotseatBackgroundColor);
             }
         }
@@ -525,6 +524,7 @@
         mCaretAnimator.setDuration(mCaretAnimationDuration);
         mCaretAnimator.setInterpolator(mCaretInterpolator);
         mHotseat.addOnLayoutChangeListener(this);
+        mHotseat.bringToFront();
     }
 
     @Override