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