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" />