Фикс: серые миниатюры в медиа-галерее — BlurHash декодирование превью

preview содержит формат UUID::blurhash, а парсился как raw Base64 → серый фон.
Теперь сначала пробует BlurHash.decode, fallback на Base64.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-10 14:57:52 +05:00
parent 3485cb458f
commit 6124a52c84

View File

@@ -893,10 +893,19 @@ fun OtherProfileScreen(
}
val previewBitmap = remember(media.preview) {
if (media.preview.isNotBlank()) {
// Extract blurhash from "UUID::blurhash" format
val blurhash = if (media.preview.contains("::")) {
media.preview.substringAfter("::")
} else {
media.preview
}
runCatching {
val bytes = Base64.decode(media.preview, Base64.DEFAULT)
BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
com.vanniktech.blurhash.BlurHash.decode(blurhash, 32, 32)
}.getOrNull()
?: runCatching {
val bytes = Base64.decode(media.preview, Base64.DEFAULT)
BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
}.getOrNull()
} else null
}
val isLoaded = resolvedBitmap != null || model != null