diff --git a/Riot/Modules/SplitView/SplitViewCoordinator.swift b/Riot/Modules/SplitView/SplitViewCoordinator.swift index 59e8b6a2a..c03cf2cec 100644 --- a/Riot/Modules/SplitView/SplitViewCoordinator.swift +++ b/Riot/Modules/SplitView/SplitViewCoordinator.swift @@ -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 + // MARK: Private - private let rootRouter: RootRouterType - private var session: MXSession? + private let parameters: SplitViewCoordinatorParameters private let splitViewController: UISplitViewController @@ -39,12 +50,9 @@ final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType { weak var delegate: SplitViewCoordinatorDelegate? // 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 }