summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt131
1 files changed, 43 insertions, 88 deletions
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 aeb262ce6..af85065d0 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
@@ -6,7 +6,9 @@ package org.yuzu.yuzu_emu.features.settings.ui
import android.text.TextUtils
import androidx.appcompat.app.AppCompatActivity
import org.yuzu.yuzu_emu.R
-import org.yuzu.yuzu_emu.features.settings.model.Setting
+import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
+import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
+import org.yuzu.yuzu_emu.features.settings.model.IntSetting
import org.yuzu.yuzu_emu.features.settings.model.Settings
import org.yuzu.yuzu_emu.features.settings.model.view.*
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
@@ -28,8 +30,11 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
loadSettingsList()
}
- fun putSetting(setting: Setting) {
- settings.getSection(setting.section)!!.putSetting(setting)
+ fun putSetting(setting: AbstractSetting) {
+ val section = settings.getSection(setting.section!!)!!
+ if (section.getSetting(setting.key!!) == null) {
+ section.putSetting(setting)
+ }
}
fun loadSettingsList() {
@@ -61,7 +66,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
add(
SubmenuSetting(
null,
- null,
R.string.preferences_general,
0,
Settings.SECTION_GENERAL
@@ -70,7 +74,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
add(
SubmenuSetting(
null,
- null,
R.string.preferences_system,
0,
Settings.SECTION_SYSTEM
@@ -79,7 +82,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
add(
SubmenuSetting(
null,
- null,
R.string.preferences_graphics,
0,
Settings.SECTION_RENDERER
@@ -88,7 +90,6 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
add(
SubmenuSetting(
null,
- null,
R.string.preferences_audio,
0,
Settings.SECTION_AUDIO
@@ -99,45 +100,36 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
private fun addGeneralSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_general)
- val rendererSection = settings.getSection(Settings.SECTION_RENDERER)
- val frameLimitEnable =
- rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_USE_SPEED_LIMIT)
- val frameLimitValue = rendererSection.getSetting(SettingsFile.KEY_RENDERER_SPEED_LIMIT)
- val cpuSection = settings.getSection(Settings.SECTION_CPU)
- val cpuAccuracy = cpuSection!!.getSetting(SettingsFile.KEY_CPU_ACCURACY)
sl.apply {
add(
SwitchSetting(
- SettingsFile.KEY_RENDERER_USE_SPEED_LIMIT,
- Settings.SECTION_RENDERER,
- frameLimitEnable,
+ IntSetting.RENDERER_USE_SPEED_LIMIT,
R.string.frame_limit_enable,
R.string.frame_limit_enable_description,
+ IntSetting.RENDERER_USE_SPEED_LIMIT.key,
true
)
)
add(
SliderSetting(
- SettingsFile.KEY_RENDERER_SPEED_LIMIT,
- Settings.SECTION_RENDERER,
- frameLimitValue,
+ IntSetting.RENDERER_SPEED_LIMIT,
R.string.frame_limit_slider,
R.string.frame_limit_slider_description,
1,
200,
"%",
+ IntSetting.RENDERER_SPEED_LIMIT.key,
100
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_CPU_ACCURACY,
- Settings.SECTION_CPU,
- cpuAccuracy,
+ IntSetting.CPU_ACCURACY,
R.string.cpu_accuracy,
0,
R.array.cpuAccuracyNames,
R.array.cpuAccuracyValues,
+ IntSetting.CPU_ACCURACY.key,
0
)
)
@@ -146,42 +138,35 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_system)
- val systemSection = settings.getSection(Settings.SECTION_SYSTEM)
- val dockedMode = systemSection!!.getSetting(SettingsFile.KEY_USE_DOCKED_MODE)
- val region = systemSection.getSetting(SettingsFile.KEY_REGION_INDEX)
- val language = systemSection.getSetting(SettingsFile.KEY_LANGUAGE_INDEX)
sl.apply {
add(
SwitchSetting(
- SettingsFile.KEY_USE_DOCKED_MODE,
- Settings.SECTION_SYSTEM,
- dockedMode,
+ IntSetting.USE_DOCKED_MODE,
R.string.use_docked_mode,
R.string.use_docked_mode_description,
- false,
+ IntSetting.USE_DOCKED_MODE.key,
+ false
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_REGION_INDEX,
- Settings.SECTION_SYSTEM,
- region,
+ IntSetting.REGION_INDEX,
R.string.emulated_region,
0,
R.array.regionNames,
R.array.regionValues,
+ IntSetting.REGION_INDEX.key,
-1
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_LANGUAGE_INDEX,
- Settings.SECTION_SYSTEM,
- language,
+ IntSetting.LANGUAGE_INDEX,
R.string.emulated_language,
0,
R.array.languageNames,
R.array.languageValues,
+ IntSetting.LANGUAGE_INDEX.key,
1
)
)
@@ -190,133 +175,106 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_graphics)
- val rendererSection = settings.getSection(Settings.SECTION_RENDERER)
- val rendererBackend = rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_BACKEND)
- val rendererAccuracy = rendererSection.getSetting(SettingsFile.KEY_RENDERER_ACCURACY)
- val rendererResolution = rendererSection.getSetting(SettingsFile.KEY_RENDERER_RESOLUTION)
- val rendererScalingFilter =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_SCALING_FILTER)
- val rendererAntiAliasing =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_ANTI_ALIASING)
- val rendererAspectRatio =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_ASPECT_RATIO)
- val rendererUseDiskShaderCache =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_USE_DISK_SHADER_CACHE)
- val rendererForceMaxClocks =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_FORCE_MAX_CLOCK)
- val rendererAsynchronousShaders =
- rendererSection.getSetting(SettingsFile.KEY_RENDERER_ASYNCHRONOUS_SHADERS)
- val rendererDebug = rendererSection.getSetting(SettingsFile.KEY_RENDERER_DEBUG)
sl.apply {
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_BACKEND,
- Settings.SECTION_RENDERER,
- rendererBackend,
+ IntSetting.RENDERER_BACKEND,
R.string.renderer_api,
0,
R.array.rendererApiNames,
R.array.rendererApiValues,
+ IntSetting.RENDERER_BACKEND.key,
1
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_ACCURACY,
- Settings.SECTION_RENDERER,
- rendererAccuracy,
+ IntSetting.RENDERER_ACCURACY,
R.string.renderer_accuracy,
0,
R.array.rendererAccuracyNames,
R.array.rendererAccuracyValues,
+ IntSetting.RENDERER_ACCURACY.key,
0
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_RESOLUTION,
- Settings.SECTION_RENDERER,
- rendererResolution,
+ IntSetting.RENDERER_RESOLUTION,
R.string.renderer_resolution,
0,
R.array.rendererResolutionNames,
R.array.rendererResolutionValues,
+ IntSetting.RENDERER_RESOLUTION.key,
2
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_SCALING_FILTER,
- Settings.SECTION_RENDERER,
- rendererScalingFilter,
+ IntSetting.RENDERER_SCALING_FILTER,
R.string.renderer_scaling_filter,
0,
R.array.rendererScalingFilterNames,
R.array.rendererScalingFilterValues,
+ IntSetting.RENDERER_SCALING_FILTER.key,
1
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_ANTI_ALIASING,
- Settings.SECTION_RENDERER,
- rendererAntiAliasing,
+ IntSetting.RENDERER_ANTI_ALIASING,
R.string.renderer_anti_aliasing,
0,
R.array.rendererAntiAliasingNames,
R.array.rendererAntiAliasingValues,
+ IntSetting.RENDERER_ANTI_ALIASING.key,
0
)
)
add(
SingleChoiceSetting(
- SettingsFile.KEY_RENDERER_ASPECT_RATIO,
- Settings.SECTION_RENDERER,
- rendererAspectRatio,
+ IntSetting.RENDERER_ASPECT_RATIO,
R.string.renderer_aspect_ratio,
0,
R.array.rendererAspectRatioNames,
R.array.rendererAspectRatioValues,
+ IntSetting.RENDERER_ASPECT_RATIO.key,
0
)
)
add(
SwitchSetting(
- SettingsFile.KEY_RENDERER_USE_DISK_SHADER_CACHE,
- Settings.SECTION_RENDERER,
- rendererUseDiskShaderCache,
+ IntSetting.RENDERER_USE_DISK_SHADER_CACHE,
R.string.use_disk_shader_cache,
R.string.use_disk_shader_cache_description,
+ IntSetting.RENDERER_USE_DISK_SHADER_CACHE.key,
true
)
)
add(
SwitchSetting(
- SettingsFile.KEY_RENDERER_FORCE_MAX_CLOCK,
- Settings.SECTION_RENDERER,
- rendererForceMaxClocks,
+ IntSetting.RENDERER_FORCE_MAX_CLOCK,
R.string.renderer_force_max_clock,
R.string.renderer_force_max_clock_description,
+ IntSetting.RENDERER_FORCE_MAX_CLOCK.key,
true
)
)
add(
SwitchSetting(
- SettingsFile.KEY_RENDERER_ASYNCHRONOUS_SHADERS,
- Settings.SECTION_RENDERER,
- rendererAsynchronousShaders,
+ IntSetting.RENDERER_ASYNCHRONOUS_SHADERS,
R.string.renderer_asynchronous_shaders,
R.string.renderer_asynchronous_shaders_description,
+ IntSetting.RENDERER_ASYNCHRONOUS_SHADERS.key,
false
)
)
add(
SwitchSetting(
- SettingsFile.KEY_RENDERER_DEBUG,
- Settings.SECTION_RENDERER,
- rendererDebug,
+ IntSetting.RENDERER_DEBUG,
R.string.renderer_debug,
R.string.renderer_debug_description,
+ IntSetting.RENDERER_DEBUG.key,
false
)
)
@@ -325,18 +283,15 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
private fun addAudioSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_audio)
- val audioSection = settings.getSection(Settings.SECTION_AUDIO)
- val audioVolume = audioSection!!.getSetting(SettingsFile.KEY_AUDIO_VOLUME)
sl.add(
SliderSetting(
- SettingsFile.KEY_AUDIO_VOLUME,
- Settings.SECTION_AUDIO,
- audioVolume,
+ IntSetting.AUDIO_VOLUME,
R.string.audio_volume,
R.string.audio_volume_description,
0,
100,
"%",
+ IntSetting.AUDIO_VOLUME.key,
100
)
)