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.
157 lines
5.2 KiB
157 lines
5.2 KiB
//
|
|
// FillSignUpCodeController.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by Sujal on 12/11/17.
|
|
// Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
class FillSignUpCodeController: UIViewController {
|
|
|
|
@IBOutlet var labelEnterCodeHeader: UILabel!
|
|
|
|
@IBOutlet weak var buttonSubmitCode: UIButton!
|
|
|
|
private var fillsignupcodeviewmodel = FillCodeViewModel()
|
|
private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
|
|
|
|
var deviceORpassword: Int? //1 for device, 2 for password
|
|
|
|
var redirectToOTP: String?
|
|
|
|
@IBOutlet weak var textFieldCode: UITextField!
|
|
|
|
@IBAction func cancelAction(_ sender: Any) {
|
|
// navigationController?.popViewController(animated: true)
|
|
}
|
|
|
|
@IBAction func requestCode(_ sender: Any) {
|
|
if deviceORpassword == 1 {
|
|
fillsignupcodeviewmodel.setRecoveryType(recoveryType: "device")
|
|
} else if deviceORpassword == 2 {
|
|
fillsignupcodeviewmodel.setRecoveryType(recoveryType: "password")
|
|
}
|
|
fillsignupcodeviewmodel.requestCode()
|
|
//self.popUpMessageError(value: 11, message: "Please enter the code sent to your email")
|
|
}
|
|
|
|
@IBAction func submitCode(_ sender: Any) {
|
|
|
|
let signupcode: String = textFieldCode.text!
|
|
fillsignupcodeviewmodel.setCode(code: signupcode)
|
|
|
|
switch fillsignupcodeviewmodel.checkCodeLength() {
|
|
case .Valid:
|
|
disableUserInteractions()
|
|
showActivityIndicator(activityIndicator: activityIndicator)
|
|
if deviceORpassword == 1 {
|
|
fillsignupcodeviewmodel.authenticate()
|
|
} else if deviceORpassword == 2 {
|
|
fillsignupcodeviewmodel.enablePasswordChange()
|
|
} else {
|
|
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
|
|
}
|
|
case .InValid(let error):
|
|
self.popUpMessageError(value: 11, message: error)
|
|
}
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
|
|
super.viewDidLoad()
|
|
|
|
setUpNavBar(id: 100, title: "")
|
|
|
|
let userId = UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String
|
|
|
|
if let _ = Int(userId) {
|
|
labelEnterCodeHeader.text = "Enter Four-Digit Code send via sms"
|
|
} else {
|
|
labelEnterCodeHeader.text = "Enter Four-Digit Code send via email"
|
|
}
|
|
|
|
if self.redirectToOTP != nil{
|
|
self.popUpMessageInfo(value: 16, title: "Alert", message: self.redirectToOTP!)
|
|
}
|
|
|
|
|
|
if deviceORpassword == 1 {
|
|
buttonSubmitCode.setTitle("Done", for: .normal)
|
|
} else if deviceORpassword == 2 {
|
|
buttonSubmitCode.setTitle("Recovery Password", for: .normal)
|
|
}
|
|
|
|
self.hideKeyboardWhenTappedAround()
|
|
|
|
textFieldCode.delegate = self
|
|
|
|
fillsignupcodeviewmodel.setUserId(userId: UserDefaults.standard.object(forKey: "com.gmeremit.username") as! String)
|
|
|
|
|
|
fillsignupcodeviewmodel.fillCodeConnectionTimeOut.value = nil
|
|
/**
|
|
connection timeout
|
|
*/
|
|
fillsignupcodeviewmodel.fillCodeConnectionTimeOut.bind { [unowned self] in
|
|
guard $0 != nil else {
|
|
return
|
|
}
|
|
self.enableUserInteractions()
|
|
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
|
|
self.popUpMessage(value: 20)
|
|
}
|
|
|
|
|
|
fillsignupcodeviewmodel.internetConnection.value = nil
|
|
|
|
/**
|
|
Internet check
|
|
*/
|
|
fillsignupcodeviewmodel.internetConnection.bind { [unowned self] in
|
|
guard $0 != nil else {
|
|
return
|
|
}
|
|
self.enableUserInteractions()
|
|
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
|
|
self.popUpMessage(value: 15)
|
|
|
|
}
|
|
|
|
/**
|
|
Update authenticate code
|
|
*/
|
|
|
|
fillsignupcodeviewmodel.authenticated.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.fillsignupcodeviewmodel.getErrorMessage())
|
|
return
|
|
}
|
|
if self.deviceORpassword == 1 {
|
|
self.performSegue(withIdentifier: "loginNormalMode", sender: nil)
|
|
} else if self.deviceORpassword == 2 {
|
|
self.performSegue(withIdentifier: "changePassword", sender: nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
extension FillSignUpCodeController: UITextFieldDelegate {
|
|
|
|
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
|
guard let code = textField.text else {
|
|
return true
|
|
}
|
|
let length = code.count + string.count - range.length
|
|
return length <= 4
|
|
}
|
|
}
|