Remove the CommonSettingsProtocol and use UserSession to carry multiple dependencies. (#6302)

* Remove the CommonSettingsProtocol.

* Replace multiple dependencies with the UserSession when it carries them.
This commit is contained in:
Doug
2026-10-09 10:20:00 +01:00
committed by GitHub
parent a3d170534c
commit 65bab49f39
75 changed files with 212 additions and 369 deletions
@@ -14,12 +14,10 @@ struct LocationSharingScreenCoordinatorParameters {
let mapURLBuilder: MapTilerURLBuilderProtocol
let roomProxy: JoinedRoomProxyProtocol
let timelineController: TimelineControllerProtocol
let liveLocationManager: LiveLocationManagerProtocol
let userSettings: UserSettings
let userSession: UserSessionProtocol
let appMediator: AppMediatorProtocol
let analytics: AnalyticsServiceProtocol
let userIndicatorController: UserIndicatorControllerProtocol
let mediaProvider: MediaProviderProtocol
}
enum LocationSharingScreenCoordinatorAction {
@@ -44,11 +42,9 @@ final class LocationSharingScreenCoordinator: CoordinatorProtocol {
mapURLBuilder: parameters.mapURLBuilder,
roomProxy: parameters.roomProxy,
timelineController: parameters.timelineController,
liveLocationManager: parameters.liveLocationManager,
userSettings: parameters.userSettings,
userSession: parameters.userSession,
analytics: parameters.analytics,
userIndicatorController: parameters.userIndicatorController,
mediaProvider: parameters.mediaProvider)
userIndicatorController: parameters.userIndicatorController)
}
// MARK: - Public
@@ -36,16 +36,14 @@ class LocationSharingScreenViewModel: LocationSharingScreenViewModelType, Locati
mapURLBuilder: MapTilerURLBuilderProtocol,
roomProxy: JoinedRoomProxyProtocol,
timelineController: TimelineControllerProtocol,
liveLocationManager: LiveLocationManagerProtocol,
userSettings: UserSettings,
userSession: UserSessionProtocol,
analytics: AnalyticsServiceProtocol,
userIndicatorController: UserIndicatorControllerProtocol,
mediaProvider: MediaProviderProtocol,
notificationCenter: NotificationCenter = .default) {
self.roomProxy = roomProxy
self.timelineController = timelineController
self.liveLocationManager = liveLocationManager
self.userSettings = userSettings
liveLocationManager = userSession.liveLocationManager
userSettings = userSession.userSettings
self.analytics = analytics
self.userIndicatorController = userIndicatorController
self.notificationCenter = notificationCenter
@@ -53,7 +51,7 @@ class LocationSharingScreenViewModel: LocationSharingScreenViewModelType, Locati
super.init(initialViewState: .init(interactionMode: interactionMode,
mapURLBuilder: mapURLBuilder,
ownUserID: roomProxy.ownUserID),
mediaProvider: mediaProvider)
mediaProvider: userSession.mediaProvider)
updateUserProfiles(members: roomProxy.membersPublisher.value)
setupSubscriptions()
@@ -432,16 +430,14 @@ extension LocationSharingScreenViewModel {
let roomProxy = JoinedRoomProxyMock(.init(members: .allMembers, ownUserID: RoomMemberProxyMock.mockMe.userID))
roomProxy.makeLiveLocationServiceReturnValue = liveLocationServiceMock
let userSettings = UserSettings.mock()
let userSession = UserSessionMock(.init())
return LocationSharingScreenViewModel(interactionMode: interactionMode,
mapURLBuilder: userSettings.app.mapTilerConfiguration.publisher.value,
mapURLBuilder: userSession.userSettings.app.mapTilerConfiguration.publisher.value,
roomProxy: roomProxy,
timelineController: TimelineControllerMock(.init()),
liveLocationManager: LiveLocationManagerMock(),
userSettings: userSettings,
userSession: userSession,
analytics: AnalyticsServiceMock(.init()),
userIndicatorController: UserIndicatorControllerMock(),
mediaProvider: MediaProviderMock(.init()))
userIndicatorController: UserIndicatorControllerMock())
}
}