Преглед на файлове

moved dc_add_addressBook to wrapper - injected DCContext into DeviceContactHandler

nayooti преди 5 години
родител
ревизия
059511dd67
променени са 3 файла, в които са добавени 11 реда и са изтрити 2 реда
  1. 1 1
      deltachat-ios/Controller/NewChatViewController.swift
  2. 4 0
      deltachat-ios/DC/Wrapper.swift
  3. 6 1
      deltachat-ios/Handler/DeviceContactsHandler.swift

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

@@ -48,7 +48,7 @@ class NewChatViewController: UITableViewController {
     var hud: ProgressHud?
 
     lazy var deviceContactHandler: DeviceContactsHandler = {
-        let handler = DeviceContactsHandler()
+        let handler = DeviceContactsHandler(dcContext: DcContext())
         handler.contactListDelegate = self
         return handler
     }()

+ 4 - 0
deltachat-ios/DC/Wrapper.swift

@@ -31,6 +31,10 @@ class DcContext {
         return Utils.copyAndFreeArray(inputArray: cContacts)
     }
 
+    func addContacts(contactString: String) {
+        dc_add_address_book(mailboxPointer, contactString)
+    }
+
     func getChatlist(flags: Int32, queryString: String?, queryId: Int) -> DcChatlist {
         let chatlistPointer = dc_get_chatlist(contextPointer, flags, queryString, UInt32(queryId))
         let chatlist = DcChatlist(chatListPointer: chatlistPointer)

+ 6 - 1
deltachat-ios/Handler/DeviceContactsHandler.swift

@@ -4,6 +4,11 @@ import UIKit
 class DeviceContactsHandler {
     private let store = CNContactStore()
     weak var contactListDelegate: ContactListDelegate?
+    let dcContext: DcContext
+
+    init(dcContext: DcContext) {
+        self.dcContext = dcContext
+    }
 
     private func makeContactString(contacts: [CNContact]) -> String {
         var contactString: String = ""
@@ -21,7 +26,7 @@ class DeviceContactsHandler {
         fetchContactsWithEmailFromDevice() { contacts in
             DispatchQueue.main.async {
                 let contactString = self.makeContactString(contacts: contacts)
-                dc_add_address_book(mailboxPointer, contactString)
+                self.dcContext.addContacts(contactString: contactString)
                 self.contactListDelegate?.deviceContactsImported()
             }
         }