diff options
Diffstat (limited to 'src')
4 files changed, 19 insertions, 6 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index 901a3978d..94d5156cf 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | |||
| @@ -21,6 +21,7 @@ import android.view.MotionEvent | |||
| 21 | import android.view.Surface | 21 | import android.view.Surface |
| 22 | import android.view.View | 22 | import android.view.View |
| 23 | import android.view.inputmethod.InputMethodManager | 23 | import android.view.inputmethod.InputMethodManager |
| 24 | import androidx.activity.viewModels | ||
| 24 | import androidx.appcompat.app.AppCompatActivity | 25 | import androidx.appcompat.app.AppCompatActivity |
| 25 | import androidx.core.content.getSystemService | 26 | import androidx.core.content.getSystemService |
| 26 | import androidx.core.view.WindowCompat | 27 | import androidx.core.view.WindowCompat |
| @@ -34,6 +35,7 @@ import kotlinx.coroutines.Dispatchers | |||
| 34 | import kotlinx.coroutines.launch | 35 | import kotlinx.coroutines.launch |
| 35 | import org.yuzu.yuzu_emu.NativeLibrary | 36 | import org.yuzu.yuzu_emu.NativeLibrary |
| 36 | import org.yuzu.yuzu_emu.R | 37 | import org.yuzu.yuzu_emu.R |
| 38 | import org.yuzu.yuzu_emu.features.settings.model.SettingsViewModel | ||
| 37 | import org.yuzu.yuzu_emu.fragments.EmulationFragment | 39 | import org.yuzu.yuzu_emu.fragments.EmulationFragment |
| 38 | import org.yuzu.yuzu_emu.model.Game | 40 | import org.yuzu.yuzu_emu.model.Game |
| 39 | import org.yuzu.yuzu_emu.utils.ControllerMappingHelper | 41 | import org.yuzu.yuzu_emu.utils.ControllerMappingHelper |
| @@ -60,6 +62,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 60 | 62 | ||
| 61 | private lateinit var game: Game | 63 | private lateinit var game: Game |
| 62 | 64 | ||
| 65 | private val settingsViewModel: SettingsViewModel by viewModels() | ||
| 66 | |||
| 63 | override fun onDestroy() { | 67 | override fun onDestroy() { |
| 64 | stopForegroundService(this) | 68 | stopForegroundService(this) |
| 65 | super.onDestroy() | 69 | super.onDestroy() |
| @@ -68,6 +72,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 68 | override fun onCreate(savedInstanceState: Bundle?) { | 72 | override fun onCreate(savedInstanceState: Bundle?) { |
| 69 | ThemeHelper.setTheme(this) | 73 | ThemeHelper.setTheme(this) |
| 70 | 74 | ||
| 75 | settingsViewModel.settings.loadSettings() | ||
| 76 | |||
| 71 | super.onCreate(savedInstanceState) | 77 | super.onCreate(savedInstanceState) |
| 72 | if (savedInstanceState == null) { | 78 | if (savedInstanceState == null) { |
| 73 | // Get params we were passed | 79 | // Get params we were passed |
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 23c31e13a..6d3db53c0 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 | |||
| @@ -39,7 +39,7 @@ class Settings { | |||
| 39 | val isEmpty: Boolean | 39 | val isEmpty: Boolean |
| 40 | get() = sections.isEmpty() | 40 | get() = sections.isEmpty() |
| 41 | 41 | ||
| 42 | fun loadSettings(view: SettingsActivityView) { | 42 | fun loadSettings(view: SettingsActivityView? = null) { |
| 43 | sections = SettingsSectionMap() | 43 | sections = SettingsSectionMap() |
| 44 | loadYuzuSettings(view) | 44 | loadYuzuSettings(view) |
| 45 | if (!TextUtils.isEmpty(gameId)) { | 45 | if (!TextUtils.isEmpty(gameId)) { |
| @@ -48,13 +48,13 @@ class Settings { | |||
| 48 | isLoaded = true | 48 | isLoaded = true |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | private fun loadYuzuSettings(view: SettingsActivityView) { | 51 | private fun loadYuzuSettings(view: SettingsActivityView?) { |
| 52 | for ((fileName) in configFileSectionsMap) { | 52 | for ((fileName) in configFileSectionsMap) { |
| 53 | sections.putAll(SettingsFile.readFile(fileName, view)) | 53 | sections.putAll(SettingsFile.readFile(fileName, view)) |
| 54 | } | 54 | } |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | private fun loadCustomGameSettings(gameId: String, view: SettingsActivityView) { | 57 | private fun loadCustomGameSettings(gameId: String, view: SettingsActivityView?) { |
| 58 | // Custom game settings | 58 | // Custom game settings |
| 59 | mergeSections(SettingsFile.readCustomGameSettings(gameId, view)) | 59 | mergeSections(SettingsFile.readCustomGameSettings(gameId, view)) |
| 60 | } | 60 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt index c502fdca0..e29bca11d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt | |||
| @@ -37,7 +37,7 @@ object SettingsFile { | |||
| 37 | private fun readFile( | 37 | private fun readFile( |
| 38 | ini: File?, | 38 | ini: File?, |
| 39 | isCustomGame: Boolean, | 39 | isCustomGame: Boolean, |
| 40 | view: SettingsActivityView? | 40 | view: SettingsActivityView? = null |
| 41 | ): HashMap<String, SettingSection?> { | 41 | ): HashMap<String, SettingSection?> { |
| 42 | val sections: HashMap<String, SettingSection?> = SettingsSectionMap() | 42 | val sections: HashMap<String, SettingSection?> = SettingsSectionMap() |
| 43 | var reader: BufferedReader? = null | 43 | var reader: BufferedReader? = null |
| @@ -74,10 +74,13 @@ object SettingsFile { | |||
| 74 | return sections | 74 | return sections |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | fun readFile(fileName: String, view: SettingsActivityView): HashMap<String, SettingSection?> { | 77 | fun readFile(fileName: String, view: SettingsActivityView?): HashMap<String, SettingSection?> { |
| 78 | return readFile(getSettingsFile(fileName), false, view) | 78 | return readFile(getSettingsFile(fileName), false, view) |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | fun readFile(fileName: String): HashMap<String, SettingSection?> = | ||
| 82 | readFile(getSettingsFile(fileName), false) | ||
| 83 | |||
| 81 | /** | 84 | /** |
| 82 | * Reads a given .ini file from disk and returns it as a HashMap of SettingSections, themselves | 85 | * Reads a given .ini file from disk and returns it as a HashMap of SettingSections, themselves |
| 83 | * effectively a HashMap of key/value settings. If unsuccessful, outputs an error telling why it | 86 | * effectively a HashMap of key/value settings. If unsuccessful, outputs an error telling why it |
| @@ -88,7 +91,7 @@ object SettingsFile { | |||
| 88 | */ | 91 | */ |
| 89 | fun readCustomGameSettings( | 92 | fun readCustomGameSettings( |
| 90 | gameId: String, | 93 | gameId: String, |
| 91 | view: SettingsActivityView | 94 | view: SettingsActivityView? |
| 92 | ): HashMap<String, SettingSection?> { | 95 | ): HashMap<String, SettingSection?> { |
| 93 | return readFile(getCustomGameSettingsFile(gameId), true, view) | 96 | return readFile(getCustomGameSettingsFile(gameId), true, view) |
| 94 | } | 97 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt index f8bca11bb..134085210 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt | |||
| @@ -35,6 +35,7 @@ import org.yuzu.yuzu_emu.activities.EmulationActivity | |||
| 35 | import org.yuzu.yuzu_emu.databinding.ActivityMainBinding | 35 | import org.yuzu.yuzu_emu.databinding.ActivityMainBinding |
| 36 | import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding | 36 | import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding |
| 37 | import org.yuzu.yuzu_emu.features.settings.model.Settings | 37 | import org.yuzu.yuzu_emu.features.settings.model.Settings |
| 38 | import org.yuzu.yuzu_emu.features.settings.model.SettingsViewModel | ||
| 38 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity | 39 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity |
| 39 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile | 40 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile |
| 40 | import org.yuzu.yuzu_emu.fragments.MessageDialogFragment | 41 | import org.yuzu.yuzu_emu.fragments.MessageDialogFragment |
| @@ -48,6 +49,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 48 | 49 | ||
| 49 | private val homeViewModel: HomeViewModel by viewModels() | 50 | private val homeViewModel: HomeViewModel by viewModels() |
| 50 | private val gamesViewModel: GamesViewModel by viewModels() | 51 | private val gamesViewModel: GamesViewModel by viewModels() |
| 52 | private val settingsViewModel: SettingsViewModel by viewModels() | ||
| 51 | 53 | ||
| 52 | override var themeId: Int = 0 | 54 | override var themeId: Int = 0 |
| 53 | 55 | ||
| @@ -55,6 +57,8 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 55 | val splashScreen = installSplashScreen() | 57 | val splashScreen = installSplashScreen() |
| 56 | splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady } | 58 | splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady } |
| 57 | 59 | ||
| 60 | settingsViewModel.settings.loadSettings() | ||
| 61 | |||
| 58 | ThemeHelper.setTheme(this) | 62 | ThemeHelper.setTheme(this) |
| 59 | 63 | ||
| 60 | super.onCreate(savedInstanceState) | 64 | super.onCreate(savedInstanceState) |