diff --git a/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java index 0f146c1f45c..b17293c905b 100644 --- a/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt/android/ExtractStyle.java @@ -149,9 +149,9 @@ class ExtractStyle { return (config.uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES; } - public static String setup(Activity activity, String extractOption, int dpi) { + public static String setup(Context context, String extractOption, int dpi) { - String dataDir = activity.getApplicationInfo().dataDir; + String dataDir = context.getApplicationInfo().dataDir; m_stylePath = dataDir + "/qt-reserved-files/android-style/" + dpi + "/"; if (extractOption.isEmpty()) @@ -168,7 +168,7 @@ class ExtractStyle { // SDK version >= 28 when the target SDK version is set to something lower then 28, // so default to "none" and issue a warning if that is the case. if (extractOption.equals("default")) { - int targetSdk = activity.getApplicationInfo().targetSdkVersion; + int targetSdk = context.getApplicationInfo().targetSdkVersion; if (targetSdk < 28 && Build.VERSION.SDK_INT >= 28) { Log.e(QtTAG, "extract_android_style option set to \"none\" when " + "targetSdkVersion is less then 28"); @@ -181,7 +181,7 @@ class ExtractStyle { m_missingNormalStyle = !(new File(m_stylePath + "style.json").exists()); m_extractMinimal = extractOption.equals("minimal"); - ExtractStyle.runIfNeeded(activity, isUiModeDark(activity.getResources().getConfiguration())); + ExtractStyle.runIfNeeded(context, isUiModeDark(context.getResources().getConfiguration())); return m_stylePath; } diff --git a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedLoader.java index 6c3cbb3bfb4..65cfcbeef14 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedLoader.java @@ -37,6 +37,10 @@ class QtEmbeddedLoader extends QtLoader { public QtEmbeddedLoader(Context context) { super(new ContextWrapper(context)); // TODO Service context handling QTBUG-118874 + int displayDensity = m_context.getResources().getDisplayMetrics().densityDpi; + setEnvironmentVariable("QT_ANDROID_THEME_DISPLAY_DPI", String.valueOf(displayDensity)); + String stylePath = ExtractStyle.setup(m_context, "minimal", displayDensity); + setEnvironmentVariable("ANDROID_STYLE_PATH", stylePath); } @Override