diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift index a378c3edab020c4e0f0ded4ece2b7338f3615e23..06e01d27e3bf04e1b5487d5356fe0e77b39e1c3a 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 df9cf6f5e11fcb567c8f2c42abea65677db8cbcd..a9497e5c19e38c2d029541ed7154818a8a7b6183 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 b6c6482a91fadad0fbcdc234e0286080d0f21290..2e375ff1c7e37c0619206bda7f5ff0d8e877f6f7 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 e4a41b6aff5620f1a68331346c71a490ba145b5b..ea85118724aaa56e67f29c7ecc113f53d20cb022 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 06db902ecc33a4271253d0f55324c174bfd226fd..c2c54ffadaff223469441ef56eef16be82fe8e68 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 c70a4aaa491fc7e12f26ea40f1a5b3677fedbe21..da2877a7f5175ee57430a076e3c04c282c10c774 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 c65db191c59179d5c87bd50ebb3fe13a6f9d66a0..e5c1ba52acd2eae14bf88c352b9ab4352e42b5f2 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 {