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