From 34c470ac247394d140cb1bf5ab2e3522dd35ae87 Mon Sep 17 00:00:00 2001 From: adas20 Date: Sun, 3 Aug 2025 13:07:56 -0400 Subject: [PATCH] Moved Combo Settings into just controls instead of having its own submenu --- .../features/settings/model/Settings.kt | 1 - .../settings/ui/SettingsFragmentPresenter.kt | 66 +++++++------------ 2 files changed, 22 insertions(+), 45 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/Settings.kt index 49eb6c4b5..a530a817f 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/Settings.kt @@ -113,7 +113,6 @@ class Settings { const val SECTION_CUSTOM_PORTRAIT = "Custom Portrait Layout" const val SECTION_PERFORMANCE_OVERLAY = "Performance Overlay" const val SECTION_STORAGE = "Storage" - const val SECTION_COMBO = "Combo Button" const val KEY_BUTTON_A = "button_a" 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 d021681cb..3bc96d01a 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 @@ -106,7 +106,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) Settings.SECTION_CUSTOM_LANDSCAPE -> addCustomLandscapeSettings(sl) Settings.SECTION_CUSTOM_PORTRAIT -> addCustomPortraitSettings(sl) Settings.SECTION_PERFORMANCE_OVERLAY -> addPerformanceOverlaySettings(sl) - Settings.SECTION_COMBO -> addComboButtonSettings(sl) else -> { fragmentView.showToastMessage("Unimplemented menu", false) return @@ -757,6 +756,26 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) private fun addControlsSettings(sl: ArrayList) { settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_controls)) + + val comboSetting = object : AbstractMultiStringSetting { + override var strings: MutableSet + get() { + return Settings.comboSelection + } + set(values) { + for (item in values) { + Settings.comboSelection.add(item) + } + } + override val key = null + override val section = null + override val isRuntimeEditable = true + override val valueAsString get() = "" + override val defaultValue = "" + } + + val buttons = settingsActivity.resources.getStringArray(R.array.n3dsButtons).take(10).toTypedArray() + sl.apply { add(HeaderSetting(R.string.generic_buttons)) Settings.buttonKeys.forEachIndexed { i: Int, key: String -> @@ -808,48 +827,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) BooleanSetting.USE_ARTIC_BASE_CONTROLLER.defaultValue ) ) - add( - SubmenuSetting( - R.string.combo_key_options, - R.string.combo_key_description, - R.drawable.button_combo, - Settings.SECTION_COMBO - ) - ) - } - } - - private fun addComboButtonSettings(sl: ArrayList) { - settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.button_combo)) - val comboSetting = object : AbstractMultiStringSetting { - override var strings: MutableSet - get() { - return Settings.comboSelection - } - set(values) { - for (item in values) { - Settings.comboSelection.add(item) - } - } - override val key = null - override val section = null - override val isRuntimeEditable = true - override val valueAsString get() = "" - override val defaultValue = "" - } - - val buttons = settingsActivity.resources.getStringArray(R.array.n3dsButtons).take(10).toTypedArray() - - sl.apply { - add( - SwitchSetting( - BooleanSetting.ENABLE_COMBO_KEY, - R.string.combo_key_enable, - R.string.combo_key_submenu_description, - BooleanSetting.ENABLE_COMBO_KEY.key, - BooleanSetting.ENABLE_COMBO_KEY.defaultValue, - ) - ) add( StringMultiChoiceSetting( comboSetting, @@ -860,9 +837,10 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) ) ) } - } + + private fun getInputObject(key: String): AbstractStringSetting { return object : AbstractStringSetting { override var string: String