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!!
}
val selectValueIndices: BooleanArray
get() {
val noneList = values?.let {

View File

@ -665,7 +665,8 @@ class SettingsAdapter(
return checked_values.toBooleanArray()
}
}
// TODO: Part of MultiChoice Impl
/*
private fun getValueForMultiChoiceSelection(item: MultiChoiceSetting, which: Int, is_checked: Boolean): Int {
val valuesId = item.valuesId
if (valuesId > 0) {
@ -676,6 +677,7 @@ class SettingsAdapter(
}
return which
}
*/
private fun onMultiChoiceClick(item: MultiChoiceSetting) {
clickedItem = item
@ -706,9 +708,10 @@ class SettingsAdapter(
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) {
when (clickedItem) {
/*
is MultiChoiceSetting -> {
val scSetting = clickedItem as? MultiChoiceSetting
scSetting?.let {
@ -736,18 +739,19 @@ class SettingsAdapter(
else -> throw IllegalStateException("Unrecognized type used for MultiChoiceSetting!")
}
fragmentView?.putSetting(setting as AbstractSetting)
fragmentView.loadSettingsList()
closeDialog()
//fragmentView.loadSettingsList()
//closeDialog()
}
}
*/
is StringMultiChoiceSetting -> {
val scSetting = clickedItem as? StringMultiChoiceSetting
scSetting?.let {
val setting = when (it.setting) {
is AbstractMultiStringSetting -> {
val value = it.getValueAt(which)
if (value !in it.selectedValues ) {
if (value in it.selectedValues && !is_checked) {
it.removeSelectedValue(value ?: "")
fragmentView?.onSettingChanged()
} else {
@ -768,8 +772,8 @@ class SettingsAdapter(
}
fragmentView?.putSetting(setting as AbstractSetting)
fragmentView.loadSettingsList()
closeDialog()
//fragmentView.loadSettingsList()
//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.HeaderSetting
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.SettingsItem
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 combo_values = settingsActivity.resources.getStringArray(R.array.combovalues)
sl.apply {
add(
@ -847,7 +847,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.string.combo_key_options,
0,
buttons,
combo_values
buttons
)
)
}

View File

@ -169,20 +169,6 @@
<item>@string/button_turbo</item>
</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">
<item>@string/blank</item>
<item>@string/still_image</item>