|
|
@ -6,7 +6,6 @@ package org.yuzu.yuzu_emu.features.settings.ui
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.SharedPreferences
|
|
|
|
import android.content.SharedPreferences
|
|
|
|
import android.os.Build
|
|
|
|
import android.os.Build
|
|
|
|
import android.text.TextUtils
|
|
|
|
|
|
|
|
import android.widget.Toast
|
|
|
|
import android.widget.Toast
|
|
|
|
import androidx.preference.PreferenceManager
|
|
|
|
import androidx.preference.PreferenceManager
|
|
|
|
import org.yuzu.yuzu_emu.R
|
|
|
|
import org.yuzu.yuzu_emu.R
|
|
|
@ -20,15 +19,13 @@ import org.yuzu.yuzu_emu.features.settings.model.LongSetting
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.ShortSetting
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.ShortSetting
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.view.*
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.view.*
|
|
|
|
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
|
|
|
|
|
|
|
|
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
|
|
|
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
|
|
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
|
|
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
|
|
|
|
|
|
|
|
|
|
|
class SettingsFragmentPresenter(
|
|
|
|
class SettingsFragmentPresenter(
|
|
|
|
private val settingsViewModel: SettingsViewModel,
|
|
|
|
private val settingsViewModel: SettingsViewModel,
|
|
|
|
private val adapter: SettingsAdapter,
|
|
|
|
private val adapter: SettingsAdapter,
|
|
|
|
private var menuTag: String,
|
|
|
|
private var menuTag: Settings.MenuTag
|
|
|
|
private var gameId: String
|
|
|
|
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
private var settingsList = ArrayList<SettingsItem>()
|
|
|
|
private var settingsList = ArrayList<SettingsItem>()
|
|
|
|
|
|
|
|
|
|
|
@ -53,24 +50,15 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun loadSettingsList() {
|
|
|
|
fun loadSettingsList() {
|
|
|
|
if (!TextUtils.isEmpty(gameId)) {
|
|
|
|
|
|
|
|
settingsViewModel.setToolbarTitle(
|
|
|
|
|
|
|
|
context.getString(
|
|
|
|
|
|
|
|
R.string.advanced_settings_game,
|
|
|
|
|
|
|
|
gameId
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val sl = ArrayList<SettingsItem>()
|
|
|
|
val sl = ArrayList<SettingsItem>()
|
|
|
|
when (menuTag) {
|
|
|
|
when (menuTag) {
|
|
|
|
SettingsFile.FILE_NAME_CONFIG -> addConfigSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_ROOT -> addConfigSettings(sl)
|
|
|
|
Settings.SECTION_GENERAL -> addGeneralSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_GENERAL -> addGeneralSettings(sl)
|
|
|
|
Settings.SECTION_SYSTEM -> addSystemSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_SYSTEM -> addSystemSettings(sl)
|
|
|
|
Settings.SECTION_RENDERER -> addGraphicsSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_RENDERER -> addGraphicsSettings(sl)
|
|
|
|
Settings.SECTION_AUDIO -> addAudioSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_AUDIO -> addAudioSettings(sl)
|
|
|
|
Settings.SECTION_THEME -> addThemeSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_THEME -> addThemeSettings(sl)
|
|
|
|
Settings.SECTION_DEBUG -> addDebugSettings(sl)
|
|
|
|
Settings.MenuTag.SECTION_DEBUG -> addDebugSettings(sl)
|
|
|
|
else -> {
|
|
|
|
else -> {
|
|
|
|
val context = YuzuApplication.appContext
|
|
|
|
val context = YuzuApplication.appContext
|
|
|
|
Toast.makeText(
|
|
|
|
Toast.makeText(
|
|
|
@ -86,13 +74,12 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addConfigSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addConfigSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.advanced_settings))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(SubmenuSetting(R.string.preferences_general, 0, Settings.SECTION_GENERAL))
|
|
|
|
add(SubmenuSetting(R.string.preferences_general, 0, Settings.MenuTag.SECTION_GENERAL))
|
|
|
|
add(SubmenuSetting(R.string.preferences_system, 0, Settings.SECTION_SYSTEM))
|
|
|
|
add(SubmenuSetting(R.string.preferences_system, 0, Settings.MenuTag.SECTION_SYSTEM))
|
|
|
|
add(SubmenuSetting(R.string.preferences_graphics, 0, Settings.SECTION_RENDERER))
|
|
|
|
add(SubmenuSetting(R.string.preferences_graphics, 0, Settings.MenuTag.SECTION_RENDERER))
|
|
|
|
add(SubmenuSetting(R.string.preferences_audio, 0, Settings.SECTION_AUDIO))
|
|
|
|
add(SubmenuSetting(R.string.preferences_audio, 0, Settings.MenuTag.SECTION_AUDIO))
|
|
|
|
add(SubmenuSetting(R.string.preferences_debug, 0, Settings.SECTION_DEBUG))
|
|
|
|
add(SubmenuSetting(R.string.preferences_debug, 0, Settings.MenuTag.SECTION_DEBUG))
|
|
|
|
add(
|
|
|
|
add(
|
|
|
|
RunnableSetting(R.string.reset_to_default, 0, false) {
|
|
|
|
RunnableSetting(R.string.reset_to_default, 0, false) {
|
|
|
|
settingsViewModel.setShouldShowResetSettingsDialog(true)
|
|
|
|
settingsViewModel.setShouldShowResetSettingsDialog(true)
|
|
|
@ -102,7 +89,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addGeneralSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addGeneralSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_general))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(BooleanSetting.RENDERER_USE_SPEED_LIMIT.key)
|
|
|
|
add(BooleanSetting.RENDERER_USE_SPEED_LIMIT.key)
|
|
|
|
add(ShortSetting.RENDERER_SPEED_LIMIT.key)
|
|
|
|
add(ShortSetting.RENDERER_SPEED_LIMIT.key)
|
|
|
@ -112,7 +98,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_system))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(BooleanSetting.USE_DOCKED_MODE.key)
|
|
|
|
add(BooleanSetting.USE_DOCKED_MODE.key)
|
|
|
|
add(IntSetting.REGION_INDEX.key)
|
|
|
|
add(IntSetting.REGION_INDEX.key)
|
|
|
@ -123,7 +108,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_graphics))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(IntSetting.RENDERER_ACCURACY.key)
|
|
|
|
add(IntSetting.RENDERER_ACCURACY.key)
|
|
|
|
add(IntSetting.RENDERER_RESOLUTION.key)
|
|
|
|
add(IntSetting.RENDERER_RESOLUTION.key)
|
|
|
@ -140,7 +124,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addAudioSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addAudioSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_audio))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(IntSetting.AUDIO_OUTPUT_ENGINE.key)
|
|
|
|
add(IntSetting.AUDIO_OUTPUT_ENGINE.key)
|
|
|
|
add(ByteSetting.AUDIO_VOLUME.key)
|
|
|
|
add(ByteSetting.AUDIO_VOLUME.key)
|
|
|
@ -148,7 +131,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addThemeSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addThemeSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_theme))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
val theme: AbstractIntSetting = object : AbstractIntSetting {
|
|
|
|
val theme: AbstractIntSetting = object : AbstractIntSetting {
|
|
|
|
override val int: Int
|
|
|
|
override val int: Int
|
|
|
@ -261,7 +243,6 @@ class SettingsFragmentPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun addDebugSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
private fun addDebugSettings(sl: ArrayList<SettingsItem>) {
|
|
|
|
settingsViewModel.setToolbarTitle(context.getString(R.string.preferences_debug))
|
|
|
|
|
|
|
|
sl.apply {
|
|
|
|
sl.apply {
|
|
|
|
add(HeaderSetting(R.string.gpu))
|
|
|
|
add(HeaderSetting(R.string.gpu))
|
|
|
|
add(IntSetting.RENDERER_BACKEND.key)
|
|
|
|
add(IntSetting.RENDERER_BACKEND.key)
|
|
|
|