You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.8 KiB

6 years ago
  1. //
  2. // ChangePasswordViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by Sujal on 12/20/17.
  6. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. class ResetPasswordViewController: UIViewController {
  11. private var resetpasswordviewmodel = ResetPasswordViewModel()
  12. private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
  13. @IBOutlet weak var textFieldNewPassword: UITextField!
  14. @IBOutlet weak var textFieldConfirmPassword: UITextField!
  15. @IBAction func gotoPreviousView(_ sender: Any) {
  16. }
  17. @IBAction func changePassword(_ sender: Any) {
  18. if resetpasswordviewmodel.isBlank(text: textFieldNewPassword.text!) {
  19. self.popUpMessageError(value: 11, message: "Password cannot be empty")
  20. } else if (!resetpasswordviewmodel.isValidPasswordLength(password: textFieldNewPassword.text!)) {
  21. self.popUpMessageError(value: 11, message: "Password is too short")
  22. } else if (!resetpasswordviewmodel.passwordsMatch(password: textFieldNewPassword.text!, confirmpassword: textFieldConfirmPassword.text!)) {
  23. self.popUpMessageError(value: 11, message: "Passwords do not match")
  24. } else {
  25. disableUserInteractions()
  26. showActivityIndicator(activityIndicator: activityIndicator)
  27. resetpasswordviewmodel.setUpdatedCredentials(userId: UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String, password: textFieldNewPassword.text!)
  28. resetpasswordviewmodel.changePassword()
  29. }
  30. }
  31. override func viewDidLoad() {
  32. super.viewDidLoad()
  33. setUpNavBar(id: 100, title: "")
  34. self.hideKeyboardWhenTappedAround()
  35. textFieldNewPassword.delegate = self
  36. textFieldConfirmPassword.delegate = self
  37. resetpasswordviewmodel.internetConnection.value = nil
  38. resetpasswordviewmodel.resetPasswordConnectionTimeOut.value = nil
  39. /**
  40. connection timeout
  41. */
  42. resetpasswordviewmodel.resetPasswordConnectionTimeOut.bind { [unowned self] in
  43. guard $0 != nil else {
  44. return
  45. }
  46. self.enableUserInteractions()
  47. self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
  48. self.popUpMessage(value: 20)
  49. }
  50. /**
  51. Internet check
  52. */
  53. resetpasswordviewmodel.internetConnection.bind { [unowned self] in
  54. guard $0 != nil else {
  55. return
  56. }
  57. self.enableUserInteractions()
  58. self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
  59. self.popUpMessage(value: 15)
  60. }
  61. /**
  62. Update password change request
  63. */
  64. resetpasswordviewmodel.passwordChanged.bind { [unowned self] in
  65. guard $0 != nil else {
  66. return
  67. }
  68. self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
  69. self.enableUserInteractions()
  70. guard $0! else {
  71. self.popUpMessageError(value: 10, message: self.resetpasswordviewmodel.getErrorMessage())
  72. return
  73. }
  74. self.performSegue(withIdentifier: "loginRecoveryMode", sender: nil)
  75. }
  76. }
  77. }
  78. extension ResetPasswordViewController: UITextFieldDelegate {
  79. func textFieldShouldReturn(_ textField: UITextField) -> Bool {
  80. if textField == textFieldNewPassword {
  81. textFieldConfirmPassword.becomeFirstResponder()
  82. } else if textField == textFieldConfirmPassword {
  83. textFieldConfirmPassword.resignFirstResponder()
  84. }
  85. return true
  86. }
  87. }