diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt | 51 |
1 files changed, 20 insertions, 31 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt index 832e9d858..e216d0b69 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt @@ -3,31 +3,32 @@ package org.yuzu.yuzu_emu.features.settings.model.view +import org.yuzu.yuzu_emu.features.settings.model.AbstractFloatSetting +import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting +import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting import org.yuzu.yuzu_emu.features.settings.model.FloatSetting import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.features.settings.model.Setting import org.yuzu.yuzu_emu.utils.Log import kotlin.math.roundToInt class SliderSetting( - key: String, - section: String, - setting: Setting?, + setting: AbstractSetting?, titleId: Int, descriptionId: Int, val min: Int, val max: Int, val units: String, - val defaultValue: Int, -) : SettingsItem(key, section, setting, titleId, descriptionId) { + val key: String? = null, + val defaultValue: Int? = null, +) : SettingsItem(setting, titleId, descriptionId) { override val type = TYPE_SLIDER val selectedValue: Int get() { - val setting = setting ?: return defaultValue + val setting = setting ?: return defaultValue!! return when (setting) { - is IntSetting -> setting.value - is FloatSetting -> setting.value.roundToInt() + is IntSetting -> setting.int + is FloatSetting -> setting.float.roundToInt() else -> { Log.error("[SliderSetting] Error casting setting type.") -1 @@ -40,18 +41,12 @@ class SliderSetting( * initializes a new one and returns it, so it can be added to the Hashmap. * * @param selection New value of the int. - * @return null if overwritten successfully otherwise; a newly created IntSetting. + * @return the existing setting with the new value applied. */ - fun setSelectedValue(selection: Int): IntSetting? { - return if (setting == null) { - val newSetting = IntSetting(key!!, section!!, selection) - setting = newSetting - newSetting - } else { - val newSetting = setting as IntSetting - newSetting.value = selection - null - } + fun setSelectedValue(selection: Int): AbstractIntSetting { + val intSetting = setting as AbstractIntSetting + intSetting.int = selection + return intSetting } /** @@ -59,17 +54,11 @@ class SliderSetting( * initializes a new one and returns it, so it can be added to the Hashmap. * * @param selection New value of the float. - * @return null if overwritten successfully otherwise; a newly created FloatSetting. + * @return the existing setting with the new value applied. */ - fun setSelectedValue(selection: Float): FloatSetting? { - return if (setting == null) { - val newSetting = FloatSetting(key!!, section!!, selection) - setting = newSetting - newSetting - } else { - val newSetting = setting as FloatSetting - newSetting.value = selection - null - } + fun setSelectedValue(selection: Float): AbstractFloatSetting { + val floatSetting = setting as AbstractFloatSetting + floatSetting.float = selection + return floatSetting } } |