diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt index 02dab3785..9705d428c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt @@ -5,6 +5,7 @@ package org.yuzu.yuzu_emu.features.settings.ui.viewholder import android.view.View import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding +import org.yuzu.yuzu_emu.features.settings.model.view.IntSingleChoiceSetting import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem import org.yuzu.yuzu_emu.features.settings.model.view.SingleChoiceSetting import org.yuzu.yuzu_emu.features.settings.model.view.StringSingleChoiceSetting @@ -17,32 +18,38 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti override fun bind(item: SettingsItem) { setting = item - binding.textSettingName.setText(item.nameId) - if (item.descriptionId != 0) { - binding.textSettingDescription.setText(item.descriptionId) + binding.textSettingName.text = setting.title + if (item.description.isNotEmpty()) { + binding.textSettingDescription.text = item.description binding.textSettingDescription.visibility = View.VISIBLE } else { binding.textSettingDescription.visibility = View.GONE } binding.textSettingValue.visibility = View.VISIBLE - if (item is SingleChoiceSetting) { - val resMgr = binding.textSettingValue.context.resources - val values = resMgr.getIntArray(item.valuesId) - for (i in values.indices) { - if (values[i] == item.getSelectedValue()) { - binding.textSettingValue.text = resMgr.getStringArray(item.choicesId)[i] - break + when (item) { + is SingleChoiceSetting -> { + val resMgr = binding.textSettingValue.context.resources + val values = resMgr.getIntArray(item.valuesId) + for (i in values.indices) { + if (values[i] == item.getSelectedValue()) { + binding.textSettingValue.text = resMgr.getStringArray(item.choicesId)[i] + break + } } } - } else if (item is StringSingleChoiceSetting) { - for (i in item.values.indices) { - if (item.values[i] == item.getSelectedValue()) { - binding.textSettingValue.text = item.choices[i] - break - } + + is StringSingleChoiceSetting -> { + binding.textSettingValue.text = item.getSelectedValue() + } + + is IntSingleChoiceSetting -> { + binding.textSettingValue.text = item.getChoiceAt(item.getSelectedValue()) } } + if (binding.textSettingValue.text.isEmpty()) { + binding.textSettingValue.visibility = View.GONE + } binding.buttonClear.visibility = if (setting.setting.global || !NativeConfig.isPerGameConfigLoaded() @@ -63,16 +70,25 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti return } - if (setting is SingleChoiceSetting) { - adapter.onSingleChoiceClick( - (setting as SingleChoiceSetting), - bindingAdapterPosition - ) - } else if (setting is StringSingleChoiceSetting) { - adapter.onStringSingleChoiceClick( - (setting as StringSingleChoiceSetting), + when (setting) { + is SingleChoiceSetting -> adapter.onSingleChoiceClick( + setting as SingleChoiceSetting, bindingAdapterPosition ) + + is StringSingleChoiceSetting -> { + adapter.onStringSingleChoiceClick( + setting as StringSingleChoiceSetting, + bindingAdapterPosition + ) + } + + is IntSingleChoiceSetting -> { + adapter.onIntSingleChoiceClick( + setting as IntSingleChoiceSetting, + bindingAdapterPosition + ) + } } } |