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) 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() = private fun setInsets() =
ViewCompat.setOnApplyWindowInsetsListener( ViewCompat.setOnApplyWindowInsetsListener(
binding.root 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() { fun reloadDriverData() {
_areDriversLoading.value = true _areDriversLoading.value = true
driverData = GpuDriverHelper.getDrivers() driverData = GpuDriverHelper.getDrivers()
.filterNot { driversToDelete.contains(it.first) }
.toMutableList()
updateDriverList() updateDriverList()
_areDriversLoading.value = false _areDriversLoading.value = false
} }
@ -167,26 +169,25 @@ class DriverViewModel : ViewModel() {
fun onCloseDriverManager(game: Game?) { fun onCloseDriverManager(game: Game?) {
_isDeletingDrivers.value = true _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