diff --git a/GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift b/GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift
index 6fe0f869..086dc1b5 100644
--- a/GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift
+++ b/GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift
@@ -10,29 +10,179 @@ import UIKit
class AutoDebitViewController: UIViewController {
- // MARK: Properties
+ // MARK:- IBOutlets
+ @IBOutlet weak var tableView: UITableView!
+ @IBOutlet weak var viewAddRecipient: UIView! // this is the view that contains add reciepient. should be header
+ @IBOutlet weak var labelSwipeInfo: UILabel!
- var presenter: AutoDebitModuleInterface?
- // MARK: IBOutlets
+ // MARK:- properties
+ var accounts: [Recipient]? {
+ didSet {
+ if (accounts ?? []).isEmpty {
+ }else {
+ self.tableView.isHidden = false
+ self.labelSwipeInfo.isHidden = false
+ self.tableView.reloadData()
+ }
+ }
+ }
+
- // MARK: VC's Life cycle
+ // MARK:- Life Cycle
+ override func viewWillAppear(_ animated: Bool) {
+ super.viewWillAppear(animated)
+ self.setupNormalNavigation()
+ self.navigationItem.title = "Select Recipient"
+ fetchReceipients()
+ }
override func viewDidLoad() {
super.viewDidLoad()
- self.setup()
+ // self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
+ self.setupDelegates()
+ self.showProgressHud()
+ viewAddRecipient.layer.cornerRadius = 10
}
- // MARK: IBActions
- // MARK: Other Functions
+ override func viewWillDisappear(_ animated: Bool) {
+ super.viewWillDisappear(animated)
+ // self.title = ""
+ self.navigationItem.title = ""
+ }
+
+
+ // MARK:- IBAction
+ @IBAction func loadMoreAction(_ sender: Any) {
+ print("load more")
+ }
+
+ @IBAction func addNewRecipientTap(_ sender: UITapGestureRecognizer) {
+ self.showAddNewReciepientViewController()
+ }
- private func setup() {
- // all setup should be done here
+ // MARK:- other functions
+ private func setupDelegates() {
+ self.tableView.delegate = self
+ self.tableView.dataSource = self
}
}
-// MARK: AutoDebitViewInterface
-extension AutoDebitViewController: AutoDebitViewInterface {
+extension AutoDebitViewController: UITableViewDelegate,UITableViewDataSource {
+
+ func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
+ return 120.0
+ }
+
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+ return self.accounts?.count ?? 0
+ }
+
+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+ let cell = tableView.dequeueReusableCell(withIdentifier: "recipientList", for: indexPath) as! RecipientListTableViewCell
+ cell.model = self.accounts?.elementAt(index: indexPath.row)
+ cell.setup()
+ return cell
+ }
+
+ func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+ startSendMoneyProcess(index: indexPath.row)
+ }
+
+ private func startSendMoneyProcess(index: Int) {
+ if let navigation = self.navigationController {
+ if let reciepient = self.accounts?.elementAt(index: index) {
+ let wireframe = SendMoneyParentWireframe()
+ wireframe.open(for: reciepient, in: navigation)
+ }
+
+ }
+ }
+
+ func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
+ let delete = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
+ self.alertWithOkCancel(message: "Do you want to delete this receipient?", title: "Alert!", OkStyle: UIAlertActionStyle.destructive, okAction: {
+ let defaults = UserDefaults.standard
+ let myUsername = defaults.string(forKey: "com.gmeremit.username") ?? ""
+
+ self.showProgressHud()
+ if let reciepient = self.accounts?.elementAt(index: indexPath.row) {
+ self.showProgressHud()
+ self.deleteRecipient(username: myUsername, reciepient: reciepient, success: { (reciepient) in
+ DispatchQueue.main.async {
+ self.hideProgressHud()
+ }
+
+ guard let deletedPerson = reciepient else {return}
+ if let index = self.accounts?.index(where: {
+ ($0.recipientId ?? "") == (deletedPerson.recipientId ?? "")
+ }) {
+ UIView.animate(withDuration: 0.5, animations: {
+ tableView.beginUpdates()
+ self.accounts?.remove(at: index)
+ let indexPath = IndexPath(item: index, section: 0)
+ self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.fade)
+ tableView.endUpdates()
+ })
+
+
+ }
+ // self.fetchReciepientList(username: myUsername, success: { (_recipients) in
+ // self.hideProgressHud()
+ // self.reciepients = _recipients
+ // }, failure: { (error) in
+ // self.hideProgressHud()
+ // self.alert(message: error.localizedDescription)
+ // })
+ }, failure: { (error) in
+ self.alert(message: error.localizedDescription)
+ self.hideProgressHud()
+ })
+ }
+ })
+ }
+
+ let edit = UITableViewRowAction(style: .normal, title: "Edit") { (action, indexPath) in
+ guard let navigation = self.navigationController else {return}
+ if let reciepient = self.accounts?.elementAt(index: indexPath.row) {
+ let wireFrame = EditReciepientWireframe()
+ wireFrame.edit(reciepient: reciepient, source: navigation)
+ }
+
+ }
+
+ edit.backgroundColor = UIColor.init(hex: "#F39826")
+ delete.backgroundColor = UIColor.init(hex: "DE333C")
+ return [delete, edit]
+ }
+
+ func fetchReceipients() {
+ let defaults = UserDefaults.standard
+ let myUsername = defaults.string(forKey: "com.gmeremit.username") ?? ""
+ self.fetchReciepientList(username: myUsername, success: { (reciepients) in
+ self.hideProgressHud()
+ self.accounts = reciepients
+ }) { (error) in
+ self.hideProgressHud()
+ self.alert(message: error.localizedDescription)
+ }
+ }
+
+ // private func
+
+
+ private func showAddNewReciepientViewController() {
+ let viewcontroller = AddReciepientWireframe().getMainView()
+ self.navigationController?.pushViewController(viewcontroller, animated: true)
+ }
+}
+
+extension AutoDebitViewController: FetchRecipientList, DeleteRecipientService {
}
+
+
+
+
+//AutoDebitViewController
diff --git a/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift b/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
index 96e61e69..7e342909 100644
--- a/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
+++ b/GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
@@ -436,6 +436,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
presenter?.openTodaysRate()
}
+ // Transaction Report
@objc private func showTrackYourTransfer() {
let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified()
diff --git a/GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift b/GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
index 17ea6228..cfe6db20 100644
--- a/GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
+++ b/GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
@@ -15,6 +15,7 @@ class HomeWireframe {
private lazy var todaysRateWireframe: ExchangeRatesWireframeInput = ExchangeRatesWireframe()
private lazy var kycWireFrame = KycWireframe()
private lazy var walletStatementWireframe = WalletStatementWireframe()
+ private lazy var autodebitWireFrame = AutoDebitWireframe()
private lazy var pennyTestWireFrame = PennyTestWireframe()
private lazy var pennyTestSubmitWireFrame = PennyTestSubmitWireframe()
private lazy var appUpdateWireFrame = AppUpdateWireframe()
@@ -54,7 +55,14 @@ extension HomeWireframe: HomeWireframeInput {
func openTrackYourTransfer() {
if let navigation = self.view.navigationController {
- self.walletStatementWireframe.openWalletStatement(source: navigation)
+// self.walletStatementWireframe.openWalletStatement(source: navigation)
+ self.openAutoDebit()
+ }
+ }
+
+ func openAutoDebit() {
+ if let navigation = self.view.navigationController {
+ autodebitWireFrame.pushMainView(in: navigation)
}
}
diff --git a/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist
index e9edbbb7..b523e278 100644
--- a/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -17,12 +17,12 @@
AlamofireNetworkActivityLogger.xcscheme
orderHint
- 9
+ 8
BRYXBanner.xcscheme
orderHint
- 10
+ 9
Bolts.xcscheme
@@ -57,67 +57,67 @@
FirebaseAuth.xcscheme
orderHint
- 11
+ 10
FirebaseCore.xcscheme
orderHint
- 12
+ 11
FirebaseMessaging.xcscheme
orderHint
- 13
+ 12
GTMSessionFetcher.xcscheme
orderHint
- 15
+ 14
GoogleToolboxForMac.xcscheme
orderHint
- 14
+ 13
Hex.xcscheme
orderHint
- 16
+ 15
IQKeyboardManagerSwift.xcscheme
orderHint
- 17
+ 16
LGSideMenuController.xcscheme
orderHint
- 18
+ 17
MBProgressHUD.xcscheme
orderHint
- 19
+ 18
ObjectMapper.xcscheme
orderHint
- 21
+ 20
PMAlertController-PMAlertController.xcscheme
orderHint
- 23
+ 22
PMAlertController.xcscheme
orderHint
- 22
+ 21
Pods-GME Remit.xcscheme
orderHint
- 24
+ 23
Pods-GMERemittance.xcscheme
@@ -137,17 +137,17 @@
Protobuf.xcscheme
orderHint
- 25
+ 24
RAMAnimatedTabBarController.xcscheme
orderHint
- 26
+ 25
RSKImageCropper.xcscheme
orderHint
- 27
+ 26
ReadMoreTextView.xcscheme
@@ -157,7 +157,7 @@
SDWebImage.xcscheme
orderHint
- 28
+ 27
SwiftyJSON.xcscheme
@@ -167,22 +167,22 @@
XLPagerTabStrip-XLPagerTabStrip.xcscheme
orderHint
- 31
+ 30
XLPagerTabStrip.xcscheme
orderHint
- 30
+ 29
nanopb.xcscheme
orderHint
- 20
+ 19
thenPromise.xcscheme
orderHint
- 29
+ 28