android: Fix incorrect assumption for driver installation validation
The driver was assumed to be installed at this point before I made a refactor. Now we just check if the copy operation was successful and delete the file if it fails.
This commit is contained in:
parent
56e5d99684
commit
82c845dc2f
|
@ -26,6 +26,7 @@ import org.yuzu.yuzu_emu.model.DriverViewModel
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.utils.FileUtil
|
import org.yuzu.yuzu_emu.utils.FileUtil
|
||||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||||
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
class DriverManagerFragment : Fragment() {
|
class DriverManagerFragment : Fragment() {
|
||||||
|
@ -154,29 +155,29 @@ class DriverManagerFragment : Fragment() {
|
||||||
R.string.installing_driver,
|
R.string.installing_driver,
|
||||||
false
|
false
|
||||||
) {
|
) {
|
||||||
|
val driverPath =
|
||||||
|
"${GpuDriverHelper.driverStoragePath}/${FileUtil.getFilename(result)}"
|
||||||
|
val driverFile = File(driverPath)
|
||||||
|
|
||||||
// Ignore file exceptions when a user selects an invalid zip
|
// Ignore file exceptions when a user selects an invalid zip
|
||||||
try {
|
try {
|
||||||
GpuDriverHelper.copyDriverToInternalStorage(result)
|
if (!GpuDriverHelper.copyDriverToInternalStorage(result)) {
|
||||||
|
throw IOException("Driver failed validation!")
|
||||||
|
}
|
||||||
} catch (_: IOException) {
|
} catch (_: IOException) {
|
||||||
|
if (driverFile.exists()) {
|
||||||
|
driverFile.delete()
|
||||||
|
}
|
||||||
return@newInstance getString(R.string.select_gpu_driver_error)
|
return@newInstance getString(R.string.select_gpu_driver_error)
|
||||||
}
|
}
|
||||||
|
|
||||||
val driverData = GpuDriverHelper.customDriverData
|
val driverData = GpuDriverHelper.getMetadataFromZip(driverFile)
|
||||||
if (driverData.name == null) {
|
|
||||||
return@newInstance getString(R.string.select_gpu_driver_error)
|
|
||||||
}
|
|
||||||
|
|
||||||
val driverInList =
|
val driverInList =
|
||||||
driverViewModel.driverList.value.firstOrNull { it.second == driverData }
|
driverViewModel.driverList.value.firstOrNull { it.second == driverData }
|
||||||
if (driverInList != null) {
|
if (driverInList != null) {
|
||||||
return@newInstance getString(R.string.driver_already_installed)
|
return@newInstance getString(R.string.driver_already_installed)
|
||||||
} else {
|
} else {
|
||||||
driverViewModel.addDriver(
|
driverViewModel.addDriver(Pair(driverPath, driverData))
|
||||||
Pair(
|
|
||||||
"${GpuDriverHelper.driverStoragePath}/${FileUtil.getFilename(result)}",
|
|
||||||
driverData
|
|
||||||
)
|
|
||||||
)
|
|
||||||
driverViewModel.setNewDriverInstalled(true)
|
driverViewModel.setNewDriverInstalled(true)
|
||||||
}
|
}
|
||||||
return@newInstance Any()
|
return@newInstance Any()
|
||||||
|
|
Loading…
Reference in a new issue