SplitViewCoordinator: Update init method and support UserSessionsService.

This commit is contained in:
SBiOSoftWhare 2021-05-20 22:11:09 +02:00
parent 007296243d
commit 245f89ea9e

View file

@ -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
} }