From 1fcf63abe59193b7239b735ee31247a8b4b2b5fa Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 9 Nov 2022 17:24:56 +0100 Subject: [PATCH] Makes sendMessage suspend --- .../io/element/android/x/matrix/room/MatrixRoom.kt | 11 ++++++++--- .../android/x/matrix/timeline/MatrixTimeline.kt | 7 ++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt index 19ff07ddaf..21db524861 100644 --- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt +++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt @@ -9,9 +9,7 @@ import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.withContext -import org.matrix.rustcomponents.sdk.Room -import org.matrix.rustcomponents.sdk.SlidingSyncRoom -import org.matrix.rustcomponents.sdk.UpdateSummary +import org.matrix.rustcomponents.sdk.* class MatrixRoom( private val slidingSyncUpdateFlow: Flow, @@ -69,4 +67,11 @@ class MatrixRoom( } } + suspend fun sendMessage(message: String): Result = withContext(coroutineDispatchers.io) { + val transactionId = genTransactionId() + val content = messageEventContentFromMarkdown(message) + runCatching { + room.send(content, transactionId) + } + } } \ No newline at end of file diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt index 0af2f40259..94bf358beb 100644 --- a/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt +++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt @@ -43,7 +43,7 @@ class MatrixTimeline( private fun diffFlow(): Flow { return room.timelineDiff() - .chunk(100) + .chunk(30) .onEach { timelineDiffs -> updateTimelineItems { timelineDiffs.onEach { @@ -119,10 +119,7 @@ class MatrixTimeline( * @param message markdown message */ suspend fun sendMessage(message: String): Result { - val transactionId = genTransactionId() - val content = messageEventContentFromMarkdown(message) - room.send(content, transactionId) - return Result.success(Unit) + return matrixRoom.sendMessage(message) } } \ No newline at end of file