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

Commit 89bbc1b4 authored by David Lin's avatar David Lin Committed by Android (Google) Code Review
Browse files

Merge "Add pixel scaling to ScreenDecorationUtils" into 24D1-dev

parents 16418410 5b56c5fb
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ package com.android.internal.policy;

import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayUtils;
import android.view.Display;
import android.view.DisplayInfo;
import android.view.RoundedCorners;

import com.android.internal.R;
@@ -57,11 +60,31 @@ public class ScreenDecorationsUtils {
            bottomRadius = defaultRadius;
        }

        // If the physical pixels are scaled, apply it here
        float scale = getPhysicalPixelDisplaySizeRatio(context);
        if (scale != 1f) {
            topRadius = topRadius * scale;
            bottomRadius = bottomRadius * scale;
        }

        // Always use the smallest radius to make sure the rounded corners will
        // completely cover the display.
        return Math.min(topRadius, bottomRadius);
    }

    static float getPhysicalPixelDisplaySizeRatio(Context context) {
        DisplayInfo displayInfo = new DisplayInfo();
        context.getDisplay().getDisplayInfo(displayInfo);
        final Display.Mode maxDisplayMode =
                DisplayUtils.getMaximumResolutionDisplayMode(displayInfo.supportedModes);
        if (maxDisplayMode == null) {
            return 1f;
        }
        return DisplayUtils.getPhysicalPixelDisplaySizeRatio(
                maxDisplayMode.getPhysicalWidth(), maxDisplayMode.getPhysicalHeight(),
                displayInfo.getNaturalWidth(), displayInfo.getNaturalHeight());
    }

    /**
     * If live rounded corners are supported on windows.
     */