Move QtDisplayManager dpi calculations to functions

In order to use the same functionality from outside the class and avoid
reimplementation, moving the dpi minimum value check to functions.

Change-Id: I242b18fafab1b6283a46bda8b59e87adf50e5c0b
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
(cherry picked from commit 7bbd39c4c9f345ae48781a212a6544e72757fd3e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Petri Virkkunen 2024-02-08 15:26:46 +02:00 committed by Qt Cherry-pick Bot
parent 030496750e
commit f52e7c99e9

View File

@ -284,20 +284,23 @@ class QtDisplayManager {
final DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics(); final DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics();
double xdpi = displayMetrics.xdpi;
double ydpi = displayMetrics.ydpi;
/* Fix buggy dpi report */
if (xdpi < android.util.DisplayMetrics.DENSITY_LOW)
xdpi = android.util.DisplayMetrics.DENSITY_LOW;
if (ydpi < android.util.DisplayMetrics.DENSITY_LOW)
ydpi = android.util.DisplayMetrics.DENSITY_LOW;
double density = displayMetrics.density; double density = displayMetrics.density;
double scaledDensity = displayMetrics.scaledDensity; double scaledDensity = displayMetrics.scaledDensity;
setDisplayMetrics(maxWidth, maxHeight, insetLeft, insetTop, setDisplayMetrics(maxWidth, maxHeight, insetLeft, insetTop,
width, height, xdpi, ydpi, width, height, getXDpi(displayMetrics), getYDpi(displayMetrics),
scaledDensity, density, getRefreshRate(display)); scaledDensity, density, getRefreshRate(display));
} }
public static float getXDpi(final DisplayMetrics metrics) {
if (metrics.xdpi < android.util.DisplayMetrics.DENSITY_LOW)
return android.util.DisplayMetrics.DENSITY_LOW;
return metrics.xdpi;
}
public static float getYDpi(final DisplayMetrics metrics) {
if (metrics.ydpi < android.util.DisplayMetrics.DENSITY_LOW)
return android.util.DisplayMetrics.DENSITY_LOW;
return metrics.ydpi;
}
} }