From 44525a89d88ae43cf1d0727c80ae218fcbfafeab Mon Sep 17 00:00:00 2001 From: Oliver Wiese <oliver.wiese@fu-berlin.de> Date: Wed, 15 Apr 2020 10:31:29 +0200 Subject: [PATCH] Update protocols --- .../KeyRecord+CoreDataProperties.swift | 2 +- .../Mail_Address+CoreDataProperties.swift | 76 +++++++++++++++++++ .../PersistentMail +CoreDataProperties.swift | 10 +-- .../SwiftUI/Data/DisplayProtocols.swift | 4 +- .../SwiftUI/Data/SimulatorData.swift | 2 +- .../SwiftUI/Read/ReadViewCoordinator.swift | 4 +- .../SmallContactListView.swift | 1 - 7 files changed, 87 insertions(+), 12 deletions(-) diff --git a/enzevalos_iphone/KeyRecord+CoreDataProperties.swift b/enzevalos_iphone/KeyRecord+CoreDataProperties.swift index a0471107..b1549e2d 100644 --- a/enzevalos_iphone/KeyRecord+CoreDataProperties.swift +++ b/enzevalos_iphone/KeyRecord+CoreDataProperties.swift @@ -141,7 +141,7 @@ extension KeyRecord: DisplayContact { return self.addressNames } - var keys: [String] { + var keyIDs: [String] { if let id = self.keyID { return [id] } diff --git a/enzevalos_iphone/Mail_Address+CoreDataProperties.swift b/enzevalos_iphone/Mail_Address+CoreDataProperties.swift index b627b37f..ce3c0a68 100644 --- a/enzevalos_iphone/Mail_Address+CoreDataProperties.swift +++ b/enzevalos_iphone/Mail_Address+CoreDataProperties.swift @@ -20,6 +20,7 @@ // import Foundation +import SwiftUI import CoreData extension Mail_Address { @@ -154,3 +155,78 @@ extension Mail_Address { @NSManaged private func removeFromKeys(_ values: NSSet) } + +extension Mail_Address: DisplayContact { + var name: String { + if let contact = self.contact { + return contact.name + } + return self.addr + } + + var addr: String { + return self.address + } + + var myImage: Image { + if let contact = self.contact { + return Image(uiImage: contact.getImageOrDefault()) + } + let color = UIColor(hue: CGFloat(addr.hashValue) / CGFloat(UINT32_MAX), saturation: 1, brightness: 0.75, alpha: 1) + return PseudoContact.makeImg(addr, color: color) + } + + var isInContactBook: Bool { + if let con = self.contact { + return con.cnContact != nil + } + return false + } + + var otherAddresses: [String] { + if let con = contact { + return con.getMailAddresses().map({$0.mailAddress}) + } + return [] + } + + var keyIDs: [String] { + let pks = self.publicKeys.map({$0.keyID}) + return pks + } + + var previousMails: Int { + if let from = from { + return from.count + } + return 0 + } + + var previousResponses: Int { + var responses = 0 + if let to = self.to { + responses += to.count + } + if let cc = self.cc { + responses += cc.count + } + if let bcc = self.bcc { + responses += bcc.count + } + return responses + } + + var hasSimilarContacts: Bool { + return false + } + + var similarContacts: [String] { + return [] + } + + var keyRecord: KeyRecord? { + return DataHandler.handler.getKeyRecord(addr: addr, keyID: self.primaryKeyID, saveRecord: false) + } + + +} diff --git a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift index dac47b60..ff76cbf6 100644 --- a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift +++ b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift @@ -420,22 +420,22 @@ extension PersistentMail { extension PersistentMail: DisplayMail { - typealias C = KeyRecord + typealias C = Mail_Address var sender: C { - return self.record! + return self.from as! PersistentMail.C } var tos: [C] { - return [self.record!,self.record!,self.record!] + return self.getReceivers() } var ccs: [C] { - return [self.record!,self.record!,self.record!] // TODO + return self.getCCs()// TODO } var bccs: [C] { - return [self.record!,self.record!,self.record!] // TODO + return self.getBCCs() } var routingStops: [Landmark] { diff --git a/enzevalos_iphone/SwiftUI/Data/DisplayProtocols.swift b/enzevalos_iphone/SwiftUI/Data/DisplayProtocols.swift index e8e38c65..c9a84587 100644 --- a/enzevalos_iphone/SwiftUI/Data/DisplayProtocols.swift +++ b/enzevalos_iphone/SwiftUI/Data/DisplayProtocols.swift @@ -65,7 +65,7 @@ protocol DisplayContact { var otherAddresses: [String] { get } // Crypto related - var keys: [String] { get } + var keyIDs: [String] { get } // Phishing related var previousMails: Int { get } @@ -283,7 +283,7 @@ extension DisplayMail { case (_, .UnableToDecrypt), (_, .InvalidSignature) , (_, .PlainMissingPublicKeyToVerify), (_, .EncButMissingPublicKeyToVerify): result.append(dialog) // warning required } - if self.sender.keys.count > 0 && self.signedState == .NoSignature { + if self.sender.keyIDs.count > 0 && self.signedState == .NoSignature { let icon = Image(systemName: "exclamationmark.triangl.fill") let missingSignature = DialogStruct(dialogColor: Color(ThemeManager.unencryptedMessageColor()), title: NSLocalizedString("encryptedBeforeHeadline", diff --git a/enzevalos_iphone/SwiftUI/Data/SimulatorData.swift b/enzevalos_iphone/SwiftUI/Data/SimulatorData.swift index 1ad93f44..2fbbe3da 100644 --- a/enzevalos_iphone/SwiftUI/Data/SimulatorData.swift +++ b/enzevalos_iphone/SwiftUI/Data/SimulatorData.swift @@ -76,7 +76,7 @@ struct PseudoContact: DisplayContact { var otherAddresses: [String] = [] - var keys: [String] = ["ABC"] + var keyIDs: [String] = ["ABC"] var hasPreviousMails: Bool = false diff --git a/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift b/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift index 19d831b8..573c7482 100644 --- a/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift +++ b/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift @@ -88,7 +88,7 @@ class ReadViewCoordinator { let vc = mainStoryboard.instantiateViewController(identifier: ViewID.ComposeView.rawValue) var prefilledMail: EphemeralMail? if let subject = subject, let body = body, let responseType = responseType { - prefilledMail = EphemeralMail(to: NSSet(object: to), cc: NSSet(object: cc), bcc: NSSet(object: bcc), date: Date(), subject: responseType.addPrefix(subject: subject), body: body, uid: 0, predecessor: nil) + prefilledMail = EphemeralMail(to: NSSet.init(array: to), cc: NSSet.init(array: cc), bcc: NSSet.init(array: bcc), date: Date(), subject: responseType.addPrefix(subject: subject), body: body, uid: 0, predecessor: nil) } if let vc = vc as? SendViewController { vc.wasPushed = true @@ -165,7 +165,7 @@ class ReadViewCoordinator { to.append(contentsOf: findPersisentContact(persons: mail.ccs)) to.append(contentsOf: findPersisentContact(persons: mail.tos)) to = to.filter({!$0.hasKey}) - pushComposeView(to: to, cc: [], bcc: [], subject: subject, body: body, responseType: .none) + pushComposeView(to: to, cc: [], bcc: [], subject: subject, body: body, responseType: .Reply) } diff --git a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift index 945e505f..e8e87fad 100644 --- a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift +++ b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/SenderViewChildren/SmallContactListView.swift @@ -50,7 +50,6 @@ struct SmallContactListView <C: DisplayContact>: View { self.goToContact(contact: contact) } } - } } .padding(10) -- GitLab