From 07ca884eea5153d12aef874a5dcccfe3e343f4b4 Mon Sep 17 00:00:00 2001 From: Brandon Dayauon Date: Wed, 27 Apr 2022 10:52:28 -0700 Subject: [PATCH] App row padding is now consistent for all grid sizes. Also fix when 2x2 allApp icons get super big. Added consistent padding to each app row. Bug: 229789736 Bug: 229791507 Bug: 228320417 Bug: 230870213 Test: Manual on Raven Change-Id: Ice1c8be361f009994a8e0960a30da04fc1c0c218 --- res/values/dimens.xml | 52 +++++++++++--------- res/xml/device_profiles.xml | 20 ++++++++ src/com/android/launcher3/DeviceProfile.java | 31 ++++++------ 3 files changed, 63 insertions(+), 40 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index e02ee8ad0f..4e90513b99 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -57,13 +57,18 @@ 1dp 0dp - + 56dp 20dp 32dp 16dp - + + + 10sp + 1sp + + 13dp 24dp 22dp @@ -76,7 +81,7 @@ 36dp 16dp - + 6dp 8dp 1dp @@ -129,19 +134,20 @@ 40dp 16dp + 8dp 2dp 2dp 10dp - + 3dp 16dp 6dp 8dp - + 56dp 16dp 10dp @@ -212,13 +218,13 @@ 0dp 0dp - + 8dp 4dp 4dp 6dp - + 14dp 16sp @@ -243,7 +249,7 @@ 2dp 4dp - + 8dp 9dp @@ -255,22 +261,22 @@ 8dp 16dp - + 24dp 5dp 2dp - + 1dp 2dp 4dp 2dp - + 8dp 2dp - + 2dp 2dp 216dp @@ -304,7 +310,7 @@ 14dp - + 8dp 8dp 8dp @@ -322,11 +328,11 @@ 56dp 18dp - + 24dp 32dp - + 48dp 32dp 8dp @@ -338,17 +344,17 @@ 14sp 504dp - + 10dp - + 8dp @dimen/default_dialog_corner_radius 24dp - + 0dp 0dp 0dp @@ -359,10 +365,10 @@ 16dp - + 1dp - + 0dp 0dp 0dp @@ -381,17 +387,17 @@ 216dp - + 28dp 6dp 6dp - + 48dp 32dp 8dp - + 0dp 32dp 4dp diff --git a/res/xml/device_profiles.xml b/res/xml/device_profiles.xml index 290bc8c4c8..08025528ce 100644 --- a/res/xml/device_profiles.xml +++ b/res/xml/device_profiles.xml @@ -34,6 +34,8 @@ launcher:minHeightDps="300" launcher:iconImageSize="48" launcher:iconTextSize="13.0" + launcher:allAppsBorderSpace="16" + launcher:allAppsCellHeight="104" launcher:canBeDefault="true" /> @@ -63,6 +67,8 @@ launcher:minHeightDps="420" launcher:iconImageSize="48" launcher:iconTextSize="13.0" + launcher:allAppsBorderSpace="16" + launcher:allAppsCellHeight="104" launcher:canBeDefault="true" /> @@ -116,6 +130,8 @@ launcher:minHeightDps="694" launcher:iconImageSize="56" launcher:iconTextSize="14.4" + launcher:allAppsBorderSpace="16" + launcher:allAppsCellHeight="104" launcher:canBeDefault="true" /> diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index f028d3c0d1..515221752a 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -255,7 +255,6 @@ public class DeviceProfile { mInsets.set(windowBounds.insets); isScalableGrid = inv.isScalable && !isVerticalBarLayout() && !isMultiWindowMode; - // Determine device posture. mInfo = info; isTablet = info.isTablet(windowBounds); @@ -265,8 +264,8 @@ public class DeviceProfile { // Some more constants. context = getContext(context, info, isVerticalBarLayout() || (isTablet && isLandscape) - ? Configuration.ORIENTATION_LANDSCAPE - : Configuration.ORIENTATION_PORTRAIT, + ? Configuration.ORIENTATION_LANDSCAPE + : Configuration.ORIENTATION_PORTRAIT, windowBounds); final Resources res = context.getResources(); mMetrics = res.getDisplayMetrics(); @@ -313,7 +312,6 @@ public class DeviceProfile { allAppsShiftRange = isTablet ? heightPx - allAppsTopPadding : res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); - folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale); folderContentPaddingLeftRight = res.getDimensionPixelSize(R.dimen.folder_content_padding_left_right); @@ -795,27 +793,26 @@ public class DeviceProfile { allAppsBorderSpacePx = new Point( pxFromDp(inv.allAppsBorderSpaces[mTypeIndex].x, mMetrics, scale), pxFromDp(inv.allAppsBorderSpaces[mTypeIndex].y, mMetrics, scale)); + // AllApps cells don't have real space between cells, + // so we add the border space to the cell height + allAppsCellHeightPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].y, mMetrics, scale) + + allAppsBorderSpacePx.y; + // but width is just the cell, + // the border is added in #updateAllAppsContainerWidth + allAppsCellWidthPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].x, mMetrics, scale); if (isScalableGrid) { allAppsIconSizePx = pxFromDp(inv.allAppsIconSize[mTypeIndex], mMetrics); allAppsIconTextSizePx = pxFromSp(inv.allAppsIconTextSize[mTypeIndex], mMetrics); allAppsIconDrawablePaddingPx = iconDrawablePaddingOriginalPx; - // AllApps cells don't have real space between cells, - // so we add the border space to the cell height - allAppsCellHeightPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].y, mMetrics, scale) - + allAppsBorderSpacePx.y; - // but width is just the cell, - // the border is added in #updateAllAppsContainerWidth - allAppsCellWidthPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].x, mMetrics, scale); } else { - float invIconSizeDp = inv.iconSize[mTypeIndex]; - float invIconTextSizeSp = inv.iconTextSize[mTypeIndex]; + float invIconSizeDp = inv.allAppsIconSize[mTypeIndex]; + float invIconTextSizeSp = inv.allAppsIconTextSize[mTypeIndex]; allAppsIconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, scale)); allAppsIconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * scale); - allAppsIconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * scale); - allAppsCellWidthPx = allAppsIconSizePx + (2 * allAppsIconDrawablePaddingPx); - allAppsCellHeightPx = getCellSize().y; + allAppsIconDrawablePaddingPx = + res.getDimensionPixelSize(R.dimen.all_apps_icon_drawable_padding); } updateAllAppsContainerWidth(res); @@ -1145,7 +1142,7 @@ public class DeviceProfile { return Math.min(qsbBottomMarginPx + taskbarSize, freeSpace); } else { return (int) (freeSpace * mQsbCenterFactor) - + (isTaskbarPresent ? taskbarSize : mInsets.bottom); + + (isTaskbarPresent ? taskbarSize : mInsets.bottom); } }