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

Commit ec5beb83 authored by Jonathan Miranda's avatar Jonathan Miranda Committed by Automerger Merge Worker
Browse files

Merge "Ensure iconScale never exceeds 1." into sc-dev am: fab44042

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

Change-Id: I4adff0a4fb256e13fdbfc3056f09bb43dea01461
parents 720ae4ea fab44042
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ public class DeviceProfile {
    public int iconDrawablePaddingPx;
    public int iconDrawablePaddingOriginalPx;

    public float cellScaleToFit;
    public int cellWidthPx;
    public int cellHeightPx;
    public int workspaceCellPaddingXPx;
@@ -359,20 +360,20 @@ public class DeviceProfile {
        // Now that we have all of the variables calculated, we can tune certain sizes.
        if (isScalableGrid && inv.devicePaddings != null) {
            // 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);

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

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

            hotseatBarSizePx += extraHotseatBottomPadding;

            qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * iconScale);
            qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * cellScaleToFit);
        } else if (!isVerticalBarLayout() && isPhone && isTallDevice) {
            // 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
@@ -540,15 +541,18 @@ public class DeviceProfile {
     * hotseat sizes, workspaceSpringLoadedShrinkFactor, folderIconSizePx, and folderIconOffsetYPx.
     */
    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
        final boolean isVerticalLayout = isVerticalBarLayout();
        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;
        iconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * scale);
        iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * scale);
        iconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * iconScale);
        iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * iconScale);

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

@@ -942,6 +946,9 @@ public class DeviceProfile {
        writer.println(prefix + "\tinv.minCellWidth:" + inv.minCellWidth + "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("cellHeightPx", cellHeightPx));

@@ -995,7 +1002,8 @@ public class DeviceProfile {
        writer.println(prefix + pxToDpStr("workspacePadding.right", workspacePadding.right));
        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));

        if (inv.devicePaddings != null) {