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
}
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 {
// don't do anything and continue requesting permissions
......
......@@ -15,22 +15,25 @@ class SensorPermissionStrategy : NSObject, PermissionStrategy {
}
private static func getPermissionStatus() -> PermissionStatus {
if !CMMotionActivityManager.isActivityAvailable() {
return PermissionStatus.disabled
}
if #available(iOS 11.0, *) {
let status: CMAuthorizationStatus = CMMotionActivityManager.authorizationStatus()
var permissionStatus: PermissionStatus
switch status {
case CMAuthorizationStatus.authorized:
return PermissionStatus.granted
permissionStatus = PermissionStatus.granted
case CMAuthorizationStatus.denied:
return PermissionStatus.denied
permissionStatus = PermissionStatus.denied
case CMAuthorizationStatus.restricted:
return PermissionStatus.restricted
permissionStatus = PermissionStatus.restricted
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