From 769a14ef34e60b6fd6f7cedf0ac9f2094859a27b Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Mon, 19 Apr 2021 22:06:38 +0100 Subject: [PATCH] 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 --- .../android/launcher3/widget/picker/WidgetsFullSheet.java | 4 ++-- .../widget/picker/WidgetsRecommendationTableLayout.java | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 70127c5354..15957ec70e 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -467,8 +467,8 @@ public class WidgetsFullSheet extends BaseWidgetSheet 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> 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 1bfffc29fc..824b5806f4 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java +++ b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java @@ -42,7 +42,6 @@ public final class WidgetsRecommendationTableLayout extends TableLayout { 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 final class WidgetsRecommendationTableLayout extends TableLayout { 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 @@ public final class WidgetsRecommendationTableLayout extends TableLayout { } // 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 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); }