From a606d344a628b9a3cc158e0a72ac6dd65c7b39ab Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Thu, 22 Jul 2021 16:08:15 +0100 Subject: [PATCH] Measure WidgetsFullSheet before estimating the recommended table size Issue: The header view height was obtained before any measurement. Test: On Pixel 5 4x5 gird with Photo widget shown in recommended table, make the device in landscape. Then open the full widgets picker. The widgets picker can be scrolled. Before this fix, scrolling is not possible. Fix: 194172597 Change-Id: Ib30cf4b95d2ed23ff28f3d24e103f0e919b3a551 --- .../launcher3/widget/picker/WidgetsFullSheet.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 6c2cca6024..f2fee0a526 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.widget.picker; +import static android.view.View.MeasureSpec.makeMeasureSpec; + import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGETSTRAY_SEARCHED; import static com.android.launcher3.testing.TestProtocol.NORMAL_STATE_ORDINAL; @@ -519,7 +521,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet mNoWidgetsView.getText().length(), noWidgetsViewTextBounds); noWidgetsViewHeight = noWidgetsViewTextBounds.height(); } - float maxTableHeight = (mActivityContext.getDeviceProfile().availableHeightPx + doMeasure( + makeMeasureSpec(mActivityContext.getDeviceProfile().availableWidthPx, + MeasureSpec.EXACTLY), + makeMeasureSpec(mActivityContext.getDeviceProfile().availableHeightPx, + MeasureSpec.EXACTLY)); + float maxTableHeight = (mContent.getMeasuredHeight() - mTabsHeight - mViewPagerTopPadding - getHeaderViewHeight() - noWidgetsViewHeight) * RECOMMENDATION_TABLE_HEIGHT_RATIO;