// // ReferalCodeViewController.swift // GMERemittance // // Created by Sujal on 4/20/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class ReferralCodeViewController: PopUpGeneralInfo { var referralCodeAvailable: Box = Box(nil) private var referralcodeviewmodel = ReferralCodeViewModel() private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView() public static var referralCodeConnectionTimeOut = 0 @IBOutlet weak var textFieldReferralCode: UITextField! @IBAction func dismissDialog(_ sender: Any) { self.navigationController?.navigationBar.isHidden = false self.removeAnimate() referralCodeAvailable.value = false } /** Internet check */ func setUpNetworkListener() { referralcodeviewmodel.internetConnection.bind { [unowned self] in guard $0 != nil else { return } if !$0! { self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() self.popUpMessage(value: 15) self.referralcodeviewmodel.internetConnection.value = nil } } } @IBAction func submitReferralCode(_ sender: Any) { view.endEditing(true) showActivityIndicator(activityIndicator: activityIndicator) disableUserInteractions() referralcodeviewmodel.validateReferralCode(referralCode: textFieldReferralCode.text!) } /** Check referral code validation */ func bindReferralCodeValidation() { referralcodeviewmodel.referralCodeValidated.bind { [unowned self] in guard $0 != nil else { return } self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() if $0! { self.navigationController?.navigationBar.isHidden = false self.removeAnimate() self.referralCodeAvailable.value = true } else { if ReferralCodeViewController.referralCodeConnectionTimeOut == 0{ ReferralCodeViewController.referralCodeConnectionTimeOut = ReferralCodeViewController.referralCodeConnectionTimeOut+1 self.popUpMessageError(value: 10, message: self.referralcodeviewmodel.getErrorMessage()) } } self.referralcodeviewmodel.referralCodeValidated.value = nil } } override func viewDidLoad() { super.viewDidLoad() self.setUpNetworkListener() setUpAnotherLoginListener(genericviewmodel: referralcodeviewmodel) referralcodeviewmodel.referralConnectionTimeOut.value = nil /** connection timeout */ referralcodeviewmodel.referralConnectionTimeOut.bind { [unowned self] in guard $0 != nil else { return } self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() if ReferralCodeViewController.referralCodeConnectionTimeOut == 0{ ReferralCodeViewController.referralCodeConnectionTimeOut = ReferralCodeViewController.referralCodeConnectionTimeOut+1 self.popUpMessage(value: 44) } } bindReferralCodeValidation() self.view.backgroundColor = UIColor.black.withAlphaComponent(0.7) self.showAnimate() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func getReferralCode() -> String { return referralcodeviewmodel.getValidReferralCode() } }