@@ -45,6 +45,14 @@ public final class AsyncLocationManager {
4545 locationManager. desiredAccuracy = desiredAccuracy. convertingAccuracy
4646 }
4747
48+ public init ( locationManager: CLLocationManager , desiredAccuracy: LocationAccuracy ) {
49+ self . locationManager = locationManager
50+ self . locationManager. delegate = locationDelegate
51+ self . locationManager. desiredAccuracy = desiredAccuracy. convertingAccuracy
52+ proxyDelegate = AsyncDelegateProxy ( )
53+ locationDelegate = LocationDelegate ( delegateProxy: proxyDelegate)
54+ }
55+
4856 public convenience init ( desiredAccuracy: LocationAccuracy ) {
4957 self . init ( )
5058 self . desiredAccuracy = desiredAccuracy
@@ -62,6 +70,7 @@ public final class AsyncLocationManager {
6270 locationManager. desiredAccuracy = newAccuracy. convertingAccuracy
6371 }
6472
73+ @available ( * , deprecated, message: " Use new function requestPermission(with:) " )
6574 public func requestAuthorizationWhenInUse( ) async -> CLAuthorizationStatus {
6675 let authorizationPerformer = RequestAuthorizationPerformer ( )
6776 return await withTaskCancellationHandler {
@@ -80,6 +89,8 @@ public final class AsyncLocationManager {
8089 }
8190 }
8291
92+ #if !APPCLIP
93+ @available ( * , deprecated, message: " Use new function requestPermission(with:) " )
8394 public func requestAuthorizationAlways( ) async -> CLAuthorizationStatus {
8495 let authorizationPerformer = RequestAuthorizationPerformer ( )
8596 return await withTaskCancellationHandler {
@@ -96,6 +107,20 @@ public final class AsyncLocationManager {
96107 }
97108 }
98109 }
110+ #endif
111+
112+ public func requestPermission( with permissionType: LocationPermission ) async -> CLAuthorizationStatus {
113+ switch permissionType {
114+ case . always:
115+ #if APPCLIP
116+ return await requestAuthorizationWhenInUse ( )
117+ #else
118+ return await requestAuthorizationAlways ( )
119+ #endif
120+ case . whenInUsage:
121+ return await requestAuthorizationWhenInUse ( )
122+ }
123+ }
99124
100125 public func startUpdatingLocation( ) async -> LocationStream {
101126 let monitoringPerformer = MonitoringUpdateLocationPerformer ( )
0 commit comments