Commit 78afbde5 by Maurits van Beusekom

Make sure to return permission state over service state

parent c3cdd850
...@@ -31,7 +31,7 @@ class LocationPermissionStrategy : NSObject, PermissionStrategy, CLLocationManag ...@@ -31,7 +31,7 @@ class LocationPermissionStrategy : NSObject, PermissionStrategy, CLLocationManag
} }
func requestPermission(permission: PermissionGroup, completionHandler: @escaping PermissionStatusHandler) { func requestPermission(permission: PermissionGroup, completionHandler: @escaping PermissionStatusHandler) {
let permissionStatus = LocationPermissionStrategy.getPermissionStatus(permission: permission) let permissionStatus = checkPermissionStatus(permission: permission)
if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.authorizedWhenInUse && permission == PermissionGroup.locationAlways { if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.authorizedWhenInUse && permission == PermissionGroup.locationAlways {
// don't do anything and continue requesting permissions // don't do anything and continue requesting permissions
......
...@@ -15,22 +15,25 @@ class SensorPermissionStrategy : NSObject, PermissionStrategy { ...@@ -15,22 +15,25 @@ class SensorPermissionStrategy : NSObject, PermissionStrategy {
} }
private static func getPermissionStatus() -> PermissionStatus { private static func getPermissionStatus() -> PermissionStatus {
if !CMMotionActivityManager.isActivityAvailable() {
return PermissionStatus.disabled
}
if #available(iOS 11.0, *) { if #available(iOS 11.0, *) {
let status: CMAuthorizationStatus = CMMotionActivityManager.authorizationStatus() let status: CMAuthorizationStatus = CMMotionActivityManager.authorizationStatus()
var permissionStatus: PermissionStatus
switch status { switch status {
case CMAuthorizationStatus.authorized: case CMAuthorizationStatus.authorized:
return PermissionStatus.granted permissionStatus = PermissionStatus.granted
case CMAuthorizationStatus.denied: case CMAuthorizationStatus.denied:
return PermissionStatus.denied permissionStatus = PermissionStatus.denied
case CMAuthorizationStatus.restricted: case CMAuthorizationStatus.restricted:
return PermissionStatus.restricted permissionStatus = PermissionStatus.restricted
default: default:
return PermissionStatus.unknown permissionStatus = PermissionStatus.unknown
}
if permissionStatus == PermissionStatus.granted && !CMMotionActivityManager.isActivityAvailable() {
return PermissionStatus.disabled
} else {
return permissionStatus
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment