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

View File

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