diff --git a/app/src/main/java/net/rpcs3/ui/games/GamesScreen.kt b/app/src/main/java/net/rpcs3/ui/games/GamesScreen.kt index 88f30fbc..e82db919 100644 --- a/app/src/main/java/net/rpcs3/ui/games/GamesScreen.kt +++ b/app/src/main/java/net/rpcs3/ui/games/GamesScreen.kt @@ -63,9 +63,11 @@ import net.rpcs3.ProgressRepository import net.rpcs3.R import net.rpcs3.RPCS3 import net.rpcs3.RPCS3Activity +import net.rpcs3.utils.FileUtil import net.rpcs3.dialogs.AlertDialogQueue import java.io.File import kotlin.concurrent.thread +import kotlin.text.substringAfterLast private fun withAlpha(color: Color, alpha: Float): Color { return Color( @@ -131,10 +133,17 @@ fun GameItem(game: Game) { if (path.exists()) { GameRepository.remove(game) path.deleteRecursively() + if (!FileUtil.deleteCache(context, game.info.path.substringAfterLast("/"))) { + AlertDialogQueue.showDialog( + title = "Unexpected Error", + message = "Failed to delete game cache", + confirmText = "Close", + dismissText = "" + ) + } } - - // FIXME: delete cache - }) + } + ) } } diff --git a/app/src/main/java/net/rpcs3/utils/FileUtil.kt b/app/src/main/java/net/rpcs3/utils/FileUtil.kt index 0483ccd5..96d4ed42 100644 --- a/app/src/main/java/net/rpcs3/utils/FileUtil.kt +++ b/app/src/main/java/net/rpcs3/utils/FileUtil.kt @@ -214,6 +214,10 @@ object FileUtil { val paths = uri.pathSegments return paths.size == 2 && "tree" == paths[0] } + + fun deleteCache(ctx: Context, gameId: String): Boolean { + return File(ctx.getExternalFilesDir(null)!!, "cache/cache/$gameId").deleteRecursively() + } } class SimpleDocument(val filename: String, val mimeType: String, val uri: Uri) {