浏览代码

inject ViewModel at ContactDetailVC

nayooti 5 年之前
父节点
当前提交
96e817c0fb

+ 4 - 2
deltachat-ios/Controller/ContactDetailViewController.swift

@@ -3,6 +3,7 @@ import UIKit
 // this is also used as ChatDetail for SingleChats
 class ContactDetailViewController: UITableViewController {
     weak var coordinator: ContactDetailCoordinatorProtocol?
+    private let viewModel: ContactDetailViewModelProtocol
 
     let sectionOptions = 0
     let sectionOptionsRowStartChat = 1
@@ -39,8 +40,9 @@ class ContactDetailViewController: UITableViewController {
         return cell
     }()
 
-    init(contactId: Int) {
-        self.contactId = contactId
+    init(viewModel: ContactDetailViewModelProtocol) {
+        self.viewModel = viewModel
+        self.contactId = viewModel.contactId
         super.init(style: .grouped)
     }
 

+ 8 - 4
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -327,7 +327,8 @@ class NewChatCoordinator: Coordinator {
     }
 
     func showContactDetail(contactId: Int) {
-        let contactDetailController = ContactDetailViewController(contactId: contactId)
+        let viewModel = ContactDetailViewModel(contactId: contactId, context: dcContext)
+        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
         let coordinator = ContactDetailCoordinator(dcContext: dcContext, navigationController: navigationController)
         childCoordinators.append(coordinator)
         contactDetailController.coordinator = coordinator
@@ -376,7 +377,8 @@ class GroupChatDetailCoordinator: Coordinator {
     }
 
     func showContactDetail(of contactId: Int) {
-        let contactDetailController = ContactDetailViewController(contactId: contactId)
+        let viewModel = ContactDetailViewModel(contactId: contactId, context: dcContext)
+        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
         let coordinator = ContactDetailCoordinator(dcContext: dcContext, navigationController: navigationController)
         childCoordinators.append(coordinator)
         contactDetailController.coordinator = coordinator
@@ -410,7 +412,8 @@ class ChatViewCoordinator: NSObject, Coordinator {
         switch chat.chatType {
         case .SINGLE:
             if let contactId = chat.contactIds.first {
-                let contactDetailController = ContactDetailViewController(contactId: contactId)
+                let viewModel = ContactDetailViewModel(contactId: contactId, context: dcContext)
+                let contactDetailController = ContactDetailViewController(viewModel: viewModel)
                 contactDetailController.showStartChat = false
                 let coordinator = ContactDetailCoordinator(dcContext: dcContext, navigationController: navigationController)
                 childCoordinators.append(coordinator)
@@ -427,7 +430,8 @@ class ChatViewCoordinator: NSObject, Coordinator {
     }
 
     func showContactDetail(of contactId: Int, in chatOfType: ChatType) {
-        let contactDetailController = ContactDetailViewController(contactId: contactId)
+        let viewModel = ContactDetailViewModel(contactId: contactId, context: dcContext )
+        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
         if chatOfType == .SINGLE {
             contactDetailController.showStartChat = false
         }