Use MSC2530 filename when loading media
In the case of captioned images, the `body` of the event is the caption, and is ill suited to be a filename. Often the caption can be prohibitively long, causing the media to fail to load in some cases. Fixes: https://github.com/element-hq/element-x-android/issues/2882 Signed-off-by: Joe Groocock <me@frebib.net>
This commit is contained in:
parent
ac79fed2af
commit
5820e06e0b
3 changed files with 16 additions and 4 deletions
|
|
@ -324,7 +324,7 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
is TimelineItemImageContent -> {
|
is TimelineItemImageContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = NavTarget.MediaViewer(
|
||||||
mediaInfo = MediaInfo(
|
mediaInfo = MediaInfo(
|
||||||
name = event.content.body,
|
name = event.content.filename ?: event.content.body,
|
||||||
mimeType = event.content.mimeType,
|
mimeType = event.content.mimeType,
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
formattedFileSize = event.content.formattedFileSize,
|
||||||
fileExtension = event.content.fileExtension
|
fileExtension = event.content.fileExtension
|
||||||
|
|
@ -358,7 +358,7 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
is TimelineItemVideoContent -> {
|
is TimelineItemVideoContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = NavTarget.MediaViewer(
|
||||||
mediaInfo = MediaInfo(
|
mediaInfo = MediaInfo(
|
||||||
name = event.content.body,
|
name = event.content.filename ?: event.content.body,
|
||||||
mimeType = event.content.mimeType,
|
mimeType = event.content.mimeType,
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
formattedFileSize = event.content.formattedFileSize,
|
||||||
fileExtension = event.content.fileExtension
|
fileExtension = event.content.fileExtension
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,13 @@ fun TimelineItemImageView(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
|
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
|
||||||
model = MediaRequestData(content.preferredMediaSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
|
model = MediaRequestData(
|
||||||
|
source = content.preferredMediaSource,
|
||||||
|
kind = MediaRequestData.Kind.File(
|
||||||
|
body = content.filename ?: content.body,
|
||||||
|
mimeType = content.mimeType,
|
||||||
|
),
|
||||||
|
),
|
||||||
contentScale = ContentScale.Fit,
|
contentScale = ContentScale.Fit,
|
||||||
alignment = Alignment.Center,
|
alignment = Alignment.Center,
|
||||||
contentDescription = description,
|
contentDescription = description,
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,13 @@ fun TimelineItemVideoView(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
|
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
|
||||||
model = MediaRequestData(content.thumbnailSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
|
model = MediaRequestData(
|
||||||
|
source = content.thumbnailSource,
|
||||||
|
kind = MediaRequestData.Kind.File(
|
||||||
|
body = content.filename ?: content.body,
|
||||||
|
mimeType = content.mimeType
|
||||||
|
)
|
||||||
|
),
|
||||||
contentScale = ContentScale.Fit,
|
contentScale = ContentScale.Fit,
|
||||||
alignment = Alignment.Center,
|
alignment = Alignment.Center,
|
||||||
contentDescription = description,
|
contentDescription = description,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue