From a68164d89e3d681d646ff1b3969db285a3faf19b Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Thu, 15 Dec 2022 16:16:03 +0000 Subject: [PATCH] Set iconsSizePx of Taskbar's DeviceProfile directly - After ag/20691430, iconScale no longer scale app icons (I should rename it later, after QPR2), so we'll need to set the desired iconSize directly for Taskbar's DeviceProfile - Extracted setting iconSizePx and testSizePx out of updateIconSize, as they are no longer affected by scaling. This allows TaskbarActivityContext to set desired iconsize and then call updateIconSize Bug: 256976071 Test: Test Taskbar icon size in different density Change-Id: I741c178b59e0d8ecb4c63689e68767622329379c --- .../launcher3/taskbar/TaskbarActivityContext.java | 15 +++++++-------- src/com/android/launcher3/DeviceProfile.java | 11 +++++------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index e944480ecc..87e2ab9cfb 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -270,14 +270,13 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } private void updateIconSize(Resources resources) { - float taskbarIconSize = resources.getDimension(DisplayController.isTransientTaskbar(this) - ? mDeviceProfile.isTwoPanels - ? R.dimen.transient_taskbar_two_panels_icon_size - : R.dimen.transient_taskbar_icon_size - : R.dimen.taskbar_icon_size); - mDeviceProfile.updateIconSize(1, resources); - float iconScale = taskbarIconSize / mDeviceProfile.iconSizePx; - mDeviceProfile.updateIconSize(iconScale, resources); + mDeviceProfile.iconSizePx = resources.getDimensionPixelSize( + DisplayController.isTransientTaskbar(this) + ? mDeviceProfile.isTwoPanels + ? R.dimen.transient_taskbar_two_panels_icon_size + : R.dimen.transient_taskbar_icon_size + : R.dimen.taskbar_icon_size); + mDeviceProfile.updateIconSize(1f, resources); } /** diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index bfde8da6a9..7ccd195c19 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -817,6 +817,11 @@ public class DeviceProfile { * Returns the amount of extra (or unused) vertical space. */ private int updateAvailableDimensions(Resources res) { + float invIconSizeDp = inv.iconSize[mTypeIndex]; + float invIconTextSizeSp = inv.iconTextSize[mTypeIndex]; + iconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics)); + iconTextSizePx = pxFromSp(invIconTextSizeSp, mMetrics); + updateIconSize(1f, res); updateWorkspacePadding(); @@ -873,13 +878,7 @@ public class DeviceProfile { // Workspace final boolean isVerticalLayout = isVerticalBarLayout(); - float invIconSizeDp = inv.iconSize[mTypeIndex]; - float invIconTextSizeSp = inv.iconTextSize[mTypeIndex]; - - iconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics)); - iconTextSizePx = pxFromSp(invIconTextSizeSp, mMetrics); iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * iconScale); - cellLayoutBorderSpacePx = getCellLayoutBorderSpace(inv, scale); if (isScalableGrid) {