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.
174 lines
5.8 KiB
174 lines
5.8 KiB
//
|
|
// WithdrawFromWalletDetailViewController.swift
|
|
// GME Remit
|
|
//
|
|
// Created by Amrit Giri on 7/6/20.
|
|
//Copyright © 2020 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class WithdrawFromWalletDetailViewController: UIViewController {
|
|
struct StringConstants {
|
|
let titleText = "bank_deposit_text".localized()
|
|
let descText = "bank_deposit_detail_text".localized()
|
|
let bankText = "bank_text".localized()
|
|
let accountNumberText = "account_number_text".localized()
|
|
let amountText = "amount_text".localized()
|
|
let serviceChargeText = "service_charge_text".localized()
|
|
let confirmText = "confirm_text".localized()
|
|
}
|
|
|
|
// MARK: Properties
|
|
|
|
var presenter: WithdrawFromWalletDetailModuleInterface?
|
|
|
|
var password: String = ""{
|
|
didSet{
|
|
if password != ""{
|
|
self.presenter?.makeApiRequest(password: self.password)
|
|
}
|
|
}
|
|
}
|
|
// MARK: IBOutlets
|
|
@IBOutlet private weak var confirmBtn: UIButton!
|
|
|
|
@IBOutlet private weak var desc: UILabel!
|
|
|
|
@IBOutlet private weak var bankTitleLabel: UILabel!
|
|
@IBOutlet private weak var bankContentLabel: UILabel!
|
|
|
|
@IBOutlet private weak var acNumberTitleLabel: UILabel!
|
|
@IBOutlet private weak var acNumberContentLabel: UILabel!
|
|
|
|
@IBOutlet private weak var amountTitleLabel: UILabel!
|
|
@IBOutlet private weak var amountContentLabel: UILabel!
|
|
|
|
@IBOutlet private weak var serviceChargeTitleLabel: UILabel!
|
|
@IBOutlet private weak var serviceChargeContentLabel: UILabel!
|
|
|
|
// MARK: VC's Life cycle
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
self.setup()
|
|
self.presenter?.fetchModel()
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
self.title = StringConstants().titleText
|
|
self.setupNormalNavigation()
|
|
}
|
|
|
|
// MARK: IBActions
|
|
@IBAction func confirm(_ sender: Any) {
|
|
if let isUseBiometric = KeyChain.shared.get(key: .biometricAuth), isUseBiometric == "1" {
|
|
let biometricAuthenticationWireframe = BiometricAuthenticationWireframe()
|
|
biometricAuthenticationWireframe.openWithDelegate(on: self, delegate: self)
|
|
} else {
|
|
showSecureKeyPad()
|
|
}
|
|
}
|
|
|
|
// MARK: Other Functions
|
|
|
|
private func setup() {
|
|
// all setup should be done here
|
|
self.configureLanguage()
|
|
}
|
|
|
|
private func configureLanguage() {
|
|
desc.text = StringConstants().descText
|
|
bankTitleLabel.text = StringConstants().bankText
|
|
acNumberTitleLabel.text = StringConstants().accountNumberText
|
|
amountTitleLabel.text = StringConstants().amountText
|
|
serviceChargeTitleLabel.text = StringConstants().serviceChargeText
|
|
|
|
confirmBtn.setTitle(StringConstants().confirmText, for: .normal)
|
|
}
|
|
private func showSecureKeyPad() {
|
|
self.openPasswordInput { (value) in
|
|
self.password = value
|
|
}
|
|
}
|
|
}
|
|
|
|
// MARK: WithdrawFromWalletDetailViewInterface
|
|
extension WithdrawFromWalletDetailViewController: WithdrawFromWalletDetailViewInterface {
|
|
func showLoading() {
|
|
self.showProgressHud()
|
|
}
|
|
|
|
func hideLoading() {
|
|
self.hideProgressHud()
|
|
}
|
|
|
|
func show(error: String) {
|
|
self.alert(type: .error, message: error)
|
|
}
|
|
|
|
func show(message: String) {
|
|
self.alertWithOk(
|
|
type: .success,
|
|
message: message,
|
|
title: "Success",
|
|
okTitle: "Ok"
|
|
) {
|
|
self.navigationController?.popToRootViewController(animated: true)
|
|
}
|
|
}
|
|
|
|
func setModel(model: WithdrawInformation){
|
|
self.bankContentLabel.text = model.bankName ?? ""
|
|
self.acNumberContentLabel.text = model.accountNo ?? ""
|
|
self.amountContentLabel.text = (model.amount ?? "") + " JPY"
|
|
self.serviceChargeContentLabel.text = (model.serviceCharge ?? "") + " JPY"
|
|
}
|
|
}
|
|
|
|
|
|
// MARK: - BiometricAuthenticationViewControllerDelegate
|
|
extension WithdrawFromWalletDetailViewController: BiometricAuthenticationViewControllerDelegate {
|
|
func viewController(
|
|
_ viewController: BiometricAuthenticationViewController,
|
|
didFailWithError error: BiometricAuthenticationError, errorMessage: String?) {
|
|
|
|
print("BiometricAuthenticationWireframe Error: \(errorMessage ?? "")")
|
|
viewController.dismiss(animated: true) {
|
|
|
|
switch error {
|
|
case .userFallback:
|
|
self.showSecureKeyPad()
|
|
case .authenticationFailed, .userCancel, .biometryNotAvailable,
|
|
.biometryNotEnrolled, .biometryLockout, .notBeConfigured:
|
|
self.alert(type: .error, message: error.message)
|
|
}
|
|
}
|
|
}
|
|
|
|
func doSelectLocalAuthenticationPolicy(
|
|
_ viewController: BiometricAuthenticationViewController
|
|
) -> BiometricAuthenticationPolicy {
|
|
return .deviceOwnerAuthenticationWithBiometrics
|
|
}
|
|
|
|
func didComplete(_ viewController: BiometricAuthenticationViewController) {
|
|
viewController.dismiss(animated: true) {
|
|
guard let encryptedPW = KeyChain.shared.get(key: .password) else {
|
|
MainWireframe.logoutWarningAlert(message: "To use biometrics authentication you have to login again.")
|
|
return
|
|
}
|
|
self.password = encryptedPW
|
|
}
|
|
}
|
|
|
|
func viewController(
|
|
_ viewController: BiometricAuthenticationViewController,
|
|
informationTitleLabel titleLabel: UILabel,
|
|
authenticationButton button: UIButton
|
|
) {
|
|
titleLabel.text = "use_biometric_authentication_text".localized()
|
|
button.setTitle("verify_account_button_text".localized(), for: .normal)
|
|
}
|
|
}
|