|
|
@ -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) { |
|
|
return@newInstance getString(R.string.select_gpu_driver_error) |
|
|
|
|
|
|
|
|
if (driverFile.exists()) { |
|
|
|
|
|
driverFile.delete() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
val driverData = GpuDriverHelper.customDriverData |
|
|
|
|
|
if (driverData.name == null) { |
|
|
|
|
|
return@newInstance getString(R.string.select_gpu_driver_error) |
|
|
return@newInstance getString(R.string.select_gpu_driver_error) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val driverData = GpuDriverHelper.getMetadataFromZip(driverFile) |
|
|
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( |
|
|
|
|
|
Pair( |
|
|
|
|
|
"${GpuDriverHelper.driverStoragePath}/${FileUtil.getFilename(result)}", |
|
|
|
|
|
driverData |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
driverViewModel.addDriver(Pair(driverPath, driverData)) |
|
|
driverViewModel.setNewDriverInstalled(true) |
|
|
driverViewModel.setNewDriverInstalled(true) |
|
|
} |
|
|
} |
|
|
return@newInstance Any() |
|
|
return@newInstance Any() |
|
|
|