mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
SplitViewCoordinator: Update init method and support UserSessionsService.
This commit is contained in:
parent
007296243d
commit
245f89ea9e
1 changed files with 22 additions and 15 deletions
|
@ -16,14 +16,25 @@
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
/// SplitViewCoordinatorParameters input parameters
|
||||||
|
class SplitViewCoordinatorParameters {
|
||||||
|
|
||||||
|
let router: RootRouterType
|
||||||
|
let userSessionsService: UserSessionsService
|
||||||
|
|
||||||
|
init(router: RootRouterType, userSessionsService: UserSessionsService) {
|
||||||
|
self.router = router
|
||||||
|
self.userSessionsService = userSessionsService
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
||||||
|
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
private let rootRouter: RootRouterType
|
private let parameters: SplitViewCoordinatorParameters
|
||||||
private var session: MXSession?
|
|
||||||
|
|
||||||
private let splitViewController: UISplitViewController
|
private let splitViewController: UISplitViewController
|
||||||
|
|
||||||
|
@ -40,11 +51,8 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
||||||
|
|
||||||
// MARK: - Setup
|
// MARK: - Setup
|
||||||
|
|
||||||
// TODO: Improve sessions injection
|
init(parameters: SplitViewCoordinatorParameters) {
|
||||||
// at the moment the session is not used, see TabBarCoordinator `init`.
|
self.parameters = parameters
|
||||||
init(router: RootRouterType, session: MXSession?) {
|
|
||||||
self.rootRouter = router
|
|
||||||
self.session = session
|
|
||||||
|
|
||||||
let splitViewController = RiotSplitViewController()
|
let splitViewController = RiotSplitViewController()
|
||||||
splitViewController.preferredDisplayMode = .allVisible
|
splitViewController.preferredDisplayMode = .allVisible
|
||||||
|
@ -71,11 +79,7 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
||||||
self.masterPresentable = tabBarCoordinator
|
self.masterPresentable = tabBarCoordinator
|
||||||
self.detailNavigationController = detailNavigationController
|
self.detailNavigationController = detailNavigationController
|
||||||
|
|
||||||
self.rootRouter.setRootModule(self.splitViewController)
|
self.parameters.router.setRootModule(self.splitViewController)
|
||||||
}
|
|
||||||
|
|
||||||
func update(with session: MXSession) {
|
|
||||||
self.session = session
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func toPresentable() -> UIViewController {
|
func toPresentable() -> UIViewController {
|
||||||
|
@ -117,7 +121,10 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
||||||
}
|
}
|
||||||
|
|
||||||
private func createTabBarCoordinator() -> TabBarCoordinator {
|
private func createTabBarCoordinator() -> TabBarCoordinator {
|
||||||
let tabBarCoordinator = TabBarCoordinator(session: self.session)
|
|
||||||
|
let coordinatorParameters = TabBarCoordinatorParameters(userSessionsService: self.parameters.userSessionsService)
|
||||||
|
|
||||||
|
let tabBarCoordinator = TabBarCoordinator(parameters: coordinatorParameters)
|
||||||
tabBarCoordinator.delegate = self
|
tabBarCoordinator.delegate = self
|
||||||
return tabBarCoordinator
|
return tabBarCoordinator
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue