Commit f4f9924d by Maurits van Beusekom Committed by GitHub

Merge pull request #499 from Baseflow/issue/472

Correctly handle some permissions on pre Android Q
parents f8b6809c e22e6f40
## 6.1.2
* Correctly handle the ACCESS_MEDIA_LOCATION and ACCESS_ACTIVITY_RECOGNITION permissions on pre Android Q devices (permissions should be implicitly granted on pre Android Q).
## 6.1.1 ## 6.1.1
* Added unit-tests to guard API against breaking changes. * Added unit-tests to guard API against breaking changes.
......
...@@ -93,11 +93,14 @@ public class PermissionUtils { ...@@ -93,11 +93,14 @@ public class PermissionUtils {
break; break;
case PermissionConstants.PERMISSION_GROUP_LOCATION_ALWAYS: case PermissionConstants.PERMISSION_GROUP_LOCATION_ALWAYS:
// Note that the LOCATION_ALWAYS will deliberately fallthrough to the LOCATION
// case on pre Android Q devices. The ACCESS_BACKGROUND_LOCATION permission was only
// introduced in Android Q, before it should be treated as the ACCESS_COARSE_LOCATION or
// ACCESS_FINE_LOCATION.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_BACKGROUND_LOCATION)) if (hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_BACKGROUND_LOCATION))
permissionNames.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION); permissionNames.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
} }
case PermissionConstants.PERMISSION_GROUP_LOCATION_WHEN_IN_USE: case PermissionConstants.PERMISSION_GROUP_LOCATION_WHEN_IN_USE:
case PermissionConstants.PERMISSION_GROUP_LOCATION: case PermissionConstants.PERMISSION_GROUP_LOCATION:
if (hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_COARSE_LOCATION)) if (hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_COARSE_LOCATION))
...@@ -184,12 +187,22 @@ public class PermissionUtils { ...@@ -184,12 +187,22 @@ public class PermissionUtils {
break; break;
case PermissionConstants.PERMISSION_GROUP_ACCESS_MEDIA_LOCATION: case PermissionConstants.PERMISSION_GROUP_ACCESS_MEDIA_LOCATION:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_MEDIA_LOCATION)) // The ACCESS_MEDIA_LOCATION permission is introduced in Android Q, meaning we should
// not handle permissions on pre Android Q devices.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q)
return null;
if(hasPermissionInManifest(context, permissionNames, Manifest.permission.ACCESS_MEDIA_LOCATION))
permissionNames.add(Manifest.permission.ACCESS_MEDIA_LOCATION); permissionNames.add(Manifest.permission.ACCESS_MEDIA_LOCATION);
break; break;
case PermissionConstants.PERMISSION_GROUP_ACTIVITY_RECOGNITION: case PermissionConstants.PERMISSION_GROUP_ACTIVITY_RECOGNITION:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && hasPermissionInManifest(context, permissionNames, Manifest.permission.ACTIVITY_RECOGNITION)) // The ACCESS_MEDIA_LOCATION permission is introduced in Android Q, meaning we should
// not handle permissions on pre Android Q devices.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q)
return null;
if (hasPermissionInManifest(context, permissionNames, Manifest.permission.ACTIVITY_RECOGNITION))
permissionNames.add(Manifest.permission.ACTIVITY_RECOGNITION); permissionNames.add(Manifest.permission.ACTIVITY_RECOGNITION);
break; break;
......
name: permission_handler name: permission_handler
description: Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions. description: Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
version: 6.1.1 version: 6.1.2
homepage: https://github.com/baseflowit/flutter-permission-handler homepage: https://github.com/baseflowit/flutter-permission-handler
flutter: flutter:
......
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