// // RedeemViewController.swift // GMERemittance // // Created by Sujal on 3/16/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class RedeemViewController: UIViewController { @IBOutlet weak var textFieldAddress: UITextField! @IBOutlet weak var imageViewReward: UIImageView! @IBOutlet weak var labelPointsDeduction: UILabel! @IBOutlet weak var labelRedeemItem: UILabel! @IBOutlet weak var buttonSubmitRedeemRequest: UIButton! var rewardviewmodel: RewardViewModel? public static var redeemConnectionTimeOutCheck = 0 var selectedIndex: Int! private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView() override func viewDidLoad() { super.viewDidLoad() setUpNavBar(id: 201, title: "Reward") hideKeyboardWhenTappedAround() rewardviewmodel?.rewardConnectionTimeOut.value = nil /** connection timeout */ rewardviewmodel?.rewardConnectionTimeOut.bind { [unowned self] in guard $0 != nil else { return } self.enableUserInteractions() self.dismissActivityIndicator(activityIndicator: self.activityIndicator) if RedeemViewController.redeemConnectionTimeOutCheck == 0{ RedeemViewController.redeemConnectionTimeOutCheck = RedeemViewController.redeemConnectionTimeOutCheck+1 self.popUpMessage(value: 43) } } setUpListener() setUpNetworkListener() guard rewardviewmodel != nil else { buttonSubmitRedeemRequest.isUserInteractionEnabled = false return } setUpAnotherLoginListener(genericviewmodel: rewardviewmodel!) selectedIndex = rewardviewmodel!.getSelectedRewardIndex() setUpDetailsforRedeem() buttonSubmitRedeemRequest.isUserInteractionEnabled = true } /** Update reward data in view */ func setUpListener() { rewardviewmodel?.rewardsAvailable.bind { [unowned self] in guard $0 != nil else { return } self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.enableUserInteractions() if $0 == 0 { if RedeemViewController.redeemConnectionTimeOutCheck == 0{ RedeemViewController.redeemConnectionTimeOutCheck = RedeemViewController.redeemConnectionTimeOutCheck+1 self.popUpMessageError(value: 10, message: (self.rewardviewmodel?.getErrorMessage())!) } } else if $0 == 2 { self.showSuccessfulPopUp() } self.rewardviewmodel?.rewardsAvailable.value = nil } } /** Internet Check */ func setUpNetworkListener() { rewardviewmodel?.internetConnection.bind { [unowned self] in guard $0 != nil else { return } self.enableUserInteractions() self.dismissActivityIndicator(activityIndicator: self.activityIndicator) self.popUpMessage(value: 15) } } /** Pop up message for successfull redeem */ func showSuccessfulPopUp() { let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main) guard let navController = self.navigationController else { return } if let popUpViewController = storyboard.instantiateViewController(withIdentifier: "popUpInfo") as? PopUpGeneralInfo { popUpViewController.indexValue = 17 navController.addChildViewController(popUpViewController) popUpViewController.view.frame = navController.view.bounds navController.view.addSubview(popUpViewController.view) popUpViewController.didMove(toParentViewController: navController) } } func setUpDetailsforRedeem() { labelRedeemItem.text = "Redeem" + " " + rewardviewmodel!.getRewardName(index: selectedIndex) labelPointsDeduction.text = String(rewardviewmodel!.getRedeemPoint(index: selectedIndex)) + " " + "Points will be deducted from your reward point" if let rewardImageString = rewardviewmodel!.getRewardImage(index: selectedIndex) { if let rewardImageUrl = URL(string: rewardImageString) { imageViewReward.sd_setImage(with: rewardImageUrl, placeholderImage: nil, options: [.progressiveDownload,.scaleDownLargeImages], completed: nil) } } imageViewReward.layer.cornerRadius = imageViewReward.frame.height/2 } @IBAction func submitRedeemRequest(_ sender: Any) { switch rewardviewmodel!.validateAddress(address: textFieldAddress.text!) { case .Valid: if let rewardId = rewardviewmodel?.getRewardId(index: selectedIndex) { showActivityIndicator(activityIndicator: activityIndicator) disableUserInteractions() rewardviewmodel!.redeemReward(rewardId: rewardId) } case .InValid(let error): self.popUpMessageError(value: 11, message: error) } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func viewAgentLocationFromTextClick(_ sender: Any) { viewAgentLocation() } @IBAction func viewAgentLocationFromImageClick(_ sender: Any) { viewAgentLocation() } func viewAgentLocation() { let storyboard = UIStoryboard.init(name: "_Home", bundle: Bundle.main) if let agentViewController = storyboard.instantiateViewController(withIdentifier: "PayoutViewController") as? PayoutViewController { //agentViewController.fromReward = 0 self.navigationController!.pushViewController(agentViewController, animated: true) } } }