EditGroupViewController.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import UIKit
  2. class EditGroupViewController: UITableViewController {
  3. weak var coordinator: EditGroupCoordinator?
  4. private let chat: DcChat
  5. var groupNameCell: GroupLabelCell
  6. lazy var doneButton: UIBarButtonItem = {
  7. let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(saveContactButtonPressed))
  8. button.isEnabled = false
  9. return button
  10. }()
  11. lazy var cancelButton: UIBarButtonItem = {
  12. let button = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonPressed))
  13. return button
  14. }()
  15. init(chat: DcChat) {
  16. self.chat = chat
  17. self.groupNameCell = GroupLabelCell(chat: chat)
  18. super.init(style: .grouped)
  19. groupNameCell.inputField.text = chat.name
  20. self.groupNameCell.onTextChanged = groupNameEdited(_:)
  21. self.groupNameCell.selectionStyle = .none
  22. }
  23. required init?(coder aDecoder: NSCoder) {
  24. fatalError("init(coder:) has not been implemented")
  25. }
  26. override func viewDidLoad() {
  27. super.viewDidLoad()
  28. navigationItem.rightBarButtonItem = doneButton
  29. navigationItem.leftBarButtonItem = cancelButton
  30. }
  31. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  32. return groupNameCell
  33. }
  34. override func numberOfSections(in tableView: UITableView) -> Int {
  35. return 1
  36. }
  37. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  38. return 1
  39. }
  40. @objc func saveContactButtonPressed() {
  41. let newName = groupNameCell.getGroupName()
  42. dc_set_chat_name(mailboxPointer, UInt32(chat.id), newName)
  43. coordinator?.navigateBack()
  44. }
  45. @objc func cancelButtonPressed() {
  46. coordinator?.navigateBack()
  47. }
  48. private func groupNameEdited(_ newName: String) {
  49. doneButton.isEnabled = true
  50. }
  51. }