From 4f8a090beee4bc9462a44567b6e34e307bc7ac62 Mon Sep 17 00:00:00 2001
From: Oliver Wiese <oliver.wiese@fu-berlin.de>
Date: Sat, 10 Feb 2018 14:48:07 +0100
Subject: [PATCH] remove prints fix primary key

---
 enzevalos_iphone/AddressHandler.swift         |  1 -
 enzevalos_iphone/DataHandler.swift            | 64 ++++++++-----------
 enzevalos_iphone/DebugSettings.swift          |  9 ++-
 .../FolderListViewController.swift            |  1 -
 enzevalos_iphone/FolderViewController.swift   |  1 -
 enzevalos_iphone/HockeySDK.swift              |  1 -
 enzevalos_iphone/InboxViewController.swift    |  1 -
 enzevalos_iphone/InitViewController.swift     | 17 -----
 enzevalos_iphone/ListViewController.swift     |  1 -
 enzevalos_iphone/MailHandler.swift            | 29 ++++-----
 .../Mail_Address+CoreDataClass.swift          |  1 +
 .../PersistentKey+CoreDataClass.swift         |  2 +-
 .../PersistentKey+CoreDataProperties.swift    |  8 +--
 .../PersistentMail +CoreDataProperties.swift  |  1 -
 enzevalos_iphone/SwiftPGP.swift               |  1 -
 15 files changed, 50 insertions(+), 88 deletions(-)

