diff --git a/app/src/main/java/com/readrops/app/ReadropsApp.kt b/app/src/main/java/com/readrops/app/ReadropsApp.kt
index 559bfa33..cf2fadb8 100644
--- a/app/src/main/java/com/readrops/app/ReadropsApp.kt
+++ b/app/src/main/java/com/readrops/app/ReadropsApp.kt
@@ -31,10 +31,13 @@ open class ReadropsApp : Application() {
modules(apiModule, dbModule, appModule)
}
- if (SharedPreferencesManager.readString(SharedPreferencesManager.SharedPrefKey.DARK_THEME).toBoolean())
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
- else
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
+ val theme = when (SharedPreferencesManager.readString(SharedPreferencesManager.SharedPrefKey.DARK_THEME)) {
+ getString(R.string.theme_value_light) -> AppCompatDelegate.MODE_NIGHT_NO
+ getString(R.string.theme_value_dark) -> AppCompatDelegate.MODE_NIGHT_YES
+ else -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
+ }
+
+ AppCompatDelegate.setDefaultNightMode(theme)
}
private fun createNotificationChannels() {
diff --git a/app/src/main/java/com/readrops/app/settings/SettingsFragment.java b/app/src/main/java/com/readrops/app/settings/SettingsFragment.java
index c0a02dcd..5c7dbca5 100644
--- a/app/src/main/java/com/readrops/app/settings/SettingsFragment.java
+++ b/app/src/main/java/com/readrops/app/settings/SettingsFragment.java
@@ -1,5 +1,7 @@
package com.readrops.app.settings;
+import static com.readrops.app.utils.ReadropsKeys.FEEDS;
+
import android.content.Intent;
import android.os.Bundle;
import android.util.Pair;
@@ -25,8 +27,6 @@ import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
-import static com.readrops.app.utils.ReadropsKeys.FEEDS;
-
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
@@ -56,12 +56,12 @@ public class SettingsFragment extends PreferenceFragmentCompat {
});
themePreference.setOnPreferenceChangeListener((preference, newValue) -> {
- boolean darkTheme = Boolean.parseBoolean(newValue.toString());
-
- if (darkTheme) {
+ if (newValue.equals(getString(R.string.theme_value_light))) {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ } else if (newValue.equals(getString(R.string.theme_value_dark))) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
}
return true;
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 20d38056..ceae3f10 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -137,5 +137,6 @@
Code source
Journal des modifications
App distribuée sous la licence GPLv3
+ Thème du système
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index a603ebf8..00545de3 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -45,11 +45,13 @@
- @string/light
- @string/dark
+ - @string/system
- - false
- - true
+ - @string/theme_value_light
+ - @string/theme_value_dark
+ - @string/theme_value_system
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fdb7c532..2dcff9c2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -140,4 +140,8 @@
Source code
Changelog
https://github.com/readrops/Readrops/blob/develop/CHANGELOG.md
+ System theme
+ light
+ dark
+ system
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 625fc43a..69fb7407 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -23,7 +23,7 @@
android:title="@string/open_items_in" />