Better name for the Blurhash class to avoid mistakes with its field.
This commit is contained in:
@@ -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)
|
||||
|
||||
+2
-2
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user