Merge commit '7621e2f8dec938cf48181c8b10afc9b01f444e68' into beta

This commit is contained in:
Ilya Laktyushin
2025-12-06 02:17:48 +04:00
commit 8344b97e03
28070 changed files with 7995182 additions and 0 deletions
@@ -0,0 +1,39 @@
import Foundation
import CoreLocation
public final class LocationManager: NSObject, CLLocationManagerDelegate {
public let manager = CLLocationManager()
var pendingCompletion: ((CLAuthorizationStatus) -> Void, CLAuthorizationStatus)?
public override init() {
super.init()
self.manager.delegate = self
}
func requestWhenInUseAuthorization(completion: @escaping (CLAuthorizationStatus) -> Void) {
let status = CLLocationManager.authorizationStatus()
if status == .notDetermined {
self.manager.requestWhenInUseAuthorization()
self.pendingCompletion = (completion, .authorizedWhenInUse)
} else {
completion(status)
}
}
func requestAlwaysAuthorization(completion: @escaping (CLAuthorizationStatus) -> Void) {
let status = CLLocationManager.authorizationStatus()
if status == .notDetermined {
self.manager.requestWhenInUseAuthorization()
self.pendingCompletion = (completion, .authorizedAlways)
} else {
completion(status)
}
}
public func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if let (pendingCompletion, _) = self.pendingCompletion {
pendingCompletion(status)
self.pendingCompletion = nil
}
}
}