// // ChangePasswordViewController.swift // GMERemittance // // Created by Sujal on 12/20/17. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation import UIKit class ResetPasswordViewController: UIViewController { private var resetpasswordviewmodel = ResetPasswordViewModel() private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView() @IBOutlet weak var textFieldNewPassword: UITextField! @IBOutlet weak var textFieldConfirmPassword: UITextField! @IBAction func gotoPreviousView(_ sender: Any) { } @IBAction func changePassword(_ sender: Any) { if resetpasswordviewmodel.isBlank(text: textFieldNewPassword.text!) { self.popUpMessageError(value: 11, message: "Password cannot be empty") } else if (!resetpasswordviewmodel.isValidPasswordLength(password: textFieldNewPassword.text!)) { self.popUpMessageError(value: 11, message: "Password is too short") } else if (!resetpasswordviewmodel.passwordsMatch(password: textFieldNewPassword.text!, confirmpassword: textFieldConfirmPassword.text!)) { self.popUpMessageError(value: 11, message: "Passwords do not match") } else { disableUserInteractions() showActivityIndicator(activityIndicator: activityIndicator) resetpasswordviewmodel.setUpdatedCredentials(userId: UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String, password: textFieldNewPassword.text!) resetpasswordviewmodel.changePassword() } } override func viewDidLoad() { super.viewDidLoad() setUpNavBar(id: 100, title: "") self.hideKeyboardWhenTappedAround() textFieldNewPassword.delegate = self textFieldConfirmPassword.delegate = self resetpasswordviewmodel.internetConnection.value = nil resetpasswordviewmodel.resetPasswordConnectionTimeOut.value = nil /** connection timeout */ resetpasswordviewmodel.resetPasswordConnectionTimeOut.bind { [unowned self] in guard $0 != nil else { return } self.enableUserInteractions() self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.popUpMessage(value: 20) } /** Internet check */ resetpasswordviewmodel.internetConnection.bind { [unowned self] in guard $0 != nil else { return } self.enableUserInteractions() self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.popUpMessage(value: 15) } /** Update password change request */ resetpasswordviewmodel.passwordChanged.bind { [unowned self] in guard $0 != nil else { return } self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() guard $0! else { self.popUpMessageError(value: 10, message: self.resetpasswordviewmodel.getErrorMessage()) return } self.performSegue(withIdentifier: "loginRecoveryMode", sender: nil) } } } extension ResetPasswordViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == textFieldNewPassword { textFieldConfirmPassword.becomeFirstResponder() } else if textField == textFieldConfirmPassword { textFieldConfirmPassword.resignFirstResponder() } return true } }