mirror of
https://github.com/GLEGram/GLEGram-iOS.git
synced 2026-04-25 12:26:55 +02:00
4647310322
Based on Swiftgram 12.5 (Telegram iOS 12.5). All GLEGram features ported and organized in GLEGram/ folder. Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass, Font Replacement, Fake Profile, Chat Export, Plugin System, and more. See CHANGELOG_12.5.md for full details.
40 lines
1.4 KiB
Swift
40 lines
1.4 KiB
Swift
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
|
|
}
|
|
}
|
|
}
|