|
@@ -4,13 +4,16 @@ import DcCore
|
|
class NewContactController: UITableViewController {
|
|
class NewContactController: UITableViewController {
|
|
|
|
|
|
let dcContext: DcContext
|
|
let dcContext: DcContext
|
|
- var openChatOnSave = true
|
|
|
|
|
|
+ var createChatOnSave = true
|
|
|
|
+ var prefilledSeachResult: String?
|
|
|
|
|
|
let emailCell = TextFieldCell.makeEmailCell()
|
|
let emailCell = TextFieldCell.makeEmailCell()
|
|
let nameCell = TextFieldCell.makeNameCell()
|
|
let nameCell = TextFieldCell.makeNameCell()
|
|
var doneButton: UIBarButtonItem?
|
|
var doneButton: UIBarButtonItem?
|
|
var cancelButton: UIBarButtonItem?
|
|
var cancelButton: UIBarButtonItem?
|
|
|
|
|
|
|
|
+ var onContactSaved: ((Int) -> Void)?
|
|
|
|
+
|
|
func contactIsValid() -> Bool {
|
|
func contactIsValid() -> Bool {
|
|
return Utils.isValid(email: model.email)
|
|
return Utils.isValid(email: model.email)
|
|
}
|
|
}
|
|
@@ -28,9 +31,10 @@ class NewContactController: UITableViewController {
|
|
let cells: [UITableViewCell]
|
|
let cells: [UITableViewCell]
|
|
|
|
|
|
// for creating a new contact
|
|
// for creating a new contact
|
|
- init(dcContext: DcContext) {
|
|
|
|
|
|
+ init(dcContext: DcContext, searchResult: String? = nil) {
|
|
self.dcContext = dcContext
|
|
self.dcContext = dcContext
|
|
cells = [emailCell, nameCell]
|
|
cells = [emailCell, nameCell]
|
|
|
|
+ prefilledSeachResult = searchResult
|
|
super.init(style: .grouped)
|
|
super.init(style: .grouped)
|
|
emailCell.textFieldDelegate = self
|
|
emailCell.textFieldDelegate = self
|
|
nameCell.textFieldDelegate = self
|
|
nameCell.textFieldDelegate = self
|
|
@@ -52,6 +56,13 @@ class NewContactController: UITableViewController {
|
|
emailCell.textField.addTarget(self, action: #selector(NewContactController.emailTextChanged), for: UIControl.Event.editingChanged)
|
|
emailCell.textField.addTarget(self, action: #selector(NewContactController.emailTextChanged), for: UIControl.Event.editingChanged)
|
|
nameCell.textField.addTarget(self, action: #selector(NewContactController.nameTextChanged), 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) {
|
|
override func viewDidAppear(_: Bool) {
|
|
if emailCell.textField.isEnabled {
|
|
if emailCell.textField.isEnabled {
|
|
@@ -73,8 +84,11 @@ class NewContactController: UITableViewController {
|
|
|
|
|
|
@objc func saveContactButtonPressed() {
|
|
@objc func saveContactButtonPressed() {
|
|
let contactId = dcContext.createContact(name: model.name, email: model.email)
|
|
let contactId = dcContext.createContact(name: model.name, email: model.email)
|
|
- let chatId = dcContext.createChatByContactId(contactId: contactId)
|
|
|
|
- if openChatOnSave {
|
|
|
|
|
|
+ if let onContactSaved = self.onContactSaved {
|
|
|
|
+ onContactSaved(contactId)
|
|
|
|
+ }
|
|
|
|
+ if createChatOnSave {
|
|
|
|
+ let chatId = dcContext.createChatByContactId(contactId: contactId)
|
|
showChat(chatId: chatId)
|
|
showChat(chatId: chatId)
|
|
} else {
|
|
} else {
|
|
navigationController?.popViewController(animated: true)
|
|
navigationController?.popViewController(animated: true)
|