suyu/src/android/app/src/main/java/dev/suyu/suyu_emu/features/settings/model/view/StringSingleChoiceSetting.kt

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

36 lines
1.2 KiB
Kotlin
Raw Normal View History

// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
2024-03-05 03:42:40 -05:00
// SPDX-License-Identifier: GPL-2.0-or-later
2024-03-31 20:08:49 -04:00
package dev.suyu.suyu_emu.features.settings.model.view
2024-03-05 03:42:40 -05:00
import androidx.annotation.StringRes
2024-03-31 20:08:49 -04:00
import dev.suyu.suyu_emu.features.settings.model.AbstractStringSetting
2024-03-05 03:42:40 -05:00
class StringSingleChoiceSetting(
private val stringSetting: AbstractStringSetting,
@StringRes titleId: Int = 0,
titleString: String = "",
@StringRes descriptionId: Int = 0,
descriptionString: String = "",
val choices: Array<String>,
val values: Array<String>
) : SettingsItem(stringSetting, titleId, titleString, descriptionId, descriptionString) {
override val type = TYPE_STRING_SINGLE_CHOICE
fun getValueAt(index: Int): String =
if (index >= 0 && index < values.size) values[index] else ""
fun getSelectedValue(needsGlobal: Boolean = false) = stringSetting.getString(needsGlobal)
fun setSelectedValue(value: String) = stringSetting.setString(value)
val selectedValueIndex: Int
get() {
for (i in values.indices) {
if (values[i] == getSelectedValue()) {
return i
}
}
return -1
}
}