Skip to content

Commit a6ab0fd

Browse files
fix: Revert "refactor: Decouple impacted folder ids computation in thread algo deleted uids handling (#2203)"
This reverts commit 2c0e144, reversing changes made to b3da5cb.
1 parent 1245c24 commit a6ab0fd

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

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

+18-12
Original file line numberDiff line numberDiff line change
@@ -452,32 +452,38 @@ class RefreshController @Inject constructor(
452452

453453
val message = MessageController.getMessage(uid = shortUid.toLongUid(folderId), realm = this) ?: return@forEach
454454

455-
message.threads.forEach { thread ->
455+
for (thread in message.threads.asReversed()) {
456456
scope.ensureActive()
457457

458458
val isSuccess = thread.messages.remove(message)
459-
if (isSuccess) threads += thread
459+
val numberOfMessagesInFolder = thread.messages.count { it.folderId == thread.folderId }
460+
461+
// We need to save this value because the Thread could be deleted before we use this `folderId`.
462+
val threadFolderId = thread.folderId
463+
464+
if (numberOfMessagesInFolder == 0) {
465+
threads.removeIf { it.uid == thread.uid }
466+
delete(thread)
467+
} else if (isSuccess) {
468+
threads += thread
469+
} else {
470+
continue
471+
}
472+
473+
impactedFolders.add(threadFolderId)
460474
}
461475

462476
MessageController.deleteMessage(appContext, mailbox, message, realm = this)
463477
}
464478

465-
threads.forEach { thread ->
479+
threads.forEach {
466480
scope.ensureActive()
467481

468-
impactedFolders.add(thread.folderId)
469-
470-
if (thread.getNumberOfMessagesInFolder() == 0) {
471-
delete(thread)
472-
} else {
473-
thread.recomputeThread(realm = this)
474-
}
482+
it.recomputeThread(realm = this)
475483
}
476484

477485
return impactedFolders
478486
}
479-
480-
private fun Thread.getNumberOfMessagesInFolder() = messages.count { message -> message.folderId == folderId }
481487
//endregion
482488

483489
//region Updated Messages

0 commit comments

Comments
 (0)