diff options
author | Charles Lombardo <clombardo169@gmail.com> | 2023-05-11 16:57:13 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2023-06-03 00:06:01 -0700 |
commit | bafd4d344f455c4f4a790a73766b9beaecd6a2f0 (patch) | |
tree | 4144c29cd4ec10a7241e5bb601d90bad6dde2232 /src | |
parent | aa957df0dcd01afeac41afe7a7246f57b61acedc (diff) |
android: Check if cached games are valid
Fixes bug when you close yuzu, delete games, and reopen to an instant crash.
Diffstat (limited to 'src')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt index 5a35b14c9..d4de7a09a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt @@ -3,6 +3,8 @@ package org.yuzu.yuzu_emu.model +import android.net.Uri +import androidx.documentfile.provider.DocumentFile import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -44,7 +46,13 @@ class GamesViewModel : ViewModel() { if (storedGames!!.isNotEmpty()) { val deserializedGames = mutableSetOf<Game>() storedGames.forEach { - deserializedGames.add(Json.decodeFromString(it)) + val game: Game = Json.decodeFromString(it) + val gameExists = + DocumentFile.fromSingleUri(YuzuApplication.appContext, Uri.parse(game.path)) + ?.exists() + if (gameExists == true) { + deserializedGames.add(game) + } } setGames(deserializedGames.toList()) } |