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.

107 lines
4.3 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. let navSendMoneyViewController = UINavigationController(rootViewController: sendMoneyViewController)
  30. // Constacts view controller
  31. let contactsViewController = GmeContactsWireframe().getMainView()
  32. let navContactsViewController = UINavigationController(rootViewController: contactsViewController)
  33. // profile view controller
  34. let profileViewController = UIStoryboard.init(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
  35. let navProfileViewController = UINavigationController(rootViewController: profileViewController)
  36. return [navHomeViewController, navSendMoneyViewController, navContactsViewController, navProfileViewController]
  37. }
  38. func show(index: Int) {
  39. if let view = self.view as? MainViewController {
  40. view.selectedIndex = index
  41. }
  42. }
  43. static func logout() {
  44. guard let window = MainWireframe.shared?.window else {return}
  45. let store = UserDefaults.standard
  46. store.set(false, forKey: "com.gmeremit.loginStatus")
  47. store.removeObject(forKey: "com.gmeremit.dpUrl")
  48. store.removeObject(forKey: "com.gmeremit.walletNumber")
  49. store.removeObject(forKey: "com.gmeremit.bankName")
  50. store.removeObject(forKey: "com.gmeremit.fullName")
  51. store.removeObject(forKey: "com.gmeremit.username")
  52. store.removeObject(forKey: "com.gmeremit.nickName")
  53. store.removeObject(forKey: "com.gmeremit.balance")
  54. store.removeObject(forKey: "com.gmeremit.rewardPoint")
  55. store.removeObject(forKey: "com.gmeremit.isVerified")
  56. store.removeObject(forKey: "com.gmeremit.isKYCSubmitted")
  57. store.removeObject(forKey: "com.gmeremit.email")
  58. store.removeObject(forKey: "com.gmeremit.mobileNumber")
  59. store.removeObject(forKey: "com.gmeremit.password")
  60. store.removeObject(forKey: " com.gmeremit.isReferred")
  61. store.removeObject(forKey: " com.gmeremit.isReferred")
  62. // store.removeObject(forKey: UserKeys)
  63. store.removeObject(forKey: UserKeys.primaryAccountNumber)
  64. store.removeObject(forKey: UserKeys.primaryBankName)
  65. store.removeObject(forKey: UserKeys.province)
  66. store.removeObject(forKey: UserKeys.provinceId)
  67. store.removeObject(forKey: UserKeys.yearlyLimit)
  68. store.removeObject(forKey: UserKeys.availableBalance)
  69. store.removeObject(forKey: UserKeys.availableBalance)
  70. store.setValue(nil, forKey: UserKeys.accessCode)
  71. store.set(false, forKey: AppConstants.pennyTestPresentedOnce)
  72. let splaseWireframe = SplashScreenWireframe()
  73. let nav = UINavigationController.init(rootViewController: splaseWireframe.getMainView())
  74. window.rootViewController = nav
  75. window.makeKeyAndVisible()
  76. }
  77. // func showStoreListing () {
  78. // if !self.isUserWireframe {
  79. // self.show(index: 1)
  80. // self.storeListWireframe.changeOrderType(alphabetic: false)
  81. // }
  82. // }
  83. }