Better name for the Blurhash class to avoid mistakes with its field.

This commit is contained in:
Vitor Pamplona
2025-04-03 20:49:44 -04:00
parent ed860454a7
commit 2b7cfa5560
3 changed files with 12 additions and 14 deletions
@@ -31,18 +31,16 @@ import coil3.key.Keyer
import coil3.request.Options
import com.vitorpamplona.amethyst.commons.blurhash.BlurHashDecoder
class Blurhash(
data class BlurhashWrapper(
val blurhash: String,
)
@Stable
class BlurHashFetcher(
private val options: Options,
private val data: Blurhash,
private val data: BlurhashWrapper,
) : Fetcher {
override suspend fun fetch(): FetchResult {
checkNotInMainThread()
val hash = data.blurhash
val bitmap = BlurHashDecoder.decodeKeepAspectRatio(hash, 25) ?: throw Exception("Unable to convert Blurhash $data")
@@ -54,17 +52,17 @@ class BlurHashFetcher(
)
}
object Factory : Fetcher.Factory<Blurhash> {
object Factory : Fetcher.Factory<BlurhashWrapper> {
override fun create(
data: Blurhash,
data: BlurhashWrapper,
options: Options,
imageLoader: ImageLoader,
): Fetcher = BlurHashFetcher(options, data)
}
object BKeyer : Keyer<Blurhash> {
object BKeyer : Keyer<BlurhashWrapper> {
override fun key(
data: Blurhash,
data: BlurhashWrapper,
options: Options,
): String = data.blurhash
}
@@ -26,7 +26,7 @@ import android.media.MediaDataSource
import android.media.MediaMetadataRetriever
import android.util.Log
import com.vitorpamplona.amethyst.commons.blurhash.toBlurhash
import com.vitorpamplona.amethyst.service.Blurhash
import com.vitorpamplona.amethyst.service.BlurhashWrapper
import com.vitorpamplona.quartz.nip01Core.core.toHexKey
import com.vitorpamplona.quartz.nip94FileMetadata.tags.DimensionTag
import com.vitorpamplona.quartz.utils.sha256.sha256
@@ -38,7 +38,7 @@ class FileHeader(
val hash: String,
val size: Int,
val dim: DimensionTag?,
val blurHash: Blurhash?,
val blurHash: BlurhashWrapper?,
) {
class UnableToDownload(
val fileUrl: String,
@@ -79,13 +79,13 @@ class FileHeader(
val opt = BitmapFactory.Options()
opt.inPreferredConfig = Bitmap.Config.ARGB_8888
val mBitmap = BitmapFactory.decodeByteArray(data, 0, data.size, opt)
Pair(Blurhash(mBitmap.toBlurhash()), DimensionTag(mBitmap.width, mBitmap.height))
Pair(BlurhashWrapper(mBitmap.toBlurhash()), DimensionTag(mBitmap.width, mBitmap.height))
} else if (mimeType?.startsWith("video/") == true) {
val mediaMetadataRetriever = MediaMetadataRetriever()
mediaMetadataRetriever.setDataSource(ByteArrayMediaDataSource(data))
val newDim = mediaMetadataRetriever.prepareDimFromVideo() ?: dimPrecomputed
val blurhash = mediaMetadataRetriever.getThumbnail()?.toBlurhash()?.let { Blurhash(it) }
val blurhash = mediaMetadataRetriever.getThumbnail()?.toBlurhash()?.let { BlurhashWrapper(it) }
if (newDim?.hasSize() == true) {
Pair(blurhash, newDim)
@@ -79,7 +79,7 @@ import com.vitorpamplona.amethyst.commons.richtext.MediaUrlContent
import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage
import com.vitorpamplona.amethyst.commons.richtext.MediaUrlVideo
import com.vitorpamplona.amethyst.model.MediaAspectRatioCache
import com.vitorpamplona.amethyst.service.Blurhash
import com.vitorpamplona.amethyst.service.BlurhashWrapper
import com.vitorpamplona.amethyst.service.playback.composable.VideoView
import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled
import com.vitorpamplona.amethyst.ui.actions.InformationDialog
@@ -637,7 +637,7 @@ fun DisplayBlurHash(
if (blurhash == null) return
AsyncImage(
model = Blurhash(blurhash),
model = BlurhashWrapper(blurhash),
contentDescription = description,
contentScale = contentScale,
modifier = modifier,