From 973cfd24fa7b0d278192f6dfbdf166a950b1b111 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 10 Oct 2025 10:56:25 -0400 Subject: [PATCH] Creates our own Coil Logger to minimize trash stacks in the logs --- .../service/images/ImageLoaderSetup.kt | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/images/ImageLoaderSetup.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/images/ImageLoaderSetup.kt index e4fae3728..46edbff4e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/images/ImageLoaderSetup.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/images/ImageLoaderSetup.kt @@ -39,8 +39,9 @@ import coil3.network.okhttp.asNetworkClient import coil3.request.Options import coil3.size.Precision import coil3.svg.SvgDecoder -import coil3.util.DebugLogger +import coil3.util.Logger import com.vitorpamplona.amethyst.isDebug +import com.vitorpamplona.quartz.utils.Log import okhttp3.Call class ImageLoaderSetup { @@ -53,7 +54,7 @@ class ImageLoaderSetup { } val svgFactory = SvgDecoder.Factory() - val debugLogger = if (isDebug) DebugLogger() else null + val debugLogger = if (isDebug) MyDebugLogger() else null @OptIn(DelicateCoilApi::class) fun setup( @@ -83,6 +84,31 @@ class ImageLoaderSetup { } } +/** + * Copied from Coil to block the printout of stack traces + */ +class MyDebugLogger( + override var minLevel: Logger.Level = Logger.Level.Debug, +) : Logger { + override fun log( + tag: String, + level: Logger.Level, + message: String?, + throwable: Throwable?, + ) { + val msg = message ?: throwable?.message + if (msg != null) { + when (level) { + Logger.Level.Error -> Log.e(tag, msg) + Logger.Level.Verbose -> Log.d(tag, msg) + Logger.Level.Debug -> Log.d(tag, msg) + Logger.Level.Info -> Log.i(tag, msg) + Logger.Level.Warn -> Log.w(tag, msg) + } + } + } +} + /** * Copied from Coil to allow networkClient to be a function of the url. * So that Tor and non Tor clients can be used.