summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Charles Lombardo2023-10-13 15:08:39 -0400
committerGravatar GitHub2023-10-13 15:08:39 -0400
commit4a9240599a21c78b957e3a738d2282d4ffa30129 (patch)
treed9472976c091428048b3da2fe93a885194caa9f7 /src
parentImprovement in Directory Path Detection for Shortcuts (#11749) (diff)
parentandroid: Fix incorrect assumption for driver installation validation (diff)
downloadyuzu-4a9240599a21c78b957e3a738d2282d4ffa30129.tar.gz
yuzu-4a9240599a21c78b957e3a738d2282d4ffa30129.tar.xz
yuzu-4a9240599a21c78b957e3a738d2282d4ffa30129.zip
Merge pull request #11773 from t895/manager-fix
android: Fix incorrect assumption for driver installation validation
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt
index 10b1d3547..df21d74b2 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt
@@ -26,6 +26,7 @@ import org.yuzu.yuzu_emu.model.DriverViewModel
26import org.yuzu.yuzu_emu.model.HomeViewModel 26import org.yuzu.yuzu_emu.model.HomeViewModel
27import org.yuzu.yuzu_emu.utils.FileUtil 27import org.yuzu.yuzu_emu.utils.FileUtil
28import org.yuzu.yuzu_emu.utils.GpuDriverHelper 28import org.yuzu.yuzu_emu.utils.GpuDriverHelper
29import java.io.File
29import java.io.IOException 30import java.io.IOException
30 31
31class DriverManagerFragment : Fragment() { 32class DriverManagerFragment : Fragment() {
@@ -154,29 +155,29 @@ class DriverManagerFragment : Fragment() {
154 R.string.installing_driver, 155 R.string.installing_driver,
155 false 156 false
156 ) { 157 ) {
158 val driverPath =
159 "${GpuDriverHelper.driverStoragePath}/${FileUtil.getFilename(result)}"
160 val driverFile = File(driverPath)
161
157 // Ignore file exceptions when a user selects an invalid zip 162 // Ignore file exceptions when a user selects an invalid zip
158 try { 163 try {
159 GpuDriverHelper.copyDriverToInternalStorage(result) 164 if (!GpuDriverHelper.copyDriverToInternalStorage(result)) {
165 throw IOException("Driver failed validation!")
166 }
160 } catch (_: IOException) { 167 } catch (_: IOException) {
168 if (driverFile.exists()) {
169 driverFile.delete()
170 }
161 return@newInstance getString(R.string.select_gpu_driver_error) 171 return@newInstance getString(R.string.select_gpu_driver_error)
162 } 172 }
163 173
164 val driverData = GpuDriverHelper.customDriverData 174 val driverData = GpuDriverHelper.getMetadataFromZip(driverFile)
165 if (driverData.name == null) {
166 return@newInstance getString(R.string.select_gpu_driver_error)
167 }
168
169 val driverInList = 175 val driverInList =
170 driverViewModel.driverList.value.firstOrNull { it.second == driverData } 176 driverViewModel.driverList.value.firstOrNull { it.second == driverData }
171 if (driverInList != null) { 177 if (driverInList != null) {
172 return@newInstance getString(R.string.driver_already_installed) 178 return@newInstance getString(R.string.driver_already_installed)
173 } else { 179 } else {
174 driverViewModel.addDriver( 180 driverViewModel.addDriver(Pair(driverPath, driverData))
175 Pair(
176 "${GpuDriverHelper.driverStoragePath}/${FileUtil.getFilename(result)}",
177 driverData
178 )
179 )
180 driverViewModel.setNewDriverInstalled(true) 181 driverViewModel.setNewDriverInstalled(true)
181 } 182 }
182 return@newInstance Any() 183 return@newInstance Any()