Browse Source

added viewcontroller logic

pull/1/head
ccr 6 years ago
parent
commit
934ed7746a
  1. 172
      GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift
  2. 1
      GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
  3. 10
      GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
  4. 46
      Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist

172
GMERemittance/Module/AutoDebit/User Interface/View/AutoDebitViewController.swift

@ -10,29 +10,179 @@ import UIKit
class AutoDebitViewController: UIViewController { 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() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.setup()
// self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
self.setupDelegates()
self.showProgressHud()
viewAddRecipient.layer.cornerRadius = 10
}
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()
}
// MARK:- other functions
private func setupDelegates() {
self.tableView.delegate = self
self.tableView.dataSource = self
}
}
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()
})
}
})
} }
// MARK: IBActions
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)
}
}
// MARK: Other Functions
edit.backgroundColor = UIColor.init(hex: "#F39826")
delete.backgroundColor = UIColor.init(hex: "DE333C")
return [delete, edit]
}
private func setup() {
// all setup should be done here
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)
} }
} }
// MARK: AutoDebitViewInterface
extension AutoDebitViewController: AutoDebitViewInterface {
// private func
private func showAddNewReciepientViewController() {
let viewcontroller = AddReciepientWireframe().getMainView()
self.navigationController?.pushViewController(viewcontroller, animated: true)
}
} }
extension AutoDebitViewController: FetchRecipientList, DeleteRecipientService {
}
//AutoDebitViewController

1
GMERemittance/Module/Home/User Interface/View/HomeViewController.swift

@ -436,6 +436,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
presenter?.openTodaysRate() presenter?.openTodaysRate()
} }
// Transaction Report
@objc private func showTrackYourTransfer() { @objc private func showTrackYourTransfer() {
let kycSubmited = user?.kyc ?? false let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified() let pennyTestComplete = Utility.pennyTestVerified()

10
GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift

@ -15,6 +15,7 @@ class HomeWireframe {
private lazy var todaysRateWireframe: ExchangeRatesWireframeInput = ExchangeRatesWireframe() private lazy var todaysRateWireframe: ExchangeRatesWireframeInput = ExchangeRatesWireframe()
private lazy var kycWireFrame = KycWireframe() private lazy var kycWireFrame = KycWireframe()
private lazy var walletStatementWireframe = WalletStatementWireframe() private lazy var walletStatementWireframe = WalletStatementWireframe()
private lazy var autodebitWireFrame = AutoDebitWireframe()
private lazy var pennyTestWireFrame = PennyTestWireframe() private lazy var pennyTestWireFrame = PennyTestWireframe()
private lazy var pennyTestSubmitWireFrame = PennyTestSubmitWireframe() private lazy var pennyTestSubmitWireFrame = PennyTestSubmitWireframe()
private lazy var appUpdateWireFrame = AppUpdateWireframe() private lazy var appUpdateWireFrame = AppUpdateWireframe()
@ -54,7 +55,14 @@ extension HomeWireframe: HomeWireframeInput {
func openTrackYourTransfer() { func openTrackYourTransfer() {
if let navigation = self.view.navigationController { 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)
} }
} }

46
Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist

@ -17,12 +17,12 @@
<key>AlamofireNetworkActivityLogger.xcscheme</key> <key>AlamofireNetworkActivityLogger.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer>
<integer>8</integer>
</dict> </dict>
<key>BRYXBanner.xcscheme</key> <key>BRYXBanner.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer>
<integer>9</integer>
</dict> </dict>
<key>Bolts.xcscheme</key> <key>Bolts.xcscheme</key>
<dict> <dict>
@ -57,67 +57,67 @@
<key>FirebaseAuth.xcscheme</key> <key>FirebaseAuth.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer>
<integer>10</integer>
</dict> </dict>
<key>FirebaseCore.xcscheme</key> <key>FirebaseCore.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>12</integer>
<integer>11</integer>
</dict> </dict>
<key>FirebaseMessaging.xcscheme</key> <key>FirebaseMessaging.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer>
<integer>12</integer>
</dict> </dict>
<key>GTMSessionFetcher.xcscheme</key> <key>GTMSessionFetcher.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer>
<integer>14</integer>
</dict> </dict>
<key>GoogleToolboxForMac.xcscheme</key> <key>GoogleToolboxForMac.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer>
<integer>13</integer>
</dict> </dict>
<key>Hex.xcscheme</key> <key>Hex.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer>
<integer>15</integer>
</dict> </dict>
<key>IQKeyboardManagerSwift.xcscheme</key> <key>IQKeyboardManagerSwift.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer>
<integer>16</integer>
</dict> </dict>
<key>LGSideMenuController.xcscheme</key> <key>LGSideMenuController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer>
<integer>17</integer>
</dict> </dict>
<key>MBProgressHUD.xcscheme</key> <key>MBProgressHUD.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer>
<integer>18</integer>
</dict> </dict>
<key>ObjectMapper.xcscheme</key> <key>ObjectMapper.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>21</integer>
<integer>20</integer>
</dict> </dict>
<key>PMAlertController-PMAlertController.xcscheme</key> <key>PMAlertController-PMAlertController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>23</integer>
<integer>22</integer>
</dict> </dict>
<key>PMAlertController.xcscheme</key> <key>PMAlertController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>22</integer>
<integer>21</integer>
</dict> </dict>
<key>Pods-GME Remit.xcscheme</key> <key>Pods-GME Remit.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>24</integer>
<integer>23</integer>
</dict> </dict>
<key>Pods-GMERemittance.xcscheme</key> <key>Pods-GMERemittance.xcscheme</key>
<dict> <dict>
@ -137,17 +137,17 @@
<key>Protobuf.xcscheme</key> <key>Protobuf.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>25</integer>
<integer>24</integer>
</dict> </dict>
<key>RAMAnimatedTabBarController.xcscheme</key> <key>RAMAnimatedTabBarController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>26</integer>
<integer>25</integer>
</dict> </dict>
<key>RSKImageCropper.xcscheme</key> <key>RSKImageCropper.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>27</integer>
<integer>26</integer>
</dict> </dict>
<key>ReadMoreTextView.xcscheme</key> <key>ReadMoreTextView.xcscheme</key>
<dict> <dict>
@ -157,7 +157,7 @@
<key>SDWebImage.xcscheme</key> <key>SDWebImage.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>28</integer>
<integer>27</integer>
</dict> </dict>
<key>SwiftyJSON.xcscheme</key> <key>SwiftyJSON.xcscheme</key>
<dict> <dict>
@ -167,22 +167,22 @@
<key>XLPagerTabStrip-XLPagerTabStrip.xcscheme</key> <key>XLPagerTabStrip-XLPagerTabStrip.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>31</integer>
<integer>30</integer>
</dict> </dict>
<key>XLPagerTabStrip.xcscheme</key> <key>XLPagerTabStrip.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>30</integer>
<integer>29</integer>
</dict> </dict>
<key>nanopb.xcscheme</key> <key>nanopb.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>20</integer>
<integer>19</integer>
</dict> </dict>
<key>thenPromise.xcscheme</key> <key>thenPromise.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>29</integer>
<integer>28</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>

Loading…
Cancel
Save