From 0c6bea656739a41eef521883b2fcb85733ec5c3d Mon Sep 17 00:00:00 2001 From: Oliver Wiese <oliver.wiese@fu-berlin.de> Date: Thu, 8 Apr 2021 18:14:51 +0200 Subject: [PATCH] update folder flags --- enzevalos_iphone/MailHandler.swift | 4 ++-- enzevalos_iphone/New Group/Mailbot.swift | 2 +- enzevalos_iphone/OutgoingMail.swift | 2 +- enzevalos_iphone/mail/IncomingMail.swift | 2 +- enzevalos_iphone/persistentData/FolderRecord.swift | 6 ++++++ .../persistentData/PersistentDataProvider.swift | 8 ++++---- enzevalos_iphone/persistentData/Properties.swift | 3 ++- 7 files changed, 17 insertions(+), 10 deletions(-) diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift index a378c3ed..06e01d27 100644 --- a/enzevalos_iphone/MailHandler.swift +++ b/enzevalos_iphone/MailHandler.swift @@ -192,7 +192,7 @@ return } // Create folder on local - let folderProperty = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: folder) + let folderProperty = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: folder, flags: 0) dataProvider.importNewData(from: [folderProperty], completionHandler: { error in guard error == nil else { // TODO: Error handling @@ -634,7 +634,7 @@ if let folders = array { var properities = [FolderProperties]() for folder in folders { - let property = FolderProperties(delimiter: String(Character(UnicodeScalar(UInt8(folder.delimiter)))), uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: folder.path, parent: nil, children: nil) + let property = FolderProperties(delimiter: String(Character(UnicodeScalar(UInt8(folder.delimiter)))), uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: folder.path, parent: nil, children: nil, flags: Int16(folder.flags.rawValue)) properities.append(property) } self.dataProvider.importNewData(from: properities, completionHandler: completion) diff --git a/enzevalos_iphone/New Group/Mailbot.swift b/enzevalos_iphone/New Group/Mailbot.swift index df9cf6f5..a9497e5c 100644 --- a/enzevalos_iphone/New Group/Mailbot.swift +++ b/enzevalos_iphone/New Group/Mailbot.swift @@ -107,7 +107,7 @@ class Mailbot { maxUID: nil, minUID: nil, path: UserManager.backendInboxFolderPath, - parent: nil, children: nil), + parent: nil, children: nil, flags: 0), body: body, attachments: [], signatureState: SignatureState.ValidSignature.rawValue, diff --git a/enzevalos_iphone/OutgoingMail.swift b/enzevalos_iphone/OutgoingMail.swift index b6c6482a..2e375ff1 100644 --- a/enzevalos_iphone/OutgoingMail.swift +++ b/enzevalos_iphone/OutgoingMail.swift @@ -9,7 +9,7 @@ import Foundation class OutgoingMail { - static var OutgoingFolder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "OutgoingMails", parent: nil, children: nil) + static var OutgoingFolder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "OutgoingMails", parent: nil, children: nil, flags: Int16(MCOIMAPFolderFlag.sentMail.rawValue)) private var encAddresses: [MCOAddress] = [] var encReceivers: [MCOAddress] { diff --git a/enzevalos_iphone/mail/IncomingMail.swift b/enzevalos_iphone/mail/IncomingMail.swift index e4a41b6a..ea851187 100644 --- a/enzevalos_iphone/mail/IncomingMail.swift +++ b/enzevalos_iphone/mail/IncomingMail.swift @@ -264,7 +264,7 @@ class IncomingMail { let ccProperties = cc.map{$0.export()} let bccProperties = bcc.map{$0.export()} - let folder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: self.folderPath) + let folder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: self.folderPath, flags: 0) let from = self.from?.export() ?? nil let sigState = self.cryptoObj?.signatureState.rawValue ?? 0 var sigKey: PublicKeyProperties? = nil diff --git a/enzevalos_iphone/persistentData/FolderRecord.swift b/enzevalos_iphone/persistentData/FolderRecord.swift index 06db902e..c2c54ffa 100644 --- a/enzevalos_iphone/persistentData/FolderRecord.swift +++ b/enzevalos_iphone/persistentData/FolderRecord.swift @@ -37,6 +37,7 @@ extension FolderRecord { if let minUID = properties.minUID { self.minUID = minUID } + self.flags = properties.flags path = properties.path } @@ -55,6 +56,10 @@ extension FolderRecord { var type: FolderType { let flags = MCOIMAPFolderFlag(rawValue: Int(self.flags)) + print(flags.isEmpty) + print(self.flags) + // TODO: IS EMPTY! WHY? Do we add this information? + print(flags) if flags.contains(MCOIMAPFolderFlag.drafts) { return .Draft } @@ -95,6 +100,7 @@ extension FolderRecord: DisplayFolder { } var icon: Image { + print(self.path) var label = "folder" switch type { case .Archive: diff --git a/enzevalos_iphone/persistentData/PersistentDataProvider.swift b/enzevalos_iphone/persistentData/PersistentDataProvider.swift index c70a4aaa..da2877a7 100644 --- a/enzevalos_iphone/persistentData/PersistentDataProvider.swift +++ b/enzevalos_iphone/persistentData/PersistentDataProvider.swift @@ -64,7 +64,7 @@ class PersistentDataProvider { let addr1 = AddressProperties(email: "vic@example.com") let addr2 = AddressProperties(email: "alex@example.com") let addrs = [addr1, addr2] - let folder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Inbox") + let folder = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Inbox", flags: 0) var msgs = [MailProperties]() for i in 1...10 { @@ -76,8 +76,8 @@ class PersistentDataProvider { } private static var proxyFolders: [FolderProperties] { - let f1 = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Folder1") - let f2 = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Folder2") + let f1 = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Folder1", flags: 0) + let f2 = FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: "Folder2", flags: 0) return [f1,f2] } @@ -489,7 +489,7 @@ class PersistentDataProvider { return } guard let toFolder = generateFetchedFolderResultsController(folderpath: to, moc: rfc.managedObjectContext).fetchedObjects?.first else { - importNewData(from: [FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: to, parent: nil, children: nil)], completionHandler: {_ in self.moveMails(with: uids, from: from, to: to)}) + importNewData(from: [FolderProperties(delimiter: nil, uidValidity: nil, lastUpdate: nil, maxUID: nil, minUID: nil, path: to, parent: nil, children: nil, flags: 0)], completionHandler: {_ in self.moveMails(with: uids, from: from, to: to)}) moveMails(with: uids, from: from, to: to) return } diff --git a/enzevalos_iphone/persistentData/Properties.swift b/enzevalos_iphone/persistentData/Properties.swift index c65db191..e5c1ba52 100644 --- a/enzevalos_iphone/persistentData/Properties.swift +++ b/enzevalos_iphone/persistentData/Properties.swift @@ -87,7 +87,8 @@ struct FolderProperties: DataPropertyProtocol{ let path: String var parent: [FolderProperties]? - var children: [FolderProperties]? + var children: [FolderProperties]? + var flags: Int16 func update(m: Any) -> Bool { if let folder = m as? FolderRecord { -- GitLab