diff options
Diffstat (limited to 'src')
9 files changed, 51 insertions, 93 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt index b59815770..bbe0097d6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt | |||
| @@ -13,6 +13,8 @@ import java.util.* | |||
| 13 | class Settings { | 13 | class Settings { |
| 14 | private var gameId: String? = null | 14 | private var gameId: String? = null |
| 15 | 15 | ||
| 16 | var isLoaded = false | ||
| 17 | |||
| 16 | /** | 18 | /** |
| 17 | * A HashMap<String></String>, SettingSection> that constructs a new SettingSection instead of returning null | 19 | * A HashMap<String></String>, SettingSection> that constructs a new SettingSection instead of returning null |
| 18 | * when getting a key not already in the map | 20 | * when getting a key not already in the map |
| @@ -43,6 +45,7 @@ class Settings { | |||
| 43 | if (!TextUtils.isEmpty(gameId)) { | 45 | if (!TextUtils.isEmpty(gameId)) { |
| 44 | loadCustomGameSettings(gameId!!, view) | 46 | loadCustomGameSettings(gameId!!, view) |
| 45 | } | 47 | } |
| 48 | isLoaded = true | ||
| 46 | } | 49 | } |
| 47 | 50 | ||
| 48 | private fun loadYuzuSettings(view: SettingsActivityView) { | 51 | private fun loadYuzuSettings(view: SettingsActivityView) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/SettingsViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/SettingsViewModel.kt index 0e33a85bb..7141604d5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/SettingsViewModel.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/SettingsViewModel.kt | |||
| @@ -3,5 +3,5 @@ package org.yuzu.yuzu_emu.features.settings.model | |||
| 3 | import androidx.lifecycle.ViewModel | 3 | import androidx.lifecycle.ViewModel |
| 4 | 4 | ||
| 5 | class SettingsViewModel : ViewModel() { | 5 | class SettingsViewModel : ViewModel() { |
| 6 | var settings = Settings() | 6 | val settings = Settings() |
| 7 | } | 7 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt index 1683f511f..60858ecd6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt | |||
| @@ -35,11 +35,7 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView { | |||
| 35 | 35 | ||
| 36 | private val settingsViewModel: SettingsViewModel by viewModels() | 36 | private val settingsViewModel: SettingsViewModel by viewModels() |
| 37 | 37 | ||
| 38 | override var settings: Settings | 38 | override val settings: Settings get() = settingsViewModel.settings |
| 39 | get() = settingsViewModel.settings | ||
| 40 | set(settings) { | ||
| 41 | settingsViewModel.settings = settings | ||
| 42 | } | ||
| 43 | 39 | ||
| 44 | override fun onCreate(savedInstanceState: Bundle?) { | 40 | override fun onCreate(savedInstanceState: Bundle?) { |
| 45 | ThemeHelper.setTheme(this) | 41 | ThemeHelper.setTheme(this) |
| @@ -179,14 +175,14 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView { | |||
| 179 | ).show() | 175 | ).show() |
| 180 | } | 176 | } |
| 181 | 177 | ||
| 182 | override fun onSettingsFileLoaded(settings: Settings) { | 178 | override fun onSettingsFileLoaded() { |
| 183 | val fragment: SettingsFragmentView? = settingsFragment | 179 | val fragment: SettingsFragmentView? = settingsFragment |
| 184 | fragment?.onSettingsFileLoaded(settings) | 180 | fragment?.loadSettingsList() |
| 185 | } | 181 | } |
| 186 | 182 | ||
| 187 | override fun onSettingsFileNotFound() { | 183 | override fun onSettingsFileNotFound() { |
| 188 | val fragment: SettingsFragmentView? = settingsFragment | 184 | val fragment: SettingsFragmentView? = settingsFragment |
| 189 | fragment?.loadDefaultSettings() | 185 | fragment?.loadSettingsList() |
| 190 | } | 186 | } |
| 191 | 187 | ||
| 192 | override fun showToastMessage(message: String, is_long: Boolean) { | 188 | override fun showToastMessage(message: String, is_long: Boolean) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.kt index 60df9d5b5..2a86e4463 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.kt | |||
| @@ -36,7 +36,7 @@ class SettingsActivityPresenter(private val activityView: SettingsActivityView) | |||
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | private fun loadSettingsUI() { | 38 | private fun loadSettingsUI() { |
| 39 | if (settings.isEmpty) { | 39 | if (!settings.isLoaded) { |
| 40 | if (!TextUtils.isEmpty(gameId)) { | 40 | if (!TextUtils.isEmpty(gameId)) { |
| 41 | settings.loadSettings(gameId, activityView) | 41 | settings.loadSettings(gameId, activityView) |
| 42 | } else { | 42 | } else { |
| @@ -44,7 +44,7 @@ class SettingsActivityPresenter(private val activityView: SettingsActivityView) | |||
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| 46 | activityView.showSettingsFragment(menuTag, false, gameId) | 46 | activityView.showSettingsFragment(menuTag, false, gameId) |
| 47 | activityView.onSettingsFileLoaded(settings) | 47 | activityView.onSettingsFileLoaded() |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | private fun prepareDirectoriesIfNeeded() { | 50 | private fun prepareDirectoriesIfNeeded() { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityView.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityView.kt index f19ca0e30..2b6dd2fce 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityView.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityView.kt | |||
| @@ -24,19 +24,17 @@ interface SettingsActivityView { | |||
| 24 | * loaded from disk, so that each Fragment doesn't need to perform its own | 24 | * loaded from disk, so that each Fragment doesn't need to perform its own |
| 25 | * read operation. | 25 | * read operation. |
| 26 | * | 26 | * |
| 27 | * @return A possibly null HashMap of Settings. | 27 | * @return A HashMap of Settings. |
| 28 | */ | 28 | */ |
| 29 | var settings: Settings | 29 | val settings: Settings |
| 30 | 30 | ||
| 31 | /** | 31 | /** |
| 32 | * Called when an asynchronous load operation completes. | 32 | * Called when a load operation completes. |
| 33 | * | ||
| 34 | * @param settings The (possibly null) result of the ini load operation. | ||
| 35 | */ | 33 | */ |
| 36 | fun onSettingsFileLoaded(settings: Settings) | 34 | fun onSettingsFileLoaded() |
| 37 | 35 | ||
| 38 | /** | 36 | /** |
| 39 | * Called when an asynchronous load operation fails. | 37 | * Called when a load operation fails. |
| 40 | */ | 38 | */ |
| 41 | fun onSettingsFileNotFound() | 39 | fun onSettingsFileNotFound() |
| 42 | 40 | ||
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 1f81f6e62..cdbdc78a0 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 | |||
| @@ -12,6 +12,7 @@ import android.view.LayoutInflater | |||
| 12 | import android.view.ViewGroup | 12 | import android.view.ViewGroup |
| 13 | import android.widget.TextView | 13 | import android.widget.TextView |
| 14 | import androidx.appcompat.app.AlertDialog | 14 | import androidx.appcompat.app.AlertDialog |
| 15 | import androidx.appcompat.app.AppCompatActivity | ||
| 15 | import androidx.recyclerview.widget.RecyclerView | 16 | import androidx.recyclerview.widget.RecyclerView |
| 16 | import com.google.android.material.datepicker.MaterialDatePicker | 17 | import com.google.android.material.datepicker.MaterialDatePicker |
| 17 | import com.google.android.material.dialog.MaterialAlertDialogBuilder | 18 | import com.google.android.material.dialog.MaterialAlertDialogBuilder |
| @@ -93,7 +94,7 @@ class SettingsAdapter( | |||
| 93 | return getItem(position).type | 94 | return getItem(position).type |
| 94 | } | 95 | } |
| 95 | 96 | ||
| 96 | fun setSettings(settings: ArrayList<SettingsItem>?) { | 97 | fun setSettingsList(settings: ArrayList<SettingsItem>?) { |
| 97 | this.settings = settings | 98 | this.settings = settings |
| 98 | notifyDataSetChanged() | 99 | notifyDataSetChanged() |
| 99 | } | 100 | } |
| @@ -144,7 +145,7 @@ class SettingsAdapter( | |||
| 144 | calendar.timeZone = TimeZone.getTimeZone("UTC") | 145 | calendar.timeZone = TimeZone.getTimeZone("UTC") |
| 145 | 146 | ||
| 146 | var timeFormat: Int = TimeFormat.CLOCK_12H | 147 | var timeFormat: Int = TimeFormat.CLOCK_12H |
| 147 | if (DateFormat.is24HourFormat(fragmentView.fragmentActivity)) { | 148 | if (DateFormat.is24HourFormat(fragmentView.activityView as AppCompatActivity)) { |
| 148 | timeFormat = TimeFormat.CLOCK_24H | 149 | timeFormat = TimeFormat.CLOCK_24H |
| 149 | } | 150 | } |
| 150 | 151 | ||
| @@ -161,7 +162,7 @@ class SettingsAdapter( | |||
| 161 | 162 | ||
| 162 | datePicker.addOnPositiveButtonClickListener { | 163 | datePicker.addOnPositiveButtonClickListener { |
| 163 | timePicker.show( | 164 | timePicker.show( |
| 164 | fragmentView.fragmentActivity.supportFragmentManager, | 165 | (fragmentView.activityView as AppCompatActivity).supportFragmentManager, |
| 165 | "TimePicker" | 166 | "TimePicker" |
| 166 | ) | 167 | ) |
| 167 | } | 168 | } |
| @@ -177,7 +178,7 @@ class SettingsAdapter( | |||
| 177 | item.setSelectedValue(rtcString) | 178 | item.setSelectedValue(rtcString) |
| 178 | clickedItem = null | 179 | clickedItem = null |
| 179 | } | 180 | } |
| 180 | datePicker.show(fragmentView.fragmentActivity.supportFragmentManager, "DatePicker") | 181 | datePicker.show((fragmentView.activityView as AppCompatActivity).supportFragmentManager, "DatePicker") |
| 181 | } | 182 | } |
| 182 | 183 | ||
| 183 | fun onSliderClick(item: SliderSetting, position: Int) { | 184 | fun onSliderClick(item: SliderSetting, position: Int) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt index f522a82b7..a9cfdc21f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt | |||
| @@ -12,7 +12,6 @@ import androidx.core.view.ViewCompat | |||
| 12 | import androidx.core.view.WindowInsetsCompat | 12 | import androidx.core.view.WindowInsetsCompat |
| 13 | import androidx.core.view.updatePadding | 13 | import androidx.core.view.updatePadding |
| 14 | import androidx.fragment.app.Fragment | 14 | import androidx.fragment.app.Fragment |
| 15 | import androidx.fragment.app.FragmentActivity | ||
| 16 | import androidx.recyclerview.widget.LinearLayoutManager | 15 | import androidx.recyclerview.widget.LinearLayoutManager |
| 17 | import com.google.android.material.divider.MaterialDividerItemDecoration | 16 | import com.google.android.material.divider.MaterialDividerItemDecoration |
| 18 | import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding | 17 | import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding |
| @@ -21,10 +20,9 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings | |||
| 21 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | 20 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
| 22 | 21 | ||
| 23 | class SettingsFragment : Fragment(), SettingsFragmentView { | 22 | class SettingsFragment : Fragment(), SettingsFragmentView { |
| 24 | override lateinit var fragmentActivity: FragmentActivity | 23 | override var activityView: SettingsActivityView? = null |
| 25 | 24 | ||
| 26 | private val presenter = SettingsFragmentPresenter(this) | 25 | private val fragmentPresenter = SettingsFragmentPresenter(this) |
| 27 | private var activityView: SettingsActivityView? = null | ||
| 28 | private var settingsAdapter: SettingsAdapter? = null | 26 | private var settingsAdapter: SettingsAdapter? = null |
| 29 | 27 | ||
| 30 | private var _binding: FragmentSettingsBinding? = null | 28 | private var _binding: FragmentSettingsBinding? = null |
| @@ -32,15 +30,14 @@ class SettingsFragment : Fragment(), SettingsFragmentView { | |||
| 32 | 30 | ||
| 33 | override fun onAttach(context: Context) { | 31 | override fun onAttach(context: Context) { |
| 34 | super.onAttach(context) | 32 | super.onAttach(context) |
| 35 | activityView = context as SettingsActivityView | 33 | activityView = requireActivity() as SettingsActivityView |
| 36 | fragmentActivity = requireActivity() | ||
| 37 | } | 34 | } |
| 38 | 35 | ||
| 39 | override fun onCreate(savedInstanceState: Bundle?) { | 36 | override fun onCreate(savedInstanceState: Bundle?) { |
| 40 | super.onCreate(savedInstanceState) | 37 | super.onCreate(savedInstanceState) |
| 41 | val menuTag = requireArguments().getString(ARGUMENT_MENU_TAG) | 38 | val menuTag = requireArguments().getString(ARGUMENT_MENU_TAG) |
| 42 | val gameId = requireArguments().getString(ARGUMENT_GAME_ID) | 39 | val gameId = requireArguments().getString(ARGUMENT_GAME_ID) |
| 43 | presenter.onCreate(menuTag!!, gameId!!) | 40 | fragmentPresenter.onCreate(menuTag!!, gameId!!) |
| 44 | } | 41 | } |
| 45 | 42 | ||
| 46 | override fun onCreateView( | 43 | override fun onCreateView( |
| @@ -61,8 +58,7 @@ class SettingsFragment : Fragment(), SettingsFragmentView { | |||
| 61 | layoutManager = LinearLayoutManager(activity) | 58 | layoutManager = LinearLayoutManager(activity) |
| 62 | addItemDecoration(dividerDecoration) | 59 | addItemDecoration(dividerDecoration) |
| 63 | } | 60 | } |
| 64 | val activity = activity as SettingsActivityView? | 61 | fragmentPresenter.onViewCreated() |
| 65 | presenter.onViewCreated(activity!!.settings) | ||
| 66 | 62 | ||
| 67 | setInsets() | 63 | setInsets() |
| 68 | } | 64 | } |
| @@ -75,16 +71,12 @@ class SettingsFragment : Fragment(), SettingsFragmentView { | |||
| 75 | } | 71 | } |
| 76 | } | 72 | } |
| 77 | 73 | ||
| 78 | override fun onSettingsFileLoaded(settings: Settings) { | ||
| 79 | presenter.setSettings(settings) | ||
| 80 | } | ||
| 81 | |||
| 82 | override fun showSettingsList(settingsList: ArrayList<SettingsItem>) { | 74 | override fun showSettingsList(settingsList: ArrayList<SettingsItem>) { |
| 83 | settingsAdapter!!.setSettings(settingsList) | 75 | settingsAdapter!!.setSettingsList(settingsList) |
| 84 | } | 76 | } |
| 85 | 77 | ||
| 86 | override fun loadDefaultSettings() { | 78 | override fun loadSettingsList() { |
| 87 | presenter.loadDefaultSettings() | 79 | fragmentPresenter.loadSettingsList() |
| 88 | } | 80 | } |
| 89 | 81 | ||
| 90 | override fun loadSubMenu(menuKey: String) { | 82 | override fun loadSubMenu(menuKey: String) { |
| @@ -100,7 +92,7 @@ class SettingsFragment : Fragment(), SettingsFragmentView { | |||
| 100 | } | 92 | } |
| 101 | 93 | ||
| 102 | override fun putSetting(setting: Setting) { | 94 | override fun putSetting(setting: Setting) { |
| 103 | presenter.putSetting(setting) | 95 | fragmentPresenter.putSetting(setting) |
| 104 | } | 96 | } |
| 105 | 97 | ||
| 106 | override fun onSettingChanged() { | 98 | override fun onSettingChanged() { |
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 8eaa0a0fa..e2b1326f8 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 | |||
| @@ -4,58 +4,37 @@ | |||
| 4 | package org.yuzu.yuzu_emu.features.settings.ui | 4 | package org.yuzu.yuzu_emu.features.settings.ui |
| 5 | 5 | ||
| 6 | import android.text.TextUtils | 6 | import android.text.TextUtils |
| 7 | import androidx.appcompat.app.AppCompatActivity | ||
| 7 | import org.yuzu.yuzu_emu.R | 8 | import org.yuzu.yuzu_emu.R |
| 8 | import org.yuzu.yuzu_emu.features.settings.model.Setting | 9 | import org.yuzu.yuzu_emu.features.settings.model.Setting |
| 9 | import org.yuzu.yuzu_emu.features.settings.model.Settings | 10 | import org.yuzu.yuzu_emu.features.settings.model.Settings |
| 10 | import org.yuzu.yuzu_emu.features.settings.model.StringSetting | ||
| 11 | import org.yuzu.yuzu_emu.features.settings.model.view.* | 11 | import org.yuzu.yuzu_emu.features.settings.model.view.* |
| 12 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile | 12 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile |
| 13 | 13 | ||
| 14 | class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) { | 14 | class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) { |
| 15 | private var menuTag: String? = null | 15 | private var menuTag: String? = null |
| 16 | private lateinit var gameId: String | 16 | private lateinit var gameId: String |
| 17 | private var settings: Settings? = null | ||
| 18 | private var settingsList: ArrayList<SettingsItem>? = null | 17 | private var settingsList: ArrayList<SettingsItem>? = null |
| 19 | 18 | ||
| 19 | private val settingsActivity get() = fragmentView.activityView as AppCompatActivity | ||
| 20 | private val settings get() = fragmentView.activityView!!.settings | ||
| 21 | |||
| 20 | fun onCreate(menuTag: String, gameId: String) { | 22 | fun onCreate(menuTag: String, gameId: String) { |
| 21 | this.gameId = gameId | 23 | this.gameId = gameId |
| 22 | this.menuTag = menuTag | 24 | this.menuTag = menuTag |
| 23 | } | 25 | } |
| 24 | 26 | ||
| 25 | fun onViewCreated(settings: Settings) { | 27 | fun onViewCreated() { |
| 26 | setSettings(settings) | ||
| 27 | } | ||
| 28 | |||
| 29 | fun putSetting(setting: Setting) { | ||
| 30 | settings!!.getSection(setting.section)!!.putSetting(setting) | ||
| 31 | } | ||
| 32 | |||
| 33 | private fun asStringSetting(setting: Setting?): StringSetting? { | ||
| 34 | if (setting == null) { | ||
| 35 | return null | ||
| 36 | } | ||
| 37 | val stringSetting = StringSetting(setting.key, setting.section, setting.valueAsString) | ||
| 38 | putSetting(stringSetting) | ||
| 39 | return stringSetting | ||
| 40 | } | ||
| 41 | |||
| 42 | fun loadDefaultSettings() { | ||
| 43 | loadSettingsList() | 28 | loadSettingsList() |
| 44 | } | 29 | } |
| 45 | 30 | ||
| 46 | fun setSettings(settings: Settings) { | 31 | fun putSetting(setting: Setting) { |
| 47 | if (settingsList == null) { | 32 | settings.getSection(setting.section)!!.putSetting(setting) |
| 48 | this.settings = settings | ||
| 49 | loadSettingsList() | ||
| 50 | } else { | ||
| 51 | fragmentView.fragmentActivity.setTitle(R.string.preferences_settings) | ||
| 52 | fragmentView.showSettingsList(settingsList!!) | ||
| 53 | } | ||
| 54 | } | 33 | } |
| 55 | 34 | ||
| 56 | private fun loadSettingsList() { | 35 | fun loadSettingsList() { |
| 57 | if (!TextUtils.isEmpty(gameId)) { | 36 | if (!TextUtils.isEmpty(gameId)) { |
| 58 | fragmentView.fragmentActivity.title = "Game Settings: $gameId" | 37 | settingsActivity.title = "Game Settings: $gameId" |
| 59 | } | 38 | } |
| 60 | val sl = ArrayList<SettingsItem>() | 39 | val sl = ArrayList<SettingsItem>() |
| 61 | if (menuTag == null) { | 40 | if (menuTag == null) { |
| @@ -77,7 +56,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||
| 77 | } | 56 | } |
| 78 | 57 | ||
| 79 | private fun addConfigSettings(sl: ArrayList<SettingsItem>) { | 58 | private fun addConfigSettings(sl: ArrayList<SettingsItem>) { |
| 80 | fragmentView.fragmentActivity.setTitle(R.string.preferences_settings) | 59 | settingsActivity.setTitle(R.string.preferences_settings) |
| 81 | sl.apply { | 60 | sl.apply { |
| 82 | add( | 61 | add( |
| 83 | SubmenuSetting( | 62 | SubmenuSetting( |
| @@ -119,12 +98,12 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||
| 119 | } | 98 | } |
| 120 | 99 | ||
| 121 | private fun addGeneralSettings(sl: ArrayList<SettingsItem>) { | 100 | private fun addGeneralSettings(sl: ArrayList<SettingsItem>) { |
| 122 | fragmentView.fragmentActivity.setTitle(R.string.preferences_general) | 101 | settingsActivity.setTitle(R.string.preferences_general) |
| 123 | val rendererSection = settings!!.getSection(Settings.SECTION_RENDERER) | 102 | val rendererSection = settings.getSection(Settings.SECTION_RENDERER) |
| 124 | val frameLimitEnable = | 103 | val frameLimitEnable = |
| 125 | rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_USE_SPEED_LIMIT) | 104 | rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_USE_SPEED_LIMIT) |
| 126 | val frameLimitValue = rendererSection.getSetting(SettingsFile.KEY_RENDERER_SPEED_LIMIT) | 105 | val frameLimitValue = rendererSection.getSetting(SettingsFile.KEY_RENDERER_SPEED_LIMIT) |
| 127 | val cpuSection = settings!!.getSection(Settings.SECTION_CPU) | 106 | val cpuSection = settings.getSection(Settings.SECTION_CPU) |
| 128 | val cpuAccuracy = cpuSection!!.getSetting(SettingsFile.KEY_CPU_ACCURACY) | 107 | val cpuAccuracy = cpuSection!!.getSetting(SettingsFile.KEY_CPU_ACCURACY) |
| 129 | sl.apply { | 108 | sl.apply { |
| 130 | add( | 109 | add( |
| @@ -166,8 +145,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||
| 166 | } | 145 | } |
| 167 | 146 | ||
| 168 | private fun addSystemSettings(sl: ArrayList<SettingsItem>) { | 147 | private fun addSystemSettings(sl: ArrayList<SettingsItem>) { |
| 169 | fragmentView.fragmentActivity.setTitle(R.string.preferences_system) | 148 | settingsActivity.setTitle(R.string.preferences_system) |
| 170 | val systemSection = settings!!.getSection(Settings.SECTION_SYSTEM) | 149 | val systemSection = settings.getSection(Settings.SECTION_SYSTEM) |
| 171 | val dockedMode = systemSection!!.getSetting(SettingsFile.KEY_USE_DOCKED_MODE) | 150 | val dockedMode = systemSection!!.getSetting(SettingsFile.KEY_USE_DOCKED_MODE) |
| 172 | val region = systemSection.getSetting(SettingsFile.KEY_REGION_INDEX) | 151 | val region = systemSection.getSetting(SettingsFile.KEY_REGION_INDEX) |
| 173 | val language = systemSection.getSetting(SettingsFile.KEY_LANGUAGE_INDEX) | 152 | val language = systemSection.getSetting(SettingsFile.KEY_LANGUAGE_INDEX) |
| @@ -210,8 +189,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||
| 210 | } | 189 | } |
| 211 | 190 | ||
| 212 | private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) { | 191 | private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) { |
| 213 | fragmentView.fragmentActivity.setTitle(R.string.preferences_graphics) | 192 | settingsActivity.setTitle(R.string.preferences_graphics) |
| 214 | val rendererSection = settings!!.getSection(Settings.SECTION_RENDERER) | 193 | val rendererSection = settings.getSection(Settings.SECTION_RENDERER) |
| 215 | val rendererBackend = rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_BACKEND) | 194 | val rendererBackend = rendererSection!!.getSetting(SettingsFile.KEY_RENDERER_BACKEND) |
| 216 | val rendererAccuracy = rendererSection.getSetting(SettingsFile.KEY_RENDERER_ACCURACY) | 195 | val rendererAccuracy = rendererSection.getSetting(SettingsFile.KEY_RENDERER_ACCURACY) |
| 217 | val rendererResolution = rendererSection.getSetting(SettingsFile.KEY_RENDERER_RESOLUTION) | 196 | val rendererResolution = rendererSection.getSetting(SettingsFile.KEY_RENDERER_RESOLUTION) |
| @@ -305,8 +284,8 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||
| 305 | } | 284 | } |
| 306 | 285 | ||
| 307 | private fun addAudioSettings(sl: ArrayList<SettingsItem>) { | 286 | private fun addAudioSettings(sl: ArrayList<SettingsItem>) { |
| 308 | fragmentView.fragmentActivity.setTitle(R.string.preferences_audio) | 287 | settingsActivity.setTitle(R.string.preferences_audio) |
| 309 | val audioSection = settings!!.getSection(Settings.SECTION_AUDIO) | 288 | val audioSection = settings.getSection(Settings.SECTION_AUDIO) |
| 310 | val audioVolume = audioSection!!.getSetting(SettingsFile.KEY_AUDIO_VOLUME) | 289 | val audioVolume = audioSection!!.getSetting(SettingsFile.KEY_AUDIO_VOLUME) |
| 311 | sl.add( | 290 | sl.add( |
| 312 | SliderSetting( | 291 | SliderSetting( |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentView.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentView.kt index 2d9700fca..9a14c5795 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentView.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentView.kt | |||
| @@ -3,9 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | package org.yuzu.yuzu_emu.features.settings.ui | 4 | package org.yuzu.yuzu_emu.features.settings.ui |
| 5 | 5 | ||
| 6 | import androidx.fragment.app.FragmentActivity | ||
| 7 | import org.yuzu.yuzu_emu.features.settings.model.Setting | 6 | import org.yuzu.yuzu_emu.features.settings.model.Setting |
| 8 | import org.yuzu.yuzu_emu.features.settings.model.Settings | ||
| 9 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | 7 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
| 10 | 8 | ||
| 11 | /** | 9 | /** |
| @@ -14,14 +12,6 @@ import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | |||
| 14 | */ | 12 | */ |
| 15 | interface SettingsFragmentView { | 13 | interface SettingsFragmentView { |
| 16 | /** | 14 | /** |
| 17 | * Called by the containing Activity to notify the Fragment that an | ||
| 18 | * asynchronous load operation completed. | ||
| 19 | * | ||
| 20 | * @param settings The (possibly null) result of the ini load operation. | ||
| 21 | */ | ||
| 22 | fun onSettingsFileLoaded(settings: Settings) | ||
| 23 | |||
| 24 | /** | ||
| 25 | * Pass an ArrayList to the View so that it can be displayed on screen. | 15 | * Pass an ArrayList to the View so that it can be displayed on screen. |
| 26 | * | 16 | * |
| 27 | * @param settingsList The result of converting the HashMap to an ArrayList | 17 | * @param settingsList The result of converting the HashMap to an ArrayList |
| @@ -29,15 +19,14 @@ interface SettingsFragmentView { | |||
| 29 | fun showSettingsList(settingsList: ArrayList<SettingsItem>) | 19 | fun showSettingsList(settingsList: ArrayList<SettingsItem>) |
| 30 | 20 | ||
| 31 | /** | 21 | /** |
| 32 | * Called by the containing Activity when an asynchronous load operation fails. | 22 | * Instructs the Fragment to load the settings screen. |
| 33 | * Instructs the Fragment to load the settings screen with defaults selected. | ||
| 34 | */ | 23 | */ |
| 35 | fun loadDefaultSettings() | 24 | fun loadSettingsList() |
| 36 | 25 | ||
| 37 | /** | 26 | /** |
| 38 | * @return The Fragment's containing activity. | 27 | * @return The Fragment's containing activity. |
| 39 | */ | 28 | */ |
| 40 | val fragmentActivity: FragmentActivity | 29 | val activityView: SettingsActivityView? |
| 41 | 30 | ||
| 42 | /** | 31 | /** |
| 43 | * Tell the Fragment to tell the containing Activity to show a new | 32 | * Tell the Fragment to tell the containing Activity to show a new |