diff --git a/enzevalos_iphone/AddressHandler.swift b/enzevalos_iphone/AddressHandler.swift
index 93daf09e..9afada17 100644
--- a/enzevalos_iphone/AddressHandler.swift
+++ b/enzevalos_iphone/AddressHandler.swift
@@ -21,7 +21,6 @@ class AddressHandler {
 
             try AppDelegate.getAppDelegate().contactStore.enumerateContacts(with: CNContactFetchRequest(keysToFetch: [CNContactFormatter.descriptorForRequiredKeys(for: CNContactFormatterStyle.fullName), CNContactEmailAddressesKey as CNKeyDescriptor, CNContactImageDataKey as CNKeyDescriptor, CNContactThumbnailImageDataKey as CNKeyDescriptor]), usingBlock: {
                 ( c: CNContact, stop) -> Void in
-//                    print(c)
                 for email in c.emailAddresses {
                     let addr = email.value as String
                     var type: UIImage? = nil
diff --git a/enzevalos_iphone/DataHandler.swift b/enzevalos_iphone/DataHandler.swift
index b375fde8..42832758 100644
--- a/enzevalos_iphone/DataHandler.swift
+++ b/enzevalos_iphone/DataHandler.swift
@@ -95,41 +95,9 @@ class DataHandler {
         return false
     }
 
-    func checkRecords(records: [KeyRecord]) {
-        for record in records {
-            if record.addresses.count == 0 {
-                print("Record has no addresses: \(record)")
-            }
-            if record.mails.count < record.mailsInFolder(folder: record.folder).count {
-                print("Wrong matching of mails: \(record)")
-            }
-            for mail in record.mails {
-                checkMail(mail: mail)
-            }
-            for mail in record.mailsInFolder(folder: record.folder) {
-                checkMail(mail: mail)
-            }
-        }
-    }
-
-    func checkMail(mail: PersistentMail) {
-        if mail.to.count == 0 && mail.cc == nil {
-            print("Mail has no receiver: \(mail)")
-        }
-    }
+    
 
-    func checkFolder(folderName: String) {
-        let folder = findFolder(with: folderName)
-        if let mails = folder.mails {
-            for m in mails {
-                let mail = m as! PersistentMail
-                checkMail(mail: mail)
-            }
-        }
-        let records = folder.records
-        checkRecords(records: records)
-        checkRecords(records: folder.records)
-    }
+    
 
 
 
@@ -397,13 +365,23 @@ class DataHandler {
     }
 
     func newPublicKey(keyID: String, cryptoType: CryptoScheme, adr: String, autocrypt: Bool, firstMail: PersistentMail? = nil, newGenerated: Bool = false) -> PersistentKey {
-        let date = Date.init() as NSDate
+        var date = Date.init()
+        if let mail = firstMail{
+            print("Date: \(date) mail date: \(mail.date)")
+            if date.compare(mail.date).rawValue > 0{
+                date = mail.date
+            }
+        }
         let adr = getMailAddress(adr, temporary: false) as! Mail_Address
         var pk: PersistentKey
         if let search = findKey(keyID: keyID) {
-            search.lastSeen = date
+            if search.lastSeen < date{
+                search.lastSeen = date
+            }
             if autocrypt {
-                search.lastSeenAutocrypt = date
+                if search.lastSeenAutocrypt < date{
+                    search.lastSeenAutocrypt = date
+                }
                 search.sentOwnPublicKey = true
             }
             search.addToMailaddress(adr)
@@ -428,7 +406,7 @@ class DataHandler {
             pk.discoveryDate = date
             pk.firstMail = firstMail
             if autocrypt {
-                pk.lastSeenAutocrypt = date
+                pk.lastSeenAutocrypt = date 
                 pk.sentOwnPublicKey = true
             }
             var found = false
@@ -453,7 +431,15 @@ class DataHandler {
                 }
 //            }
         }
-        adr.primaryKeyID = pk.keyID
+        if let prim = adr.primaryKey, let last = prim.lastSeen, let currentLast = pk.lastSeen{
+            if last < currentLast {
+                adr.primaryKeyID = pk.keyID
+            }
+        }
+        else{
+            adr.primaryKeyID = keyID
+        }
+        save(during: "new PK")
         return pk
     }
     
diff --git a/enzevalos_iphone/DebugSettings.swift b/enzevalos_iphone/DebugSettings.swift
index b0091380..ad7a299b 100644
--- a/enzevalos_iphone/DebugSettings.swift
+++ b/enzevalos_iphone/DebugSettings.swift
@@ -27,6 +27,7 @@ func setupStudyPublicKeys(studyMode: Bool){
 
 
 func loadTestAcc(){
+    //loadAliceEnzevalos()
    //loadBobEnzevalos()
     //loadAlice2005()
     //loadCharlieEnzevalos()
@@ -68,6 +69,11 @@ func loadCharlieEnzevalos(){
     userdefaults(defaults: user)
 }
 
+func loadAliceEnzevalos(){
+    let user = enzevalos(name: "alice", pw: "egOavOpeecOntew")
+    userdefaults(defaults: user)
+}
+
 // Enzevalos!
 // static let name = "bob"
 // static let pw = "VagotOshaicceov"
@@ -120,8 +126,7 @@ private func importPublicKey(file: String, type: String, adr: String){
         do{
             let ids = try pgp.importKeysFromFile(file: path, pw: nil)
             for id in ids{
-                let k = datahandler.newPublicKey(keyID: id, cryptoType: CryptoScheme.PGP, adr: adr, autocrypt: false)
-                print("New public key of \(adr) with id \(k.keyID)")
+                _ = datahandler.newPublicKey(keyID: id, cryptoType: CryptoScheme.PGP, adr: adr, autocrypt: false)
             }
         } catch _ {
             
diff --git a/enzevalos_iphone/FolderListViewController.swift b/enzevalos_iphone/FolderListViewController.swift
index d88616a0..9984611e 100644
--- a/enzevalos_iphone/FolderListViewController.swift
+++ b/enzevalos_iphone/FolderListViewController.swift
@@ -15,7 +15,6 @@ class FolderListViewController: UITableViewController {
     override func viewDidLoad() {
         super.viewDidLoad()
         self.navigationItem.title = folder.name
-        print("Hallo")
     }
     
     override func numberOfSections(in tableView: UITableView) -> Int {
diff --git a/enzevalos_iphone/FolderViewController.swift b/enzevalos_iphone/FolderViewController.swift
index 778adb79..c933aada 100644
--- a/enzevalos_iphone/FolderViewController.swift
+++ b/enzevalos_iphone/FolderViewController.swift
@@ -181,7 +181,6 @@ class FolderViewController: UITableViewController {
         refreshControl?.endRefreshing()
     }
     func newMails(mail: PersistentMail?) {
-        print("newMails")
     }
 
     func getImage(for path: String) -> UIImage {
diff --git a/enzevalos_iphone/HockeySDK.swift b/enzevalos_iphone/HockeySDK.swift
index 6b815704..825d56b3 100644
--- a/enzevalos_iphone/HockeySDK.swift
+++ b/enzevalos_iphone/HockeySDK.swift
@@ -27,7 +27,6 @@ struct HockeySDK {
 
 	static func setup() {
 
-		print(self.isDebugBuild)
 		guard let _identifierKey = Bundle.main.object(forInfoDictionaryKey: identifierKey) as? String else {
 			print("Info: You have to set the `\(identifierKey)` key in the info plist.")
 			return
diff --git a/enzevalos_iphone/InboxViewController.swift b/enzevalos_iphone/InboxViewController.swift
index bb854e9f..629de669 100644
--- a/enzevalos_iphone/InboxViewController.swift
+++ b/enzevalos_iphone/InboxViewController.swift
@@ -288,7 +288,6 @@ extension InboxViewController {
 
         let reload_distance: CGFloat = 200
         if y > h + reload_distance && !loading {
-            print("loading new mail because we scrolled to the bottom")
             loading = true
 
             AppDelegate.getAppDelegate().mailHandler.loadMailsForInbox(newMailCallback: addNewMail, completionCallback: doneLoading)
diff --git a/enzevalos_iphone/InitViewController.swift b/enzevalos_iphone/InitViewController.swift
index 3a7a58ea..7cb825b4 100644
--- a/enzevalos_iphone/InitViewController.swift
+++ b/enzevalos_iphone/InitViewController.swift
@@ -20,23 +20,6 @@ class InitViewController : UIViewController {
         let manager = MCOMailProvidersManager.shared()!//.init() //sharedManager()
         let path = Bundle.main.path(forResource: "providers", ofType: "json")
         manager.registerProviders(withFilename: path)
-        print(manager.provider(forEmail: "alice2005@web.de") == nil)
-        print(manager.provider(forEmail: "alice2005@aol.com") == nil)   //x
-        print(manager.provider(forEmail: "aol.com") == nil)
-        print(manager.provider(forMX: "imap.aol.com") == nil)
-        print(manager.provider(forMX: "web") == nil)                    //x
-        print(manager.provider(forMX: "web.de") == nil)                 //x
-        print(manager.provider(forIdentifier: "web") == nil)            //x
-        print(manager.provider(forIdentifier: "web.de") == nil)
-        print(manager.provider(forIdentifier: "alice2005@aol.com") == nil)
-        print(manager.provider(forIdentifier: "aol") == nil)            //x
-        print(manager.provider(forIdentifier: "aol.com") == nil)
-        
-        print(manager.provider(forMX: "web.de").imapServices())
-        print(manager.provider(forMX: "web.de").smtpServices())
-        
-        let nService : MCONetService = (manager.provider(forMX: "web.de").smtpServices() as! [MCONetService])[0]
-        print(nService.info())
     }
     
 }
diff --git a/enzevalos_iphone/ListViewController.swift b/enzevalos_iphone/ListViewController.swift
index eeda70a4..9aba5ae2 100644
--- a/enzevalos_iphone/ListViewController.swift
+++ b/enzevalos_iphone/ListViewController.swift
@@ -214,7 +214,6 @@ class ListViewController: UITableViewController {
 
         let reload_distance: CGFloat = 50
         if y > h + reload_distance && !loading {
-            print("loading new mail because we scrolled to the bottom")
             loading = true
             AppDelegate.getAppDelegate().mailHandler.loadMailsForRecord(contact!, folderPath: UserManager.backendInboxFolderPath, newMailCallback: addNewMail, completionCallback: doneLoading)
             tableView.reloadData()
diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift
index 730210ea..292a3e98 100644
--- a/enzevalos_iphone/MailHandler.swift
+++ b/enzevalos_iphone/MailHandler.swift
@@ -538,7 +538,6 @@ class MailHandler {
         
         let y = imapsession.folderStatusOperation(INBOX)
         y?.start{(error, status) -> Void in
-            print("Folder status: \(status.debugDescription)")
             // TODO: UIDValality check here!
             let uidValidity = status?.uidValidity
             let nextId = status?.uidNext
@@ -580,7 +579,6 @@ class MailHandler {
 
             if let c = capabilities {
                 self.IMAPIdleSupported = c.contains(UInt64(MCOIMAPCapability.idle.rawValue))
-                print("IMAP Idle is \(self.IMAPIdleSupported! ? "" : "not ")supported!")
                 self.startIMAPIdleIfSupported(addNewMail: addNewMail)
             }
         })
@@ -676,7 +674,6 @@ class MailHandler {
         let fetchOperation: MCOIMAPFetchMessagesOperation = self.IMAPSession.fetchMessagesOperation(withFolder: folderPath, requestKind: requestKind, uids: uids)
         fetchOperation.extraHeaders = [AUTOCRYPTHEADER, SETUPMESSAGE]
         if uids.count() == 0{
-            print("NO UIDS to call!")
             completionCallback(false)
             return
         }
@@ -829,22 +826,20 @@ class MailHandler {
             
             if let header = header, let from = header.from, let date = header.date {
                 let mail = DataHandler.handler.createMail(UInt64(message.uid), sender: from, receivers: rec, cc: cc, time: date, received: true, subject: header.subject ?? "", body: body, flags: message.flags, record: record, autocrypt: autocrypt, decryptedData: dec, folderPath: folderPath, secretKey: secretKey, references: references, mailagent: userAgent, messageID: msgID)
-                
-                let pgp = SwiftPGP()
-                if let autoc = autocrypt{
-                    let publickeys = try! pgp.importKeys(key: autoc.key, pw: nil, isSecretKey: false, autocrypt: true)
-                    for pk in publickeys{
-                        _ = DataHandler.handler.newPublicKey(keyID: pk, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: true, firstMail: mail)
+                if let m = mail{
+                    let pgp = SwiftPGP()
+                    if let autoc = autocrypt{
+                        let publickeys = try! pgp.importKeys(key: autoc.key, pw: nil, isSecretKey: false, autocrypt: true)
+                        for pk in publickeys{
+                            _ = DataHandler.handler.newPublicKey(keyID: pk, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: true, firstMail: mail)
+                        }
                     }
-                }
-                for keyId in newKeyIds{
-                    _ = DataHandler.handler.newPublicKey(keyID: keyId, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: false, firstMail: mail)
-                }
-//                Logger.queue.async(flags: .barrier) {
-                    if let mail = mail {
-                        Logger.log(received: mail)
+                    for keyId in newKeyIds{
+                        _ = DataHandler.handler.newPublicKey(keyID: keyId, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: false, firstMail: mail)
                     }
-//                }
+                    //                Logger.queue.async(flags: .barrier) {
+                    Logger.log(received: m)
+                }
                 if newMailCallback != nil{
                     newMailCallback!(mail)
                 }
diff --git a/enzevalos_iphone/Mail_Address+CoreDataClass.swift b/enzevalos_iphone/Mail_Address+CoreDataClass.swift
index 841e7069..388ae72f 100644
--- a/enzevalos_iphone/Mail_Address+CoreDataClass.swift
+++ b/enzevalos_iphone/Mail_Address+CoreDataClass.swift
@@ -18,6 +18,7 @@ open class Mail_Address: NSManagedObject, MailAddress {
         get{
             if hasKey{
                 for key in publicKeys{
+                    print(key.keyID)
                     if key.keyID == primaryKeyID {
                         return key
                     }
diff --git a/enzevalos_iphone/PersistentKey+CoreDataClass.swift b/enzevalos_iphone/PersistentKey+CoreDataClass.swift
index 6929ad5d..4d2792da 100644
--- a/enzevalos_iphone/PersistentKey+CoreDataClass.swift
+++ b/enzevalos_iphone/PersistentKey+CoreDataClass.swift
@@ -29,7 +29,7 @@ public class PersistentKey: NSManagedObject {
     }
     
     func verify(){
-        self.verifiedDate = Date.init() as NSDate
+        self.verifiedDate = Date.init()
     }
     
     func isVerified() -> Bool{
diff --git a/enzevalos_iphone/PersistentKey+CoreDataProperties.swift b/enzevalos_iphone/PersistentKey+CoreDataProperties.swift
index b8c68b43..70fb6637 100644
--- a/enzevalos_iphone/PersistentKey+CoreDataProperties.swift
+++ b/enzevalos_iphone/PersistentKey+CoreDataProperties.swift
@@ -17,10 +17,10 @@ extension PersistentKey {
     }
 
     @NSManaged public var keyID: String
-    @NSManaged public var verifiedDate: NSDate?
-    @NSManaged public var lastSeen: NSDate?
-    @NSManaged public var lastSeenAutocrypt: NSDate?
-    @NSManaged public var discoveryDate: NSDate?
+    @NSManaged public var verifiedDate: Date?
+    @NSManaged public var lastSeen: Date?
+    @NSManaged public var lastSeenAutocrypt: Date?
+    @NSManaged public var discoveryDate: Date?
     @NSManaged public var mailaddress: NSSet?
     @NSManaged public var firstMail: PersistentMail?
     @NSManaged public var pseudonym: String
diff --git a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift
index 4eb48ed7..46b8cea6 100644
--- a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift	
+++ b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift	
@@ -154,7 +154,6 @@ extension PersistentMail {
             if let range = (body.range(of: key)?.upperBound){
                 pw = body.substring(from: range)
                 if let split = pw?.components(separatedBy: CharacterSet.whitespacesAndNewlines){
-                    print(split)
                     if split.count > 0 && split[0].count > 0{
                         pw = split[0]
                     }
diff --git a/enzevalos_iphone/SwiftPGP.swift b/enzevalos_iphone/SwiftPGP.swift
index 221ee050..ff3b1d9c 100644
--- a/enzevalos_iphone/SwiftPGP.swift
+++ b/enzevalos_iphone/SwiftPGP.swift
@@ -264,7 +264,6 @@ class SwiftPGP: Encryption{
                 else{
                      armoredKey = Armor.armored(key, as: PGPArmorType.publicKey)
                 }
-                print(armoredKey)
                 if isSecretKey && autocrypt{
                     // Create Autocrypt Setup-message
                     // See: https://autocrypt.readthedocs.io/en/latest/level1.html#autocrypt-setup-message
-- 
GitLab