diff --git a/MailCore/Cache/MailboxManager/MailboxManager+Message.swift b/MailCore/Cache/MailboxManager/MailboxManager+Message.swift index 734c4ddf5..a286d4c26 100644 --- a/MailCore/Cache/MailboxManager/MailboxManager+Message.swift +++ b/MailCore/Cache/MailboxManager/MailboxManager+Message.swift @@ -386,7 +386,7 @@ public extension MailboxManager { var threadsToUpdate = Set() let existingThreads = Array(realm.objects(Thread.self) - .where { $0.messageIds.containsAny(in: message.linkedUids) /* && $0.isConversationThread == true */ }) + .where { $0.messageIds.containsAny(in: message.linkedUids) }) if let newThread = createNewThreadIfRequired( for: message, @@ -418,6 +418,11 @@ public extension MailboxManager { } private func createNewThreadIfRequired(for message: Message, folder: Folder, existingThreads: [Thread]) -> Thread? { + guard folder.role != .draft else { + let thread = message.toThread().detached() + folder.threads.insert(thread) + return thread + } guard !existingThreads.contains(where: { $0.folder == folder }) else { return nil } let thread = message.toThread().detached() diff --git a/MailCore/Models/Thread.swift b/MailCore/Models/Thread.swift index 79797e1f4..8b4a8faaf 100644 --- a/MailCore/Models/Thread.swift +++ b/MailCore/Models/Thread.swift @@ -133,7 +133,7 @@ public class Thread: Object, Decodable, Identifiable { let shouldAddMessage: Bool switch folderRole { case .draft: - shouldAddMessage = newMessage.isDraft + shouldAddMessage = false case .trash: shouldAddMessage = newMessage.inTrash default: