mirror of
https://github.com/nextcloud/talk-android.git
synced 2024-11-25 14:35:40 +03:00
Merge pull request #4193 from nextcloud/bugfix/4168/doNotPullMessagesWhenOfflineOrPaused
do not try to pull chat messages when offline or paused
This commit is contained in:
commit
9976767591
1 changed files with 22 additions and 20 deletions
|
@ -199,29 +199,31 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||
val networkParams = Bundle()
|
||||
|
||||
while (true) {
|
||||
if (!monitor.isOnline.first() || itIsPaused) Thread.sleep(HALF_SECOND)
|
||||
if (!monitor.isOnline.first() || itIsPaused) {
|
||||
Thread.sleep(HALF_SECOND)
|
||||
} else {
|
||||
// sync database with server (This is a long blocking call because long polling (lookIntoFuture) is set)
|
||||
networkParams.putSerializable(BundleKeys.KEY_FIELD_MAP, fieldMap)
|
||||
|
||||
// sync database with server (This is a long blocking call because long polling (lookIntoFuture) is set)
|
||||
networkParams.putSerializable(BundleKeys.KEY_FIELD_MAP, fieldMap)
|
||||
val resultsFromSync = sync(networkParams)
|
||||
if (!resultsFromSync.isNullOrEmpty()) {
|
||||
val chatMessages = resultsFromSync.map(ChatMessageEntity::asModel)
|
||||
val pair = Pair(true, chatMessages)
|
||||
_messageFlow.emit(pair)
|
||||
}
|
||||
|
||||
val resultsFromSync = sync(networkParams)
|
||||
if (!resultsFromSync.isNullOrEmpty()) {
|
||||
val chatMessages = resultsFromSync.map(ChatMessageEntity::asModel)
|
||||
val pair = Pair(true, chatMessages)
|
||||
_messageFlow.emit(pair)
|
||||
updateUiForLastCommonRead()
|
||||
|
||||
val newestMessage = chatDao.getNewestMessageId(internalConversationId).toInt()
|
||||
|
||||
// update field map vars for next cycle
|
||||
fieldMap = getFieldMap(
|
||||
lookIntoFuture = true,
|
||||
includeLastKnown = false,
|
||||
setReadMarker = true,
|
||||
lastKnown = newestMessage
|
||||
)
|
||||
}
|
||||
|
||||
updateUiForLastCommonRead()
|
||||
|
||||
val newestMessage = chatDao.getNewestMessageId(internalConversationId).toInt()
|
||||
|
||||
// update field map vars for next cycle
|
||||
fieldMap = getFieldMap(
|
||||
lookIntoFuture = true,
|
||||
includeLastKnown = false,
|
||||
setReadMarker = true,
|
||||
lastKnown = newestMessage
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue