compare cached messages with new ones asap, continue only if necessary

This commit is contained in:
tibbi 2020-12-21 21:13:32 +01:00
parent 189e60ac32
commit 2f6ca40953
2 changed files with 9 additions and 4 deletions

View File

@ -104,7 +104,12 @@ class ThreadActivity : SimpleActivity() {
private fun setupThread() {
val privateCursor = getMyContactsCursor()?.loadInBackground()
ensureBackgroundThread {
val cachedMessagesCode = messages.hashCode()
messages = getMessages(threadId)
if (messages.hashCode() == cachedMessagesCode) {
return@ensureBackgroundThread
}
setupParticipants()
// check if no participant came from a privately stored contact in Simple Contacts
@ -139,6 +144,10 @@ class ThreadActivity : SimpleActivity() {
participants.add(contact)
}
messages.chunked(30).forEach { currentMessages ->
messagesDB.insertMessages(*currentMessages.toTypedArray())
}
setupAttachmentSizes()
setupAdapter()
runOnUiThread {

View File

@ -105,10 +105,6 @@ fun Context.getMessages(threadId: Long): ArrayList<Message> {
messages = messages.filter { it.participants.isNotEmpty() }
.sortedWith(compareBy<Message> { it.date }.thenBy { it.id }).toMutableList() as ArrayList<Message>
messages.chunked(30).forEach { currentMessages ->
messagesDB.insertMessages(*currentMessages.toTypedArray())
}
return messages
}