diff --git a/permission_handler_android/CHANGELOG.md b/permission_handler_android/CHANGELOG.md index c968f555e..3f1fce02b 100644 --- a/permission_handler_android/CHANGELOG.md +++ b/permission_handler_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 12.0.12 + +* Fixes permission status returned from `Permission.photos.request()` or `Permission.videos.request()` when limited access selected + ## 12.0.11 * Adds `TargetApi` annotation to `getManifestNames` method in `PermissionUtils.java`. diff --git a/permission_handler_android/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java b/permission_handler_android/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java index 3e19acf28..807ca3370 100644 --- a/permission_handler_android/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java +++ b/permission_handler_android/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java @@ -260,6 +260,12 @@ public boolean onRequestPermissionsResult( } requestResults.put(permission, permissionStatus); + // [grantResults] can only contain PermissionConstants.PERMISSION_STATUS_GRANTED or PermissionConstants.PERMISSION_STATUS_DENIED status. + // But these permissions can have status PermissionConstants.PERMISSION_STATUS_LIMITED, so we need to recheck status + } else if (permission == PermissionConstants.PERMISSION_GROUP_PHOTOS || permission == PermissionConstants.PERMISSION_GROUP_VIDEOS) { + requestResults.put( + permission, + determinePermissionStatus(permission)); } else if (!requestResults.containsKey(permission)) { requestResults.put( permission, diff --git a/permission_handler_android/pubspec.yaml b/permission_handler_android/pubspec.yaml index af0b79ba1..4a911b56e 100644 --- a/permission_handler_android/pubspec.yaml +++ b/permission_handler_android/pubspec.yaml @@ -1,7 +1,7 @@ name: permission_handler_android description: Permission plugin for Flutter. This plugin provides the Android API to request and check permissions. homepage: https://github.com/baseflow/flutter-permission-handler -version: 12.0.11 +version: 12.0.12 environment: sdk: ">=2.15.0 <4.0.0"