Deleted Int Combo Value array in arrays.xml as it was not needed. Able to Click multiple buttons at once but unchecking them causes app to crash. (within the MultiChoice OnClick for SettingsAdapter.kt)

Also debating whether to remove the normal MultiChoice addition as it wasn't added.
This commit is contained in:
adas20 2025-07-26 16:09:53 -04:00
parent db04f2c29d
commit fbb1944fa3
4 changed files with 14 additions and 23 deletions

View File

@ -48,6 +48,7 @@ class StringMultiChoiceSetting(
} }
return defaultValue!! return defaultValue!!
} }
val selectValueIndices: BooleanArray val selectValueIndices: BooleanArray
get() { get() {
val noneList = values?.let { val noneList = values?.let {

View File

@ -665,7 +665,8 @@ class SettingsAdapter(
return checked_values.toBooleanArray() return checked_values.toBooleanArray()
} }
} }
// TODO: Part of MultiChoice Impl
/*
private fun getValueForMultiChoiceSelection(item: MultiChoiceSetting, which: Int, is_checked: Boolean): Int { private fun getValueForMultiChoiceSelection(item: MultiChoiceSetting, which: Int, is_checked: Boolean): Int {
val valuesId = item.valuesId val valuesId = item.valuesId
if (valuesId > 0) { if (valuesId > 0) {
@ -676,6 +677,7 @@ class SettingsAdapter(
} }
return which return which
} }
*/
private fun onMultiChoiceClick(item: MultiChoiceSetting) { private fun onMultiChoiceClick(item: MultiChoiceSetting) {
clickedItem = item clickedItem = item
@ -706,9 +708,10 @@ class SettingsAdapter(
onStringMultiChoiceClick(item) onStringMultiChoiceClick(item)
} }
//TODO: REFACTOR TO BE MULTICHOICE //TODO: I only added MultiChoice for fleshing out backend, debating whether to remove MultiChoiceSetting and related code for cleaning up
override fun onClick(dialog: DialogInterface?, which: Int, is_checked: Boolean) { override fun onClick(dialog: DialogInterface?, which: Int, is_checked: Boolean) {
when (clickedItem) { when (clickedItem) {
/*
is MultiChoiceSetting -> { is MultiChoiceSetting -> {
val scSetting = clickedItem as? MultiChoiceSetting val scSetting = clickedItem as? MultiChoiceSetting
scSetting?.let { scSetting?.let {
@ -736,18 +739,19 @@ class SettingsAdapter(
else -> throw IllegalStateException("Unrecognized type used for MultiChoiceSetting!") else -> throw IllegalStateException("Unrecognized type used for MultiChoiceSetting!")
} }
fragmentView?.putSetting(setting as AbstractSetting) fragmentView?.putSetting(setting as AbstractSetting)
fragmentView.loadSettingsList() //fragmentView.loadSettingsList()
closeDialog() //closeDialog()
} }
} }
*/
is StringMultiChoiceSetting -> { is StringMultiChoiceSetting -> {
val scSetting = clickedItem as? StringMultiChoiceSetting val scSetting = clickedItem as? StringMultiChoiceSetting
scSetting?.let { scSetting?.let {
val setting = when (it.setting) { val setting = when (it.setting) {
is AbstractMultiStringSetting -> { is AbstractMultiStringSetting -> {
val value = it.getValueAt(which) val value = it.getValueAt(which)
if (value !in it.selectedValues ) { if (value in it.selectedValues && !is_checked) {
it.removeSelectedValue(value ?: "") it.removeSelectedValue(value ?: "")
fragmentView?.onSettingChanged() fragmentView?.onSettingChanged()
} else { } else {
@ -768,8 +772,8 @@ class SettingsAdapter(
} }
fragmentView?.putSetting(setting as AbstractSetting) fragmentView?.putSetting(setting as AbstractSetting)
fragmentView.loadSettingsList() //fragmentView.loadSettingsList()
closeDialog() //closeDialog()
} }
} }
} }

View File

@ -34,6 +34,7 @@ import org.citra.citra_emu.features.settings.model.StringSetting
import org.citra.citra_emu.features.settings.model.view.DateTimeSetting import org.citra.citra_emu.features.settings.model.view.DateTimeSetting
import org.citra.citra_emu.features.settings.model.view.HeaderSetting import org.citra.citra_emu.features.settings.model.view.HeaderSetting
import org.citra.citra_emu.features.settings.model.view.InputBindingSetting import org.citra.citra_emu.features.settings.model.view.InputBindingSetting
import org.citra.citra_emu.features.settings.model.view.MultiChoiceSetting
import org.citra.citra_emu.features.settings.model.view.RunnableSetting import org.citra.citra_emu.features.settings.model.view.RunnableSetting
import org.citra.citra_emu.features.settings.model.view.SettingsItem import org.citra.citra_emu.features.settings.model.view.SettingsItem
import org.citra.citra_emu.features.settings.model.view.SingleChoiceSetting import org.citra.citra_emu.features.settings.model.view.SingleChoiceSetting
@ -829,7 +830,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
val buttons = settingsActivity.resources.getStringArray(R.array.n3dsButtons).take(10).toTypedArray() val buttons = settingsActivity.resources.getStringArray(R.array.n3dsButtons).take(10).toTypedArray()
val combo_values = settingsActivity.resources.getStringArray(R.array.combovalues)
sl.apply { sl.apply {
add( add(
@ -847,7 +847,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.combo_key_options, R.string.combo_key_options,
0, 0,
buttons, buttons,
combo_values buttons
) )
) )
} }

View File

@ -169,20 +169,6 @@
<item>@string/button_turbo</item> <item>@string/button_turbo</item>
</string-array> </string-array>
<integer-array name="combovalues">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
</integer-array>
<string-array name="cameraImageSourceNames"> <string-array name="cameraImageSourceNames">
<item>@string/blank</item> <item>@string/blank</item>
<item>@string/still_image</item> <item>@string/still_image</item>