From ca9f94eaac42d7de103155e9639f4f6e6e2fdafb Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 24 Jan 2023 23:09:03 -0300 Subject: [PATCH] Logging failures to reduce the amount of network calls, --- .../amethyst/model/UrlCachedPreviewer.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/UrlCachedPreviewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/UrlCachedPreviewer.kt index 86adec1e6..e4deb076c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/UrlCachedPreviewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/UrlCachedPreviewer.kt @@ -15,6 +15,7 @@ import kotlinx.coroutines.launch object UrlCachedPreviewer { val cache = ConcurrentHashMap() + val failures = ConcurrentHashMap() fun previewInfo(url: String, callback: IUrlPreviewCallback? = null) { cache[url]?.let { @@ -22,6 +23,11 @@ object UrlCachedPreviewer { return } + failures[url]?.let { + callback?.onFailed(it) + return + } + val scope = CoroutineScope(Job() + Dispatchers.IO) scope.launch { BahaUrlPreview(url, object : IUrlPreviewCallback { @@ -31,6 +37,7 @@ object UrlCachedPreviewer { } override fun onFailed(throwable: Throwable) { + failures.put(url, throwable) callback?.onFailed(throwable) } }).fetchUrlPreview() @@ -53,8 +60,10 @@ object UrlCachedPreviewer { // Preload Images? Isn't this too heavy? } else if (videoExtension.matcher(removedParamsFromUrl).matches()) { // Do nothing for now. - } else { + } else if (isValidURL(removedParamsFromUrl)) { previewInfo(it) + } else { + previewInfo("https://${it}") } } }