EditGroupViewController.swift 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // EditGroupViewController.swift
  3. // deltachat-ios
  4. //
  5. // Created by Bastian van de Wetering on 29.05.19.
  6. // Copyright © 2019 Jonas Reinsch. All rights reserved.
  7. //
  8. import UIKit
  9. class EditGroupViewController: UITableViewController {
  10. weak var coordinator: EditGroupCoordinator?
  11. private let chat: MRChat
  12. lazy var groupNameCell: GroupLabelCell = {
  13. let cell = GroupLabelCell(style: .default, reuseIdentifier: nil)
  14. cell.onTextChanged = groupNameEdited(_:)
  15. return cell
  16. }()
  17. lazy var doneButton: UIBarButtonItem = {
  18. let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(saveContactButtonPressed))
  19. button.isEnabled = false
  20. return button
  21. }()
  22. lazy var cancelButton: UIBarButtonItem = {
  23. let button = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonPressed))
  24. return button
  25. }()
  26. init(chat: MRChat) {
  27. self.chat = chat
  28. super.init(style: .grouped)
  29. groupNameCell.inputField.text = chat.name
  30. groupNameCell.groupBadge.setName(chat.name)
  31. groupNameCell.groupBadge.setColor(chat.color)
  32. }
  33. required init?(coder aDecoder: NSCoder) {
  34. fatalError("init(coder:) has not been implemented")
  35. }
  36. override func viewDidLoad() {
  37. super.viewDidLoad()
  38. navigationItem.rightBarButtonItem = doneButton
  39. navigationItem.leftBarButtonItem = cancelButton
  40. }
  41. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  42. return groupNameCell
  43. }
  44. override func numberOfSections(in tableView: UITableView) -> Int {
  45. return 1
  46. }
  47. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  48. return 1
  49. }
  50. @objc func saveContactButtonPressed() {
  51. let newName = groupNameCell.getGroupName()
  52. dc_set_chat_name(mailboxPointer, UInt32(chat.id), newName)
  53. coordinator?.navigateBack()
  54. }
  55. @objc func cancelButtonPressed() {
  56. coordinator?.navigateBack()
  57. }
  58. private func groupNameEdited(_ newName: String) {
  59. doneButton.isEnabled = true
  60. }
  61. }