From 617c8788d59651d0dcd67e36e062de8ff272ae7b Mon Sep 17 00:00:00 2001 From: Luca Auer Date: Tue, 9 Dec 2025 10:29:30 +0100 Subject: [PATCH] feat(coil): Configure Coil-cache to no longer leak memory (#1031) Configure Coil-cache to no longer leak memory, causing the app to slow down and eventually crash This configures the memory caching in the way presented by the official documentation at https://coil-kt.github.io/coil/image_loaders/ --- app/src/main/java/eu/kanade/tachiyomi/App.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 3316e4d20..0841ec609 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -20,6 +20,9 @@ import androidx.work.Configuration import androidx.work.WorkManager import coil3.ImageLoader import coil3.SingletonImageLoader +import coil3.disk.DiskCache +import coil3.disk.directory +import coil3.memory.MemoryCache import coil3.network.okhttp.OkHttpNetworkFetcherFactory import coil3.request.allowRgb565 import coil3.request.crossfade @@ -266,6 +269,19 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor // SY <-- } + memoryCache( + MemoryCache.Builder() + .maxSizePercent(context, 0.25) + .build(), + ) + + diskCache( + DiskCache.Builder() + .directory(context.cacheDir.resolve("image_cache")) + .maxSizePercent(0.02) + .build(), + ) + crossfade((300 * this@App.animatorDurationScale).toInt()) allowRgb565(DeviceUtil.isLowRamDevice(this@App)) if (networkPreferences.verboseLogging().get()) logger(DebugLogger())