|
@ -9,430 +9,434 @@ |
|
|
import UIKit |
|
|
import UIKit |
|
|
|
|
|
|
|
|
class SendMoneyVerificationViewController: UITableViewController { |
|
|
class SendMoneyVerificationViewController: UITableViewController { |
|
|
|
|
|
|
|
|
struct StringConstants { |
|
|
|
|
|
let recieverDetails = "reciever_details_text".localized() |
|
|
|
|
|
let transactionDetails = "transaction_detail_text".localized() |
|
|
|
|
|
let readNAgreeText = "i_have_read_to_text".localized() |
|
|
|
|
|
let userAgreementText = "gme_user_aggreement_text".localized() |
|
|
|
|
|
let agreeAndSendText = "agree_and_send_text".localized() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: IBOutlets |
|
|
|
|
|
|
|
|
|
|
|
// Recievers Details |
|
|
|
|
|
@IBOutlet weak var fullNameLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var addressLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var countryLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var mobileLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var fullNameTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var addressTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var countryTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var mobileTitleLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
// Transation Details |
|
|
|
|
|
@IBOutlet weak var payoutCountryLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutModeLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payingAmountLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var exchangeRateLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var serviceChargeLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutAgentBankLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var accountNoLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var payoutCountryTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutModeTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payingAmountTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var exchangeRateTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var serviceChargeTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutAgentBankTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var accountNumTitlelabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
// title labels |
|
|
|
|
|
@IBOutlet weak var recieverDetailsLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var transactionDetailsLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var readAndAgreeTextLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var userAgreementButton: UIButton! |
|
|
|
|
|
@IBOutlet weak var agreeAndSendButton: UIButton! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var bankNameStackView: UIStackView! |
|
|
|
|
|
@IBOutlet weak var accountNumberStackView: UIStackView! |
|
|
|
|
|
|
|
|
|
|
|
var url: String? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: Keyoboard Properties |
|
|
|
|
|
|
|
|
|
|
|
var mQwertyTransKeyView : TransKeyView! |
|
|
|
|
|
var mNumberTransKeyView : TransKeyView! |
|
|
|
|
|
|
|
|
|
|
|
var secureKey : NSData! |
|
|
|
|
|
var numberCipherString : String! |
|
|
|
|
|
var qwertyCipherString : String! |
|
|
|
|
|
|
|
|
|
|
|
var isTranskeyShowing : Bool! |
|
|
|
|
|
var isShowQwerty : Bool! |
|
|
|
|
|
var isShowNumber : Bool! |
|
|
|
|
|
|
|
|
|
|
|
var isUsingBiometricAuth = false |
|
|
|
|
|
|
|
|
|
|
|
var encryptedText: String! { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if mQwertyTransKeyView?.mTK_GetDataLength() != 0 { |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
var encryptedNumber: String! { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if mNumberTransKeyView.mTK_GetDataLength() != 0 { |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
|
|
|
|
|
|
|
|
var presenter: SendMoneyVerificationModuleInterface? |
|
|
|
|
|
var reciepient: Recipient? |
|
|
|
|
|
var requestModel: SendMoneyRequestModel? |
|
|
|
|
|
var hudDelegate: HUDStatusDelegate? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var password: String? { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if let model = self.requestModel, let reciepient = self.reciepient { |
|
|
|
|
|
|
|
|
|
|
|
model.transactionPassword = password ?? "" |
|
|
|
|
|
self.presenter?.submit(model: model, reciepient: reciepient) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: VC's Life cycle |
|
|
|
|
|
override func viewDidLoad() { |
|
|
|
|
|
super.viewDidLoad() |
|
|
|
|
|
self.keyboardSetup() |
|
|
|
|
|
self.setup() |
|
|
|
|
|
self.configureLanguage() |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) { |
|
|
|
|
|
super.viewWillAppear(animated) |
|
|
|
|
|
self.navigationItem.title = "resend_money_text".localized() |
|
|
|
|
|
populateRecieversInformations() |
|
|
|
|
|
populateTransactionDetails() |
|
|
|
|
|
mQwertyTransKeyView?.delegate = self |
|
|
|
|
|
mNumberTransKeyView?.delegate = self |
|
|
|
|
|
self.bankNameStackView.isHidden = (self.requestModel?.bank?.name ?? "").isEmpty |
|
|
|
|
|
self.accountNumberStackView.isHidden = (self.requestModel?.paymemtMode?.accountNumber ?? "").isEmpty |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct StringConstants { |
|
|
|
|
|
let recieverDetails = "reciever_details_text".localized() |
|
|
|
|
|
let transactionDetails = "transaction_detail_text".localized() |
|
|
|
|
|
let readNAgreeText = "i_have_read_to_text".localized() |
|
|
|
|
|
let userAgreementText = "gme_user_aggreement_text".localized() |
|
|
|
|
|
let agreeAndSendText = "agree_and_send_text".localized() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: IBOutlets |
|
|
|
|
|
|
|
|
|
|
|
// Recievers Details |
|
|
|
|
|
@IBOutlet weak var fullNameLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var addressLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var countryLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var mobileLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var fullNameTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var addressTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var countryTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var mobileTitleLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
// Transation Details |
|
|
|
|
|
@IBOutlet weak var payoutCountryLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutModeLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payingAmountLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var exchangeRateLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var serviceChargeLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutAgentBankLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var accountNoLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var payoutCountryTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutModeTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payingAmountTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var exchangeRateTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var serviceChargeTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var payoutAgentBankTitleLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var accountNumTitlelabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
// title labels |
|
|
|
|
|
@IBOutlet weak var recieverDetailsLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var transactionDetailsLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var readAndAgreeTextLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var userAgreementButton: UIButton! |
|
|
|
|
|
@IBOutlet weak var agreeAndSendButton: UIButton! |
|
|
|
|
|
|
|
|
|
|
|
@IBOutlet weak var bankNameStackView: UIStackView! |
|
|
|
|
|
@IBOutlet weak var accountNumberStackView: UIStackView! |
|
|
|
|
|
|
|
|
|
|
|
var url: String? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: Keyoboard Properties |
|
|
|
|
|
|
|
|
|
|
|
var mQwertyTransKeyView : TransKeyView! |
|
|
|
|
|
var mNumberTransKeyView : TransKeyView! |
|
|
|
|
|
|
|
|
|
|
|
var secureKey : NSData! |
|
|
|
|
|
var numberCipherString : String! |
|
|
|
|
|
var qwertyCipherString : String! |
|
|
|
|
|
|
|
|
|
|
|
var isTranskeyShowing : Bool! |
|
|
|
|
|
var isShowQwerty : Bool! |
|
|
|
|
|
var isShowNumber : Bool! |
|
|
|
|
|
|
|
|
|
|
|
var isUsingBiometricAuth = false |
|
|
|
|
|
|
|
|
|
|
|
var encryptedText: String! { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if mQwertyTransKeyView?.mTK_GetDataLength() != 0 { |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
var encryptedNumber: String! { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if mNumberTransKeyView.mTK_GetDataLength() != 0 { |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
|
|
|
|
|
|
|
|
var presenter: SendMoneyVerificationModuleInterface? |
|
|
|
|
|
var reciepient: Recipient? |
|
|
|
|
|
var requestModel: SendMoneyRequestModel? |
|
|
|
|
|
var hudDelegate: HUDStatusDelegate? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var password: String? { |
|
|
|
|
|
didSet { |
|
|
|
|
|
if let model = self.requestModel, let reciepient = self.reciepient { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func viewDidDisappear(_ animated: Bool) { |
|
|
|
|
|
super.viewDidDisappear(animated) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_ClearDelegateSubviews() |
|
|
|
|
|
mNumberTransKeyView?.mTK_ClearDelegateSubviews() |
|
|
|
|
|
if isTranskeyShowing == false{ |
|
|
|
|
|
mQwertyTransKeyView?.delegate = nil; |
|
|
|
|
|
mNumberTransKeyView?.delegate = nil; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
|
|
|
|
|
return UITableViewAutomaticDimension |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { |
|
|
|
|
|
return 200 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: IBActions |
|
|
|
|
|
@IBAction func showUserAgreement(_ sender: UIButton) { |
|
|
|
|
|
let webController = UIStoryboard.init(name: "Storyboard", bundle: nil).instantiateViewController(withIdentifier: "WebLinksViewController") as! WebLinksViewController |
|
|
|
|
|
webController.titleString = "User Agreement" |
|
|
|
|
|
webController.url = self.url ?? "https://online.gmeremit.com/Terms" |
|
|
|
|
|
let nav = UINavigationController.init(rootViewController: webController) |
|
|
|
|
|
self.present(nav, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@IBAction func submit(_ sender: UIButton) { |
|
|
|
|
|
self.askPassword() |
|
|
|
|
|
} |
|
|
|
|
|
// MARK: Other Functions |
|
|
|
|
|
|
|
|
|
|
|
private func setup() { |
|
|
|
|
|
configureLanguage() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func configureLanguage() { |
|
|
|
|
|
self.fullNameTitleLabel.text = "full_name_text".localized() |
|
|
|
|
|
self.addressTitleLabel.text = "address_text".localized() |
|
|
|
|
|
self.countryTitleLabel.text = "country_text".localized() |
|
|
|
|
|
self.mobileTitleLabel.text = "mobile_text".localized() |
|
|
|
|
|
self.payoutCountryTitleLabel.text = "payout_country_text".localized() |
|
|
|
|
|
self.payoutModeTitleLabel.text = "payout_mode_text".localized() |
|
|
|
|
|
self.payingAmountTitleLabel.text = "paying_amount_text".localized() |
|
|
|
|
|
self.exchangeRateTitleLabel.text = "exchange_rate_text".localized() |
|
|
|
|
|
self.serviceChargeTitleLabel.text = "service_charge_text".localized() |
|
|
|
|
|
self.payoutAgentBankTitleLabel.text = "payout_agent_text".localized() |
|
|
|
|
|
self.recieverDetailsLabel.text = StringConstants().recieverDetails |
|
|
|
|
|
self.transactionDetailsLabel.text = StringConstants().transactionDetails |
|
|
|
|
|
self.readAndAgreeTextLabel.text = StringConstants().readNAgreeText |
|
|
|
|
|
self.userAgreementButton.setTitle(StringConstants().userAgreementText, for: .normal) |
|
|
|
|
|
self.agreeAndSendButton.setTitle(StringConstants().agreeAndSendText |
|
|
|
|
|
, for: .normal) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private func keyboardSetup() { |
|
|
|
|
|
isShowNumber = false |
|
|
|
|
|
isShowQwerty = false |
|
|
|
|
|
isTranskeyShowing = false |
|
|
|
|
|
let iv: Array<String> = ["M", "o", "b", "i", "l", "e", "T", "r" , "a", "n", "s", "K", "e", "y", "1", "0"] |
|
|
|
|
|
secureKey = NSData(bytes: iv, length: 16) |
|
|
|
|
|
setQwertyTranskey() |
|
|
|
|
|
setNumberTranskey() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func setQwertyTranskey(){ |
|
|
|
|
|
mQwertyTransKeyView = TransKeyView() |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Init(self) |
|
|
|
|
|
mQwertyTransKeyView?.delegate = self |
|
|
|
|
|
mQwertyTransKeyView?.mTK_MakeSecureKey() |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_LicenseCheck("license_IBK_TEST_IONEBANK_20181105_20190531") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func setNumberTranskey(){ |
|
|
|
|
|
mNumberTransKeyView = TransKeyView() |
|
|
|
|
|
mNumberTransKeyView?.mTK_Init(self) |
|
|
|
|
|
mNumberTransKeyView?.delegate = self |
|
|
|
|
|
mNumberTransKeyView?.mTK_MakeSecureKey() |
|
|
|
|
|
mNumberTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mNumberTransKeyView?.mTK_LicenseCheck("license_IBK_TEST_IONEBANK_20181105_20190531") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func populateRecieversInformations() { |
|
|
|
|
|
self.fullNameLabel.text = self.reciepient?.getFullName() |
|
|
|
|
|
self.addressLabel.text = self.reciepient?.address |
|
|
|
|
|
self.countryLabel.text = self.reciepient?.country |
|
|
|
|
|
self.mobileLabel.text = self.reciepient?.mobileNumber |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func populateTransactionDetails() { |
|
|
|
|
|
self.payoutCountryLabel.text = self.reciepient?.country |
|
|
|
|
|
self.payoutModeLabel.text = self.requestModel?.paymemtMode?.mode |
|
|
|
|
|
self.payingAmountLabel.text = (self.requestModel?.exchangeRateDetail?.recipientAmount ?? "") + " \(self.requestModel?.exchangeRateDetail?.reciepientCurrency ?? "")" |
|
|
|
|
|
self.exchangeRateLabel.text = self.requestModel?.exchangeRateDetail?.exchangeRate |
|
|
|
|
|
self.serviceChargeLabel.text = self.requestModel?.exchangeRateDetail?.transferFee |
|
|
|
|
|
self.payoutAgentBankLabel.text = self.requestModel?.bank?.name |
|
|
|
|
|
self.accountNoLabel.text = self.requestModel?.paymemtMode?.accountNumber |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func askPassword() { |
|
|
|
|
|
|
|
|
|
|
|
if (self.requestModel?.autoDebitAccount?.type ?? "").lowercased() == "wallet" { |
|
|
|
|
|
|
|
|
|
|
|
if let isUseBiometricAuth = KeyChain.shared.get(key: .biometricAuth), isUseBiometricAuth == "1" { |
|
|
|
|
|
let biometricAuthenticationWireframe = BiometricAuthenticationWireframe() |
|
|
|
|
|
biometricAuthenticationWireframe.openWithDelegate(on: self, delegate: self) |
|
|
|
|
|
} else { |
|
|
|
|
|
showQwertyTranskeyAction() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
model.transactionPassword = password ?? "" |
|
|
|
|
|
self.presenter?.submit(model: model, reciepient: reciepient) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: VC's Life cycle |
|
|
|
|
|
override func viewDidLoad() { |
|
|
|
|
|
super.viewDidLoad() |
|
|
|
|
|
self.keyboardSetup() |
|
|
|
|
|
self.setup() |
|
|
|
|
|
self.configureLanguage() |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) { |
|
|
|
|
|
super.viewWillAppear(animated) |
|
|
|
|
|
self.navigationItem.title = "resend_money_text".localized() |
|
|
|
|
|
populateRecieversInformations() |
|
|
|
|
|
populateTransactionDetails() |
|
|
|
|
|
mQwertyTransKeyView?.delegate = self |
|
|
|
|
|
mNumberTransKeyView?.delegate = self |
|
|
|
|
|
self.bankNameStackView.isHidden = (self.requestModel?.bank?.name ?? "").isEmpty |
|
|
|
|
|
self.accountNumberStackView.isHidden = (self.requestModel?.paymemtMode?.accountNumber ?? "").isEmpty |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func viewDidDisappear(_ animated: Bool) { |
|
|
|
|
|
super.viewDidDisappear(animated) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_ClearDelegateSubviews() |
|
|
|
|
|
mNumberTransKeyView?.mTK_ClearDelegateSubviews() |
|
|
|
|
|
if isTranskeyShowing == false{ |
|
|
|
|
|
mQwertyTransKeyView?.delegate = nil; |
|
|
|
|
|
mNumberTransKeyView?.delegate = nil; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
|
|
|
|
|
return UITableViewAutomaticDimension |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { |
|
|
|
|
|
return 200 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: IBActions |
|
|
|
|
|
@IBAction func showUserAgreement(_ sender: UIButton) { |
|
|
|
|
|
let webController = UIStoryboard.init(name: "Storyboard", bundle: nil).instantiateViewController(withIdentifier: "WebLinksViewController") as! WebLinksViewController |
|
|
|
|
|
webController.titleString = "User Agreement" |
|
|
|
|
|
webController.url = self.url ?? "https://online.gmeremit.com/Terms" |
|
|
|
|
|
let nav = UINavigationController.init(rootViewController: webController) |
|
|
|
|
|
self.present(nav, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@IBAction func submit(_ sender: UIButton) { |
|
|
|
|
|
self.askPassword() |
|
|
|
|
|
} |
|
|
|
|
|
// MARK: Other Functions |
|
|
|
|
|
|
|
|
|
|
|
private func setup() { |
|
|
|
|
|
configureLanguage() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func configureLanguage() { |
|
|
|
|
|
self.fullNameTitleLabel.text = "full_name_text".localized() |
|
|
|
|
|
self.addressTitleLabel.text = "address_text".localized() |
|
|
|
|
|
self.countryTitleLabel.text = "country_text".localized() |
|
|
|
|
|
self.mobileTitleLabel.text = "mobile_text".localized() |
|
|
|
|
|
self.payoutCountryTitleLabel.text = "payout_country_text".localized() |
|
|
|
|
|
self.payoutModeTitleLabel.text = "payout_mode_text".localized() |
|
|
|
|
|
self.payingAmountTitleLabel.text = "paying_amount_text".localized() |
|
|
|
|
|
self.exchangeRateTitleLabel.text = "exchange_rate_text".localized() |
|
|
|
|
|
self.serviceChargeTitleLabel.text = "service_charge_text".localized() |
|
|
|
|
|
self.payoutAgentBankTitleLabel.text = "payout_agent_text".localized() |
|
|
|
|
|
self.recieverDetailsLabel.text = StringConstants().recieverDetails |
|
|
|
|
|
self.transactionDetailsLabel.text = StringConstants().transactionDetails |
|
|
|
|
|
self.readAndAgreeTextLabel.text = StringConstants().readNAgreeText |
|
|
|
|
|
self.userAgreementButton.setTitle(StringConstants().userAgreementText, for: .normal) |
|
|
|
|
|
self.agreeAndSendButton.setTitle(StringConstants().agreeAndSendText |
|
|
|
|
|
, for: .normal) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private func keyboardSetup() { |
|
|
|
|
|
isShowNumber = false |
|
|
|
|
|
isShowQwerty = false |
|
|
|
|
|
isTranskeyShowing = false |
|
|
|
|
|
let iv: Array<String> = ["M", "o", "b", "i", "l", "e", "T", "r" , "a", "n", "s", "K", "e", "y", "1", "0"] |
|
|
|
|
|
secureKey = NSData(bytes: iv, length: 16) |
|
|
|
|
|
setQwertyTranskey() |
|
|
|
|
|
setNumberTranskey() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func setQwertyTranskey(){ |
|
|
|
|
|
mQwertyTransKeyView = TransKeyView() |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Init(self) |
|
|
|
|
|
mQwertyTransKeyView?.delegate = self |
|
|
|
|
|
mQwertyTransKeyView?.mTK_MakeSecureKey() |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_LicenseCheck("license_IBK_TEST_IONEBANK_20181105_20190531") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func setNumberTranskey(){ |
|
|
|
|
|
mNumberTransKeyView = TransKeyView() |
|
|
|
|
|
mNumberTransKeyView?.mTK_Init(self) |
|
|
|
|
|
mNumberTransKeyView?.delegate = self |
|
|
|
|
|
mNumberTransKeyView?.mTK_MakeSecureKey() |
|
|
|
|
|
mNumberTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mNumberTransKeyView?.mTK_LicenseCheck("license_IBK_TEST_IONEBANK_20181105_20190531") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func populateRecieversInformations() { |
|
|
|
|
|
self.fullNameLabel.text = self.reciepient?.getFullName() |
|
|
|
|
|
self.addressLabel.text = self.reciepient?.address |
|
|
|
|
|
self.countryLabel.text = self.reciepient?.country |
|
|
|
|
|
self.mobileLabel.text = self.reciepient?.mobileNumber |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func populateTransactionDetails() { |
|
|
|
|
|
self.payoutCountryLabel.text = self.reciepient?.country |
|
|
|
|
|
self.payoutModeLabel.text = self.requestModel?.paymemtMode?.mode |
|
|
|
|
|
self.payingAmountLabel.text = (self.requestModel?.exchangeRateDetail?.recipientAmount ?? "") + " \(self.requestModel?.exchangeRateDetail?.reciepientCurrency ?? "")" |
|
|
|
|
|
self.exchangeRateLabel.text = self.requestModel?.exchangeRateDetail?.exchangeRate |
|
|
|
|
|
self.serviceChargeLabel.text = self.requestModel?.exchangeRateDetail?.transferFee |
|
|
|
|
|
self.payoutAgentBankLabel.text = self.requestModel?.bank?.name |
|
|
|
|
|
self.accountNoLabel.text = self.requestModel?.paymemtMode?.accountNumber |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func askPassword() { |
|
|
|
|
|
|
|
|
|
|
|
if (self.requestModel?.autoDebitAccount?.type ?? "").lowercased() == "wallet" { |
|
|
|
|
|
|
|
|
|
|
|
if let isUseBiometric = KeyChain.shared.get(key: .biometricAuth), isUseBiometric == "1" { |
|
|
|
|
|
let biometricAuthenticationWireframe = BiometricAuthenticationWireframe() |
|
|
|
|
|
biometricAuthenticationWireframe.openWithDelegate(on: self, delegate: self) |
|
|
|
|
|
} else { |
|
|
|
|
|
showQwertyTranskeyAction() |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
if let isUseBiometric = KeyChain.shared.get(key: .biometricAuth), isUseBiometric == "1" { |
|
|
|
|
|
let biometricAuthenticationWireframe = BiometricAuthenticationWireframe() |
|
|
|
|
|
biometricAuthenticationWireframe.openWithDelegate(on: self, delegate: self) |
|
|
|
|
|
} else { |
|
|
SendMoneyCodeWireframe().open(requestmodel: self.requestModel, completion: self.otpEntered, source: self) |
|
|
SendMoneyCodeWireframe().open(requestmodel: self.requestModel, completion: self.otpEntered, source: self) |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func otpEntered(otp: String) { |
|
|
|
|
|
self.password = otp |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// start keyboard |
|
|
|
|
|
private func showQwertyTranskeyAction() { |
|
|
|
|
|
if mQwertyTransKeyView?.isBeingPresented == false { |
|
|
|
|
|
isShowQwerty = true |
|
|
|
|
|
isTranskeyShowing = true |
|
|
|
|
|
|
|
|
|
|
|
let hintStr = String(format:"pasword", 0) |
|
|
|
|
|
let font = UIFont(name: "Arial", size: 15) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetHint(hintStr, font: font) |
|
|
|
|
|
// mQwertyTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.")i |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseCursor(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseAllDeleteButton(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseNavigationBar(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseVoiceOver(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_setHideInputPasswordDelay(3) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetControlCenter(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_setIgnoreStatusbar(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseShiftOptional(true) |
|
|
|
|
|
mQwertyTransKeyView?.setKeyboardType(self, |
|
|
|
|
|
keypadType: 0, |
|
|
|
|
|
mTK_inputType: 2, |
|
|
|
|
|
mTK_inputTitle: "Password", |
|
|
|
|
|
mTK_cryptType: 0, |
|
|
|
|
|
mTK_maxLength: 100, |
|
|
|
|
|
mTK_minLength: 0, |
|
|
|
|
|
mTK_keypadUpper: false, |
|
|
|
|
|
mTK_languageType: 1) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_EnableSamekeyInputDataEncrypt(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetUseBalloonImageButton(true) |
|
|
|
|
|
if let mQwertyTransKeyView = mQwertyTransKeyView { |
|
|
|
|
|
self.present(mQwertyTransKeyView, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func showNumberTranskeyAction(){ |
|
|
|
|
|
if mNumberTransKeyView?.isBeingPresented == false{ |
|
|
|
|
|
isShowNumber = true |
|
|
|
|
|
isTranskeyShowing = true |
|
|
|
|
|
mNumberTransKeyView?.mTK_SetHint("password", font:UIFont(name:"Arial", size: 15.0)) |
|
|
|
|
|
mNumberTransKeyView?.mTK_ShowMessageIfMinLength("0자리 이상 입력해주세요.") |
|
|
|
|
|
mNumberTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.") |
|
|
|
|
|
mNumberTransKeyView?.mTK_UseVoiceOver(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_setIgnoreStatusbar(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_SetControlCenter(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_UseAllDeleteButton(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mNumberTransKeyView?.setKeyboardType(self, |
|
|
|
|
|
keypadType: TransKeyKeypadTypeText, |
|
|
|
|
|
mTK_inputType: 2, |
|
|
|
|
|
mTK_inputTitle: "password", |
|
|
|
|
|
mTK_cryptType: 0, |
|
|
|
|
|
mTK_maxLength: 16, |
|
|
|
|
|
mTK_minLength: 0, |
|
|
|
|
|
mTK_keypadUpper: false, |
|
|
|
|
|
mTK_languageType: Int(mTK_Language_English.rawValue)) |
|
|
|
|
|
if let mNumberTransKeyView = mNumberTransKeyView { |
|
|
|
|
|
self.present(mNumberTransKeyView, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func otpEntered(otp: String) { |
|
|
|
|
|
self.password = otp |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// start keyboard |
|
|
|
|
|
private func showQwertyTranskeyAction() { |
|
|
|
|
|
if mQwertyTransKeyView?.isBeingPresented == false { |
|
|
|
|
|
isShowQwerty = true |
|
|
|
|
|
isTranskeyShowing = true |
|
|
|
|
|
|
|
|
|
|
|
let hintStr = String(format:"pasword", 0) |
|
|
|
|
|
let font = UIFont(name: "Arial", size: 15) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetHint(hintStr, font: font) |
|
|
|
|
|
// mQwertyTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.")i |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseCursor(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseAllDeleteButton(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseNavigationBar(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseVoiceOver(true) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_setHideInputPasswordDelay(3) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetControlCenter(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_setIgnoreStatusbar(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_UseShiftOptional(true) |
|
|
|
|
|
mQwertyTransKeyView?.setKeyboardType(self, |
|
|
|
|
|
keypadType: 0, |
|
|
|
|
|
mTK_inputType: 2, |
|
|
|
|
|
mTK_inputTitle: "Password", |
|
|
|
|
|
mTK_cryptType: 0, |
|
|
|
|
|
mTK_maxLength: 100, |
|
|
|
|
|
mTK_minLength: 0, |
|
|
|
|
|
mTK_keypadUpper: false, |
|
|
|
|
|
mTK_languageType: 1) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_EnableSamekeyInputDataEncrypt(false) |
|
|
|
|
|
mQwertyTransKeyView?.mTK_SetUseBalloonImageButton(true) |
|
|
|
|
|
if let mQwertyTransKeyView = mQwertyTransKeyView { |
|
|
|
|
|
self.present(mQwertyTransKeyView, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func showNumberTranskeyAction(){ |
|
|
|
|
|
if mNumberTransKeyView?.isBeingPresented == false{ |
|
|
|
|
|
isShowNumber = true |
|
|
|
|
|
isTranskeyShowing = true |
|
|
|
|
|
mNumberTransKeyView?.mTK_SetHint("password", font:UIFont(name:"Arial", size: 15.0)) |
|
|
|
|
|
mNumberTransKeyView?.mTK_ShowMessageIfMinLength("0자리 이상 입력해주세요.") |
|
|
|
|
|
mNumberTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.") |
|
|
|
|
|
mNumberTransKeyView?.mTK_UseVoiceOver(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_setIgnoreStatusbar(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_SetControlCenter(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_UseAllDeleteButton(false) |
|
|
|
|
|
mNumberTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) |
|
|
|
|
|
mNumberTransKeyView?.setKeyboardType(self, |
|
|
|
|
|
keypadType: TransKeyKeypadTypeText, |
|
|
|
|
|
mTK_inputType: 2, |
|
|
|
|
|
mTK_inputTitle: "password", |
|
|
|
|
|
mTK_cryptType: 0, |
|
|
|
|
|
mTK_maxLength: 16, |
|
|
|
|
|
mTK_minLength: 0, |
|
|
|
|
|
mTK_keypadUpper: false, |
|
|
|
|
|
mTK_languageType: Int(mTK_Language_English.rawValue)) |
|
|
|
|
|
if let mNumberTransKeyView = mNumberTransKeyView { |
|
|
|
|
|
self.present(mNumberTransKeyView, animated: true, completion: nil) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// MARK: SendMoneyVerificationViewInterface |
|
|
// MARK: SendMoneyVerificationViewInterface |
|
|
extension SendMoneyVerificationViewController: SendMoneyVerificationViewInterface { |
|
|
extension SendMoneyVerificationViewController: SendMoneyVerificationViewInterface { |
|
|
func show(model: SendMoneySubmitModelContainer?) { |
|
|
|
|
|
self.alertWithOk(message: model?.message , title: "Success", okTitle: "OK", style: UIAlertControllerStyle.alert, OkStyle: .default) { |
|
|
|
|
|
if let id = model?.id { |
|
|
|
|
|
self.presenter?.openReciept(transactionId: id) |
|
|
|
|
|
}else { |
|
|
|
|
|
self.alert(message: "No Transaction recievied.") |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func show(error: String) { |
|
|
|
|
|
// self.presenter?.openReciept(transactionId: "1235") |
|
|
|
|
|
if isUsingBiometricAuth { |
|
|
|
|
|
if error.contains("Invalid Password") { |
|
|
|
|
|
MainWireframe.logoutWarningAlert(message: "It is different from registered password.\nplease try to login again") |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func show(model: SendMoneySubmitModelContainer?) { |
|
|
|
|
|
self.alertWithOk(message: model?.message , title: "Success", okTitle: "OK", style: UIAlertControllerStyle.alert, OkStyle: .default) { |
|
|
|
|
|
if let id = model?.id { |
|
|
|
|
|
self.presenter?.openReciept(transactionId: id) |
|
|
|
|
|
}else { |
|
|
|
|
|
self.alert(message: "No Transaction recievied.") |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func show(error: String) { |
|
|
|
|
|
// self.presenter?.openReciept(transactionId: "1235") |
|
|
|
|
|
if isUsingBiometricAuth { |
|
|
|
|
|
if error.contains("Invalid Password") { |
|
|
|
|
|
MainWireframe.logoutWarningAlert(message: "It is different from registered password.\nplease try to login again") |
|
|
|
|
|
|
|
|
self.alert(message: error) |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func showLoading() { |
|
|
|
|
|
if let _ = hudDelegate { |
|
|
|
|
|
self.hudDelegate?.showLoading() |
|
|
|
|
|
}else { |
|
|
|
|
|
self.showProgressHud() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.alert(message: error) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func showLoading() { |
|
|
|
|
|
if let _ = hudDelegate { |
|
|
|
|
|
self.hudDelegate?.showLoading() |
|
|
|
|
|
}else { |
|
|
|
|
|
self.showProgressHud() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func hideLoading() { |
|
|
|
|
|
self.hudDelegate?.hideLoading() |
|
|
|
|
|
self.hideProgressHud() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func hideLoading() { |
|
|
|
|
|
self.hudDelegate?.hideLoading() |
|
|
|
|
|
self.hideProgressHud() |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
extension SendMoneyVerificationViewController { |
|
|
extension SendMoneyVerificationViewController { |
|
|
override func didMove(toParentViewController parent: UIViewController?) { |
|
|
|
|
|
self.viewWillAppear(true) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
override func didMove(toParentViewController parent: UIViewController?) { |
|
|
|
|
|
self.viewWillAppear(true) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
extension SendMoneyVerificationViewController: TransKeyViewDelegate { |
|
|
extension SendMoneyVerificationViewController: TransKeyViewDelegate { |
|
|
func secureInputFinish(_ type: Int) { |
|
|
|
|
|
NSLog("secureInputFinish Btn Type : %d", type) |
|
|
|
|
|
NSLog("secureInputFinish"); |
|
|
|
|
|
var targetView : TransKeyView? |
|
|
|
|
|
|
|
|
|
|
|
NSLog("qwerty : " + isShowQwerty.description + " number : " + isShowNumber.description) |
|
|
|
|
|
if isShowQwerty == true{ |
|
|
|
|
|
qwertyCipherString = mQwertyTransKeyView?.mTK_GetSecureData() |
|
|
|
|
|
if mQwertyTransKeyView?.mTK_GetDataLength() == 0 { |
|
|
|
|
|
self.encryptedText = "" |
|
|
|
|
|
}else { |
|
|
|
|
|
self.encryptedText = qwertyCipherString |
|
|
|
|
|
self.password = self.encryptedText |
|
|
|
|
|
} |
|
|
|
|
|
self.encryptedText = qwertyCipherString |
|
|
|
|
|
targetView = mQwertyTransKeyView |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if isShowNumber == true{ |
|
|
|
|
|
numberCipherString = mNumberTransKeyView?.mTK_GetSecureData() |
|
|
|
|
|
self.encryptedNumber = numberCipherString |
|
|
|
|
|
|
|
|
|
|
|
self.encryptedText = "" |
|
|
|
|
|
self.password = self.encryptedNumber |
|
|
|
|
|
|
|
|
|
|
|
targetView = mNumberTransKeyView |
|
|
|
|
|
} |
|
|
|
|
|
isShowQwerty = false |
|
|
|
|
|
isShowNumber = false |
|
|
|
|
|
isTranskeyShowing = false |
|
|
|
|
|
|
|
|
|
|
|
targetView?.dismiss(animated: true, completion: nil) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func secureInputFinish(_ type: Int) { |
|
|
|
|
|
NSLog("secureInputFinish Btn Type : %d", type) |
|
|
|
|
|
NSLog("secureInputFinish"); |
|
|
|
|
|
var targetView : TransKeyView? |
|
|
|
|
|
|
|
|
|
|
|
NSLog("qwerty : " + isShowQwerty.description + " number : " + isShowNumber.description) |
|
|
|
|
|
if isShowQwerty == true{ |
|
|
|
|
|
qwertyCipherString = mQwertyTransKeyView?.mTK_GetSecureData() |
|
|
|
|
|
if mQwertyTransKeyView?.mTK_GetDataLength() == 0 { |
|
|
|
|
|
self.encryptedText = "" |
|
|
|
|
|
}else { |
|
|
|
|
|
self.encryptedText = qwertyCipherString |
|
|
|
|
|
self.password = self.encryptedText |
|
|
|
|
|
} |
|
|
|
|
|
self.encryptedText = qwertyCipherString |
|
|
|
|
|
targetView = mQwertyTransKeyView |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if isShowNumber == true{ |
|
|
|
|
|
numberCipherString = mNumberTransKeyView?.mTK_GetSecureData() |
|
|
|
|
|
self.encryptedNumber = numberCipherString |
|
|
|
|
|
|
|
|
|
|
|
self.encryptedText = "" |
|
|
|
|
|
self.password = self.encryptedNumber |
|
|
|
|
|
|
|
|
|
|
|
targetView = mNumberTransKeyView |
|
|
|
|
|
} |
|
|
|
|
|
isShowQwerty = false |
|
|
|
|
|
isShowNumber = false |
|
|
|
|
|
isTranskeyShowing = false |
|
|
|
|
|
|
|
|
|
|
|
targetView?.dismiss(animated: true, completion: nil) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extension SendMoneyVerificationViewController: BiometricAuthenticationViewControllerDelegate { |
|
|
extension SendMoneyVerificationViewController: BiometricAuthenticationViewControllerDelegate { |
|
|
func viewController(_ viewController: BiometricAuthenticationViewController, informationTitleLabel titleLabel: UILabel) { |
|
|
|
|
|
titleLabel.text = "Please enter authentication information for Remittance" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func didComplete(_ viewController: BiometricAuthenticationViewController) { |
|
|
|
|
|
self.isUsingBiometricAuth = true |
|
|
|
|
|
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, didFailWithError error: Error, errorMessage: String?) { |
|
|
|
|
|
print("BiometricAuthenticationWireframe Error: \(errorMessage ?? "")") |
|
|
|
|
|
viewController.dismiss(animated: true){ |
|
|
|
|
|
guard let err = error as? BiometricAuthenticationError else{ |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
switch err { |
|
|
|
|
|
case .userFallback: |
|
|
|
|
|
self.isUsingBiometricAuth = false |
|
|
|
|
|
self.showQwertyTranskeyAction() |
|
|
|
|
|
default: |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func doSelectLocalAuthenticationPolicy(_ viewController: BiometricAuthenticationViewController) -> BiometricAuthenticationPolicy{ |
|
|
|
|
|
return .deviceOwnerAuthenticationWithBiometrics |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func viewController(_ viewController: BiometricAuthenticationViewController, informationTitleLabel titleLabel: UILabel) { |
|
|
|
|
|
titleLabel.text = "Please enter authentication information for Remittance" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func didComplete(_ viewController: BiometricAuthenticationViewController) { |
|
|
|
|
|
self.isUsingBiometricAuth = true |
|
|
|
|
|
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, didFailWithError error: Error, errorMessage: String?) { |
|
|
|
|
|
print("BiometricAuthenticationWireframe Error: \(errorMessage ?? "")") |
|
|
|
|
|
viewController.dismiss(animated: true){ |
|
|
|
|
|
guard let err = error as? BiometricAuthenticationError else{ |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
switch err { |
|
|
|
|
|
case .userFallback: |
|
|
|
|
|
self.isUsingBiometricAuth = false |
|
|
|
|
|
self.showQwertyTranskeyAction() |
|
|
|
|
|
default: |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func doSelectLocalAuthenticationPolicy(_ viewController: BiometricAuthenticationViewController) -> BiometricAuthenticationPolicy{ |
|
|
|
|
|
return .deviceOwnerAuthenticationWithBiometrics |
|
|
|
|
|
} |
|
|
} |
|
|
} |