From 142b054e0675248507de7aaa590fc4464d63bae4 Mon Sep 17 00:00:00 2001 From: Andras Kloczl Date: Wed, 9 Mar 2022 21:26:02 +0000 Subject: [PATCH] Tune widget picker bottom sheet VisD for large screen Test: Open widget picker by long pressing the home screen. Open app specific widget picker by long pressing an app icon that has widgets. Try both landscape and portrait, also on phone/tablet/foldable. Bug: 214215594 Change-Id: I7b4b3a8d7421f1d4df84d49a18b465693a17bd7b --- res/values-sw720dp-land/dimens.xml | 7 +++++-- res/values-sw720dp/dimens.xml | 7 ++++++- res/values/dimens.xml | 2 +- src/com/android/launcher3/DeviceProfile.java | 8 ++++++-- src/com/android/launcher3/widget/BaseWidgetSheet.java | 3 +-- .../android/launcher3/widget/picker/WidgetsFullSheet.java | 2 -- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml index a9e0fb8a34..9821526d4d 100644 --- a/res/values-sw720dp-land/dimens.xml +++ b/res/values-sw720dp-land/dimens.xml @@ -15,6 +15,9 @@ --> - - 0dp + + 49dp + + + 0dp diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml index 5c314d598e..7ebc3f886b 100644 --- a/res/values-sw720dp/dimens.xml +++ b/res/values-sw720dp/dimens.xml @@ -16,6 +16,11 @@ - 300dp 65dp + + + 30dp + + + 300dp diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 2b599bc959..338e218b9e 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -94,7 +94,6 @@ 320dp - 0dp 48dp 24dp @@ -368,6 +367,7 @@ 8dp + 0dp 32dp 4dp 16dp diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 39020bde12..622d750c83 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -175,6 +175,7 @@ public class DeviceProfile { public Point allAppsBorderSpacePx; public int allAppsShiftRange; public int allAppsTopPadding; + public int bottomSheetTopPadding; public int allAppsCellHeightPx; public int allAppsCellWidthPx; public int allAppsIconSizePx; @@ -294,8 +295,11 @@ public class DeviceProfile { desiredWorkspaceHorizontalMarginPx = getHorizontalMarginPx(inv, res); desiredWorkspaceHorizontalMarginOriginalPx = desiredWorkspaceHorizontalMarginPx; - allAppsTopPadding = res.getDimensionPixelSize(R.dimen.all_apps_top_padding) - + (isTablet ? heightPx - availableHeightPx : 0); + bottomSheetTopPadding = windowBounds.insets.top // statusbar height + + res.getDimensionPixelSize(R.dimen.bottom_sheet_extra_top_padding) + + (isTablet ? 0 : edgeMarginPx); // phones need edgeMarginPx additional padding + + allAppsTopPadding = isTablet ? bottomSheetTopPadding : 0; allAppsShiftRange = isTablet ? heightPx - allAppsTopPadding : res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index 00a0050e17..b12574f391 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -163,9 +163,8 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView widthUsed = Math.max(widthUsed, minUsedWidth); } - int heightUsed = mInsets.top + deviceProfile.edgeMarginPx; measureChildWithMargins(mContent, widthMeasureSpec, - widthUsed, heightMeasureSpec, heightUsed); + widthUsed, heightMeasureSpec, deviceProfile.bottomSheetTopPadding); setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); } diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 6e97774b82..341cb5c93e 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -96,8 +96,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet private static final String KEY_WIDGETS_EDUCATION_DIALOG_SEEN = "launcher.widgets_education_dialog_seen"; - private final Rect mInsets = new Rect(); - private final UserManagerState mUserManagerState = new UserManagerState(); private final boolean mHasWorkProfile;