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.
 
 
 
 

143 lines
4.4 KiB

//
// PennyTestViewController.swift
// GME Remit
//
// Created by Mac on 11/27/18.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class PennyTestViewController: UIViewController {
struct StringConstants {
let proceedText = "proceed_text".localized()
let notNowText = "not_now_text".localized()
}
// MARK: Properties
var presenter: PennyTestModuleInterface?
var model: KYCResponse?
var backGroundView: UIView?
// MARK: IBOutlets
@IBOutlet weak var dismissButton: UIButton!
@IBOutlet weak var iconImageView: UIImageView!
@IBOutlet weak var infoLabel: UILabel!
@IBOutlet weak var proceedButton: UIButton!
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(self.closePennyTest(sender:)), name: NSNotification.Name.init("closePennyTest"), object: nil)
self.setup()
}
@objc private func closePennyTest(sender: Notification) {
self.dismiss(animated: true, completion: nil)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UserDefaults.standard.set(true, forKey: AppConstants.pennyTestPresentedOnce)
self.navigationItem.title = "penny_test_title_text".localized()
self.setupNormalNavigation()
self.navigationItem.hidesBackButton = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
UserDefaults.standard.set(true, forKey: AppConstants.pennyTestPresentedOnce)
}
// MARK: IBActions
// MARK: Other Functions
private func setup() {
// all setup should be done here
self.setupNormalNavigation()
self.proceedButton.rounded()
iconImageView.rounded()
iconImageView.layer.borderColor = AppConstants.themeRedColor.cgColor
iconImageView.layer.borderWidth = 2
iconImageView.layer.contentsScale = UIScreen.main.scale
if let _view = self.backGroundView {
_view.frame = self.view.frame
self.view.addSubview(_view)
}
UserDefaults.standard.set(true, forKey: AppConstants.pennyTestPresentedOnce)
configureText()
}
private func configureText() {
self.proceedButton.setTitle(StringConstants().proceedText, for: UIControlState.normal)
self.dismissButton.setTitle(StringConstants().notNowText, for: UIControlState.normal)
// penny_test_promt_description_text
infoLabel.text = "penny_test_promt_description_text".localized()
}
@IBAction func proceed(_ sender: UIButton) {
self.proceed()
}
@IBAction func dismiss(_ sender: UIButton) {
self.updatePennyTestCancelledStatus()
self.dismiss(animated: true, completion: nil)
}
private func proceed() {
let userId = Utility.getMyUserName()
self.showLoading()
self.initiate(userId: userId, isResendRequest: "N", success: { result in
self.hideLoading()
UserDefaults.standard.set(result.message, forKey: AppConstants.pennyTestServerMessage)
self.updatePennyTestRequestStatus()
let wireframe = PennyTestSubmitWireframe()
if let navigation = self.navigationController {
wireframe.parentViewController = self
wireframe.pushMainView(in: navigation)
}
}) { (error) in
self.hideLoading()
self.alert(message: error.localizedDescription)
}
}
private func updatePennyTestRequestStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.requested.rawValue, forKey: AppConstants.pennyTestStatusCode)
}
private func updatePennyTestCancelledStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.cancelled.rawValue, forKey: AppConstants.pennyTestStatusCode)
}
func showLoading() {
self.showProgressHud()
}
func hideLoading() {
self.hideProgressHud()
}
}
// MARK: PennyTestViewInterface
extension PennyTestViewController: PennyTestViewInterface {
}
extension PennyTestViewController: InitiatePennyTestService {
}