@@ -35,9 +35,13 @@ public final class AsyncLocationManager {
3535 proxyDelegate. cancel ( for: authorizationPerformer. uniqueIdentifier)
3636 } operation: {
3737 await withCheckedContinuation { continuation in
38- authorizationPerformer. linkContinuation ( continuation)
39- proxyDelegate. addPerformer ( authorizationPerformer)
40- locationManager. requestWhenInUseAuthorization ( )
38+ if #available( iOS 14 , * ) , locationManager. authorizationStatus != . notDetermined {
39+ continuation. resume ( with: . success( locationManager. authorizationStatus) )
40+ } else {
41+ authorizationPerformer. linkContinuation ( continuation)
42+ proxyDelegate. addPerformer ( authorizationPerformer)
43+ locationManager. requestWhenInUseAuthorization ( )
44+ }
4145 }
4246 }
4347 }
@@ -48,9 +52,13 @@ public final class AsyncLocationManager {
4852 proxyDelegate. cancel ( for: authorizationPerformer. uniqueIdentifier)
4953 } operation: {
5054 await withCheckedContinuation { continuation in
51- authorizationPerformer. linkContinuation ( continuation)
52- proxyDelegate. addPerformer ( authorizationPerformer)
53- locationManager. requestAlwaysAuthorization ( )
55+ if #available( iOS 14 , * ) , locationManager. authorizationStatus != . notDetermined {
56+ continuation. resume ( with: . success( locationManager. authorizationStatus) )
57+ } else {
58+ authorizationPerformer. linkContinuation ( continuation)
59+ proxyDelegate. addPerformer ( authorizationPerformer)
60+ locationManager. requestAlwaysAuthorization ( )
61+ }
5462 }
5563 }
5664 }
0 commit comments