mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Android: Avoid restarting activities on system-wide theme change
This commit is contained in:
parent
f72bad64d2
commit
33a735dfd8
6 changed files with 21 additions and 14 deletions
|
|
@ -23,7 +23,7 @@
|
|||
<uses-feature android:glEsVersion="0x00030000" android:required="true"/>
|
||||
<application android:label="@string/app_name" android:name="com.rmsl.juce.JuceApp" android:icon="@drawable/icon" android:hardwareAccelerated="false">
|
||||
<receiver android:name="com.rmsl.juce.Receiver" android:exported="false"/>
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout"
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout|uiMode"
|
||||
android:launchMode="singleTask" android:hardwareAccelerated="true" android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<application android:label="@string/app_name" android:name="com.rmsl.juce.JuceApp" android:hardwareAccelerated="false">
|
||||
<receiver android:name="com.rmsl.juce.Receiver" android:exported="false"/>
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout"
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout|uiMode"
|
||||
android:launchMode="singleTask" android:hardwareAccelerated="true" android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
<uses-feature android:glEsVersion="0x00030000" android:required="true"/>
|
||||
<application android:label="@string/app_name" android:name="com.rmsl.juce.JuceApp" android:icon="@drawable/icon" android:hardwareAccelerated="false">
|
||||
<receiver android:name="com.rmsl.juce.Receiver" android:exported="false"/>
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout"
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout|uiMode"
|
||||
android:launchMode="singleTask" android:hardwareAccelerated="true" android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<uses-feature android:glEsVersion="0x00030000" android:required="true"/>
|
||||
<application android:label="@string/app_name" android:name="com.rmsl.juce.JuceApp" android:icon="@drawable/icon" android:hardwareAccelerated="false">
|
||||
<receiver android:name="com.rmsl.juce.Receiver" android:exported="false"/>
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout"
|
||||
<activity android:name="com.rmsl.juce.JuceActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation|smallestScreenSize|screenLayout|uiMode"
|
||||
android:launchMode="singleTask" android:hardwareAccelerated="true" android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue