Commit 89e62f9c by Maurits van Beusekom Committed by GitHub

Merge pull request #62 from BaseflowIT/issues/54

 Make sure to return permission state over service state
parents 39ae5be0 87c6c523
......@@ -143,7 +143,7 @@ enum PermissionStatus {
/// Permission to access the requested feature is denied by the user.
denied,
/// The feature is disabled (or not available) on the device.
/// Permissions to access the feature is granted by the user but the feature is disabled.
disabled,
/// Permission to access the requested feature is granted by the user.
......
connection.project.dir=
connection.project.dir=../example/android
eclipse.preferences.version=1
......@@ -18,15 +18,16 @@ class LocationPermissionStrategy : NSObject, PermissionStrategy, CLLocationManag
}
private static func getPermissionStatus(permission: PermissionGroup) -> PermissionStatus {
if !CLLocationManager.locationServicesEnabled() {
let authorizationStatus: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
let permissionStatus: PermissionStatus = LocationPermissionStrategy.determinePermissionStatus(
permission: permission,
authorizationStatus: authorizationStatus)
if permissionStatus == PermissionStatus.granted && !CLLocationManager.locationServicesEnabled() {
return PermissionStatus.disabled
}
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
return LocationPermissionStrategy.determinePermissionStatus(
permission: permission,
authorizationStatus: status)
return permissionStatus
}
func requestPermission(permission: PermissionGroup, completionHandler: @escaping PermissionStatusHandler) {
......
......@@ -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