// // TrackPhaseViewController.swift // GMERemittance // // Created by Fm-user on 2/7/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class TrackPhaseViewController: UIViewController { @IBOutlet weak var labelPhaseTitle: UILabel! @IBOutlet weak var labelPhaseDescription: UILabel! @IBOutlet weak var labelPhaseSubDescription: UILabel! @IBOutlet weak var labelPhoneNumber: UILabel! @IBOutlet weak var topConstraintStage0: NSLayoutConstraint! @IBOutlet weak var topConstraintStage1: NSLayoutConstraint! @IBOutlet weak var topConstraintStage2: NSLayoutConstraint! @IBOutlet weak var topConstraintStage3: NSLayoutConstraint! @IBOutlet weak var imageViewPhase0: UIImageView! @IBOutlet weak var imageViewPhase1: UIImageView! @IBOutlet weak var imageViewPhase2: UIImageView! @IBOutlet weak var imageViewPhase3: UIImageView! var recipient: Recipient? var transaction: Transaction? private var stageId: Int = 0 @IBAction func gotoHome(_ sender: Any) { showHomeScreen() } @IBAction func showReceiverDetails(_ sender: Any) { var encodedTransactionDictionary: [String: Any]! do { let encodedTransaction = try JSONEncoder().encode(transaction) encodedTransactionDictionary = try JSONSerialization.jsonObject(with: encodedTransaction, options: .allowFragments) as? [String: Any] } catch let error { } let storyboard = UIStoryboard.init(name: "RecipientListViewController", bundle: Bundle.main) if let transferInfoViewController = storyboard.instantiateViewController(withIdentifier: "showTransferInfo") as? TransferSuccessfulViewController { transferInfoViewController.responseDetails = encodedTransactionDictionary // transferInfoViewController.recipient = recipient transferInfoViewController.trackTransfer = true self.navigationController!.pushViewController(transferInfoViewController, animated: true) } } @objc func initiateCall() { let phoneNumber = labelPhoneNumber.text! if let url = URL(string: "tel://\(phoneNumber.removeWhitespacesInBetween())"), UIApplication.shared.canOpenURL(url) { if #available(iOS 10, *) { UIApplication.shared.open(url) } else { UIApplication.shared.openURL(url) } } // let phoneNumber = labelPhoneNumber.text! // guard let number = URL(string: "tel://" + phoneNumber.removeWhitespacesInBetween()) else { // return // } // UIApplication.shared.openURL(number) } /** Dialog to explain any of the selected transfer process */ @objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) { guard let navController = self.navigationController else { return } let tappedImage = tapGestureRecognizer.view as! UIImageView let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main) if let popUpViewController = storyboard.instantiateViewController(withIdentifier: "popUpInfo") as? PopUpGeneralInfo { switch tappedImage.tag { case 1: popUpViewController.indexValue = 4 case 2: popUpViewController.indexValue = 5 case 3: popUpViewController.indexValue = 6 case 4: popUpViewController.indexValue = 7 default: return } // self.addChildViewController(popUpViewController) // popUpViewController.view.frame = self.view.bounds // self.view.addSubview(popUpViewController.view) // popUpViewController.didMove(toParentViewController: self) // navController.addChildViewController(popUpViewController) popUpViewController.view.frame = navController.view.bounds navController.view.addSubview(popUpViewController.view) popUpViewController.didMove(toParentViewController: navController) } } override func viewDidLoad() { super.viewDidLoad() setUpNavBar(id: 201,title: "Track Your Transfer") topConstraintStage0.constant = 50 topConstraintStage1.constant = 50 topConstraintStage2.constant = 50 topConstraintStage3.constant = 50 imageViewPhase0.image = UIImage(named: "trackStageInitial0") imageViewPhase1.image = UIImage(named: "trackStageInitial1") imageViewPhase2.image = UIImage(named: "trackStageInitial2") imageViewPhase3.image = UIImage(named: "trackStageInitial3") imageViewPhase0.isUserInteractionEnabled = true imageViewPhase1.isUserInteractionEnabled = true imageViewPhase2.isUserInteractionEnabled = true imageViewPhase3.isUserInteractionEnabled = true labelPhoneNumber.isUserInteractionEnabled = true imageViewPhase0.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))) imageViewPhase1.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))) imageViewPhase2.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))) imageViewPhase3.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))) labelPhoneNumber.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(initiateCall))) /** Assign value to var stageId as per the transaction status */ switch transaction!.txnStatus.uppercased() { case "WAITING FOR APPROVAL": self.stageId = 0 case "IN SEND QUEUE", "POST", "UNPAID": self.stageId = 1 case "READY FOR PAYMENT": self.stageId = 2 case "PAID": self.stageId = 3 default: self.stageId = 0 } /** Display UI as per the stageId */ switch stageId { case 0: labelPhaseTitle.text = "In Process" labelPhaseDescription.text = "Your transfer is on its way" labelPhaseSubDescription.text = "" topConstraintStage0.constant = 45 imageViewPhase0.image = UIImage(named: "trackStageCurrent0") imageViewPhase1.image = UIImage(named: "trackStageInComplete1") imageViewPhase2.image = UIImage(named: "trackStageInComplete2") imageViewPhase3.image = UIImage(named: "trackStageInComplete3") case 1: labelPhaseTitle.text = "In Process" labelPhaseDescription.text = "Your transfer is on its way" labelPhaseSubDescription.text = "" topConstraintStage1.constant = 45 imageViewPhase0.image = UIImage(named: "trackStageComplete0") imageViewPhase1.image = UIImage(named: "trackStageCurrent1") imageViewPhase2.image = UIImage(named: "trackStageInComplete2") imageViewPhase3.image = UIImage(named: "trackStageInComplete3") case 2: labelPhaseTitle.text = "Available" labelPhaseDescription.text = "" labelPhaseSubDescription.text = "" topConstraintStage2.constant = 45 imageViewPhase0.image = UIImage(named: "trackStageComplete0") imageViewPhase1.image = UIImage(named: "trackStageComplete1") imageViewPhase2.image = UIImage(named: "trackStageCurrent2") imageViewPhase3.image = UIImage(named: "trackStageInComplete3") case 3: labelPhaseTitle.text = "Received" switch transaction!.payoutMethod.lowercased() { case "cash": if let bankName = transaction!.bankName { labelPhaseDescription.text = "Received From: " + bankName } else { labelPhaseDescription.text = "Received From: GME" } case "bank": labelPhaseDescription.text = "Received From: " + transaction!.bankName case "door to door": labelPhaseDescription.text = "Received From: " + transaction!.receiverAddress default: labelPhaseDescription.text = "" } labelPhaseSubDescription.text = "" topConstraintStage3.constant = 45 imageViewPhase0.image = UIImage(named: "trackStageComplete0") imageViewPhase1.image = UIImage(named: "trackStageComplete1") imageViewPhase2.image = UIImage(named: "trackStageComplete2") imageViewPhase3.image = UIImage(named: "trackStageCurrent3") default: return } } }