// // MainWireframe.swift // // // Created by shishir sapkota // import Foundation import UIKit import LGSideMenuController class MainWireframe { static var shared: MainWireframe? = MainWireframe() weak var view: UIViewController! var isUseSwipeGesture = true { didSet { let sideMenuVC = (MainWireframe.shared?.window?.rootViewController as? LGSideMenuController) sideMenuVC?.isLeftViewSwipeGestureEnabled = isUseSwipeGesture } } } extension MainWireframe: MainWireframeInput { var storyboardName: String {return "Main"} func getMainView() -> UIViewController { let viewController = MainViewController() let viewControllers: [UIViewController] = self.getViewControllers() viewController.setup(viewControllers: viewControllers) self.view = viewController self.show(index: 0) // temporary return viewController } private func getViewControllers() -> [UIViewController] { let homeViewController = HomeWireframe().getMainView() let navHomeViewController = SwipeNavigationController(rootViewController: homeViewController) navHomeViewController.hero.isEnabled = true let sendMoneyViewController = RecipientsWireframe().getMainView() sendMoneyViewController.setupTabItem() let navSendMoneyViewController = SwipeNavigationController(rootViewController: sendMoneyViewController) navSendMoneyViewController.hero.isEnabled = true let contactsViewController = GmeContactsWireframe().getMainView() contactsViewController.setupTabItem() let navContactsViewController = SwipeNavigationController(rootViewController: contactsViewController) guard let profileViewController = UIStoryboard(name: "Profile", bundle: nil) .instantiateViewController(withIdentifier: "ProfileViewController") as? ProfileViewController else { return [navHomeViewController, navSendMoneyViewController, navContactsViewController] } profileViewController.setupTabItem() let navProfileViewController = SwipeNavigationController(rootViewController: profileViewController) return [ navHomeViewController, navSendMoneyViewController, navContactsViewController, navProfileViewController ] } func show(index: Int) { if let view = self.view as? MainViewController { view.selectedIndex = index } } static func logoutWarningAlert(message: String) { guard let window = MainWireframe.shared?.window else {return} window.rootViewController?.hideProgressHud() window.rootViewController?.alertWithOk( type: .error, message: message, title: "Warning", okTitle: "ok_text".localized() ) { self.logout() } } static func logout() { guard let window = MainWireframe.shared?.window else {return} GMEDB.shared.user.removeAllWithoutUserID() GMEDB.shared.app.removeAll() KeyChain.shared.save(data: "0", key: .login) let splaseWireframe = SplashScreenWireframe() let navigationVC = UINavigationController.init(rootViewController: splaseWireframe.getMainView()) window.rootViewController = navigationVC window.makeKeyAndVisible() } }