diff --git a/enzevalos_iphone/DataHandler.swift b/enzevalos_iphone/DataHandler.swift index 97082950befb7b3b961c4e8fb23466ecfc726fa5..02afc9a7b56c248f454fab904e9f39f6d6a9a1e3 100644 --- a/enzevalos_iphone/DataHandler.swift +++ b/enzevalos_iphone/DataHandler.swift @@ -150,13 +150,6 @@ class DataHandler { let fReq = NSFetchRequest<NSFetchRequestResult>(entityName: "PersistentMail") let folderPredicate = NSPredicate(format: "folder = %@", folder) if withoutSecure { - var secure = [NSPredicate()] - secure.append(NSPredicate(format: "isEncrypted = false")) - secure.append(NSPredicate(format: "isSigned = false")) - secure.append(NSPredicate(format: "unableTODecrypt = true")) - secure.append(NSPredicate(format: "trouble = true")) - let secPredicates = NSCompoundPredicate(orPredicateWithSubpredicates: secure) - let predicates = NSCompoundPredicate(andPredicateWithSubpredicates: [secPredicates,folderPredicate]) fReq.predicate = NSPredicate(format: "folder = %@ AND (isEncrypted = false OR isSigned = false OR unableToDecrypt = true OR trouble = true)", folder) } else{ diff --git a/enzevalos_iphone/Folder+CoreDataProperties.swift b/enzevalos_iphone/Folder+CoreDataProperties.swift index a79c3b586d97e0747f956aad1ef14ae2a938a8ab..9b3c77cd714d15c58e731aa212d90737c348d89a 100644 --- a/enzevalos_iphone/Folder+CoreDataProperties.swift +++ b/enzevalos_iphone/Folder+CoreDataProperties.swift @@ -17,6 +17,7 @@ extension Folder { } @NSManaged public var parent: Folder? + @NSManaged public var subfolder: NSSet? @NSManaged public var mails: NSSet? @NSManaged public var path: String @NSManaged public var lastUpdate: Date? @@ -70,12 +71,24 @@ extension Folder { @objc(removeMailsObject:) @NSManaged public func removeFromMails(_ value: PersistentMail) + + @objc(addSubfolderObject:) + @NSManaged public func addToSubfolder(_ value: Folder) + + @objc(removeSubfolderObject:) + @NSManaged public func removeFromSubfolder(_ value: Folder) @objc(addMails:) @NSManaged public func addToMails(_ values: NSSet) @objc(removeMails:) @NSManaged public func removeFromMails(_ values: NSSet) + + @objc(addSubfolder:) + @NSManaged public func addToSubfolder(_ values: NSSet) + + @objc(removeSubfolder:) + @NSManaged public func removeFromSubfolder(_ values: NSSet) } diff --git a/enzevalos_iphone/KeyViewController.swift b/enzevalos_iphone/KeyViewController.swift index af1a67e3c4c468705e98fb47ef65ba95e3f5c360..689b8906be0300ed0903bd887d6a6bc5263fbea5 100644 --- a/enzevalos_iphone/KeyViewController.swift +++ b/enzevalos_iphone/KeyViewController.swift @@ -126,7 +126,7 @@ extension KeyViewController: UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { if let key = record?.storedKey { var sections = 1 - if let addrs = key.mailaddress, addrs != nil{ + if key.mailaddress != nil{ sections += 1 } return sections diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift index 2b31a23abcae934d12fcd0b62aba77254c218efd..d6e7e0aac7e114388ca2f2d67d48db54fb7b277e 100644 --- a/enzevalos_iphone/MailHandler.swift +++ b/enzevalos_iphone/MailHandler.swift @@ -464,7 +464,7 @@ class MailHandler { } let ids = indices as MCOIndexSet? - if var setOfIndices = ids { + if let setOfIndices = ids { for mail in record.mails { setOfIndices.remove(mail.uid) } diff --git a/enzevalos_iphone/Onboarding.swift b/enzevalos_iphone/Onboarding.swift index cfa6ff7cacd0950b625a0bde9432efdc9cb56259..c72f55a3c207189cfe7477e49717a7eb61b5d625 100644 --- a/enzevalos_iphone/Onboarding.swift +++ b/enzevalos_iphone/Onboarding.swift @@ -35,10 +35,6 @@ class Onboarding: NSObject { static var smtpTransportEncryption = UIPickerView.init() static var smtpTransDataDelegate = PickerDataDelegate.init(rows: ["a", "b", "c"]) static var background = UIImage.init() - static var smtpCheck = false - static var smtpCheckDone = false - static var imapCheck = false - static var imapCheckDone = false static var manualSet = false static let font = UIFont.init(name: "Helvetica-Light", size: 28) @@ -467,8 +463,6 @@ class Onboarding: NSObject { } static func checkConfig(_ fail: @escaping () -> (), work: @escaping () -> ()) -> Bool { - smtpCheckDone = false - imapCheckDone = false self.work = work self.fail = fail AppDelegate.getAppDelegate().mailHandler.checkIMAP(imapCompletion) @@ -476,10 +470,7 @@ class Onboarding: NSObject { } static func imapCompletion(_ error: Error?) { //FIXME: vorher NSError? Mit Error? immer noch gültig? - imapCheckDone = true - imapCheck = error == nil // TODO: @Jakob das verstehe ich nicht - print(error) - if imapCheck { + if error == nil { AppDelegate.getAppDelegate().mailHandler.checkSMTP(smtpCompletion) return } @@ -487,9 +478,7 @@ class Onboarding: NSObject { } static func smtpCompletion(_ error: Error?) { //FIXME: vorher NSError? Mit Error? immer noch gültig? - smtpCheckDone = true - smtpCheck = error == nil - if smtpCheck { + if error == nil { work() return } diff --git a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift index 6098b58a331885b7ac53b71f024620a3e14623ad..38c425b37970f6315d5667b48bbc1b13279b7c78 100644 --- a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift +++ b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift @@ -50,6 +50,8 @@ extension PersistentMail { @NSManaged public var unableToDecrypt: Bool @NSManaged public var subject: String? @NSManaged public var folder: Folder + @NSManaged public var firstKey: PersistentKey? + public var trouble: Bool{ set { self.willChangeValue(forKey: "trouble") diff --git a/enzevalos_iphone/enzevalos_iphone.xcdatamodeld/enzevalos_iphone.xcdatamodel/contents b/enzevalos_iphone/enzevalos_iphone.xcdatamodeld/enzevalos_iphone.xcdatamodel/contents index 11e7b57ab889afb1fc6aa78dcc4713d482bd8ea6..4c25f7796b0d14bf91445761ea839c4f7b330aae 100644 --- a/enzevalos_iphone/enzevalos_iphone.xcdatamodeld/enzevalos_iphone.xcdatamodel/contents +++ b/enzevalos_iphone/enzevalos_iphone.xcdatamodeld/enzevalos_iphone.xcdatamodel/contents @@ -12,7 +12,8 @@ <attribute name="maxID" optional="YES" attributeType="Decimal" defaultValueString="1" syncable="YES"/> <attribute name="path" attributeType="String" syncable="YES"/> <relationship name="mails" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="PersistentMail" inverseName="folder" inverseEntity="PersistentMail" syncable="YES"/> - <relationship name="parent" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Folder" syncable="YES"/> + <relationship name="parent" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Folder" inverseName="subfolder" inverseEntity="Folder" syncable="YES"/> + <relationship name="subfolder" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Folder" inverseName="parent" inverseEntity="Folder" syncable="YES"/> </entity> <entity name="Mail_Address" representedClassName="Mail_Address" syncable="YES"> <attribute name="address" attributeType="String" defaultValueString="""" syncable="YES"/> @@ -31,7 +32,7 @@ <attribute name="lastSeenAutocrypt" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/> <attribute name="preferEncryption" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES" syncable="YES"/> <attribute name="verifiedDate" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/> - <relationship name="firstMail" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PersistentMail" syncable="YES"/> + <relationship name="firstMail" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PersistentMail" inverseName="firstKey" inverseEntity="PersistentMail" syncable="YES"/> <relationship name="mailaddress" toMany="YES" deletionRule="Nullify" destinationEntity="Mail_Address" inverseName="key" inverseEntity="Mail_Address" syncable="YES"/> </entity> <entity name="PersistentMail" representedClassName="PersistentMail" syncable="YES"> @@ -50,6 +51,7 @@ <attribute name="visibleBody" optional="YES" attributeType="String" syncable="YES"/> <relationship name="bcc" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Mail_Address" inverseName="bcc" inverseEntity="Mail_Address" syncable="YES"/> <relationship name="cc" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Mail_Address" inverseName="cc" inverseEntity="Mail_Address" syncable="YES"/> + <relationship name="firstKey" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PersistentKey" inverseName="firstMail" inverseEntity="PersistentKey" syncable="YES"/> <relationship name="folder" maxCount="1" deletionRule="Nullify" destinationEntity="Folder" inverseName="mails" inverseEntity="Folder" syncable="YES"/> <relationship name="from" maxCount="1" deletionRule="Nullify" destinationEntity="Mail_Address" inverseName="from" inverseEntity="Mail_Address" syncable="YES"/> <relationship name="to" toMany="YES" deletionRule="Nullify" destinationEntity="Mail_Address" inverseName="to" inverseEntity="Mail_Address" syncable="YES"/> @@ -62,10 +64,10 @@ <fetchRequest name="getMailAddress" entity="Mail_Address" predicateString="address == "$adr""/> <elements> <element name="EnzevalosContact" positionX="-209" positionY="198" width="128" height="90"/> - <element name="Folder" positionX="-297" positionY="-18" width="128" height="150"/> + <element name="Folder" positionX="-297" positionY="-18" width="128" height="165"/> <element name="Mail_Address" positionX="-297" positionY="-18" width="128" height="150"/> <element name="PersistentKey" positionX="-315" positionY="-36" width="128" height="180"/> - <element name="PersistentMail" positionX="-416" positionY="-189" width="128" height="315"/> + <element name="PersistentMail" positionX="-416" positionY="-189" width="128" height="330"/> <element name="SecretKey" positionX="-306" positionY="-27" width="128" height="75"/> </elements> </model> \ No newline at end of file