Merge "Reduce icon/text simultaneously when cellHeight is not enough for largest display size" into tm-qpr-dev am: bebeefe993

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20883264

Change-Id: Icf11a0438ae9f3e9c00185507d950297b480854c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Alex Chau
2023-01-13 03:02:12 +00:00
committed by Automerger Merge Worker

View File

@@ -910,12 +910,24 @@ public class DeviceProfile {
cellHeightPx = cellContentHeight;
cellLayoutBorderSpacePx.y -= extraHeightRequired / numBorders;
} else {
// If it still doesn't fit, set borderSpace to 0 and distribute the space for
// cellHeight, and reduce iconSize.
// If it still doesn't fit, set borderSpace to 0 to recover space.
cellHeightPx = (cellHeightPx * inv.numRows
+ cellLayoutBorderSpacePx.y * numBorders) / inv.numRows;
iconSizePx = Math.min(iconSizePx, cellHeightPx - cellTextAndPaddingHeight);
cellLayoutBorderSpacePx.y = 0;
// Reduce iconDrawablePaddingPx to make cellContentHeight smaller.
int cellContentWithoutPadding = cellContentHeight - iconDrawablePaddingPx;
if (cellContentWithoutPadding <= cellHeightPx) {
iconDrawablePaddingPx = cellContentHeight - cellHeightPx;
} else {
// If it still doesn't fit, set iconDrawablePaddingPx to 0 to recover space,
// then proportional reduce iconSizePx and iconTextSizePx to fit.
iconDrawablePaddingPx = 0;
float ratio = cellHeightPx / (float) cellContentWithoutPadding;
iconSizePx = (int) (iconSizePx * ratio);
iconTextSizePx = (int) (iconTextSizePx * ratio);
}
cellTextAndPaddingHeight =
iconDrawablePaddingPx + Utilities.calculateTextHeight(iconTextSizePx);
}
cellContentHeight = iconSizePx + cellTextAndPaddingHeight;
}