Send pin-drop location (#1179)

* add location sharing action in room, and open location sharing screen

* add pin location sharing

* fix asset, add tests for location viewModel, add send location request

* fix map zoom level, fix assets for location

* add feature flag for location sharing

* hide attribution button
This commit is contained in:
Flescio
2023-06-28 11:39:38 +02:00
committed by GitHub
parent 2ca8f01457
commit 838b7d8098
29 changed files with 548 additions and 42 deletions

View File

@@ -14,6 +14,7 @@
// limitations under the License.
//
import CoreLocation
import Foundation
enum LocationSharingViewError: Error, Hashable {
@@ -21,13 +22,23 @@ enum LocationSharingViewError: Error, Hashable {
case mapError(MapLibreError)
}
enum StaticLocationScreenViewModelAction { }
enum StaticLocationScreenViewModelAction {
case close
case sendLocation(GeoURI)
}
struct StaticLocationScreenViewState: BindableState {
/// Indicates whether the user has moved around the map to drop a pin somewhere other than their current location
var isPinDropSharing = true
/// Behavior mode of the current user's location, can be hidden, only shown and shown following the user
var showsUserLocationMode: ShowUserLocationMode = .hide
var bindings = StaticLocationScreenBindings()
}
struct StaticLocationScreenBindings {
var mapCenterLocation: CLLocationCoordinate2D?
/// Information describing the currently displayed alert.
var mapError: MapLibreError? {
get {
@@ -45,4 +56,8 @@ struct StaticLocationScreenBindings {
var alertInfo: AlertInfo<LocationSharingViewError>?
}
enum StaticLocationScreenViewAction { }
enum StaticLocationScreenViewAction {
case close
case selectLocation
case userDidPan
}