// // WalletReviewViewController.swift // GMERemittance // // Created by Sujal on 2/28/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class WalletReviewViewController: UIViewController { @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var contentView: UIView! @IBOutlet weak var labelMessage: UILabel! @IBOutlet weak var labelReviewMessage: UILabel! @IBOutlet weak var labelAmount: UILabel! @IBOutlet weak var labelID: UILabel! @IBOutlet weak var labelFullName: UILabel! @IBOutlet weak var buttonReview: UIButton! var walletviewmodel: WalletViewModel? var moneyRequestAccepted: Bool? private var checkDialog = 0 private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView() override func viewDidLoad() { super.viewDidLoad() setUpNavBar(id: 201, title: "Wallet to Wallet Transfer") guard walletviewmodel != nil, moneyRequestAccepted != nil else { self.popUpMessageInfo(value: 16, title: "No Data", message: "Data not received") buttonReview.isUserInteractionEnabled = false return } setUpAnotherLoginListener(genericviewmodel: walletviewmodel!) walletviewmodel?.walletConnectionTimeOut.value = nil /** connection timeout */ walletviewmodel?.walletConnectionTimeOut.bind { [unowned self] in guard $0 != nil else { return } self.stopLoading() if self.checkDialog == 0{ self.checkDialog = self.checkDialog + 1 self.popUpMessage(value: 20) } } /** Check internet connection */ walletviewmodel?.internetConnection.value = nil walletviewmodel?.internetConnection.bind { [unowned self] in guard $0 != nil else { return } self.stopLoading() self.popUpMessage(value: 15) } /** Api request for wallet transfer or request action */ walletviewmodel!.walletActionPerformed.bind{ [unowned self] in guard $0 != nil else { return } self.stopLoading() guard $0! else { if self.checkDialog == 0{ self.checkDialog = self.checkDialog + 1 self.popUpMessageError(value: 10, message: (self.walletviewmodel?.getErrorMessage())!) } return } self.performSegue(withIdentifier: "walletSuccess", sender: nil) } /** Check review message */ if walletviewmodel!.getModeIndex() == 0 { labelReviewMessage.text = "Review your Transfer" buttonReview.setTitle("Transfer", for: .normal) } else if walletviewmodel!.getModeIndex() == 1 { buttonReview.setTitle("Request", for: .normal) labelReviewMessage.text = "Review your Request" } self.setReviewMessage() scrollView.contentSize = contentView.frame.size } /** Set review message */ func setReviewMessage(){ let numberFormatter = NumberFormatter() numberFormatter.numberStyle = NumberFormatter.Style.decimal if let amount = walletviewmodel?.getAmount(){ let amountNumber = Float(amount)! as NSNumber labelAmount.text = numberFormatter.string(from: amountNumber)! + " KRW" } if let gmeId = walletviewmodel?.getGMEID(){ labelID.text = gmeId } if let fullName = walletviewmodel?.getFullName(){ labelFullName.text = "(" + fullName + ")" } if let message = walletviewmodel?.getMessage(){ labelMessage.text = message } } /** Disable user interaction while fetching data from api */ func startLoading(){ self.showActivityIndicator(activityIndicator: self.activityIndicator) self.disableUserInteractions() } /** Enable user interaction while fetching data from api */ func stopLoading(){ self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() } @IBAction func performWalletTransaction(_ sender: Any) { let alertController = UIAlertController(title: "Enter your login password", message: "", preferredStyle: .alert) alertController.addTextField { (textField : UITextField!) -> Void in textField.placeholder = "Password" textField.isSecureTextEntry = true textField.tag = 51 //unique identifier set textField.delegate = self } let confirmAction = UIAlertAction(title: "Confirm", style: .default, handler: { alert -> Void in if self.checkDialog == 1{ self.checkDialog = 0 } let passwordTextField = alertController.textFields![0] as UITextField if passwordTextField.text != "" { self.startLoading() self.walletviewmodel?.performWalletAction(password: passwordTextField.text!, moneyRequestAccepted: self.moneyRequestAccepted!) } else { self.popUpMessageError(value: 11, message: "Password is missing") } }) let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: { (action : UIAlertAction!) -> Void in }) cancelAction.setValue(UIColor.black, forKey: "titleTextColor") confirmAction.setValue(UIColor(hex:0xEC1C24), forKey: "titleTextColor") alertController.addAction(cancelAction) alertController.addAction(confirmAction) self.present(alertController, animated: true, completion: nil) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "walletSuccess" { let walletSuccessViewController = segue.destination as! WalletSuccessViewController walletSuccessViewController.walletviewmodel = self.walletviewmodel } } } extension WalletReviewViewController: UITextFieldDelegate { func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { if textField.tag == 51 { textField.tag = 0 return false } return true } }