Răsfoiți Sursa

remove EditContactCoordinator

B. Petersen 5 ani în urmă
părinte
comite
c2cdcd05fc

+ 1 - 1
deltachat-ios/Controller/EditContactController.swift

@@ -30,7 +30,7 @@ class EditContactController: NewContactController {
 
     @objc override func saveContactButtonPressed() {
         _ = dcContext.createContact(name: model.name, email: model.email)
-        coordinator?.navigateBack()
+        navigateBack()
     }
 
 }

+ 23 - 4
deltachat-ios/Controller/NewContactController.swift

@@ -4,7 +4,6 @@ import DcCore
 class NewContactController: UITableViewController {
 
     let dcContext: DcContext
-    weak var coordinator: EditContactCoordinator?
     var openChatOnSave = true
 
     let emailCell = TextFieldCell.makeEmailCell()
@@ -80,14 +79,14 @@ class NewContactController: UITableViewController {
         let contactId = dcContext.createContact(name: model.name, email: model.email)
         let chatId = dcContext.createChatByContactId(contactId: contactId)
         if openChatOnSave {
-            coordinator?.showChat(chatId: chatId)
+            showChat(chatId: chatId)
         } else {
-            coordinator?.navigateBack()
+            navigateBack()
         }
     }
 
     @objc func cancelButtonPressed() {
-        coordinator?.navigateBack()
+        navigateBack()
     }
 
     required init?(coder _: NSCoder) {
@@ -108,6 +107,26 @@ class NewContactController: UITableViewController {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }
+
+
+    // MARK: - coordinator
+
+    func navigateBack() {
+        if let navigationController = self.parent as? UINavigationController {
+            navigationController.popViewController(animated: true)
+        }
+    }
+
+    func showChat(chatId: Int) {
+        let chatViewController = ChatViewController(dcContext: dcContext, chatId: chatId)
+        if let navigationController = self.parent as? UINavigationController {
+            let coordinator = ChatViewCoordinator(dcContext: dcContext, navigationController: navigationController, chatId: chatId)
+            coordinator.chatViewController = chatViewController
+            chatViewController.coordinator = coordinator
+            navigationController.popToRootViewController(animated: false)
+            navigationController.pushViewController(chatViewController, animated: true)
+        }
+    }
 }
 
 extension NewContactController: UITextFieldDelegate {

+ 0 - 38
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -423,9 +423,6 @@ class NewChatCoordinator: Coordinator {
 
     func showNewContactController() {
         let newContactController = NewContactController(dcContext: dcContext)
-        let coordinator = EditContactCoordinator(dcContext: dcContext, navigationController: navigationController)
-        childCoordinators.append(coordinator)
-        newContactController.coordinator = coordinator
         navigationController.pushViewController(newContactController, animated: true)
     }
 
@@ -471,9 +468,6 @@ class GroupChatDetailCoordinator: Coordinator {
 
     func showSingleChatEdit(contactId: Int) {
         let editContactController = EditContactController(dcContext: dcContext, contactIdForUpdate: contactId)
-        let coordinator = EditContactCoordinator(dcContext: dcContext, navigationController: navigationController)
-        childCoordinators.append(coordinator)
-        editContactController.coordinator = coordinator
         navigationController.pushViewController(editContactController, animated: true)
     }
 
@@ -674,9 +668,6 @@ class AddGroupMembersCoordinator: Coordinator {
     func showNewContactController() {
         let newContactController = NewContactController(dcContext: dcContext)
         newContactController.openChatOnSave = false
-        let coordinator = EditContactCoordinator(dcContext: dcContext, navigationController: navigationController)
-        childCoordinators.append(coordinator)
-        newContactController.coordinator = coordinator
         navigationController.pushViewController(newContactController, animated: true)
     }
 }
@@ -768,9 +759,6 @@ class ContactDetailCoordinator: Coordinator, ContactDetailCoordinatorProtocol {
 
     func showEditContact(contactId: Int) {
         let editContactController = EditContactController(dcContext: dcContext, contactIdForUpdate: contactId)
-        let coordinator = EditContactCoordinator(dcContext: dcContext, navigationController: navigationController)
-        childCoordinators.append(coordinator)
-        editContactController.coordinator = coordinator
         navigationController.pushViewController(editContactController, animated: true)
     }
 
@@ -861,32 +849,6 @@ class EditGroupCoordinator: Coordinator {
     }
 }
 
-// MARK: - EditContactCoordinator
-class EditContactCoordinator: Coordinator {
-    var dcContext: DcContext
-    let navigationController: UINavigationController
-
-    var childCoordinators: [Coordinator] = []
-
-    init(dcContext: DcContext, navigationController: UINavigationController) {
-        self.dcContext = dcContext
-        self.navigationController = navigationController
-    }
-
-    func navigateBack() {
-        navigationController.popViewController(animated: true)
-    }
-
-    func showChat(chatId: Int) {
-        let chatViewController = ChatViewController(dcContext: dcContext, chatId: chatId)
-        let coordinator = ChatViewCoordinator(dcContext: dcContext, navigationController: navigationController, chatId: chatId)
-        coordinator.chatViewController = chatViewController
-        childCoordinators.append(coordinator)
-        chatViewController.coordinator = coordinator
-        navigationController.popToRootViewController(animated: false)
-        navigationController.pushViewController(chatViewController, animated: true)
-    }
-}
 
 /*
  boilerplate - I tend to remove that interface (cyberta)