summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt1
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt16
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt37
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt8
-rw-r--r--src/android/app/src/main/res/values/arrays.xml11
-rw-r--r--src/android/app/src/main/res/values/strings.xml5
7 files changed, 59 insertions, 21 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
index 63f95690c..6621289fd 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
@@ -8,6 +8,7 @@ enum class StringSetting(
8 override val section: String, 8 override val section: String,
9 override val defaultValue: String 9 override val defaultValue: String
10) : AbstractStringSetting { 10) : AbstractStringSetting {
11 AUDIO_OUTPUT_ENGINE("output_engine", Settings.SECTION_AUDIO, "auto"),
11 CUSTOM_RTC("custom_rtc", Settings.SECTION_SYSTEM, "0"); 12 CUSTOM_RTC("custom_rtc", Settings.SECTION_SYSTEM, "0");
12 13
13 override var string: String = defaultValue 14 override var string: String = defaultValue
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt
index bad34fd88..3b6731dcd 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt
@@ -7,20 +7,20 @@ import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
7import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting 7import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting
8 8
9class StringSingleChoiceSetting( 9class StringSingleChoiceSetting(
10 val key: String? = null,
11 setting: AbstractSetting?, 10 setting: AbstractSetting?,
12 titleId: Int, 11 titleId: Int,
13 descriptionId: Int, 12 descriptionId: Int,
14 val choicesId: Array<String>, 13 val choices: Array<String>,
15 private val valuesId: Array<String>?, 14 val values: Array<String>?,
15 val key: String? = null,
16 private val defaultValue: String? = null 16 private val defaultValue: String? = null
17) : SettingsItem(setting, titleId, descriptionId) { 17) : SettingsItem(setting, titleId, descriptionId) {
18 override val type = TYPE_STRING_SINGLE_CHOICE 18 override val type = TYPE_STRING_SINGLE_CHOICE
19 19
20 fun getValueAt(index: Int): String? { 20 fun getValueAt(index: Int): String? {
21 if (valuesId == null) return null 21 if (values == null) return null
22 return if (index >= 0 && index < valuesId.size) { 22 return if (index >= 0 && index < values.size) {
23 valuesId[index] 23 values[index]
24 } else { 24 } else {
25 "" 25 ""
26 } 26 }
@@ -36,8 +36,8 @@ class StringSingleChoiceSetting(
36 val selectValueIndex: Int 36 val selectValueIndex: Int
37 get() { 37 get() {
38 val selectedValue = selectedValue 38 val selectedValue = selectedValue
39 for (i in valuesId!!.indices) { 39 for (i in values!!.indices) {
40 if (valuesId[i] == selectedValue) { 40 if (values[i] == selectedValue) {
41 return i 41 return i
42 } 42 }
43 } 43 }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
index eac6a134b..ce0b92c90 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
@@ -138,7 +138,7 @@ class SettingsAdapter(
138 clickedItem = item 138 clickedItem = item
139 dialog = MaterialAlertDialogBuilder(context) 139 dialog = MaterialAlertDialogBuilder(context)
140 .setTitle(item.nameId) 140 .setTitle(item.nameId)
141 .setSingleChoiceItems(item.choicesId, item.selectValueIndex, this) 141 .setSingleChoiceItems(item.choices, item.selectValueIndex, this)
142 .show() 142 .show()
143 } 143 }
144 144
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index 8215a08eb..59c1d9d54 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -353,18 +353,31 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
353 353
354 private fun addAudioSettings(sl: ArrayList<SettingsItem>) { 354 private fun addAudioSettings(sl: ArrayList<SettingsItem>) {
355 settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_audio)) 355 settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_audio))
356 sl.add( 356 sl.apply {
357 SliderSetting( 357 add(
358 IntSetting.AUDIO_VOLUME, 358 StringSingleChoiceSetting(
359 R.string.audio_volume, 359 StringSetting.AUDIO_OUTPUT_ENGINE,
360 R.string.audio_volume_description, 360 R.string.audio_output_engine,
361 0, 361 0,
362 100, 362 settingsActivity.resources.getStringArray(R.array.outputEngineEntries),
363 "%", 363 settingsActivity.resources.getStringArray(R.array.outputEngineValues),
364 IntSetting.AUDIO_VOLUME.key, 364 StringSetting.AUDIO_OUTPUT_ENGINE.key,
365 IntSetting.AUDIO_VOLUME.defaultValue 365 StringSetting.AUDIO_OUTPUT_ENGINE.defaultValue
366 ) 366 )
367 ) 367 )
368 add(
369 SliderSetting(
370 IntSetting.AUDIO_VOLUME,
371 R.string.audio_volume,
372 R.string.audio_volume_description,
373 0,
374 100,
375 "%",
376 IntSetting.AUDIO_VOLUME.key,
377 IntSetting.AUDIO_VOLUME.defaultValue
378 )
379 )
380 }
368 } 381 }
369 382
370 private fun addThemeSettings(sl: ArrayList<SettingsItem>) { 383 private fun addThemeSettings(sl: ArrayList<SettingsItem>) {
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 de764a27f..e4e321bd3 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
@@ -26,6 +26,14 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti
26 for (i in values.indices) { 26 for (i in values.indices) {
27 if (values[i] == item.selectedValue) { 27 if (values[i] == item.selectedValue) {
28 binding.textSettingDescription.text = resMgr.getStringArray(item.choicesId)[i] 28 binding.textSettingDescription.text = resMgr.getStringArray(item.choicesId)[i]
29 return
30 }
31 }
32 } else if (item is StringSingleChoiceSetting) {
33 for (i in item.values!!.indices) {
34 if (item.values[i] == item.selectedValue) {
35 binding.textSettingDescription.text = item.choices[i]
36 return
29 } 37 }
30 } 38 }
31 } else { 39 } else {
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index 7f7b1938c..6d092f7a9 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -236,4 +236,15 @@
236 <item>2</item> 236 <item>2</item>
237 </integer-array> 237 </integer-array>
238 238
239 <string-array name="outputEngineEntries">
240 <item>@string/auto</item>
241 <item>@string/cubeb</item>
242 <item>@string/string_null</item>
243 </string-array>
244 <string-array name="outputEngineValues">
245 <item>auto</item>
246 <item>cubeb</item>
247 <item>null</item>
248 </string-array>
249
239</resources> 250</resources>
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index a7ea01b55..cc1d8c39d 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -185,6 +185,7 @@
185 <string name="fastmem">Fastmem</string> 185 <string name="fastmem">Fastmem</string>
186 186
187 <!-- Audio settings strings --> 187 <!-- Audio settings strings -->
188 <string name="audio_output_engine">Output engine</string>
188 <string name="audio_volume">Volume</string> 189 <string name="audio_volume">Volume</string>
189 <string name="audio_volume_description">Specifies the volume of audio output.</string> 190 <string name="audio_volume_description">Specifies the volume of audio output.</string>
190 191
@@ -203,6 +204,7 @@
203 <string name="learn_more">Learn more</string> 204 <string name="learn_more">Learn more</string>
204 <string name="auto">Auto</string> 205 <string name="auto">Auto</string>
205 <string name="submit">Submit</string> 206 <string name="submit">Submit</string>
207 <string name="string_null">Null</string>
206 208
207 <!-- GPU driver installation --> 209 <!-- GPU driver installation -->
208 <string name="select_gpu_driver">Select GPU driver</string> 210 <string name="select_gpu_driver">Select GPU driver</string>
@@ -373,6 +375,9 @@
373 <string name="theme_mode_light">Light</string> 375 <string name="theme_mode_light">Light</string>
374 <string name="theme_mode_dark">Dark</string> 376 <string name="theme_mode_dark">Dark</string>
375 377
378 <!-- Audio output engines -->
379 <string name="cubeb">cubeb</string>
380
376 <!-- Black backgrounds theme --> 381 <!-- Black backgrounds theme -->
377 <string name="use_black_backgrounds">Black backgrounds</string> 382 <string name="use_black_backgrounds">Black backgrounds</string>
378 <string name="use_black_backgrounds_description">When using the dark theme, apply black backgrounds.</string> 383 <string name="use_black_backgrounds_description">When using the dark theme, apply black backgrounds.</string>