mirror of
				https://git.h3cjp.net/H3cJP/citra.git
				synced 2025-10-31 06:55:03 +00:00 
			
		
		
		
	android: Load settings at the start of each activity
This commit is contained in:
		
							parent
							
								
									e804f24519
								
							
						
					
					
						commit
						0078f97227
					
				|  | @ -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 | ||||
|  |  | |||
|  | @ -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)) | ||||
|     } | ||||
|  |  | |||
|  | @ -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) | ||||
|     } | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue