From 631ab21dd047a64f97d3634543b0dc21fe632119 Mon Sep 17 00:00:00 2001 From: Ishan09811 <156402647+Ishan09811@users.noreply.github.com> Date: Sun, 30 Mar 2025 01:43:47 +0530 Subject: [PATCH] delete game cache when deleting game --- .../main/java/net/rpcs3/ui/games/GamesScreen.kt | 15 ++++++++++++--- app/src/main/java/net/rpcs3/utils/FileUtil.kt | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) 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) {