diff --git a/enzevalos_iphone/AppDelegate.swift b/enzevalos_iphone/AppDelegate.swift index 37cb4e6d4ea25f846acb7d50400c1eda1189acf5..c215fcd10682dd043cd94bee27d14c46e256ad21 100644 --- a/enzevalos_iphone/AppDelegate.swift +++ b/enzevalos_iphone/AppDelegate.swift @@ -31,8 +31,12 @@ import UserNotifications class AppDelegate: UIResponder, UIApplicationDelegate { - var newOnboarding=true + var newOnboarding = true + var newReadView = true var inboxCoordinator: InboxCoordinator? = nil + var readViewCoordinator: ReadViewCoordinator? = nil + + var window: UIWindow? var contactStore = CNContactStore() var mailHandler = MailHandler() @@ -321,6 +325,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { fatalError("No rootViewController!") } inboxCoordinator = InboxCoordinator(root: vc) + readViewCoordinator = ReadViewCoordinator(root: vc) // TODO: Improve Coordinators and init guard let coord = inboxCoordinator else { fatalError("No Coordinator") } @@ -328,6 +333,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { return } + func presentReadViewController(mail: PersistentMail) { + //presentSwiftUIReadView() + guard let vc = self.window?.rootViewController as? UINavigationController else { + fatalError("No rootViewController!") + } + readViewCoordinator = ReadViewCoordinator(root: vc) + guard let coord = readViewCoordinator else { + fatalError("No Coordinator") + } + coord.pushReadView(mail: mail) + return + + } + // Support for background fetch func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { diff --git a/enzevalos_iphone/SwiftUI/Inbox/InboxCoordinator.swift b/enzevalos_iphone/SwiftUI/Inbox/InboxCoordinator.swift index 1568fb14b0ae3119dd94a824a18cd1ab186d6dfd..fa50af6a326ac48f4451ba95aa261e539dc6a543 100644 --- a/enzevalos_iphone/SwiftUI/Inbox/InboxCoordinator.swift +++ b/enzevalos_iphone/SwiftUI/Inbox/InboxCoordinator.swift @@ -56,12 +56,16 @@ class InboxCoordinator { } func pushReadView(mail: PersistentMail) { - let vc = mainStoryboard.instantiateViewController(withIdentifier: ViewID.ReadView.rawValue) - if let vc = vc as? ReadViewController { - vc.mail = mail + if AppDelegate.getAppDelegate().newReadView, let readCoord = AppDelegate.getAppDelegate().readViewCoordinator { + readCoord.pushReadView(mail: mail) + } else { + let vc = mainStoryboard.instantiateViewController(withIdentifier: ViewID.ReadView.rawValue) + if let vc = vc as? ReadViewController { + vc.mail = mail + } + root.isToolbarHidden = false + root.pushViewController(vc, animated: true) } - root.isToolbarHidden = false - root.pushViewController(vc, animated: true) } func pushRecordView(record: KeyRecord){ diff --git a/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift b/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift index 1bb93740978f9aa89660eaac862bc9ac058a7ca1..8d5ebfe53796ba1b44970a474fa850ed0545580e 100644 --- a/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift +++ b/enzevalos_iphone/SwiftUI/Read/ReadViewCoordinator.swift @@ -25,16 +25,14 @@ class ReadViewCoordinator { private let mainStoryboard: UIStoryboard private var readView: UIViewController? - private var mail:PersistentMail - init(root: UINavigationController, mail:PersistentMail) { - self.mail = mail + init(root: UINavigationController) { self.root = root mainStoryboard = UIStoryboard(name: self.mainStoryboardName, bundle: nil) } - func pushReadView(){ + func pushReadView(mail: PersistentMail){ root.isToolbarHidden = true @@ -60,13 +58,13 @@ class ReadViewCoordinator { } } - func delete(){ + func delete(mail: PersistentMail){ //TODO: make this work Logger.log(delete: mail, toTrash: true) AppDelegate.getAppDelegate().mailHandler.move(mails: [mail], from: mail.folder.path, to: UserManager.backendTrashFolderPath) } - func archive(){ + func archive(mail: PersistentMail){ //TODO: make this work Logger.log(archive: mail) AppDelegate.getAppDelegate().mailHandler.move(mails: [mail], from: mail.folder.path, to: UserManager.backendArchiveFolderPath) diff --git a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/MessageViewMain.swift b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/MessageViewMain.swift index a0798b7e78fb322d79ea952e051f2fc1e74dace2..f2e218362866c7e8d80b202f038191c88e31cc89 100644 --- a/enzevalos_iphone/SwiftUI/Read/Tabbed Views/MessageViewMain.swift +++ b/enzevalos_iphone/SwiftUI/Read/Tabbed Views/MessageViewMain.swift @@ -230,7 +230,7 @@ struct MessageViewMain: View { FloatingActionButton( radius: innerPadding*extraButtonFactor, onShortPress: { - self.coord.delete(); + self.coord.delete(mail: self.mail); self.presentationMode.wrappedValue.dismiss()}/*TODO: fill in stuff*/ ){ VStack{