diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index f0f270c76..837e5b89d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt @@ -3,10 +3,33 @@ package org.yuzu.yuzu_emu.features.settings.model -class BooleanSetting( - key: String, - section: String, - var value: Boolean -) : Setting(key, section) { - override val valueAsString get() = if (value) "True" else "False" +enum class BooleanSetting( + override val key: String, + override val section: String, + val defaultValue: Boolean +) : AbstractBooleanSetting { + // No boolean settings currently exist + EMPTY_SETTING("", "", false); + + override var boolean: Boolean = defaultValue + + override val valueAsString: String + get() = boolean.toString() + + override val isRuntimeEditable: Boolean + get() { + for (setting in NOT_RUNTIME_EDITABLE) { + if (setting == this) { + return false + } + } + return true + } + + companion object { + private val NOT_RUNTIME_EDITABLE = emptyList<BooleanSetting>() + + fun from(key: String): BooleanSetting? = + BooleanSetting.values().firstOrNull { it.key == key } + } } |