From 49d75cf57a3e9630c881b7a20ce153f1442e1a25 Mon Sep 17 00:00:00 2001 From: InKwon James Kim Date: Thu, 24 Oct 2019 10:02:13 +0900 Subject: [PATCH] changed RechargePayment --- GME Remit/Extensions/UIColor+Ext.swift | 2 +- .../View/PhoneCardRecharge.storyboard | 1279 +++++++++-------- .../PhoneCardRechargeViewController.swift | 19 + .../View/RechargePayment.storyboard | 94 +- .../View/RechargePaymentViewController.swift | 99 +- .../View/TablePresenter.storyboard | 8 +- 6 files changed, 742 insertions(+), 759 deletions(-) diff --git a/GME Remit/Extensions/UIColor+Ext.swift b/GME Remit/Extensions/UIColor+Ext.swift index 52098503..aeb66a75 100644 --- a/GME Remit/Extensions/UIColor+Ext.swift +++ b/GME Remit/Extensions/UIColor+Ext.swift @@ -20,7 +20,7 @@ extension UIColor { } // origin: ed1b24 // vivid red: ff2727 // cherry tomato: E94B3C // coral red: ff4040 - // UIColor(red:0.92, green:0.12, blue:0.18, alpha:1.0) + // UIColor(red:0.92, green:0.12, blue:0.18, alpha:1.0) // fiesta #dd1923 // #f04b4c class var themeRed: UIColor { return .init(hex: "#ed1b24") diff --git a/GME Remit/Modules/PowerCallModules/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard b/GME Remit/Modules/PowerCallModules/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard index c739f4bd..05767ad6 100644 --- a/GME Remit/Modules/PowerCallModules/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard +++ b/GME Remit/Modules/PowerCallModules/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard @@ -28,595 +28,615 @@ - - + + - - + + - - + + - + - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + - - - - + - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + - - + + - - + + - - + + - + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + @@ -624,157 +644,142 @@ - - - - + + + + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + + + - - - - + + + + + - - - - + + + + - - + + + + + + + + - - - - - - - - + - - - - - - - - + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + @@ -371,14 +311,13 @@ - - + @@ -394,19 +333,18 @@ - + + - - diff --git a/GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePaymentViewController.swift b/GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePaymentViewController.swift index d7fb2db2..fe3caa1e 100644 --- a/GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePaymentViewController.swift +++ b/GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePaymentViewController.swift @@ -11,6 +11,12 @@ import RxSwift import RxCocoa import SwiftyBootpay +import IQKeyboardManagerSwift + +enum RechargePaymentMode { + case card + case wallet +} protocol RechargePayementDelegate: class { func rechargePayment(_ viewController: RechargePaymentViewController, didComplete data: CreditCardReceipt) @@ -27,7 +33,7 @@ class RechargePaymentViewController: UIViewController { private lazy var bootpayController = BootpayController() private lazy var availableBalance = BehaviorSubject(value: "0") private lazy var rechargeSuccess = PublishSubject() - + private lazy var selectedPaymentMode = PublishSubject() private var isFirst = true // MARK: Computed Properties @@ -39,35 +45,47 @@ class RechargePaymentViewController: UIViewController { @IBOutlet private weak var useBalanceTextField: UITextField! @IBOutlet private weak var finalPaymentLabel: UILabel! - @IBOutlet private weak var rechargeCardContainerView: UIView! - @IBOutlet private weak var rechargeCardButton: UIButton! - @IBOutlet private weak var rechargeButtonContainerView: UIView! @IBOutlet private weak var rechargeButton: UIButton! + @IBOutlet private weak var keybardHeight: NSLayoutConstraint! // MARK: VC's Life cycle override func viewDidLoad() { super.viewDidLoad() setup() + + IQKeyboardManager.shared.enable = false + IQKeyboardManager.shared.shouldResignOnTouchOutside = false + useBalanceTextField.keyboardToolbar.isHidden = true + + NotificationCenter.default.addObserver( + self, + selector: #selector(keyboardWillShow), + name: UIResponder.keyboardWillShowNotification, + object: nil + ) + + NotificationCenter.default.addObserver( + self, + selector: #selector(keyboardWillHide), + name: UIResponder.keyboardWillHideNotification, + object: nil + ) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.title = "Recharge Payment" - - mainView.bottomToOrigin { [weak self] in - guard let `self` = self else { return } - - if self.rechargeButtonContainerView.isHidden && self.rechargeCardContainerView.isHidden { - self.useBalanceTextField.becomeFirstResponder() - } - } + mainView.bottomToOrigin() + useBalanceTextField.becomeFirstResponder() } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.title = "" view.endEditing(true) + IQKeyboardManager.shared.enable = true + IQKeyboardManager.shared.shouldResignOnTouchOutside = true } override func viewDidAppear(_ animated: Bool) { @@ -94,11 +112,7 @@ extension RechargePaymentViewController { mainView.layer.cornerRadius = 5 availableBalance.onNext(GMEDB.shared.user.string(.availableBalance) ?? "0") - self.rechargeButtonContainerView.isHidden = true - self.rechargeCardContainerView.isHidden = true - rechargeButton.layer.cornerRadius = 5 - rechargeCardButton.layer.cornerRadius = 5 } private func setBinding() { @@ -133,8 +147,14 @@ extension RechargePaymentViewController { .disposed(by: disposeBag) output.finalPaymentAmount - .map { "Pay by debit/credit card ₩ \(Utility.getCommaSeperatedString(numberString: $0) ?? "")" } - .drive(rechargeCardButton.rx.title(for: .normal)) + .map { + if $0 == "0" { + return "Recharge" + } else { + return "Pay ₩ \(Utility.getCommaSeperatedString(numberString: $0) ?? "")" + } + } + .drive(rechargeButton.rx.title(for: .normal)) .disposed(by: disposeBag) output.isAvailableUseBalance @@ -145,16 +165,13 @@ extension RechargePaymentViewController { }) .disposed(by: disposeBag) - rechargeCardButton.rx.tap.bind { [weak self] in + rechargeButton.rx.tap.bind { [weak self] in + //TODO: Biometric & Secure Keypad guard let `self` = self else {return} let vc = BootPayViewController(dataSource: self, delegate: self) self.present(vc, animated: true) }.disposed(by: disposeBag) - rechargeButton.rx.tap.bind { [weak self] in - //TODO: Biometric & Secure Keypad - }.disposed(by: disposeBag) - availableBalance.asDriverOnErrorJustComplete() .drive(balanceLabel.rx.text) .disposed(by: disposeBag) @@ -172,32 +189,38 @@ extension RechargePaymentViewController { guard let `self` = self else { return } self.useBalanceTextField.text = "0" self.useBalanceTextField.sendActions(for: .editingChanged) - self.rechargeButtonContainerView.animateHidden(isHidden: true) { - self.rechargeCardContainerView.animateHidden(isHidden: true) - } - }.disposed(by: disposeBag) - - useBalanceTextField.rx.controlEvent(.editingDidEnd) - .bind { [weak self] in - guard let `self` = self else { return } - - if self.finalPaymentLabel.text != "0" { - self.rechargeCardContainerView.animateHidden(isHidden: false) - } else { - self.rechargeButtonContainerView.animateHidden(isHidden: false) - } }.disposed(by: disposeBag) let tapGestureRecognizer = UITapGestureRecognizer() tapGestureRecognizer.delegate = self tapGestureRecognizer.rx.event.asDriver() .drive(onNext: {[weak self] _ in - self?.dismiss(animated: true) + self?.touchClose(UIButton()) }) .disposed(by: disposeBag) self.view.addGestureRecognizer(tapGestureRecognizer) } + + @objc func keyboardWillShow(_ notification: Notification) { + if let keyboardFrame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue { + let keyboardRectangle = keyboardFrame.cgRectValue + let keyboardHeight = keyboardRectangle.height + + print("keyboardRectangle: \(keyboardRectangle)") + print("keyboardHeight: \(keyboardHeight)") + + UIView.animate(withDuration: 0.5) { [weak self] in + self?.keybardHeight.constant = keyboardHeight + } + } + } + + @objc func keyboardWillHide(_ notification: NSNotification) { + UIView.animate(withDuration: 0.5) { [weak self] in + self?.keybardHeight.constant = 10 + } + } } // MARK: BootPayDataSource diff --git a/GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenter.storyboard b/GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenter.storyboard index 168b2663..a39bf89e 100644 --- a/GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenter.storyboard +++ b/GME Remit/Utilities/TablePresenter/User Interface/View/TablePresenter.storyboard @@ -38,9 +38,9 @@