Skip to content

Commit 555f73d

Browse files
committed
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: #2882 Signed-off-by: Joe Groocock <[email protected]>
1 parent 48a4a9d commit 555f73d

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ class MessagesFlowNode @AssistedInject constructor(
324324
is TimelineItemImageContent -> {
325325
val navTarget = NavTarget.MediaViewer(
326326
mediaInfo = MediaInfo(
327-
name = event.content.body,
327+
name = event.content.filename ?: event.content.body,
328328
mimeType = event.content.mimeType,
329329
formattedFileSize = event.content.formattedFileSize,
330330
fileExtension = event.content.fileExtension
@@ -358,7 +358,7 @@ class MessagesFlowNode @AssistedInject constructor(
358358
is TimelineItemVideoContent -> {
359359
val navTarget = NavTarget.MediaViewer(
360360
mediaInfo = MediaInfo(
361-
name = event.content.body,
361+
name = event.content.filename ?: event.content.body,
362362
mimeType = event.content.mimeType,
363363
formattedFileSize = event.content.formattedFileSize,
364364
fileExtension = event.content.fileExtension

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ fun TimelineItemImageView(
8181
modifier = Modifier
8282
.fillMaxWidth()
8383
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
84-
model = MediaRequestData(content.preferredMediaSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
84+
model = MediaRequestData(
85+
source = content.preferredMediaSource,
86+
kind = MediaRequestData.Kind.File(
87+
body = content.filename ?: content.body,
88+
mimeType = content.mimeType,
89+
),
90+
),
8591
contentScale = ContentScale.Fit,
8692
alignment = Alignment.Center,
8793
contentDescription = description,

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVideoView.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,13 @@ fun TimelineItemVideoView(
8888
modifier = Modifier
8989
.fillMaxWidth()
9090
.then(if (isLoaded) Modifier.background(Color.White) else Modifier),
91-
model = MediaRequestData(content.thumbnailSource, MediaRequestData.Kind.File(content.body, content.mimeType)),
91+
model = MediaRequestData(
92+
source = content.thumbnailSource,
93+
kind = MediaRequestData.Kind.File(
94+
body = content.filename ?: content.body,
95+
mimeType = content.mimeType
96+
)
97+
),
9298
contentScale = ContentScale.Fit,
9399
alignment = Alignment.Center,
94100
contentDescription = description,

0 commit comments

Comments
 (0)