Browse Source

there are no other contact detail protocols, so this is unneeded overhead for now. moreover, i moved the ViewModel creation to the controller - as for most other ViewController

B. Petersen 5 năm trước cách đây
mục cha
commit
e7ae0fa144

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

@@ -641,8 +641,7 @@ class ChatViewController: MessagesViewController {
         switch chat.chatType {
         switch chat.chatType {
         case .SINGLE:
         case .SINGLE:
             if let contactId = chat.contactIds.first {
             if let contactId = chat.contactIds.first {
-                let viewModel = ContactDetailViewModel(contactId: contactId, chatId: chatId, context: dcContext)
-                let contactDetailController = ContactDetailViewController(viewModel: viewModel)
+                let contactDetailController = ContactDetailViewController(dcContext: dcContext, contactId: contactId, chatId: chatId)
                 navigationController?.pushViewController(contactDetailController, animated: true)
                 navigationController?.pushViewController(contactDetailController, animated: true)
             }
             }
         case .GROUP, .VERIFIEDGROUP:
         case .GROUP, .VERIFIEDGROUP:
@@ -652,8 +651,7 @@ class ChatViewController: MessagesViewController {
     }
     }
 
 
     private func showContactDetail(of contactId: Int, in chatOfType: ChatType, chatId: Int?) {
     private func showContactDetail(of contactId: Int, in chatOfType: ChatType, chatId: Int?) {
-        let viewModel = ContactDetailViewModel(contactId: contactId, chatId: chatId, context: dcContext )
-        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
+        let contactDetailController = ContactDetailViewController(dcContext: dcContext, contactId: contactId, chatId: chatId)
         navigationController?.pushViewController(contactDetailController, animated: true)
         navigationController?.pushViewController(contactDetailController, animated: true)
     }
     }
 
 

+ 3 - 3
deltachat-ios/Controller/ContactDetailViewController.swift

@@ -3,7 +3,7 @@ import DcCore
 
 
 // this is also used as ChatDetail for SingleChats
 // this is also used as ChatDetail for SingleChats
 class ContactDetailViewController: UITableViewController {
 class ContactDetailViewController: UITableViewController {
-    private let viewModel: ContactDetailViewModelProtocol
+    private let viewModel: ContactDetailViewModel
 
 
     private lazy var headerCell: ContactDetailHeader = {
     private lazy var headerCell: ContactDetailHeader = {
         let cell = ContactDetailHeader()
         let cell = ContactDetailHeader()
@@ -64,8 +64,8 @@ class ContactDetailViewController: UITableViewController {
     }()
     }()
 
 
 
 
-    init(viewModel: ContactDetailViewModelProtocol) {
-        self.viewModel = viewModel
+    init(dcContext: DcContext, contactId: Int, chatId: Int?) {
+        self.viewModel = ContactDetailViewModel(contactId: contactId, chatId: chatId, context: dcContext)
         super.init(style: .grouped)
         super.init(style: .grouped)
     }
     }
 
 

+ 1 - 2
deltachat-ios/Controller/GroupChatDetailViewController.swift

@@ -211,8 +211,7 @@ class GroupChatDetailViewController: UIViewController {
     }
     }
 
 
     private func showContactDetail(of contactId: Int) {
     private func showContactDetail(of contactId: Int) {
-        let viewModel = ContactDetailViewModel(contactId: contactId, chatId: nil, context: dcContext)
-        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
+        let contactDetailController = ContactDetailViewController(dcContext: dcContext, contactId: contactId, chatId: nil)
         navigationController?.pushViewController(contactDetailController, animated: true)
         navigationController?.pushViewController(contactDetailController, animated: true)
     }
     }
 
 

+ 1 - 2
deltachat-ios/Controller/NewChatViewController.swift

@@ -352,8 +352,7 @@ class NewChatViewController: UITableViewController {
     }
     }
 
 
     private func showContactDetail(contactId: Int) {
     private func showContactDetail(contactId: Int) {
-        let viewModel = ContactDetailViewModel(contactId: contactId, chatId: nil, context: dcContext)
-        let contactDetailController = ContactDetailViewController(viewModel: viewModel)
+        let contactDetailController = ContactDetailViewController(dcContext: dcContext, contactId: contactId, chatId: nil)
         navigationController?.pushViewController(contactDetailController, animated: true)
         navigationController?.pushViewController(contactDetailController, animated: true)
     }
     }
 }
 }

+ 2 - 18
deltachat-ios/ViewModel/ContactDetailViewModel.swift

@@ -1,24 +1,7 @@
 import UIKit
 import UIKit
 import DcCore
 import DcCore
 
 
-protocol ContactDetailViewModelProtocol {
-    var context: DcContext { get }
-    var contactId: Int { get }
-    var chatId: Int? { get }
-    var contact: DcContact { get }
-    var numberOfSections: Int { get }
-    var chatIsArchived: Bool { get }
-    func numberOfRowsInSection(_ : Int) -> Int
-    func typeFor(section: Int) -> ContactDetailViewModel.ProfileSections
-    func chatActionFor(row: Int) -> ContactDetailViewModel.ChatAction
-    func attachmentActionFor(row: Int) -> ContactDetailViewModel.AttachmentAction
-    func update(sharedChatCell: ContactCell, row index: Int)
-    func getSharedChatIdAt(indexPath: IndexPath) -> Int
-    func titleFor(section: Int) -> String?
-    func toggleArchiveChat() -> Bool // returns true if chat is archived after action
-}
-
-class ContactDetailViewModel: ContactDetailViewModelProtocol {
+class ContactDetailViewModel {
 
 
     let context: DcContext
     let context: DcContext
 
 
@@ -129,6 +112,7 @@ class ContactDetailViewModel: ContactDetailViewModelProtocol {
         return nil
         return nil
     }
     }
 
 
+    // returns true if chat is archived after action
     func toggleArchiveChat() -> Bool {
     func toggleArchiveChat() -> Bool {
         guard let chatId = chatId else {
         guard let chatId = chatId else {
             safe_fatalError("there is no chatId - you are probably are calling this from ContactDetail - this should be only called from ChatDetail")
             safe_fatalError("there is no chatId - you are probably are calling this from ContactDetail - this should be only called from ChatDetail")