Remove all uses of the ServiceLocator from within Coordinators and View Models.

It is still used for mocks in tests, previews etc, and still used in the AppCoordinator.
This commit is contained in:
Doug
2025-08-27 16:05:49 +01:00
committed by Doug
parent dfb2425240
commit cb7d11fd13
23 changed files with 138 additions and 69 deletions
@@ -16,6 +16,7 @@ struct StartChatScreenCoordinatorParameters {
let userDiscoveryService: UserDiscoveryServiceProtocol
let mediaUploadingPreprocessor: MediaUploadingPreprocessor
let appSettings: AppSettings
let analytics: AnalyticsService
}
enum StartChatScreenCoordinatorAction {
@@ -48,10 +49,10 @@ final class StartChatScreenCoordinator: CoordinatorProtocol {
self.parameters = parameters
viewModel = StartChatScreenViewModel(userSession: parameters.userSession,
analytics: ServiceLocator.shared.analytics,
analytics: parameters.analytics,
userIndicatorController: parameters.userIndicatorController,
userDiscoveryService: parameters.userDiscoveryService,
appSettings: ServiceLocator.shared.settings)
appSettings: parameters.appSettings)
}
func start() {
@@ -114,7 +115,9 @@ final class StartChatScreenCoordinator: CoordinatorProtocol {
let createParameters = CreateRoomCoordinatorParameters(userSession: parameters.userSession,
userIndicatorController: parameters.userIndicatorController,
createRoomParameters: createRoomParametersPublisher,
selectedUsers: selectedUsersPublisher)
selectedUsers: selectedUsersPublisher,
appSettings: parameters.appSettings,
analytics: parameters.analytics)
let coordinator = CreateRoomCoordinator(parameters: createParameters)
coordinator.actions.sink { [weak self] action in
guard let self else { return }