Skip to content

Commit c3bbac1

Browse files
authored
Let the SDK set a correct extension to downloaded file by providing a full mimetype when a base mimetype is available. (#4830)
Fixes #4803
1 parent 0cd4385 commit c3bbac1

File tree

1 file changed

+9
-1
lines changed
  • libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/media

1 file changed

+9
-1
lines changed

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/media/RustMediaLoader.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,15 @@ class RustMediaLoader(
7272
val mediaFile = innerClient.getMediaFile(
7373
mediaSource = mediaSource,
7474
filename = filename,
75-
mimeType = mimeType?.takeIf { MimeTypes.hasSubtype(it) } ?: MimeTypes.OctetStream,
75+
mimeType = when {
76+
mimeType == null -> MimeTypes.OctetStream
77+
MimeTypes.hasSubtype(mimeType) -> mimeType
78+
// Fallback to a default mime type based on the main type, so that the SDK can create a file with the correct extension.
79+
mimeType == MimeTypes.Images -> MimeTypes.Jpeg
80+
mimeType == MimeTypes.Videos -> MimeTypes.Mp4
81+
mimeType == MimeTypes.Audio -> MimeTypes.Mp3
82+
else -> MimeTypes.OctetStream
83+
},
7684
useCache = useCache,
7785
tempDir = cacheDirectory.path,
7886
)

0 commit comments

Comments
 (0)