diff --git a/examples/DemoRunner/Builds/Android/app/src/main/AndroidManifest.xml b/examples/DemoRunner/Builds/Android/app/src/main/AndroidManifest.xml index 5fdf18b912..0329729a26 100644 --- a/examples/DemoRunner/Builds/Android/app/src/main/AndroidManifest.xml +++ b/examples/DemoRunner/Builds/Android/app/src/main/AndroidManifest.xml @@ -23,7 +23,7 @@ - diff --git a/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml b/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml index 0dc5e12a83..3523d0064e 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml +++ b/extras/AudioPerformanceTest/Builds/Android/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ - diff --git a/extras/AudioPluginHost/Builds/Android/app/src/main/AndroidManifest.xml b/extras/AudioPluginHost/Builds/Android/app/src/main/AndroidManifest.xml index 600a0f9dff..3147df9bc9 100644 --- a/extras/AudioPluginHost/Builds/Android/app/src/main/AndroidManifest.xml +++ b/extras/AudioPluginHost/Builds/Android/app/src/main/AndroidManifest.xml @@ -22,7 +22,7 @@ - diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml b/extras/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml index 498a2d9470..7516ee4947 100644 --- a/extras/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml +++ b/extras/NetworkGraphicsDemo/Builds/Android/app/src/main/AndroidManifest.xml @@ -14,7 +14,7 @@ - diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index 753f140523..2bcae85357 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -1846,7 +1846,7 @@ private: setAttributeIfNotPresent (*act, "android:name", getActivityClassString()); if (! act->hasAttribute ("android:configChanges")) - act->setAttribute ("android:configChanges", "keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout"); + act->setAttribute ("android:configChanges", "keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout|uiMode"); if (androidScreenOrientation.get() != "unspecified") { diff --git a/modules/juce_gui_basics/native/juce_Windowing_android.cpp b/modules/juce_gui_basics/native/juce_Windowing_android.cpp index da2befc2f9..29aa446cd5 100644 --- a/modules/juce_gui_basics/native/juce_Windowing_android.cpp +++ b/modules/juce_gui_basics/native/juce_Windowing_android.cpp @@ -2562,18 +2562,25 @@ public: bool isDarkModeEnabled() const noexcept { return darkModeEnabled; } - void onActivityStarted (jobject /*activity*/) override +private: + void onActivityStarted (jobject) override { - const auto isEnabled = getDarkModeSetting(); - - if (darkModeEnabled != isEnabled) - { - darkModeEnabled = isEnabled; - Desktop::getInstance().darkModeChanged(); - } + updateMode(); + } + + void onActivityConfigurationChanged (jobject) override + { + updateMode(); + } + + void updateMode() + { + const auto current = getDarkModeSetting(); + + if (std::exchange (darkModeEnabled, current) != current) + Desktop::getInstance().darkModeChanged(); } -private: static bool getDarkModeSetting() { auto* env = getEnv();