Decrease text size if it doesn't fit the cell

Bug: 293467738
Test: ResponsiveHomeScreenImageTest
Test: ResponsiveAllAppsImageTest
Test: DeviceProfileResponsiveDumpTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: Ic0b2d3cde1d4b8b9089f93b96c9bb386247603ce
This commit is contained in:
Thales Lima
2023-09-25 16:21:17 -07:00
parent fbc8b715c3
commit 24ceca6993
5 changed files with 238 additions and 12 deletions
+13 -12
View File
@@ -63,6 +63,7 @@ import com.android.launcher3.responsive.FolderSpecs;
import com.android.launcher3.responsive.HotseatSpecs;
import com.android.launcher3.responsive.WorkspaceSpecs;
import com.android.launcher3.uioverrides.ApiWrapper;
import com.android.launcher3.util.CellContentDimensions;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController.Info;
import com.android.launcher3.util.IconSizeSteps;
@@ -1049,20 +1050,20 @@ public class DeviceProfile {
// TODO(b/296400197): isVerticalBar shouldn't show labels anymore
iconDrawablePaddingPx = getNormalizedIconDrawablePadding();
int iconTextHeight = Utilities.calculateTextHeight(iconTextSizePx);
int cellContentHeight = iconSizePx + iconDrawablePaddingPx + iconTextHeight;
while (iconSizePx > mIconSizeSteps.minimumIconSize()
&& cellContentHeight > cellHeightPx) {
iconDrawablePaddingPx -= cellContentHeight - cellHeightPx;
if (iconDrawablePaddingPx < 0) {
// get a smaller icon size
iconSizePx = mIconSizeSteps.getNextLowerIconSize(iconSizePx);
iconDrawablePaddingPx = getNormalizedIconDrawablePadding();
}
// calculate new cellContentHeight
cellContentHeight = iconSizePx + iconDrawablePaddingPx + iconTextHeight;
CellContentDimensions cellContentDimensions = new CellContentDimensions(iconSizePx,
iconDrawablePaddingPx,
iconTextSizePx);
if (isVerticalLayout && cellHeightPx < iconSizePx) {
cellContentDimensions.setIconSizePx(
mIconSizeSteps.getIconSmallerThan(cellHeightPx));
} else {
cellContentDimensions.resizeToFitCellHeight(cellHeightPx, mIconSizeSteps);
}
iconSizePx = cellContentDimensions.getIconSizePx();
iconDrawablePaddingPx = cellContentDimensions.getIconDrawablePaddingPx();
iconTextSizePx = cellContentDimensions.getIconTextSizePx();
int cellContentHeight = cellContentDimensions.getCellContentHeight();
cellYPaddingPx = Math.max(0, cellHeightPx - cellContentHeight) / 2;
} else if (mIsScalableGrid) {