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 @@ -