From 31d5e7395f58ac447debe49968f349dd88be87bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 Oct 2023 08:19:30 +0000 Subject: [PATCH] Update dependency org.matrix.rustcomponents:sdk-android to v0.1.62 (#1562) * Update dependency org.matrix.rustcomponents:sdk-android to v0.1.62 * Add `sendVoiceMessage()` API from https://github.com/matrix-org/matrix-rust-sdk/pull/2697 * Fix other breaking changes --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Marco Romano --- gradle/libs.versions.toml | 2 +- .../libraries/matrix/api/room/MatrixRoom.kt | 7 +++++++ .../libraries/matrix/impl/RustMatrixClient.kt | 6 ++---- .../matrix/impl/room/RustMatrixRoom.kt | 17 +++++++++++++++-- .../matrix/test/room/FakeMatrixRoom.kt | 7 +++++++ 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9f9ae6ddc3..de9ee16942 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -143,7 +143,7 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } molecule-runtime = { module = "app.cash.molecule:molecule-runtime", version.ref = "molecule" } timber = "com.jakewharton.timber:timber:5.0.1" -matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.1.61" +matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.1.62" matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" } matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" } sqldelight-driver-android = { module = "com.squareup.sqldelight:android-driver", version.ref = "sqldelight" } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt index e14138f837..746f8cead8 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt @@ -185,5 +185,12 @@ interface MatrixRoom : Closeable { */ suspend fun endPoll(pollStartId: EventId, text: String): Result + suspend fun sendVoiceMessage( + file: File, + audioInfo: AudioInfo, + waveform: List, + progressCallback: ProgressCallback? + ): Result + override fun close() = destroy() } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt index 8b857d8076..f557a0fc0f 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt @@ -298,10 +298,9 @@ class RustMatrixClient constructor( runCatching { client.setDisplayName(displayName) } } - @OptIn(ExperimentalUnsignedTypes::class) override suspend fun uploadAvatar(mimeType: String, data: ByteArray): Result = withContext(sessionDispatcher) { - runCatching { client.uploadAvatar(mimeType, data.toUByteArray().toList()) } + runCatching { client.uploadAvatar(mimeType, data) } } override suspend fun removeAvatar(): Result = @@ -382,10 +381,9 @@ class RustMatrixClient constructor( } } - @OptIn(ExperimentalUnsignedTypes::class) override suspend fun uploadMedia(mimeType: String, data: ByteArray, progressCallback: ProgressCallback?): Result = withContext(sessionDispatcher) { runCatching { - client.uploadMedia(mimeType, data.toUByteArray().toList(), progressCallback?.toProgressWatcher()) + client.uploadMedia(mimeType, data, progressCallback?.toProgressWatcher()) } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt index 2fd9760b21..87cc742549 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt @@ -373,10 +373,9 @@ class RustMatrixRoom( } } - @OptIn(ExperimentalUnsignedTypes::class) override suspend fun updateAvatar(mimeType: String, data: ByteArray): Result = withContext(roomDispatcher) { runCatching { - innerRoom.uploadAvatar(mimeType, data.toUByteArray().toList(), null) + innerRoom.uploadAvatar(mimeType, data, null) } } @@ -465,6 +464,20 @@ class RustMatrixRoom( } } + override suspend fun sendVoiceMessage( + file: File, + audioInfo: AudioInfo, + waveform: List, + progressCallback: ProgressCallback?, + ): Result = sendAttachment(listOf(file)) { + innerRoom.sendVoiceMessage( + url = file.path, + audioInfo = audioInfo.map(), + waveform = waveform.map { it.toUShort() }, + progressWatcher = progressCallback?.toProgressWatcher(), + ) + } + private suspend fun sendAttachment(files: List, handle: () -> SendAttachmentJoinHandle): Result { return runCatching { MediaUploadHandlerImpl(files, handle()) diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt index 4934867b55..7549522c0c 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt @@ -361,6 +361,13 @@ class FakeMatrixRoom( return endPollResult } + override suspend fun sendVoiceMessage( + file: File, + audioInfo: AudioInfo, + waveform: List, + progressCallback: ProgressCallback? + ): Result = fakeSendMedia(progressCallback) + fun givenLeaveRoomError(throwable: Throwable?) { this.leaveRoomError = throwable }