Use availableHeightPx to calculate the max height for recommended widgets

heightPx doesn't take device orientation and system taskbar into account.

Bug: 185508758
Test: Open widgets tray, observe recommended widgets. Rotate the screen
      and observe recommended widgets.
Change-Id: I96f1817f96ba643e54e1d2599225254489091d03
diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
index 70127c5..15957ec 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java
@@ -467,8 +467,8 @@
                 Log.d(TAG, "Header view height is 0 when inflating recommended widgets");
             }
             float maxTableHeight =
-                    (mLauncher.getDeviceProfile().heightPx - mTabsHeight - getHeaderViewHeight())
-                            * RECOMMENDATION_TABLE_HEIGHT_RATIO;
+                    (mLauncher.getDeviceProfile().availableHeightPx - mTabsHeight
+                            - getHeaderViewHeight()) * RECOMMENDATION_TABLE_HEIGHT_RATIO;
             List<ArrayList<WidgetItem>> recommendedWidgetsInTable =
                     WidgetsTableUtils.groupWidgetItemsIntoTable(recommendedWidgets,
                             mMaxSpansPerRow);
diff --git a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java
index 1bfffc2..824b580 100644
--- a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java
+++ b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java
@@ -42,7 +42,6 @@
     private static final String TAG = "WidgetsRecommendationTableLayout";
     private static final float DOWN_SCALE_RATIO = 0.9f;
     private static final float MAX_DOWN_SCALE_RATIO = 0.5f;
-    private final DeviceProfile mDeviceProfile;
     private final float mWidgetCellTextViewsHeight;
 
     private float mRecommendationTableMaxHeight = Float.MAX_VALUE;
@@ -56,7 +55,6 @@
 
     public WidgetsRecommendationTableLayout(Context context, AttributeSet attrs) {
         super(context, attrs);
-        mDeviceProfile = Launcher.getLauncher(context).getDeviceProfile();
         // There are 1 row for title, 1 row for dimension and 2 rows for description.
         mWidgetCellTextViewsHeight = 4 * getResources().getDimension(R.dimen.widget_cell_font_size);
     }
@@ -143,11 +141,12 @@
         }
         // A naive estimation of the widgets recommendation table height without inflation.
         float totalHeight = 0;
+        DeviceProfile deviceProfile = Launcher.getLauncher(getContext()).getDeviceProfile();
         for (int i = 0; i < recommendedWidgetsInTable.size(); i++) {
             List<WidgetItem> widgetItems = recommendedWidgetsInTable.get(i);
             float rowHeight = 0;
             for (int j = 0; j < widgetItems.size(); j++) {
-                float previewHeight = widgetItems.get(j).spanY * mDeviceProfile.allAppsCellHeightPx
+                float previewHeight = widgetItems.get(j).spanY * deviceProfile.allAppsCellHeightPx
                         * previewScale;
                 rowHeight = Math.max(rowHeight, previewHeight + mWidgetCellTextViewsHeight);
             }