Feature/3120 location sharing

This commit is contained in:
Frank Rotermund
2022-07-27 11:58:38 +00:00
parent d0f0423065
commit 7bd8da0a7e
22 changed files with 43 additions and 200 deletions
@@ -24,6 +24,7 @@ struct StaticLocationViewingCoordinatorParameters {
let avatarData: AvatarInputProtocol
let location: CLLocationCoordinate2D
let coordinateType: LocationSharingCoordinateType
let mxSession: MXSession?
}
final class StaticLocationViewingCoordinator: Coordinator, Presentable {
@@ -50,10 +51,20 @@ 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)
var viewModel: StaticLocationViewingViewModel
if let mapStyleUrl = parameters.mxSession?.vc_homeserverConfiguration()?.tileServer.mapStyleURL {
viewModel = StaticLocationViewingViewModel(mapStyleURL: mapStyleUrl,
avatarData: parameters.avatarData,
location: parameters.location,
coordinateType: parameters.coordinateType)
} else {
viewModel = StaticLocationViewingViewModel(mapStyleURL: BuildSettings.tileServerMapStyleURL,
avatarData: parameters.avatarData,
location: parameters.location,
coordinateType: parameters.coordinateType)
}
let view = StaticLocationView(viewModel: viewModel.context)
.addDependency(AvatarService.instantiate(mediaManager: parameters.mediaManager))
staticLocationViewingViewModel = viewModel
@@ -49,6 +49,10 @@ struct StaticLocationViewingViewState: BindableState {
var shareButtonEnabled: Bool {
!showLoadingIndicator
}
var shareButtonVisible: Bool {
BwiBuildSettings.bwiLocationShareButtonVisible
}
let errorSubject = PassthroughSubject<LocationSharingViewError, Never>()
@@ -62,8 +62,9 @@ struct StaticLocationView: View {
} label: {
Image(uiImage: Asset.Images.locationShareIcon.image)
}
.disabled(!viewModel.viewState.shareButtonEnabled)
//.disabled(!viewModel.viewState.shareButtonEnabled)
.accessibilityIdentifier("shareButton")
.opacity(BwiBuildSettings.bwiLocationShareButtonVisible ? 1.0 : 0.0)
}
}
.navigationBarTitleDisplayMode(.inline)