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