ChangeNameTableViewController.swift 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // ChangeNameTableViewController.swift
  3. // Qmera
  4. //
  5. // Created by Yayan Dwi on 17/09/21.
  6. //
  7. import UIKit
  8. import NotificationBannerSwift
  9. class ChangeNameTableViewController: UITableViewController {
  10. @IBOutlet weak var name: UITextField!
  11. var isDismiss: (() -> ())?
  12. var data: String = ""
  13. override func viewWillAppear(_ animated: Bool) {
  14. let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
  15. UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
  16. }
  17. override func viewDidLoad() {
  18. super.viewDidLoad()
  19. navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Save".localized(), style: .plain, target: self, action: #selector(save(sender:)))
  20. Database.shared.database?.inTransaction({ fmdb, rollback in
  21. if let cursor = Database.shared.getRecords(fmdb: fmdb, query: "select FIRST_NAME || ' ' || ifnull(LAST_NAME, '') from BUDDY where F_PIN = '\(data)'"), cursor.next() {
  22. name.text = cursor.string(forColumnIndex: 0)?.trimmingCharacters(in: .whitespaces)
  23. cursor.close()
  24. }
  25. })
  26. name.placeholder = "Name".localized()
  27. }
  28. @objc func save(sender: Any) {
  29. guard let name = self.name.text, !name.isEmpty else {
  30. return
  31. }
  32. let a = name.split(separator: " ", maxSplits: 1)
  33. let first = String(a[0])
  34. let last = a.count == 2 ? String(a[1]) : ""
  35. DispatchQueue.global().async {
  36. if let resp = Nexilis.writeAndWait(message: CoreMessage_TMessageBank.getChangePersonInfoName(firstname: first, lastname: last)) {
  37. if resp.isOk() {
  38. Database.shared.database?.inTransaction({ fmdb, rollback in
  39. _ = Database.shared.updateRecord(fmdb: fmdb, table: "BUDDY", cvalues: ["first_name": first , "last_name": last], _where: "f_pin = '\(self.data)'")
  40. })
  41. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "updateFifthTab"), object: nil, userInfo: nil)
  42. DispatchQueue.main.async {
  43. self.navigationController?.popViewController(animated: true)
  44. self.isDismiss?()
  45. }
  46. } else if resp.getBody(key: CoreMessage_TMessageKey.ERRCOD, default_value: "99") == "1a" {
  47. DispatchQueue.main.async {
  48. let imageView = UIImageView(image: UIImage(systemName: "xmark.circle.fill"))
  49. imageView.tintColor = .white
  50. let banner = FloatingNotificationBanner(title: "Username has been registered, please use another name".localized(), subtitle: nil, titleFont: UIFont.systemFont(ofSize: 16), titleColor: nil, titleTextAlign: .left, subtitleFont: nil, subtitleColor: nil, subtitleTextAlign: nil, leftView: imageView, rightView: nil, style: .danger, colors: nil, iconPosition: .center)
  51. banner.show()
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }