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.
 
 
 
 

212 lines
6.8 KiB

//
// 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
}
}