Skip to content

Commit

Permalink
fix: Revert "refactor: Decouple impacted folder ids computation in th…
Browse files Browse the repository at this point in the history
…read algo deleted uids handling (#2203)"

This reverts commit 2c0e144, reversing
changes made to b3da5cb.
  • Loading branch information
KevinBoulongne committed Mar 5, 2025
1 parent 1245c24 commit a6ab0fd
Showing 1 changed file with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -452,32 +452,38 @@ class RefreshController @Inject constructor(

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

message.threads.forEach { thread ->
for (thread in message.threads.asReversed()) {
scope.ensureActive()

val isSuccess = thread.messages.remove(message)
if (isSuccess) threads += thread
val numberOfMessagesInFolder = thread.messages.count { it.folderId == thread.folderId }

// We need to save this value because the Thread could be deleted before we use this `folderId`.
val threadFolderId = thread.folderId

if (numberOfMessagesInFolder == 0) {
threads.removeIf { it.uid == thread.uid }
delete(thread)
} else if (isSuccess) {
threads += thread
} else {
continue
}

impactedFolders.add(threadFolderId)
}

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

threads.forEach { thread ->
threads.forEach {
scope.ensureActive()

impactedFolders.add(thread.folderId)

if (thread.getNumberOfMessagesInFolder() == 0) {
delete(thread)
} else {
thread.recomputeThread(realm = this)
}
it.recomputeThread(realm = this)
}

return impactedFolders
}

private fun Thread.getNumberOfMessagesInFolder() = messages.count { message -> message.folderId == folderId }
//endregion

//region Updated Messages
Expand Down

0 comments on commit a6ab0fd

Please sign in to comment.