From f62c98601696cbffc80eeed1a6d94da7a2160b9a Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 12 Dec 2023 08:50:11 -0500 Subject: [PATCH] Improving sizes of blurhashes --- .../ui/components/ZoomableContentView.kt | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 0c0c9cec7..194f22a76 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -489,13 +490,31 @@ private fun AddedImageFeatures( verifiedModifier: Modifier, showImage: MutableState ) { + val ratio = remember { + aspectRatio(content.dim) + } + if (!showImage.value) { - ImageUrlWithDownloadButton(content.uri, showImage) + if (content.blurhash != null && ratio != null) { + DisplayBlurHash(content.blurhash, content.description, ContentScale.Crop, myModifier.aspectRatio(ratio)) + IconButton( + modifier = Modifier.size(Size75dp), + onClick = { showImage.value = true } + ) { + DownloadForOfflineIcon(Size75dp, Color.White) + } + } else { + ImageUrlWithDownloadButton(content.uri, showImage) + } } else { when (painter.value) { null, is AsyncImagePainter.State.Loading -> { if (content.blurhash != null) { - DisplayBlurHash(content.blurhash, content.description, contentScale, myModifier) + if (ratio != null) { + DisplayBlurHash(content.blurhash, content.description, ContentScale.Crop, myModifier.aspectRatio(ratio)) + } else { + DisplayBlurHash(content.blurhash, content.description, contentScale, myModifier) + } } else { FlowRow() { DisplayUrlWithLoadingSymbol(content) @@ -529,9 +548,13 @@ private fun AddedImageFeatures( verifiedModifier: Modifier, showImage: MutableState ) { + val ratio = remember { + aspectRatio(content.dim) + } + if (!showImage.value) { - if (content.blurhash != null) { - DisplayBlurHash(content.blurhash, content.description, contentScale, myModifier) + if (content.blurhash != null && ratio != null) { + DisplayBlurHash(content.blurhash, content.description, ContentScale.Crop, myModifier.aspectRatio(ratio)) IconButton( modifier = Modifier.size(Size75dp), onClick = { showImage.value = true } @@ -549,7 +572,11 @@ private fun AddedImageFeatures( when (painter.value) { null, is AsyncImagePainter.State.Loading -> { if (content.blurhash != null) { - DisplayBlurHash(content.blurhash, content.description, contentScale, myModifier) + if (ratio != null) { + DisplayBlurHash(content.blurhash, content.description, ContentScale.Crop, myModifier.aspectRatio(ratio)) + } else { + DisplayBlurHash(content.blurhash, content.description, contentScale, myModifier) + } } else { FlowRow(Modifier.fillMaxWidth()) { DisplayUrlWithLoadingSymbol(content)