Skip to content

Commit

Permalink
fix order of queued messages
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
mahibi committed Sep 13, 2024
1 parent 569be55 commit dc32a4a
Showing 1 changed file with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -79,9 +80,6 @@ class MessageInputViewModel @Inject constructor(
mediaPlayerManager.handleOnStop()
}

companion object {
private val TAG = MessageInputViewModel::class.java.simpleName
}
val getAudioFocusChange: LiveData<AudioFocusRequestManager.ManagerState>
get() = audioFocusRequestManager.getManagerState

Expand Down Expand Up @@ -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,
Expand All @@ -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
}
}

0 comments on commit dc32a4a

Please sign in to comment.