From f22239191dc718b86929eb5bdb8114539f568f56 Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Fri, 9 Apr 2021 14:54:35 +0100 Subject: [PATCH] Set a max down scale ratio for recommended widgets If the down scale ratio is smaller than the max down scale ratio, recommended widgets won't be shown Bug: 183500375 Test: Rotate to landscape on Pixel 3 and then launch widget picker. Recommended widgets are not shown. Rotate to portrait. Recommended widgets are shown. Change-Id: I48b76b23c5bf505c79da82c7b27ea4db85f5d717 --- .../picker/WidgetsRecommendationTableLayout.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java index 6569fb0d48..73f1f1925f 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java +++ b/src/com/android/launcher3/widget/picker/WidgetsRecommendationTableLayout.java @@ -17,6 +17,7 @@ package com.android.launcher3.widget.picker; import android.content.Context; import android.util.AttributeSet; +import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.ViewGroup; @@ -38,7 +39,9 @@ import java.util.List; /** A {@link TableLayout} for showing recommended widgets. */ public final class WidgetsRecommendationTableLayout extends TableLayout { - private static final float SCALE_DOWN_RATIO = 0.9f; + 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; @@ -131,6 +134,10 @@ public final class WidgetsRecommendationTableLayout extends TableLayout { private RecommendationTableData fitRecommendedWidgetsToTableSpace( float previewScale, List> recommendedWidgetsInTable) { + if (previewScale < MAX_DOWN_SCALE_RATIO) { + Log.w(TAG, "Hide recommended widgets. Can't down scale previews to " + previewScale); + return new RecommendationTableData(List.of(), previewScale); + } // A naive estimation of the widgets recommendation table height without inflation. float totalHeight = 0; for (int i = 0; i < recommendedWidgetsInTable.size(); i++) { @@ -157,7 +164,7 @@ public final class WidgetsRecommendationTableLayout extends TableLayout { /* toIndex= */recommendedWidgetsInTable.size() - 1)); } - float nextPreviewScale = previewScale * SCALE_DOWN_RATIO; + float nextPreviewScale = previewScale * DOWN_SCALE_RATIO; return fitRecommendedWidgetsToTableSpace(nextPreviewScale, recommendedWidgetsInTable); }