Media: introduce a Kind.File so we don't use In-memory bytearray in timeline

This commit is contained in:
ganfra 2023-06-15 12:00:40 +02:00
parent 7aca5c904c
commit e817afef84
5 changed files with 94 additions and 28 deletions

View file

@ -54,9 +54,11 @@ import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import io.element.android.features.messages.impl.media.local.LocalMedia
import io.element.android.features.messages.impl.media.local.LocalMediaView
import io.element.android.features.messages.impl.media.local.MediaInfo
import io.element.android.features.messages.impl.media.local.rememberLocalMediaViewState
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.isLoading
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.designsystem.components.button.BackButton
import io.element.android.libraries.designsystem.components.dialogs.RetryDialog
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
@ -140,6 +142,7 @@ fun MediaViewerView(
mediaInfo = state.mediaInfo,
)
ThumbnailView(
mediaInfo = state.mediaInfo,
thumbnailSource = state.thumbnailSource,
showThumbnail = showThumbnail,
)
@ -211,6 +214,7 @@ private fun MediaViewerTopBar(
private fun ThumbnailView(
thumbnailSource: MediaSource?,
showThumbnail: Boolean,
mediaInfo: MediaInfo,
) {
AnimatedVisibility(
visible = showThumbnail,
@ -223,7 +227,7 @@ private fun ThumbnailView(
) {
val mediaRequestData = MediaRequestData(
source = thumbnailSource,
kind = MediaRequestData.Kind.Content
kind = MediaRequestData.Kind.File(mediaInfo.name, mediaInfo.mimeType)
)
AsyncImage(
modifier = Modifier.fillMaxSize(),

View file

@ -43,7 +43,7 @@ fun TimelineItemImageView(
modifier = modifier
) {
BlurHashAsyncImage(
model = MediaRequestData(content.mediaSource, MediaRequestData.Kind.Content),
model = MediaRequestData(content.mediaSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
blurHash = content.blurhash,
modifier = Modifier.fillMaxSize(),
contentScale = ContentScale.Fit,

View file

@ -49,7 +49,7 @@ fun TimelineItemVideoView(
contentAlignment = Alignment.Center,
) {
BlurHashAsyncImage(
model = MediaRequestData(content.thumbnailSource, MediaRequestData.Kind.Content),
model = MediaRequestData(content.thumbnailSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
blurHash = content.blurHash,
modifier = Modifier.fillMaxSize(),
contentScale = ContentScale.Fit,