30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
//
|
|
// Copyright 2026 Element Creations 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
|
|
|
|
/// Protocol for CLLocationManager used for authorization handling and location updates.
|
|
protocol CLLocationManagerProtocol: AnyObject {
|
|
var delegate: CLLocationManagerDelegate? { get set }
|
|
var allowsBackgroundLocationUpdates: Bool { get set }
|
|
var showsBackgroundLocationIndicator: Bool { get set }
|
|
var desiredAccuracy: CLLocationAccuracy { get set }
|
|
var distanceFilter: CLLocationDistance { get set }
|
|
var pausesLocationUpdatesAutomatically: Bool { get set }
|
|
var authorizationStatus: CLAuthorizationStatus { get }
|
|
var accuracyAuthorization: CLAccuracyAuthorization { get }
|
|
|
|
func requestAlwaysAuthorization()
|
|
func startUpdatingLocation()
|
|
func stopUpdatingLocation()
|
|
}
|
|
|
|
// sourcery: AutoMockable
|
|
extension CLLocationManagerProtocol { }
|
|
|
|
extension CLLocationManager: CLLocationManagerProtocol { }
|