Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab3c681d authored by Jon Miranda's avatar Jon Miranda
Browse files

Ensure iconScale never exceeds 1.

The rest of the scaled values should scale accordingly.

Bug: 190777089
Test: manual
Change-Id: I97f1724b7e96eea3ad81c295a98ccb71da756abb
parent bf60673b
Loading
Loading
Loading
Loading
+18 −10
Original line number Original line Diff line number Diff line
@@ -120,6 +120,7 @@ public class DeviceProfile {
    public int iconDrawablePaddingPx;
    public int iconDrawablePaddingPx;
    public int iconDrawablePaddingOriginalPx;
    public int iconDrawablePaddingOriginalPx;


    public float cellScaleToFit;
    public int cellWidthPx;
    public int cellWidthPx;
    public int cellHeightPx;
    public int cellHeightPx;
    public int workspaceCellPaddingXPx;
    public int workspaceCellPaddingXPx;
@@ -354,20 +355,20 @@ public class DeviceProfile {
        // Now that we have all of the variables calculated, we can tune certain sizes.
        // Now that we have all of the variables calculated, we can tune certain sizes.
        if (isScalableGrid && inv.devicePaddings != null) {
        if (isScalableGrid && inv.devicePaddings != null) {
            // Paddings were created assuming no scaling, so we first unscale the extra space.
            // Paddings were created assuming no scaling, so we first unscale the extra space.
            int unscaledExtraSpace = (int) (extraSpace / iconScale);
            int unscaledExtraSpace = (int) (extraSpace / cellScaleToFit);
            DevicePadding padding = inv.devicePaddings.getDevicePadding(unscaledExtraSpace);
            DevicePadding padding = inv.devicePaddings.getDevicePadding(unscaledExtraSpace);


            int paddingWorkspaceTop = padding.getWorkspaceTopPadding(unscaledExtraSpace);
            int paddingWorkspaceTop = padding.getWorkspaceTopPadding(unscaledExtraSpace);
            int paddingWorkspaceBottom = padding.getWorkspaceBottomPadding(unscaledExtraSpace);
            int paddingWorkspaceBottom = padding.getWorkspaceBottomPadding(unscaledExtraSpace);
            int paddingHotseatBottom = padding.getHotseatBottomPadding(unscaledExtraSpace);
            int paddingHotseatBottom = padding.getHotseatBottomPadding(unscaledExtraSpace);


            workspaceTopPadding = Math.round(paddingWorkspaceTop * iconScale);
            workspaceTopPadding = Math.round(paddingWorkspaceTop * cellScaleToFit);
            workspaceBottomPadding = Math.round(paddingWorkspaceBottom * iconScale);
            workspaceBottomPadding = Math.round(paddingWorkspaceBottom * cellScaleToFit);
            extraHotseatBottomPadding = Math.round(paddingHotseatBottom * iconScale);
            extraHotseatBottomPadding = Math.round(paddingHotseatBottom * cellScaleToFit);


            hotseatBarSizePx += extraHotseatBottomPadding;
            hotseatBarSizePx += extraHotseatBottomPadding;


            qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * iconScale);
            qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * cellScaleToFit);
        } else if (!isVerticalBarLayout() && isPhone && isTallDevice) {
        } else if (!isVerticalBarLayout() && isPhone && isTallDevice) {
            // We increase the hotseat size when there is extra space.
            // We increase the hotseat size when there is extra space.
            // ie. For a display with a large aspect ratio, we can keep the icons on the workspace
            // ie. For a display with a large aspect ratio, we can keep the icons on the workspace
@@ -535,15 +536,18 @@ public class DeviceProfile {
     * hotseat sizes, workspaceSpringLoadedShrinkFactor, folderIconSizePx, and folderIconOffsetYPx.
     * hotseat sizes, workspaceSpringLoadedShrinkFactor, folderIconSizePx, and folderIconOffsetYPx.
     */
     */
    public void updateIconSize(float scale, Resources res) {
    public void updateIconSize(float scale, Resources res) {
        iconScale = scale;
        // Icon scale should never exceed 1, otherwise pixellation may occur.
        iconScale = Math.min(1f, scale);
        cellScaleToFit = scale;



        // Workspace
        // Workspace
        final boolean isVerticalLayout = isVerticalBarLayout();
        final boolean isVerticalLayout = isVerticalBarLayout();
        float invIconSizeDp = isLandscape ? inv.landscapeIconSize : inv.iconSize;
        float invIconSizeDp = isLandscape ? inv.landscapeIconSize : inv.iconSize;
        iconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, scale));
        iconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, iconScale));
        float invIconTextSizeSp = isLandscape ? inv.landscapeIconTextSize : inv.iconTextSize;
        float invIconTextSizeSp = isLandscape ? inv.landscapeIconTextSize : inv.iconTextSize;
        iconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * scale);
        iconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * iconScale);
        iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * scale);
        iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * iconScale);


        setCellLayoutBorderSpacing((int) (cellLayoutBorderSpacingOriginalPx * scale));
        setCellLayoutBorderSpacing((int) (cellLayoutBorderSpacingOriginalPx * scale));


@@ -887,6 +891,9 @@ public class DeviceProfile {
        writer.println(prefix + "\tinv.minCellWidth:" + inv.minCellWidth + "dp");
        writer.println(prefix + "\tinv.minCellWidth:" + inv.minCellWidth + "dp");
        writer.println(prefix + "\tinv.minCellHeight:" + inv.minCellHeight + "dp");
        writer.println(prefix + "\tinv.minCellHeight:" + inv.minCellHeight + "dp");


        writer.println(prefix + "\tinv.numColumns:" + inv.numColumns);
        writer.println(prefix + "\tinv.numRows:" + inv.numRows);

        writer.println(prefix + pxToDpStr("cellWidthPx", cellWidthPx));
        writer.println(prefix + pxToDpStr("cellWidthPx", cellWidthPx));
        writer.println(prefix + pxToDpStr("cellHeightPx", cellHeightPx));
        writer.println(prefix + pxToDpStr("cellHeightPx", cellHeightPx));


@@ -940,7 +947,8 @@ public class DeviceProfile {
        writer.println(prefix + pxToDpStr("workspacePadding.right", workspacePadding.right));
        writer.println(prefix + pxToDpStr("workspacePadding.right", workspacePadding.right));
        writer.println(prefix + pxToDpStr("workspacePadding.bottom", workspacePadding.bottom));
        writer.println(prefix + pxToDpStr("workspacePadding.bottom", workspacePadding.bottom));


        writer.println(prefix + pxToDpStr("scaleToFit", iconScale));
        writer.println(prefix + pxToDpStr("iconScale", iconScale));
        writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit));
        writer.println(prefix + pxToDpStr("extraSpace", extraSpace));
        writer.println(prefix + pxToDpStr("extraSpace", extraSpace));


        if (inv.devicePaddings != null) {
        if (inv.devicePaddings != null) {