Files
letro-ios/ElementX/Sources/Services/Location/CLLocationManagerProtocol.swift
2026-04-24 16:44:00 +03:00

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 { }