Skip to content

Commit

Permalink
Merge pull request #6472 from vector-im/johannes/tile-server-well-known
Browse files Browse the repository at this point in the history
Read tile server URL from .well-known (PSG-592)
  • Loading branch information
Johennes authored Jul 26, 2022
2 parents fdc09e8 + 234e25c commit 6ae2206
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 23 deletions.
3 changes: 2 additions & 1 deletion Config/BuildSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,8 @@ final class BuildSettings: NSObject {

// MARK: - Location Sharing

static let tileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")!
/// Overwritten by the home server's .well-known configuration (if any exists)
static let defaultTileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")!

static let locationSharingEnabled = true

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
25 changes: 15 additions & 10 deletions Riot/Modules/Room/RoomCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)

Expand All @@ -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
}
Expand All @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import SwiftUI
import MatrixSDK

struct LocationSharingCoordinatorParameters {
let session: MXSession
let roomDataSource: MXKRoomDataSource
let mediaManager: MXMediaManager
let avatarData: AvatarInputProtocol
Expand Down Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import SwiftUI
import MatrixSDK

struct StaticLocationViewingCoordinatorParameters {
let session: MXSession
let mediaManager: MXMediaManager
let avatarData: AvatarInputProtocol
let location: CLLocationCoordinate2D
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions changelog.d/6472.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Read tile server URL from .well-known (PSG-592)

0 comments on commit 6ae2206

Please sign in to comment.