Skip to content

Commit d10e215

Browse files
Use getUpToDateFolder() instead of findLatest() in RefreshController
1 parent 5ecba51 commit d10e215

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/RefreshController.kt

+19-21
Original file line numberDiff line numberDiff line change
@@ -388,19 +388,18 @@ class RefreshController @Inject constructor(
388388
apiResponse.data?.messages?.let { messages ->
389389

390390
writeBlocking {
391-
findLatest(folder)?.let { latestFolder ->
392-
val isConversationMode = localSettings.threadMode == ThreadMode.CONVERSATION
393-
val allImpactedThreads = createThreads(scope, latestFolder, messages, isConversationMode).also { threads ->
394-
val foldersIds = (if (isConversationMode) threads.map { it.folderId }.toSet() else emptySet()) + folder.id
395-
foldersIds.forEach { refreshUnreadCount(id = it, realm = this) }
396-
}
397-
SentryLog.d(
398-
"Realm",
399-
"Saved Messages: ${latestFolder.displayForSentry()} | ${latestFolder.messages.count()}",
400-
)
401-
402-
impactedThreads += allImpactedThreads.filter { it.folderId == folder.id }
391+
val upToDateFolder = getUpToDateFolder(folder.id)
392+
val isConversationMode = localSettings.threadMode == ThreadMode.CONVERSATION
393+
val allImpactedThreads = createThreads(scope, upToDateFolder, messages, isConversationMode).also { threads ->
394+
val foldersIds = (if (isConversationMode) threads.map { it.folderId }.toSet() else emptySet()) + folder.id
395+
foldersIds.forEach { refreshUnreadCount(id = it, realm = this) }
403396
}
397+
SentryLog.d(
398+
"Realm",
399+
"Saved Messages: ${upToDateFolder.displayForSentry()} | ${upToDateFolder.messages.count()}",
400+
)
401+
402+
impactedThreads += allImpactedThreads.filter { it.folderId == folder.id }
404403
}
405404
}
406405

@@ -725,16 +724,15 @@ class RefreshController @Inject constructor(
725724

726725
private fun Realm.sendSentryOrphans(folder: Folder, previousCursor: String? = null) {
727726
writeBlocking {
728-
findLatest(folder)?.let {
729-
SentryDebug.sendOrphanMessages(previousCursor, folder = it).also { orphans ->
730-
MessageController.deleteMessages(appContext, mailbox, orphans, realm = this)
731-
}
732-
SentryDebug.sendOrphanThreads(previousCursor, folder = it, realm = this).also { orphans ->
733-
orphans.forEach { thread ->
734-
MessageController.deleteMessages(appContext, mailbox, thread.messages, realm = this)
735-
}
736-
delete(orphans)
727+
val upToDateFolder = getUpToDateFolder(folder.id)
728+
SentryDebug.sendOrphanMessages(previousCursor, folder = upToDateFolder).also { orphans ->
729+
MessageController.deleteMessages(appContext, mailbox, orphans, realm = this)
730+
}
731+
SentryDebug.sendOrphanThreads(previousCursor, folder = upToDateFolder, realm = this).also { orphans ->
732+
orphans.forEach { thread ->
733+
MessageController.deleteMessages(appContext, mailbox, thread.messages, realm = this)
737734
}
735+
delete(orphans)
738736
}
739737
}
740738
}

0 commit comments

Comments
 (0)