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.

103 lines
4.2 KiB

6 years ago
6 years ago
6 years ago
  1. //
  2. // MainWireframe.swift
  3. //
  4. //
  5. // Created by shishir sapkota
  6. //
  7. import Foundation
  8. import UIKit
  9. class MainWireframe {
  10. static var shared: MainWireframe? = MainWireframe()
  11. weak var view: UIViewController!
  12. }
  13. extension MainWireframe: MainWireframeInput {
  14. var storyboardName: String {return "Main"}
  15. func getMainView() -> UIViewController {
  16. let viewController = MainViewController()
  17. let viewControllers: [UIViewController] = self.getViewControllers()
  18. viewController.setup(viewControllers: viewControllers)
  19. viewController.setupTabItem()
  20. self.view = viewController
  21. self.show(index: 0) // temporary
  22. return viewController
  23. }
  24. private func getViewControllers() -> [UIViewController] {
  25. let homeViewController = HomeWireframe().getMainView()
  26. let navHomeViewController = UINavigationController(rootViewController: homeViewController)
  27. // user send money view controller
  28. let sendMoneyViewController = UIStoryboard.init(name: "RecipientListViewController", bundle: nil).instantiateViewController(withIdentifier: "RecipientListViewController") as! RecipientListViewController
  29. sendMoneyViewController.setupTabItem()
  30. let _ = sendMoneyViewController.view
  31. let navSendMoneyViewController = UINavigationController(rootViewController: sendMoneyViewController)
  32. // Constacts view controller
  33. let contactsViewController = GmeContactsWireframe().getMainView()
  34. let navContactsViewController = UINavigationController(rootViewController: contactsViewController)
  35. // profile view controller
  36. let profileViewController = UIStoryboard.init(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
  37. profileViewController.setupTabItem()
  38. let _ = profileViewController.view
  39. let navProfileViewController = UINavigationController(rootViewController: profileViewController)
  40. return [navHomeViewController, navSendMoneyViewController, navContactsViewController, navProfileViewController]
  41. }
  42. func show(index: Int) {
  43. if let view = self.view as? MainViewController {
  44. view.selectedIndex = index
  45. }
  46. }
  47. static func logout() {
  48. guard let window = MainWireframe.shared?.window else {return}
  49. let store = UserDefaults.standard
  50. store.set(false, forKey: "com.gmeremit.loginStatus")
  51. store.removeObject(forKey: "com.gmeremit.dpUrl")
  52. store.removeObject(forKey: "com.gmeremit.walletNumber")
  53. store.removeObject(forKey: "com.gmeremit.bankName")
  54. store.removeObject(forKey: "com.gmeremit.fullName")
  55. store.removeObject(forKey: "com.gmeremit.username")
  56. store.removeObject(forKey: "com.gmeremit.nickName")
  57. store.removeObject(forKey: "com.gmeremit.balance")
  58. store.removeObject(forKey: "com.gmeremit.rewardPoint")
  59. store.removeObject(forKey: "com.gmeremit.isVerified")
  60. store.removeObject(forKey: "com.gmeremit.isKYCSubmitted")
  61. store.removeObject(forKey: "com.gmeremit.email")
  62. store.removeObject(forKey: "com.gmeremit.mobileNumber")
  63. store.removeObject(forKey: "com.gmeremit.password")
  64. store.removeObject(forKey: " com.gmeremit.isReferred")
  65. store.removeObject(forKey: " com.gmeremit.isReferred")
  66. store.removeObject(forKey: UserKeys.primaryAccountNumber)
  67. store.removeObject(forKey: UserKeys.primaryBankName)
  68. store.removeObject(forKey: UserKeys.province)
  69. store.removeObject(forKey: UserKeys.provinceId)
  70. store.removeObject(forKey: UserKeys.yearlyLimit)
  71. store.removeObject(forKey: UserKeys.availableBalance)
  72. store.removeObject(forKey: UserKeys.availableBalance)
  73. store.setValue(nil, forKey: UserKeys.accessCode)
  74. store.set(false, forKey: AppConstants.pennyTestPresentedOnce)
  75. let splaseWireframe = SplashScreenWireframe()
  76. let nav = UINavigationController.init(rootViewController: splaseWireframe.getMainView())
  77. window.rootViewController = nav
  78. window.makeKeyAndVisible()
  79. }
  80. }