Sfoglia il codice sorgente

prefill new contact email text field if search result in new chat/new group context contains an @ character

cyberta 4 anni fa
parent
commit
8af8765828

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

@@ -145,7 +145,7 @@ class AddGroupMembersViewController: GroupMembersViewController {
     }
 
     private func showNewContactController() {
-        let newContactController = NewContactController(dcContext: dcContext)
+        let newContactController = NewContactController(dcContext: dcContext, searchResult: searchText)
         newContactController.createChatOnSave = false
         newContactController.onContactSaved = { [weak self] (contactId: Int) -> Void in
             guard let self = self else { return }

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

@@ -46,7 +46,7 @@ class GroupMembersViewController: UITableViewController {
         return searchController.searchBar.text?.isEmpty ?? true
     }
 
-    private var searchText: String? {
+    open var searchText: String? {
         return searchController.searchBar.text
     }
 

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

@@ -314,7 +314,7 @@ class NewChatViewController: UITableViewController {
     }
 
     private func showNewContactController() {
-        let newContactController = NewContactController(dcContext: dcContext)
+        let newContactController = NewContactController(dcContext: dcContext, searchResult: searchText)
         navigationController?.pushViewController(newContactController, animated: true)
     }
 

+ 10 - 1
deltachat-ios/Controller/NewContactController.swift

@@ -5,6 +5,7 @@ class NewContactController: UITableViewController {
 
     let dcContext: DcContext
     var createChatOnSave = true
+    var prefilledSeachResult: String?
 
     let emailCell = TextFieldCell.makeEmailCell()
     let nameCell = TextFieldCell.makeNameCell()
@@ -30,9 +31,10 @@ class NewContactController: UITableViewController {
     let cells: [UITableViewCell]
 
     // for creating a new contact
-    init(dcContext: DcContext) {
+    init(dcContext: DcContext, searchResult: String? = nil) {
         self.dcContext = dcContext
         cells = [emailCell, nameCell]
+        prefilledSeachResult = searchResult
         super.init(style: .grouped)
         emailCell.textFieldDelegate = self
         nameCell.textFieldDelegate = self
@@ -54,6 +56,13 @@ class NewContactController: UITableViewController {
         emailCell.textField.addTarget(self, action: #selector(NewContactController.emailTextChanged), for: UIControl.Event.editingChanged)
         nameCell.textField.addTarget(self, action: #selector(NewContactController.nameTextChanged), for: UIControl.Event.editingChanged)
     }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        if let searchResult = prefilledSeachResult, searchResult.contains("@") {
+            emailCell.textField.insertText(searchResult)
+        }
+    }
 
     override func viewDidAppear(_: Bool) {
         if emailCell.textField.isEnabled {