Browse Source

Request when-in-use location authorization.

master
Abhishek Banthia 2 years ago
parent
commit
b82ec3e2bb
  1. 9
      Clocker/Clocker/LocationController.swift

9
Clocker/Clocker/LocationController.swift

@ -7,6 +7,7 @@ import CoreModelKit
class LocationController: NSObject { class LocationController: NSObject {
private let store: DataStore private let store: DataStore
private static var sharedController = LocationController(withStore: DataStore.shared())
init(withStore dataStore: DataStore) { init(withStore dataStore: DataStore) {
store = dataStore store = dataStore
@ -18,6 +19,10 @@ class LocationController: NSObject {
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers
return locationManager return locationManager
}() }()
class func shared() -> LocationController {
return sharedController
}
func authorizationStatus() -> CLAuthorizationStatus { func authorizationStatus() -> CLAuthorizationStatus {
return CLLocationManager.authorizationStatus() return CLLocationManager.authorizationStatus()
@ -50,7 +55,9 @@ class LocationController: NSObject {
case .authorizedAlways: case .authorizedAlways:
locationManager.startUpdatingLocation() locationManager.startUpdatingLocation()
case .notDetermined: case .notDetermined:
locationManager.startUpdatingLocation() if #available(macOS 10.15, *) {
locationManager.requestWhenInUseAuthorization()
}
case .denied, .restricted: case .denied, .restricted:
locationManager.startUpdatingLocation() locationManager.startUpdatingLocation()
default: default:

Loading…
Cancel
Save