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.
227 lines
9.1 KiB
227 lines
9.1 KiB
//
|
|
// 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
|
|
}
|
|
}
|
|
}
|