From fbb1944fa3e3a12035df7cce55b07c23cb291bf1 Mon Sep 17 00:00:00 2001 From: adas20 Date: Sat, 26 Jul 2025 16:09:53 -0400 Subject: [PATCH] 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. --- .../model/view/StringMultiChoiceSetting.kt | 1 + .../features/settings/ui/SettingsAdapter.kt | 18 +++++++++++------- .../settings/ui/SettingsFragmentPresenter.kt | 4 ++-- src/android/app/src/main/res/values/arrays.xml | 14 -------------- 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/StringMultiChoiceSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/StringMultiChoiceSetting.kt index ced239289..8330ed186 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/StringMultiChoiceSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/StringMultiChoiceSetting.kt @@ -48,6 +48,7 @@ class StringMultiChoiceSetting( } return defaultValue!! } + val selectValueIndices: BooleanArray get() { val noneList = values?.let { diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt index c3620d1ff..96c8b54e8 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsAdapter.kt @@ -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() } } } diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt index 8cd1c2193..500a5df4b 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -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 ) ) } diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index bbf104653..543b59913 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -169,20 +169,6 @@ @string/button_turbo - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - @string/blank @string/still_image