summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt
diff options
context:
space:
mode:
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.kt51
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
}
}