MediaViewer: improve actions (save on disk and share)

This commit is contained in:
ganfra 2023-06-02 20:13:17 +02:00
parent 89d4b81f80
commit fa63ed1faf
7 changed files with 22 additions and 15 deletions

View file

@ -36,5 +36,5 @@ interface MatrixMediaLoader {
* @param mimeType: optional mime type
* @return a [Result] of [MediaFile]
*/
suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile>
suspend fun downloadMediaFile(source: MediaSource, mimeType: String?, body: String?): Result<MediaFile>
}

View file

@ -59,13 +59,13 @@ class RustMediaLoader(
}
}
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> =
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?, body: String?): Result<MediaFile> =
withContext(dispatchers.io) {
runCatching {
source.toRustMediaSource().use { mediaSource ->
val mediaFile = innerClient.getMediaFile(
mediaSource = mediaSource,
body = null,
body = body,
mimeType = mimeType ?: "application/octet-stream"
)
RustMediaFile(mediaFile)

View file

@ -44,7 +44,7 @@ class FakeMediaLoader : MatrixMediaLoader {
}
}
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> {
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?, body: String?): Result<MediaFile> {
delay(FAKE_DELAY_IN_MS)
return if (shouldFail) {
Result.failure(RuntimeException())