PredictionRowView: handling the case where no predictions are populated.

Bug: 68713881
Change-Id: I63efd5631f5ad3cb3028c02fd83deca00096b00a
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index da4367f..a6c1e6e 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -94,6 +94,7 @@
 
     private TransformingTouchDelegate mTouchDelegate;
     private boolean mUsingTabs;
+    private boolean mHasPredictions = false;
 
     private final HashMap<ComponentKey, AppInfo> mComponentToAppMap = new HashMap<>();
 
@@ -530,6 +531,11 @@
             mFloatingHeaderHandler.getContentView().setPredictedApps(apps);
         }
         mAH[AdapterHolder.MAIN].appsList.setPredictedApps(apps);
+        boolean hasPredictions = !apps.isEmpty();
+        if (mHasPredictions != hasPredictions) {
+            mHasPredictions = hasPredictions;
+            setupHeader();
+        }
     }
 
     public AppInfo findApp(ComponentKeyMapper<AppInfo> mapper) {
@@ -553,8 +559,8 @@
             return;
         }
         mHeader.setVisibility(View.VISIBLE);
-        int contentHeight = mLauncher.getDeviceProfile().allAppsCellHeightPx;
-        if (!mUsingTabs) {
+        int contentHeight = mHasPredictions ? mLauncher.getDeviceProfile().allAppsCellHeightPx : 0;
+        if (mHasPredictions && !mUsingTabs) {
             contentHeight += getResources()
                     .getDimensionPixelSize(R.dimen.all_apps_prediction_row_divider_height);
         }
@@ -565,7 +571,7 @@
                 mComponentToAppMap, mNumPredictedAppsPerRow);
 
         int padding = contentHeight;
-        if (!mUsingTabs) {
+        if (mHasPredictions && !mUsingTabs) {
             padding += mHeader.getPaddingTop() + mHeader.getPaddingBottom();
         }
         for (int i = 0; i < mAH.length; i++) {