Commit 39ae5be0 by Maurits van Beusekom Committed by GitHub

Merge pull request #63 from BaseflowIT/issues/56

Android: Make sure to return permission state over service state
parents 78b55924 f62eadef
......@@ -149,8 +149,13 @@ class PermissionHandlerPlugin(private val registrar: Registrar, private var requ
val targetsMOrHigher = context.applicationInfo.targetSdkVersion >= android.os.Build.VERSION_CODES.M
for (name in names) {
if (targetsMOrHigher && ContextCompat.checkSelfPermission(context, name) != PackageManager.PERMISSION_GRANTED) {
return PermissionStatus.DENIED
if (targetsMOrHigher) {
val permissionStatus = ContextCompat.checkSelfPermission(context, name)
if (permissionStatus == PackageManager.PERMISSION_DENIED) {
return PermissionStatus.DENIED
} else if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
return PermissionStatus.UNKNOWN
}
}
}
......@@ -258,7 +263,10 @@ class PermissionHandlerPlugin(private val registrar: Registrar, private var requ
} else if (permission == PermissionGroup.LOCATION) {
val context: Context? = registrar.activity() ?: registrar.activeContext()
val isLocationServiceEnabled= if (context == null) false else isLocationServiceEnabled(context)
val permissionStatus = if (isLocationServiceEnabled) grantResults[i].toPermissionStatus() else PermissionStatus.DISABLED
var permissionStatus = grantResults[i].toPermissionStatus()
if (permissionStatus == PermissionStatus.GRANTED && !isLocationServiceEnabled) {
permissionStatus = PermissionStatus.DISABLED
}
if (!mRequestResults.containsKey(PermissionGroup.LOCATION_ALWAYS)) {
mRequestResults[PermissionGroup.LOCATION_ALWAYS] = permissionStatus
......
......@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
......
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