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

//
// MainWireframe.swift
//
//
// Created by shishir sapkota
//
import Foundation
import UIKit
class MainWireframe {
static var shared: MainWireframe? = MainWireframe()
weak var view: UIViewController!
}
extension MainWireframe: MainWireframeInput {
var storyboardName: String {return "Main"}
func getMainView() -> UIViewController {
let viewController = MainViewController()
let viewControllers: [UIViewController] = self.getViewControllers()
viewController.setup(viewControllers: viewControllers)
viewController.setupTabItem()
self.view = viewController
self.show(index: 0) // temporary
return viewController
}
private func getViewControllers() -> [UIViewController] {
let homeViewController = HomeWireframe().getMainView()
let navHomeViewController = UINavigationController(rootViewController: homeViewController)
// user send money view controller
let sendMoneyViewController = UIStoryboard.init(name: "RecipientListViewController", bundle: nil).instantiateViewController(withIdentifier: "RecipientListViewController") as! RecipientListViewController
sendMoneyViewController.setupTabItem()
let _ = sendMoneyViewController.view
let navSendMoneyViewController = UINavigationController(rootViewController: sendMoneyViewController)
// Constacts view controller
let contactsViewController = GmeContactsWireframe().getMainView()
let navContactsViewController = UINavigationController(rootViewController: contactsViewController)
// profile view controller
let profileViewController = UIStoryboard.init(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
profileViewController.setupTabItem()
let _ = profileViewController.view
let navProfileViewController = UINavigationController(rootViewController: profileViewController)
return [navHomeViewController, navSendMoneyViewController, navContactsViewController, navProfileViewController]
}
func show(index: Int) {
if let view = self.view as? MainViewController {
view.selectedIndex = index
}
}
static func logout() {
guard let window = MainWireframe.shared?.window else {return}
let store = UserDefaults.standard
store.set(false, forKey: "com.gmeremit.loginStatus")
store.removeObject(forKey: "com.gmeremit.dpUrl")
store.removeObject(forKey: "com.gmeremit.walletNumber")
store.removeObject(forKey: "com.gmeremit.bankName")
store.removeObject(forKey: "com.gmeremit.fullName")
store.removeObject(forKey: "com.gmeremit.username")
store.removeObject(forKey: "com.gmeremit.nickName")
store.removeObject(forKey: "com.gmeremit.balance")
store.removeObject(forKey: "com.gmeremit.rewardPoint")
store.removeObject(forKey: "com.gmeremit.isVerified")
store.removeObject(forKey: "com.gmeremit.isKYCSubmitted")
store.removeObject(forKey: "com.gmeremit.email")
store.removeObject(forKey: "com.gmeremit.mobileNumber")
store.removeObject(forKey: "com.gmeremit.password")
store.removeObject(forKey: " com.gmeremit.isReferred")
store.removeObject(forKey: " com.gmeremit.isReferred")
store.removeObject(forKey: UserKeys.primaryAccountNumber)
store.removeObject(forKey: UserKeys.primaryBankName)
store.removeObject(forKey: UserKeys.province)
store.removeObject(forKey: UserKeys.provinceId)
store.removeObject(forKey: UserKeys.yearlyLimit)
store.removeObject(forKey: UserKeys.availableBalance)
store.removeObject(forKey: UserKeys.availableBalance)
store.setValue(nil, forKey: UserKeys.accessCode)
store.set(false, forKey: AppConstants.pennyTestPresentedOnce)
let splaseWireframe = SplashScreenWireframe()
let nav = UINavigationController.init(rootViewController: splaseWireframe.getMainView())
window.rootViewController = nav
window.makeKeyAndVisible()
}
}