mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 16:24:11 +00:00
d595e4fd83
Continue grouping the standalone modules under Components. The MapLibre frameworks were nested inside the app folder even though they are separate targets, so move them alongside the other components and update the XcodeGen includes.
57 lines
1.7 KiB
Swift
57 lines
1.7 KiB
Swift
//
|
|
// Copyright 2026 Element Creations Ltd.
|
|
// Copyright 2023-2025 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import CoreLocation
|
|
import Foundation
|
|
|
|
/**
|
|
Behavior mode of the current user's location, can be hidden, only shown and shown following the user
|
|
*/
|
|
public enum ShowUserLocationMode: Equatable {
|
|
/// this mode will show the user pin in map
|
|
case show
|
|
/// this mode will show the user pin in map and track him, panning the map automatically
|
|
case showAndFollow
|
|
/// this mode will not show the user pin in map
|
|
case hide
|
|
/// this mode will not show the user pin in map and will follow the marker with the given id,
|
|
/// panning the map automatically.
|
|
case hideAndFollowMarker(id: String)
|
|
|
|
/// The id of the marker the map should follow when in the `hideAndFollowMarker` mode, nil otherwise.
|
|
public var followedMarkerID: String? {
|
|
guard case .hideAndFollowMarker(let id) = self else { return nil }
|
|
return id
|
|
}
|
|
}
|
|
|
|
public enum MapLibreError: Error, Hashable {
|
|
case failedLoadingMap
|
|
case failedLocatingUser
|
|
}
|
|
|
|
/// The severity of a map log message forwarded to the app.
|
|
public enum MapLogSeverity {
|
|
case error
|
|
case warning
|
|
case info
|
|
case debug
|
|
case verbose
|
|
}
|
|
|
|
/// A marker shown on the map, identified so that it can be moved in place when its coordinate changes.
|
|
public struct MapAnnotation {
|
|
public let id: String
|
|
public let coordinate: CLLocationCoordinate2D
|
|
|
|
public init(id: String, coordinate: CLLocationCoordinate2D) {
|
|
self.id = id
|
|
self.coordinate = coordinate
|
|
}
|
|
}
|