Fix some widget picker recommended widgets bugs.

- Bind recommended widgets only when not in search mode. (b/183503774)
- Bind recommended widgets in onAttachedToWindow, Recommended widgets
are available in PopupDataProvider at this point. (b/185461866)

Bug: 183503774
Bug: 185461866
Test: tested manually
Change-Id: If24e5b2b3e69a695821b5f7d9f42ff4c89ae62fc
diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
index 5be9a95..240958b 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
@@ -279,6 +279,7 @@
         super.onAttachedToWindow();
         mLauncher.getAppWidgetHost().addProviderChangeListener(this);
         notifyWidgetProvidersChanged();
+        onRecommendedWidgetsBound();
     }
 
     @Override
@@ -416,6 +417,7 @@
 
     @Override
     public void exitSearchMode() {
+        if (!mIsInSearchMode) return;
         onSearchResults(new ArrayList<>());
         setViewVisibilityBasedOnSearch(/*isInSearchMode=*/ false);
         if (mHasWorkProfile) {
@@ -464,7 +466,7 @@
                 mLauncher.getPopupDataProvider().getRecommendedWidgets();
         WidgetsRecommendationTableLayout table =
                 mSearchAndRecommendationViewHolder.mRecommendedWidgetsTable;
-        if (recommendedWidgets.size() > 0) {
+        if (!mIsInSearchMode && recommendedWidgets.size() > 0) {
             // TODO(b/185508758): Revert the following log after debugging.
             if (getHeaderViewHeight() == 0) {
                 Log.d(TAG, "Header view height is 0 when inflating recommended widgets");