diff --git a/Sources/SwiftLocation/Extensions/CLLocationManager+Extension.swift b/Sources/SwiftLocation/Extensions/CLLocationManager+Extension.swift index 61597dd0..02b3b339 100644 --- a/Sources/SwiftLocation/Extensions/CLLocationManager+Extension.swift +++ b/Sources/SwiftLocation/Extensions/CLLocationManager+Extension.swift @@ -146,6 +146,15 @@ extension CLAuthorizationStatus: CustomStringConvertible { return false } } + + internal var isRejected: Bool { + switch self { + case .denied, .restricted: + return true + default: + return false + } + } public var description: String { switch self { diff --git a/Sources/SwiftLocation/SwiftLocation.swift b/Sources/SwiftLocation/SwiftLocation.swift index d3457d37..cdab8932 100644 --- a/Sources/SwiftLocation/SwiftLocation.swift +++ b/Sources/SwiftLocation/SwiftLocation.swift @@ -551,7 +551,7 @@ public class LocationManager: LocationManagerDelegate, CustomStringConvertible { } private func failWeakAuthorizationRequests() { - guard authorizationStatus.isAuthorized == false else { + guard authorizationStatus.isRejected == true else { // If we have already the authorization even request with `avoidRequestAuthorization = true` // may receive notifications of locations. return diff --git a/SwiftLocationPlayground/SwiftLocationPlayground/View Controllers/Features/Location by GPS/GPSController.swift b/SwiftLocationPlayground/SwiftLocationPlayground/View Controllers/Features/Location by GPS/GPSController.swift index 368a2b64..f1e87e3e 100644 --- a/SwiftLocationPlayground/SwiftLocationPlayground/View Controllers/Features/Location by GPS/GPSController.swift +++ b/SwiftLocationPlayground/SwiftLocationPlayground/View Controllers/Features/Location by GPS/GPSController.swift @@ -232,6 +232,7 @@ class GPSController: UIViewController, UITableViewDelegate, UITableViewDataSourc let request = SwiftLocation.gpsLocationWith(serviceOptions) serviceOptions = GPSLocationOptions() + serviceOptions.avoidRequestAuthorization = true reloadData() AppDelegate.attachSubscribersToGPS([request])