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
|
||||
|
||||
/// 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 {
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
// MARK: Private
|
||||
|
||||
private let rootRouter: RootRouterType
|
||||
private var session: MXSession?
|
||||
private let parameters: SplitViewCoordinatorParameters
|
||||
|
||||
private let splitViewController: UISplitViewController
|
||||
|
||||
|
@ -40,11 +51,8 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
|||
|
||||
// MARK: - Setup
|
||||
|
||||
// TODO: Improve sessions injection
|
||||
// at the moment the session is not used, see TabBarCoordinator `init`.
|
||||
init(router: RootRouterType, session: MXSession?) {
|
||||
self.rootRouter = router
|
||||
self.session = session
|
||||
init(parameters: SplitViewCoordinatorParameters) {
|
||||
self.parameters = parameters
|
||||
|
||||
let splitViewController = RiotSplitViewController()
|
||||
splitViewController.preferredDisplayMode = .allVisible
|
||||
|
@ -71,11 +79,7 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
|||
self.masterPresentable = tabBarCoordinator
|
||||
self.detailNavigationController = detailNavigationController
|
||||
|
||||
self.rootRouter.setRootModule(self.splitViewController)
|
||||
}
|
||||
|
||||
func update(with session: MXSession) {
|
||||
self.session = session
|
||||
self.parameters.router.setRootModule(self.splitViewController)
|
||||
}
|
||||
|
||||
func toPresentable() -> UIViewController {
|
||||
|
@ -117,7 +121,10 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
|
|||
}
|
||||
|
||||
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
|
||||
return tabBarCoordinator
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue