From 88871fca70b785caf8eb50f77301711668429ddc Mon Sep 17 00:00:00 2001 From: rushiiMachine <33725716+rushiiMachine@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:56:24 -0800 Subject: [PATCH] fix: use internal app cache by default Some devices don't support external cache for some reason, just default to internal cache instead. --- .../aliucord/manager/manager/PathManager.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/aliucord/manager/manager/PathManager.kt b/app/src/main/kotlin/com/aliucord/manager/manager/PathManager.kt index 82494af..498cb8e 100644 --- a/app/src/main/kotlin/com/aliucord/manager/manager/PathManager.kt +++ b/app/src/main/kotlin/com/aliucord/manager/manager/PathManager.kt @@ -8,7 +8,10 @@ import java.io.File /** * A central place to provide all system paths that are used. */ -class PathManager(context: Context) { +class PathManager( + private val context: Context, + private val prefs: PreferencesManager, +) { /** * The Aliucord folder in which plugins/settings/themes are stored. * Standard path: `~/Aliucord` @@ -30,14 +33,16 @@ class PathManager(context: Context) { */ val keystoreFile = aliucordDir.resolve("ks.keystore") - private val externalCacheDir = context.externalCacheDir - ?: throw Error("External cache directory isn't supported") - /** - * Standard path: `~/Android/data/com.aliucord.manager/cache` + * Use the external cache directory (`/storage/emulated/0/Android/data/com.aliucord.manager/cache`) + * when dev mode or preserving APKs is enabled. Otherwise, default to internal app cache. */ - private val discordApkCache = externalCacheDir - .resolve("discord") + private val externalCacheDir + get() = when (prefs.devMode || prefs.keepPatchedApks) { + false -> context.cacheDir + true -> context.externalCacheDir + ?: throw Error("External cache directory isn't supported") + } /** * Delete the entire cache dir and recreate it. @@ -52,7 +57,8 @@ class PathManager(context: Context) { /** * Create a new subfolder in the Discord APK cache for a specific version. */ - fun discordApkVersionCache(version: Int): File = discordApkCache + fun discordApkVersionCache(version: Int): File = externalCacheDir + .resolve("discord") .resolve(version.toString()) .apply { mkdirs() }