From 6a696bfa398c291a4ce59e24ade7d3c3b04abe2b Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 15 May 2023 14:09:43 -0400 Subject: [PATCH] Adds a 5 minute expiration time for ImageErrors --- .../amethyst/ui/components/RobohashAsyncImage.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RobohashAsyncImage.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RobohashAsyncImage.kt index 06519d830..b5d08d167 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RobohashAsyncImage.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RobohashAsyncImage.kt @@ -16,6 +16,7 @@ import coil.compose.AsyncImage import coil.compose.AsyncImagePainter import coil.compose.rememberAsyncImagePainter import coil.size.Size +import java.util.Date @Composable fun RobohashAsyncImage( @@ -58,7 +59,7 @@ fun RobohashAsyncImage( ) } -var imageErrors = setOf() +var imageErrors = mapOf() @Composable fun RobohashFallbackAsyncImage( @@ -73,7 +74,9 @@ fun RobohashFallbackAsyncImage( colorFilter: ColorFilter? = null, filterQuality: FilterQuality = DrawScope.DefaultFilterQuality ) { - if (imageErrors.contains(model)) { + val errorCache = remember(imageErrors) { imageErrors[model] } + + if (errorCache != null && (Date().time / 1000) - errorCache < (60 * 5)) { RobohashAsyncImage( robot = robot, robotSize = robotSize, @@ -110,7 +113,7 @@ fun RobohashFallbackAsyncImage( colorFilter = colorFilter, filterQuality = filterQuality, onError = { - imageErrors = imageErrors + model + imageErrors = imageErrors + Pair(model, Date().time / 1000) } ) }