From dc32a4a2f11a060f15f632c94ced258f8999582d Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 13 Sep 2024 15:26:22 +0200 Subject: [PATCH] fix order of queued messages add delay between sending of queued messages to increase the chance they are received on server in the correct order. This is not the best solution though as it blocks the UI a bit so may have to be improved! Signed-off-by: Marcel Hibbe --- .../talk/chat/viewmodels/MessageInputViewModel.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt index a3e641b52..e74ebfc15 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt @@ -29,6 +29,7 @@ import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.update +import java.lang.Thread.sleep import javax.inject.Inject class MessageInputViewModel @Inject constructor( @@ -79,9 +80,6 @@ class MessageInputViewModel @Inject constructor( mediaPlayerManager.handleOnStop() } - companion object { - private val TAG = MessageInputViewModel::class.java.simpleName - } val getAudioFocusChange: LiveData get() = audioFocusRequestManager.getManagerState @@ -252,6 +250,7 @@ class MessageInputViewModel @Inject constructor( dataStore.saveMessageQueue(roomToken, null) // empties the queue while (queue.size > 0) { val msg = queue.removeFirst() + sleep(DELAY_BETWEEN_QUEUED_MESSAGES) sendChatMessage( roomToken, credentials, @@ -272,4 +271,9 @@ class MessageInputViewModel @Inject constructor( messageQueue = dataStore.getMessageQueue(roomToken) _messageQueueSizeFlow.tryEmit(messageQueue.size) } + + companion object { + private val TAG = MessageInputViewModel::class.java.simpleName + private const val DELAY_BETWEEN_QUEUED_MESSAGES: Long = 100 + } }