Use derived padding instead of static 300dp for large portrait displays
In tablet, portrait mode, a padding of 300dp was applied to make it
less elongated, but that doesn't scale well across different devices.
So, we use 1/6th of height as the additional padding. This fixes the
existing logic.
Bug: 318410881
Bug: 315055849
Flag: N/A
Test: Screenshot update in cl chain.
Change-Id: Ia9cfe481131f086b66f625069cbf9a7c0343c2c9
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index 4d0ac38..dd58cee 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -32,7 +32,4 @@
<!-- Widget picker-->
<dimen name="widget_list_horizontal_margin">49dp</dimen>
<dimen name="widget_list_horizontal_margin_two_pane">24dp</dimen>
-
-<!-- Bottom sheet-->
- <dimen name="bottom_sheet_extra_top_padding">0dp</dimen>
</resources>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index 2b0382d..3c79588 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -38,9 +38,6 @@
<!-- Widget picker-->
<dimen name="widget_list_horizontal_margin">30dp</dimen>
-<!-- Bottom sheet-->
- <dimen name="bottom_sheet_extra_top_padding">300dp</dimen>
-
<!-- Folder spaces -->
<dimen name="folder_footer_horiz_padding">24dp</dimen>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c187000..6189961 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -454,7 +454,6 @@
<dimen name="padded_rounded_button_padding">8dp</dimen>
<!-- Bottom sheet related parameters -->
- <dimen name="bottom_sheet_extra_top_padding">0dp</dimen>
<dimen name="bottom_sheet_handle_area_height">36dp</dimen>
<dimen name="bottom_sheet_handle_width">32dp</dimen>
<dimen name="bottom_sheet_handle_height">4dp</dimen>
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 563dfe2..4afa8e0 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -416,15 +416,18 @@
gridVisualizationPaddingY = res.getDimensionPixelSize(
R.dimen.grid_visualization_vertical_cell_spacing);
- // Tablet portrait mode uses a single pane widget picker and extra padding may be applied on
- // top to avoid making it look too elongated.
- final boolean applyExtraTopPadding = isTablet
- && !isLandscape
- && (aspectRatio > MIN_ASPECT_RATIO_FOR_EXTRA_TOP_PADDING);
- bottomSheetTopPadding = mInsets.top // statusbar height
- + (applyExtraTopPadding ? res.getDimensionPixelSize(
- R.dimen.bottom_sheet_extra_top_padding) : 0)
- + (isTablet ? 0 : edgeMarginPx); // phones need edgeMarginPx additional padding
+ {
+ // In large screens, in portrait mode, a bottom sheet can appear too elongated, so, we
+ // apply additional padding.
+ final boolean applyExtraTopPadding = isTablet
+ && !isLandscape
+ && (aspectRatio > MIN_ASPECT_RATIO_FOR_EXTRA_TOP_PADDING);
+ final int derivedTopPadding = heightPx / 6;
+ bottomSheetTopPadding = mInsets.top // statusbar height
+ + (applyExtraTopPadding ? derivedTopPadding : 0)
+ + (isTablet ? 0 : edgeMarginPx); // phones need edgeMarginPx additional padding
+ }
+
bottomSheetOpenDuration = res.getInteger(R.integer.config_bottomSheetOpenDuration);
bottomSheetCloseDuration = res.getInteger(R.integer.config_bottomSheetCloseDuration);
if (isTablet) {