Decrease icon size by steps for folders

Resize the icon so that it fits within the cell. This will stop the icon from being cut off if it is larger than the cell.

Fix: 288075868
Test: DeviceProfileAlternativeDisplaysDumpTest
Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: I67c703d89bb7f54a457793490b8251584363dedc
This commit is contained in:
Jordan Silva
2023-06-26 12:51:01 +01:00
parent e2e1b79b06
commit 12fae110b7
+29 -2
View File
@@ -1258,6 +1258,32 @@ public class DeviceProfile {
mResponsiveHeightSpec.getGutterPx());
folderContentPaddingLeftRight = mResponsiveFolderWidthSpec.getStartPaddingPx();
// Reduce icon width if it's wider than the expected folder cell width
if (folderCellWidthPx < folderChildIconSizePx) {
folderChildIconSizePx = mIconSizeSteps.getIconSmallerThan(folderCellWidthPx);
}
// Recalculating padding and cell height
folderChildDrawablePaddingPx = getNormalizedFolderChildDrawablePaddingPx(textHeight);
int folderCellContentHeight = folderChildIconSizePx + folderChildDrawablePaddingPx
+ textHeight;
// Reduce the icon in height when it's taller than the expected cell height
while (folderChildIconSizePx > mIconSizeSteps.minimumIconSize()
&& folderCellContentHeight > folderCellHeightPx) {
folderChildDrawablePaddingPx -= folderCellContentHeight - folderCellHeightPx;
if (folderChildDrawablePaddingPx < 0) {
// get a smaller icon size
folderChildIconSizePx = mIconSizeSteps.getNextLowerIconSize(
folderChildIconSizePx);
folderChildDrawablePaddingPx =
getNormalizedFolderChildDrawablePaddingPx(textHeight);
}
// calculate new cellContentHeight
folderCellContentHeight = folderChildIconSizePx + folderChildDrawablePaddingPx
+ textHeight;
}
} else if (mIsScalableGrid) {
if (inv.folderStyle == INVALID_RESOURCE_HANDLE) {
folderCellWidthPx = roundPxValueFromFloat(getCellSize().x * scale);
@@ -1275,6 +1301,8 @@ public class DeviceProfile {
folderFooterHeightPx = roundPxValueFromFloat(folderFooterHeightPx * scale);
folderContentPaddingLeftRight = folderCellLayoutBorderSpacePx.x;
folderChildDrawablePaddingPx = getNormalizedFolderChildDrawablePaddingPx(textHeight);
} else {
int cellPaddingX = (int) (res.getDimensionPixelSize(R.dimen.folder_cell_x_padding)
* scale);
@@ -1291,9 +1319,8 @@ public class DeviceProfile {
res.getDimensionPixelSize(R.dimen.folder_footer_height_default)
* scale);
folderChildDrawablePaddingPx = getNormalizedFolderChildDrawablePaddingPx(textHeight);
}
folderChildDrawablePaddingPx = getNormalizedFolderChildDrawablePaddingPx(textHeight);
}
public void updateInsets(Rect insets) {