Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18 (#5182)

* Update dependency org.matrix.rustcomponents:sdk-android to v25.8.18

* Fix broken API changes:
- The send queue usage is now mandatory.
- The media upload progress now comes back in the send queue state (this still hasn't been applied to the UI in the timeline).

* Update screenshots
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
renovate[bot] 2025-08-18 16:41:14 +02:00 committed by GitHub
parent c6ca70b7b1
commit 90ad9616c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 85 additions and 147 deletions

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.mediaupload.api
import android.net.Uri
import io.element.android.libraries.core.extensions.flatMapCatching
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.ProgressCallback
import io.element.android.libraries.matrix.api.media.MediaUploadHandler
import io.element.android.libraries.matrix.api.room.JoinedRoom
import io.element.android.libraries.matrix.api.timeline.Timeline
@ -45,12 +44,10 @@ class MediaSender @Inject constructor(
mediaUploadInfo: MediaUploadInfo,
caption: String?,
formattedCaption: String?,
progressCallback: ProgressCallback?,
inReplyToEventId: EventId?,
): Result<Unit> {
return room.liveTimeline.sendMedia(
uploadInfo = mediaUploadInfo,
progressCallback = progressCallback,
caption = caption,
formattedCaption = formattedCaption,
inReplyToEventId = inReplyToEventId,
@ -63,7 +60,6 @@ class MediaSender @Inject constructor(
mimeType: String,
caption: String? = null,
formattedCaption: String? = null,
progressCallback: ProgressCallback? = null,
inReplyToEventId: EventId? = null,
mediaOptimizationConfig: MediaOptimizationConfig,
): Result<Unit> {
@ -77,7 +73,6 @@ class MediaSender @Inject constructor(
.flatMapCatching { info ->
room.liveTimeline.sendMedia(
uploadInfo = info,
progressCallback = progressCallback,
caption = caption,
formattedCaption = formattedCaption,
inReplyToEventId = inReplyToEventId,
@ -90,7 +85,6 @@ class MediaSender @Inject constructor(
uri: Uri,
mimeType: String,
waveForm: List<Float>,
progressCallback: ProgressCallback? = null,
inReplyToEventId: EventId? = null,
): Result<Unit> {
return preProcessor
@ -109,7 +103,6 @@ class MediaSender @Inject constructor(
)
room.liveTimeline.sendMedia(
uploadInfo = newInfo,
progressCallback = progressCallback,
caption = null,
formattedCaption = null,
inReplyToEventId = inReplyToEventId,
@ -131,7 +124,6 @@ class MediaSender @Inject constructor(
private suspend fun Timeline.sendMedia(
uploadInfo: MediaUploadInfo,
progressCallback: ProgressCallback?,
caption: String?,
formattedCaption: String?,
inReplyToEventId: EventId?,
@ -144,7 +136,6 @@ class MediaSender @Inject constructor(
imageInfo = uploadInfo.imageInfo,
caption = caption,
formattedCaption = formattedCaption,
progressCallback = progressCallback,
inReplyToEventId = inReplyToEventId,
)
}
@ -155,7 +146,6 @@ class MediaSender @Inject constructor(
videoInfo = uploadInfo.videoInfo,
caption = caption,
formattedCaption = formattedCaption,
progressCallback = progressCallback,
inReplyToEventId = inReplyToEventId,
)
}
@ -165,7 +155,6 @@ class MediaSender @Inject constructor(
audioInfo = uploadInfo.audioInfo,
caption = caption,
formattedCaption = formattedCaption,
progressCallback = progressCallback,
inReplyToEventId = inReplyToEventId,
)
}
@ -174,7 +163,6 @@ class MediaSender @Inject constructor(
file = uploadInfo.file,
audioInfo = uploadInfo.audioInfo,
waveform = uploadInfo.waveform,
progressCallback = progressCallback,
inReplyToEventId = inReplyToEventId,
)
}
@ -184,7 +172,6 @@ class MediaSender @Inject constructor(
fileInfo = uploadInfo.fileInfo,
caption = caption,
formattedCaption = formattedCaption,
progressCallback = progressCallback,
inReplyToEventId = inReplyToEventId,
)
}

View file

@ -11,7 +11,6 @@ import android.net.Uri
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.ProgressCallback
import io.element.android.libraries.matrix.api.media.FileInfo
import io.element.android.libraries.matrix.api.media.ImageInfo
import io.element.android.libraries.matrix.api.room.JoinedRoom
@ -50,10 +49,9 @@ class MediaSenderTest {
FileInfo,
String?,
String?,
ProgressCallback?,
EventId?,
Result<FakeMediaUploadHandler>,
> { _, _, _, _, _, _ ->
> { _, _, _, _, _ ->
Result.success(FakeMediaUploadHandler())
}
},
@ -69,7 +67,7 @@ class MediaSenderTest {
@Test
fun `given an attachment when sending it the Room will call sendMedia`() = runTest {
val sendImageResult =
lambdaRecorder { _: File, _: File?, _: ImageInfo, _: String?, _: String?, _: ProgressCallback?, _: EventId? ->
lambdaRecorder { _: File, _: File?, _: ImageInfo, _: String?, _: String?, _: EventId? ->
Result.success(FakeMediaUploadHandler())
}
val room = FakeJoinedRoom(
@ -102,7 +100,7 @@ class MediaSenderTest {
givenImageResult()
}
val sendImageResult =
lambdaRecorder { _: File, _: File?, _: ImageInfo, _: String?, _: String?, _: ProgressCallback?, _: EventId? ->
lambdaRecorder { _: File, _: File?, _: ImageInfo, _: String?, _: String?, _: EventId? ->
Result.failure<FakeMediaUploadHandler>(Exception())
}
val room = FakeJoinedRoom(
@ -125,7 +123,7 @@ class MediaSenderTest {
@Test
fun `given a cancellation in the media upload when sending the job is cancelled`() = runTest(StandardTestDispatcher()) {
val sendFileResult =
lambdaRecorder<File, FileInfo, String?, String?, ProgressCallback?, EventId?, Result<FakeMediaUploadHandler>> { _, _, _, _, _, _ ->
lambdaRecorder<File, FileInfo, String?, String?, EventId?, Result<FakeMediaUploadHandler>> { _, _, _, _, _ ->
Result.success(FakeMediaUploadHandler())
}
val room = FakeJoinedRoom(