mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
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:
+2
-2
@@ -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
|
||||||
|
|||||||
+7
-1
@@ -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,
|
||||||
|
|||||||
+7
-1
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user