From ac79953c7cc93be9616941cfb11e848074f3b2b6 Mon Sep 17 00:00:00 2001 From: LooKeR Date: Sat, 16 Oct 2021 11:32:25 +0530 Subject: [PATCH] Add: System Amoled Theme Fix: Use similar switches in Settings --- .../kotlin/com/looker/droidify/content/Preferences.kt | 9 ++++++++- .../com/looker/droidify/screen/SettingsFragment.kt | 6 +++++- src/main/res/layout/preference_item.xml | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/content/Preferences.kt b/src/main/kotlin/com/looker/droidify/content/Preferences.kt index 5c2eb050..21a36139 100644 --- a/src/main/kotlin/com/looker/droidify/content/Preferences.kt +++ b/src/main/kotlin/com/looker/droidify/content/Preferences.kt @@ -173,7 +173,7 @@ object Preferences { sealed class Theme(override val valueString: String) : Enumeration { override val values: List - get() = if (Android.sdk(29)) listOf(System, Light, Dark, Amoled) + get() = if (Android.sdk(29)) listOf(System, AmoledSystem, Light, Dark, Amoled) else listOf(Light, Dark, Amoled) abstract fun getResId(configuration: Configuration): Int @@ -185,6 +185,13 @@ object Preferences { } } + object AmoledSystem : Theme("system-amoled") { + override fun getResId(configuration: Configuration): Int { + return if ((configuration.uiMode and Configuration.UI_MODE_NIGHT_YES) != 0) + R.style.Theme_Main_Amoled else R.style.Theme_Main_Light + } + } + object Light : Theme("light") { override fun getResId(configuration: Configuration): Int = R.style.Theme_Main_Light } diff --git a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt index 93a9101c..b008ba21 100644 --- a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt @@ -16,6 +16,7 @@ import androidx.appcompat.widget.Toolbar import androidx.core.net.toUri import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment +import com.google.android.material.switchmaterial.SwitchMaterial import com.looker.droidify.BuildConfig import com.looker.droidify.R import com.looker.droidify.content.Preferences @@ -105,6 +106,9 @@ class SettingsFragment : ScreenFragment() { addEnumeration(Preferences.Key.Theme, getString(R.string.theme)) { when (it) { is Preferences.Theme.System -> getString(R.string.system) + is Preferences.Theme.AmoledSystem -> getString(R.string.system) + " " + getString( + R.string.amoled + ) is Preferences.Theme.Light -> getString(R.string.light) is Preferences.Theme.Dark -> getString(R.string.dark) is Preferences.Theme.Amoled -> getString(R.string.amoled) @@ -316,7 +320,7 @@ class SettingsFragment : ScreenFragment() { val view = parent.inflate(R.layout.preference_item) val title = view.findViewById(R.id.title)!! val summary = view.findViewById(R.id.summary)!! - val check = view.findViewById(R.id.check)!! + val check = view.findViewById(R.id.check)!! private var callback: (() -> Unit)? = null diff --git a/src/main/res/layout/preference_item.xml b/src/main/res/layout/preference_item.xml index a6ca8dbb..cab17515 100644 --- a/src/main/res/layout/preference_item.xml +++ b/src/main/res/layout/preference_item.xml @@ -29,7 +29,7 @@ -