From b4a9bb1f6a40e6d504c1f48f0d9ea2b70ab1a9f0 Mon Sep 17 00:00:00 2001 From: Bartlomiej Moskal Date: Tue, 2 Aug 2022 12:11:56 +0200 Subject: Android: Handle light/dark mode changes Update Theme's style according to current UiMode. New style.json file for dark mode was added (stored in separate subdirectory 'darkUiMode/'). Theme_DeviceDefault_DayNight[0] is used for extraction for API 29 or higher. Style is updated each time when UiMode is changed. [0]https://developer.android.com/reference/android/R.style#Theme_DeviceDefault_DayNight Task-number: QTBUG-83185 Pick-to: 6.4 6.2 Change-Id: Id26059231f41761d822d494ac6c641bf3cba3322 Reviewed-by: Assam Boudjelthia --- .../java/src/org/qtproject/qt/android/bindings/QtActivity.java | 10 ++++++++-- .../java/src/org/qtproject/qt/android/bindings/QtLoader.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/android/java/src') diff --git a/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java index 9cef8146fd..94d3c2dee1 100644 --- a/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java +++ b/src/android/java/src/org/qtproject/qt/android/bindings/QtActivity.java @@ -65,8 +65,14 @@ public class QtActivity extends Activity public QtActivity() { m_loader = new QtActivityLoader(this); - QT_ANDROID_THEMES = new String[] {"Theme_Holo_Light"}; - QT_ANDROID_DEFAULT_THEME = "Theme_Holo_Light"; + + if (Build.VERSION.SDK_INT < 29) { + QT_ANDROID_THEMES = new String[] {"Theme_Holo_Light"}; + QT_ANDROID_DEFAULT_THEME = "Theme_Holo_Light"; + } else { + QT_ANDROID_THEMES = new String[] {"Theme_DeviceDefault_DayNight"}; + QT_ANDROID_DEFAULT_THEME = "Theme_DeviceDefault_DayNight"; + } } diff --git a/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java index 883c0d6478..fea193a4db 100644 --- a/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java @@ -331,7 +331,7 @@ public abstract class QtLoader { } } - if (!(new File(stylePath)).exists() && !extractOption.equals("none")) { + if (!extractOption.equals("none")) { loaderParams.putString(EXTRACT_STYLE_KEY, stylePath); loaderParams.putBoolean(EXTRACT_STYLE_MINIMAL_KEY, extractOption.equals("minimal")); } -- cgit v1.2.3