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.
98 lines
3.1 KiB
98 lines
3.1 KiB
//
|
|
// 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()
|
|
}
|
|
}
|