diff --git a/src/main/kotlin/com/machiav3lli/fdroid/content/Preferences.kt b/src/main/kotlin/com/machiav3lli/fdroid/content/Preferences.kt index e404d812..65fccd27 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/content/Preferences.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/content/Preferences.kt @@ -219,7 +219,8 @@ object Preferences { sealed class Theme(override val valueString: String) : Enumeration { override val values: List - get() = if (Android.sdk(29)) listOf(System, AmoledSystem, Light, Dark, Amoled) + get() = if (Android.sdk(31)) listOf(Dynamic, System, AmoledSystem, Light, Dark, Amoled) + else if (Android.sdk(29)) listOf(System, AmoledSystem, Light, Dark, Amoled) else listOf(Light, Dark, Amoled) abstract fun getResId(configuration: Configuration): Int @@ -238,6 +239,12 @@ object Preferences { } } + object Dynamic : Theme("dynamic-system") { + override fun getResId(configuration: Configuration): Int { + return -1 + } + } + object Light : Theme("light") { override fun getResId(configuration: Configuration): Int = R.style.Theme_Main_Light } diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/fragments/PrefsUserFragment.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/fragments/PrefsUserFragment.kt index 205fd84b..6b186922 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/fragments/PrefsUserFragment.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/fragments/PrefsUserFragment.kt @@ -32,6 +32,7 @@ class PrefsUserFragment : PrefsNavFragmentX() { is Preferences.Theme.AmoledSystem -> getString(R.string.system) + " " + getString( R.string.amoled ) + is Preferences.Theme.Dynamic -> getString(R.string.dynamic) is Preferences.Theme.Light -> getString(R.string.light) is Preferences.Theme.Dark -> getString(R.string.dark) is Preferences.Theme.Amoled -> getString(R.string.amoled) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt index 450f51a1..83a1166d 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt @@ -241,6 +241,12 @@ val isBlackTheme: Boolean else -> false } +val isDynamicColorsTheme: Boolean + get() = when (Preferences[Preferences.Key.Theme]) { + is Preferences.Theme.Dynamic -> true + else -> false + } + fun Context.showBatteryOptimizationDialog() { AlertDialog.Builder(this) .setTitle(R.string.ignore_battery_optimization_title) diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index a12875aa..9cc5f8d3 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -207,4 +207,5 @@ Loading list… Releases No versions available + System dynamic