Browse Source

[android,ui] driver: fixed uninstall and refresh upon install

pull/3750/head
xbzk 1 week ago
parent
commit
0c097614ef
  1. 11
      src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt
  2. 35
      src/android/app/src/main/java/org/yuzu/yuzu_emu/model/DriverViewModel.kt

11
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt

@ -142,6 +142,17 @@ class DriverManagerFragment : Fragment() {
driverViewModel.onCloseDriverManager(args.game)
}
override fun onResume() {
super.onResume()
refreshDriverList()
}
private fun refreshDriverList() {
driverViewModel.reloadDriverData()
(binding.listDrivers.adapter as? DriverAdapter)
?.replaceList(driverViewModel.driverList.value)
}
private fun setInsets() =
ViewCompat.setOnApplyWindowInsetsListener(
binding.root

35
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/DriverViewModel.kt

@ -71,6 +71,8 @@ class DriverViewModel : ViewModel() {
fun reloadDriverData() {
_areDriversLoading.value = true
driverData = GpuDriverHelper.getDrivers()
.filterNot { driversToDelete.contains(it.first) }
.toMutableList()
updateDriverList()
_areDriversLoading.value = false
}
@ -167,26 +169,25 @@ class DriverViewModel : ViewModel() {
fun onCloseDriverManager(game: Game?) {
_isDeletingDrivers.value = true
updateDriverNameForGame(game)
if (game == null) {
NativeConfig.saveGlobalConfig()
} else {
NativeConfig.savePerGameConfig()
NativeConfig.unloadPerGameConfig()
NativeConfig.reloadGlobalConfig()
}
try {
updateDriverNameForGame(game)
if (game == null) {
NativeConfig.saveGlobalConfig()
} else {
NativeConfig.savePerGameConfig()
NativeConfig.unloadPerGameConfig()
NativeConfig.reloadGlobalConfig()
}
viewModelScope.launch {
withContext(Dispatchers.IO) {
driversToDelete.forEach {
val driver = File(it)
if (driver.exists()) {
driver.delete()
}
driversToDelete.forEach {
val driver = File(it)
if (driver.exists()) {
driver.delete()
}
driversToDelete.clear()
_isDeletingDrivers.value = false
}
driversToDelete.clear()
} finally {
_isDeletingDrivers.value = false
}
}

Loading…
Cancel
Save