mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Open map from timeline (#1199)
* Add navigation to expaneded map * Add MapLibreMapView.Options * Add AppActivityView * Add ShareToMapsAppActivity * Add share sheet presentation * Add localisations * Cleanup * Fix UT build errors * Revert breaking change * Fix UIView setup * Add support for location’s description * Show popover on iPad * Restore assets * More cleanup
This commit is contained in:
@@ -145,9 +145,9 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
return .messageForwarding(roomID: roomID, itemID: itemID)
|
||||
case (.dismissMessageForwarding, .messageForwarding(let roomID, _)):
|
||||
return .room(roomID: roomID)
|
||||
case (.presentLocationPicker, .room(let roomID)):
|
||||
return .locationPicker(roomID: roomID)
|
||||
case (.dismissLocationPicker, .locationPicker(let roomID)):
|
||||
case (.presentMapNavigator, .room(let roomID)):
|
||||
return .mapNavigator(roomID: roomID)
|
||||
case (.dismissMapNavigator, .mapNavigator(let roomID)):
|
||||
return .room(roomID: roomID)
|
||||
default:
|
||||
return nil
|
||||
@@ -211,9 +211,9 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
presentMessageForwarding(for: eventID)
|
||||
case (.messageForwarding, .dismissMessageForwarding, .room):
|
||||
break
|
||||
case (.room, .presentLocationPicker, .locationPicker):
|
||||
presentLocationPicker()
|
||||
case (.locationPicker, .dismissLocationPicker, .room):
|
||||
case (.room, .presentMapNavigator(let mode), .mapNavigator):
|
||||
presentMapNavigator(interactionMode: mode)
|
||||
case (.mapNavigator, .dismissMapNavigator, .room):
|
||||
break
|
||||
default:
|
||||
fatalError("Unknown transition: \(context)")
|
||||
@@ -307,7 +307,9 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
case .presentEmojiPicker(let itemID):
|
||||
stateMachine.tryEvent(.presentEmojiPicker(itemID: itemID))
|
||||
case .presentLocationPicker:
|
||||
stateMachine.tryEvent(.presentLocationPicker)
|
||||
stateMachine.tryEvent(.presentMapNavigator(interactionMode: .picker))
|
||||
case .presentLocationViewer(_, let geoURI):
|
||||
stateMachine.tryEvent(.presentMapNavigator(interactionMode: .viewOnly(geoURI: geoURI)))
|
||||
case .presentRoomMemberDetails(member: let member):
|
||||
stateMachine.tryEvent(.presentRoomMemberDetails(member: .init(value: member)))
|
||||
case .presentMessageForwarding(let itemID):
|
||||
@@ -500,10 +502,10 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
}
|
||||
}
|
||||
|
||||
private func presentLocationPicker() {
|
||||
private func presentMapNavigator(interactionMode: StaticLocationInteractionMode) {
|
||||
let locationPickerNavigationStackCoordinator = NavigationStackCoordinator()
|
||||
|
||||
let params = StaticLocationScreenCoordinatorParameters()
|
||||
let params = StaticLocationScreenCoordinatorParameters(interactionMode: interactionMode)
|
||||
let coordinator = StaticLocationScreenCoordinator(parameters: params)
|
||||
|
||||
coordinator.actions.sink { [weak self] action in
|
||||
@@ -519,11 +521,11 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
}
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
|
||||
|
||||
locationPickerNavigationStackCoordinator.setRootCoordinator(coordinator)
|
||||
|
||||
navigationStackCoordinator.setSheetCoordinator(locationPickerNavigationStackCoordinator) { [weak self] in
|
||||
self?.stateMachine.tryEvent(.dismissLocationPicker)
|
||||
self?.stateMachine.tryEvent(.dismissMapNavigator)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -618,7 +620,7 @@ private extension RoomFlowCoordinator {
|
||||
case mediaUploadPicker(roomID: String, source: MediaPickerScreenSource)
|
||||
case mediaUploadPreview(roomID: String, fileURL: URL)
|
||||
case emojiPicker(roomID: String, itemID: String)
|
||||
case locationPicker(roomID: String)
|
||||
case mapNavigator(roomID: String)
|
||||
case roomMemberDetails(roomID: String, member: HashableRoomMemberWrapper)
|
||||
case messageForwarding(roomID: String, itemID: String)
|
||||
}
|
||||
@@ -647,8 +649,8 @@ private extension RoomFlowCoordinator {
|
||||
case presentEmojiPicker(itemID: String)
|
||||
case dismissEmojiPicker
|
||||
|
||||
case presentLocationPicker
|
||||
case dismissLocationPicker
|
||||
case presentMapNavigator(interactionMode: StaticLocationInteractionMode)
|
||||
case dismissMapNavigator
|
||||
|
||||
case presentRoomMemberDetails(member: HashableRoomMemberWrapper)
|
||||
case dismissRoomMemberDetails
|
||||
|
||||
Reference in New Issue
Block a user