diff options
Diffstat (limited to 'src/android/app')
5 files changed, 23 insertions, 7 deletions
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index ec5f78746..06f22fabe 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts @@ -1,6 +1,8 @@  // SPDX-FileCopyrightText: 2023 yuzu Emulator Project  // SPDX-License-Identifier: GPL-3.0-or-later +import android.annotation.SuppressLint +  plugins {      id("com.android.application")      id("org.jetbrains.kotlin.android") @@ -35,7 +37,7 @@ android {          jvmTarget = "17"      } -    packagingOptions { +    packaging {          // This is necessary for libadrenotools custom driver loading          jniLibs.useLegacyPackaging = true      } @@ -58,6 +60,7 @@ android {          versionName = getGitVersion()          ndk { +            @SuppressLint("ChromeOsAbiSupport")              abiFilters += listOf("arm64-v8a")          } 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  import android.view.Surface  import android.view.View  import android.view.inputmethod.InputMethodManager +import androidx.activity.viewModels  import androidx.appcompat.app.AppCompatActivity  import androidx.core.content.getSystemService  import androidx.core.view.WindowCompat @@ -34,6 +35,7 @@ import kotlinx.coroutines.Dispatchers  import kotlinx.coroutines.launch  import org.yuzu.yuzu_emu.NativeLibrary  import org.yuzu.yuzu_emu.R +import org.yuzu.yuzu_emu.features.settings.model.SettingsViewModel  import org.yuzu.yuzu_emu.fragments.EmulationFragment  import org.yuzu.yuzu_emu.model.Game  import org.yuzu.yuzu_emu.utils.ControllerMappingHelper @@ -60,6 +62,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {      private lateinit var game: Game +    private val settingsViewModel: SettingsViewModel by viewModels() +      override fun onDestroy() {          stopForegroundService(this)          super.onDestroy() @@ -68,6 +72,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {      override fun onCreate(savedInstanceState: Bundle?) {          ThemeHelper.setTheme(this) +        settingsViewModel.settings.loadSettings() +          super.onCreate(savedInstanceState)          if (savedInstanceState == null) {              // 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 df8dd8634..8df20b928 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 {      val isEmpty: Boolean          get() = sections.isEmpty() -    fun loadSettings(view: SettingsActivityView) { +    fun loadSettings(view: SettingsActivityView? = null) {          sections = SettingsSectionMap()          loadYuzuSettings(view)          if (!TextUtils.isEmpty(gameId)) { @@ -48,13 +48,13 @@ class Settings {          isLoaded = true      } -    private fun loadYuzuSettings(view: SettingsActivityView) { +    private fun loadYuzuSettings(view: SettingsActivityView?) {          for ((fileName) in configFileSectionsMap) {              sections.putAll(SettingsFile.readFile(fileName, view))          }      } -    private fun loadCustomGameSettings(gameId: String, view: SettingsActivityView) { +    private fun loadCustomGameSettings(gameId: String, view: SettingsActivityView?) {          // Custom game settings          mergeSections(SettingsFile.readCustomGameSettings(gameId, view))      } 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 {      private fun readFile(          ini: File?,          isCustomGame: Boolean, -        view: SettingsActivityView? +        view: SettingsActivityView? = null      ): HashMap<String, SettingSection?> {          val sections: HashMap<String, SettingSection?> = SettingsSectionMap()          var reader: BufferedReader? = null @@ -74,10 +74,13 @@ object SettingsFile {          return sections      } -    fun readFile(fileName: String, view: SettingsActivityView): HashMap<String, SettingSection?> { +    fun readFile(fileName: String, view: SettingsActivityView?): HashMap<String, SettingSection?> {          return readFile(getSettingsFile(fileName), false, view)      } +    fun readFile(fileName: String): HashMap<String, SettingSection?> = +        readFile(getSettingsFile(fileName), false) +      /**       * Reads a given .ini file from disk and returns it as a HashMap of SettingSections, themselves       * effectively a HashMap of key/value settings. If unsuccessful, outputs an error telling why it @@ -88,7 +91,7 @@ object SettingsFile {       */      fun readCustomGameSettings(          gameId: String, -        view: SettingsActivityView +        view: SettingsActivityView?      ): HashMap<String, SettingSection?> {          return readFile(getCustomGameSettingsFile(gameId), true, view)      } 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  import org.yuzu.yuzu_emu.databinding.ActivityMainBinding  import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding  import org.yuzu.yuzu_emu.features.settings.model.Settings +import org.yuzu.yuzu_emu.features.settings.model.SettingsViewModel  import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity  import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile  import org.yuzu.yuzu_emu.fragments.MessageDialogFragment @@ -48,6 +49,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {      private val homeViewModel: HomeViewModel by viewModels()      private val gamesViewModel: GamesViewModel by viewModels() +    private val settingsViewModel: SettingsViewModel by viewModels()      override var themeId: Int = 0 @@ -55,6 +57,8 @@ class MainActivity : AppCompatActivity(), ThemeProvider {          val splashScreen = installSplashScreen()          splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady } +        settingsViewModel.settings.loadSettings() +          ThemeHelper.setTheme(this)          super.onCreate(savedInstanceState)  | 
