From f3e48a00a0a04ba5df8567bd1163efb0f5129753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 22 Jul 2024 19:24:29 +0800 Subject: [PATCH] Display (Android): fix MiUI 560 is density dpi, not physical dpi --- src/detection/displayserver/displayserver_android.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/detection/displayserver/displayserver_android.c b/src/detection/displayserver/displayserver_android.c index a81f763b2..a51d850f4 100644 --- a/src/detection/displayserver/displayserver_android.c +++ b/src/detection/displayserver/displayserver_android.c @@ -82,25 +82,25 @@ static bool detectWithGetprop(FFDisplayServerResult* ds) if (ffSettingsGetAndroidProperty("persist.sys.miui_resolution", &buffer) && ffStrbufContainC(&buffer, ',')) { - // 1440,3200,560 => width,height,ppi + // 1440,3200,560 => width,height,densityDpi uint32_t width = (uint32_t) ffStrbufToUInt(&buffer, 0); ffStrbufSubstrAfterFirstC(&buffer, ','); uint32_t height = (uint32_t) ffStrbufToUInt(&buffer, 0); ffStrbufSubstrAfterFirstC(&buffer, ','); - uint32_t ppi = (uint32_t) ffStrbufToUInt(&buffer, 0); + double scaleFactor = (double) ffStrbufToUInt(&buffer, 0) / 160.; return ffdsAppendDisplay(ds, width, height, 0, - 0, - 0, + (uint32_t) (width / scaleFactor + .5), + (uint32_t) (height / scaleFactor + .5), 0, 0, FF_DISPLAY_TYPE_BUILTIN, false, 0, - (uint32_t) (width / ppi * 25.4), - (uint32_t) (height / ppi * 25.4) + 0, + 0 ); }