Skip to content

Commit

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

This reverts commit 67713c6.
  • Loading branch information
KevinBoulongne committed Mar 5, 2025
1 parent e0d60d8 commit d0b2b5e
Showing 1 changed file with 12 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -452,38 +452,32 @@ class RefreshController @Inject constructor(

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

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

val isSuccess = thread.messages.remove(message)
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)
if (isSuccess) threads += thread
}

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

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

it.recomputeThread(realm = this)
impactedFolders.add(thread.folderId)

if (thread.getNumberOfMessagesInFolder() == 0) {
delete(thread)
} else {
thread.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 d0b2b5e

Please sign in to comment.