diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index ae0e1cb33..2718c36ad 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -402,7 +402,7 @@ final class BuildSettings: NSObject { // MARK: - Location Sharing - static let tileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")! + static let defaultTileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")! static let locationSharingEnabled = true diff --git a/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift b/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift index 5dcb042bc..1b7805223 100644 --- a/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift +++ b/Riot/Model/HomeserverConfiguration/HomeserverConfigurationBuilder.swift @@ -76,7 +76,7 @@ final class HomeserverConfigurationBuilder: NSObject { let mapStyleURL = URL(string: mapStyleURLString) { tileServerMapStyleURL = mapStyleURL } else { - tileServerMapStyleURL = BuildSettings.tileServerMapStyleURL + tileServerMapStyleURL = BuildSettings.defaultTileServerMapStyleURL } let tileServerConfiguration = HomeserverTileServerConfiguration(mapStyleURL: tileServerMapStyleURL) diff --git a/Riot/Modules/Room/RoomCoordinator.swift b/Riot/Modules/Room/RoomCoordinator.swift index f44796d53..3046758cc 100644 --- a/Riot/Modules/Room/RoomCoordinator.swift +++ b/Riot/Modules/Room/RoomCoordinator.swift @@ -329,8 +329,9 @@ final class RoomCoordinator: NSObject, RoomCoordinatorProtocol { } private func showLocationCoordinatorWithEvent(_ event: MXEvent, bubbleData: MXKRoomBubbleCellDataStoring) { - guard let navigationRouter = self.navigationRouter, - let mediaManager = mxSession?.mediaManager, + guard let mxSession = self.mxSession, + let navigationRouter = self.navigationRouter, + let mediaManager = mxSession.mediaManager, let locationContent = event.location else { MXLog.error("[RoomCoordinator] Invalid location showing coordinator parameters. Returning.") return @@ -348,10 +349,12 @@ final class RoomCoordinator: NSObject, RoomCoordinatorProtocol { fatalError("[LocationSharingCoordinator] event asset type is not supported: \(coordinateType)") } - let parameters = StaticLocationViewingCoordinatorParameters(mediaManager: mediaManager, - avatarData: avatarData, - location: location, - coordinateType: locationSharingCoordinatetype) + let parameters = StaticLocationViewingCoordinatorParameters( + session: mxSession, + mediaManager: mediaManager, + avatarData: avatarData, + location: location, + coordinateType: locationSharingCoordinatetype) let coordinator = StaticLocationViewingCoordinator(parameters: parameters) @@ -371,9 +374,10 @@ final class RoomCoordinator: NSObject, RoomCoordinatorProtocol { } private func startLocationCoordinator() { - guard let navigationRouter = self.navigationRouter, - let mediaManager = mxSession?.mediaManager, - let user = mxSession?.myUser else { + guard let mxSession = mxSession, + let navigationRouter = self.navigationRouter, + let mediaManager = mxSession.mediaManager, + let user = mxSession.myUser else { MXLog.error("[RoomCoordinator] Invalid location sharing coordinator parameters. Returning.") return } @@ -382,7 +386,8 @@ final class RoomCoordinator: NSObject, RoomCoordinatorProtocol { matrixItemId: user.userId, displayName: user.displayname) - let parameters = LocationSharingCoordinatorParameters(roomDataSource: roomViewController.roomDataSource, + let parameters = LocationSharingCoordinatorParameters(session: mxSession, + roomDataSource: roomViewController.roomDataSource, mediaManager: mediaManager, avatarData: avatarData) diff --git a/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Coordinator/LiveLocationSharingViewerCoordinator.swift b/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Coordinator/LiveLocationSharingViewerCoordinator.swift index ffe471f16..19be80eec 100644 --- a/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Coordinator/LiveLocationSharingViewerCoordinator.swift +++ b/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Coordinator/LiveLocationSharingViewerCoordinator.swift @@ -49,7 +49,9 @@ final class LiveLocationSharingViewerCoordinator: Coordinator, Presentable { let service = LiveLocationSharingViewerService(session: parameters.session, roomId: parameters.roomId) - let viewModel = LiveLocationSharingViewerViewModel(mapStyleURL: BuildSettings.tileServerMapStyleURL, service: service) + let viewModel = LiveLocationSharingViewerViewModel( + mapStyleURL: parameters.session.vc_homeserverConfiguration().tileServer.mapStyleURL, + service: service) let view = LiveLocationSharingViewer(viewModel: viewModel.context) .addDependency(AvatarService.instantiate(mediaManager: parameters.session.mediaManager)) liveLocationSharingViewerViewModel = viewModel diff --git a/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Test/Unit/LiveLocationSharingViewerViewModelTests.swift b/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Test/Unit/LiveLocationSharingViewerViewModelTests.swift index ca59e9ac3..39718e54d 100644 --- a/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Test/Unit/LiveLocationSharingViewerViewModelTests.swift +++ b/RiotSwiftUI/Modules/Room/LiveLocationSharingViewer/Test/Unit/LiveLocationSharingViewerViewModelTests.swift @@ -28,7 +28,7 @@ class LiveLocationSharingViewerViewModelTests: XCTestCase { override func setUpWithError() throws { service = MockLiveLocationSharingViewerService() - viewModel = LiveLocationSharingViewerViewModel(mapStyleURL: BuildSettings.tileServerMapStyleURL, service: service) + viewModel = LiveLocationSharingViewerViewModel(mapStyleURL: BuildSettings.defaultTileServerMapStyleURL, service: service) context = viewModel.context } } diff --git a/RiotSwiftUI/Modules/Room/LocationSharing/Coordinator/LocationSharingCoordinator.swift b/RiotSwiftUI/Modules/Room/LocationSharing/Coordinator/LocationSharingCoordinator.swift index f396c1d88..434bf1324 100644 --- a/RiotSwiftUI/Modules/Room/LocationSharing/Coordinator/LocationSharingCoordinator.swift +++ b/RiotSwiftUI/Modules/Room/LocationSharing/Coordinator/LocationSharingCoordinator.swift @@ -20,6 +20,7 @@ import SwiftUI import MatrixSDK struct LocationSharingCoordinatorParameters { + let session: MXSession let roomDataSource: MXKRoomDataSource let mediaManager: MXMediaManager let avatarData: AvatarInputProtocol @@ -78,10 +79,11 @@ final class LocationSharingCoordinator: Coordinator, Presentable { let locationSharingService = LocationSharingService(session: parameters.roomDataSource.mxSession) - let viewModel = LocationSharingViewModel(mapStyleURL: BuildSettings.tileServerMapStyleURL, - avatarData: parameters.avatarData, - isLiveLocationSharingEnabled: true, - service: locationSharingService) + let viewModel = LocationSharingViewModel( + mapStyleURL: parameters.session.vc_homeserverConfiguration().tileServer.mapStyleURL, + avatarData: parameters.avatarData, + isLiveLocationSharingEnabled: true, + service: locationSharingService) let view = LocationSharingView(context: viewModel.context) .addDependency(AvatarService.instantiate(mediaManager: parameters.mediaManager)) diff --git a/RiotSwiftUI/Modules/Room/StaticLocationSharingViewer/Coordinator/StaticLocationViewingCoordinator.swift b/RiotSwiftUI/Modules/Room/StaticLocationSharingViewer/Coordinator/StaticLocationViewingCoordinator.swift index 81a376bb0..9475eeac8 100644 --- a/RiotSwiftUI/Modules/Room/StaticLocationSharingViewer/Coordinator/StaticLocationViewingCoordinator.swift +++ b/RiotSwiftUI/Modules/Room/StaticLocationSharingViewer/Coordinator/StaticLocationViewingCoordinator.swift @@ -20,6 +20,7 @@ import SwiftUI import MatrixSDK struct StaticLocationViewingCoordinatorParameters { + let session: MXSession let mediaManager: MXMediaManager let avatarData: AvatarInputProtocol let location: CLLocationCoordinate2D @@ -48,11 +49,12 @@ final class StaticLocationViewingCoordinator: Coordinator, Presentable { init(parameters: StaticLocationViewingCoordinatorParameters) { self.parameters = parameters - - let viewModel = StaticLocationViewingViewModel(mapStyleURL: BuildSettings.tileServerMapStyleURL, - avatarData: parameters.avatarData, - location: parameters.location, - coordinateType: parameters.coordinateType) + + let viewModel = StaticLocationViewingViewModel( + mapStyleURL: parameters.session.vc_homeserverConfiguration().tileServer.mapStyleURL, + avatarData: parameters.avatarData, + location: parameters.location, + coordinateType: parameters.coordinateType) let view = StaticLocationView(viewModel: viewModel.context) .addDependency(AvatarService.instantiate(mediaManager: parameters.mediaManager)) staticLocationViewingViewModel = viewModel