From f2d8b6735bd294cae4d213319a9e3245976684b8 Mon Sep 17 00:00:00 2001
From: Oliver Wiese <oliver.wiese@fu-berlin.de>
Date: Fri, 6 Oct 2017 15:38:05 +0200
Subject: [PATCH] clean code

---
 enzevalos_iphone/DataHandler.swift                |  7 -------
 enzevalos_iphone/Folder+CoreDataProperties.swift  | 13 +++++++++++++
 enzevalos_iphone/KeyViewController.swift          |  2 +-
 enzevalos_iphone/MailHandler.swift                |  2 +-
 enzevalos_iphone/Onboarding.swift                 | 15 ++-------------
 .../PersistentMail +CoreDataProperties.swift      |  2 ++
 .../enzevalos_iphone.xcdatamodel/contents         | 10 ++++++----
 7 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/enzevalos_iphone/DataHandler.swift b/enzevalos_iphone/DataHandler.swift
index 97082950..02afc9a7 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 a79c3b58..9b3c77cd 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 af1a67e3..689b8906 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 2b31a23a..d6e7e0aa 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 cfa6ff7c..c72f55a3 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 6098b58a..38c425b3 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 11e7b57a..4c25f779 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="&quot;&quot;" 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 == &quot;$adr&quot;"/>
     <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
-- 
GitLab