Skip to content

Commit b2021d7

Browse files
inTaoinTaoinTao
authored andcommitted
perf:Optimize the status of READ_MEDIA_VISUAL_USER_SELECTED permission (Baseflow#1359)
* perf:Optimize the status of READ_MEDIA_VISUAL_USER_SELECTED permission * updata version to 12.0.9 added CHANGELOG * Deal with other situations * Remove non-essential check restricted states --------- Co-authored-by: inTao <[email protected]> Co-authored-by: inTao <[email protected]>
1 parent e4862b8 commit b2021d7

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

permission_handler_android/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
## 12.0.9
2+
* Added Make the status return of the READ_MEDIA_VISUAL_USER_SELECTED permission more accurate.
13
## 12.0.8
24

35
* Added support for limited photo and video permission on Android.

permission_handler_android/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -547,15 +547,17 @@ private int determinePermissionStatus(final @PermissionConstants.PermissionGroup
547547
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_GRANTED);
548548
}
549549
} else if (permission == PermissionConstants.PERMISSION_GROUP_PHOTOS || permission == PermissionConstants.PERMISSION_GROUP_VIDEOS){
550-
final int permissionStatusLimited = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
551-
final int permissionStatus = ContextCompat.checkSelfPermission(context, name);
552-
if (permissionStatusLimited == PackageManager.PERMISSION_GRANTED){
553-
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_LIMITED);
554-
}
555-
else{
556-
if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
557-
permissionStatuses.add(PermissionUtils.determineDeniedVariant(activity, name));
558-
}
550+
final int permissionStatus = ContextCompat.checkSelfPermission(context, name);
551+
int permissionStatusLimited = permissionStatus;
552+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
553+
permissionStatusLimited = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
554+
}
555+
if (permissionStatusLimited == PackageManager.PERMISSION_GRANTED && permissionStatus == PackageManager.PERMISSION_DENIED) {
556+
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_LIMITED);
557+
} else if (permissionStatus == PackageManager.PERMISSION_GRANTED) {
558+
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_GRANTED);
559+
}else {
560+
permissionStatuses.add(PermissionUtils.determineDeniedVariant(activity, name));
559561
}
560562
}else {
561563
final int permissionStatus = ContextCompat.checkSelfPermission(context, name);

permission_handler_android/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: permission_handler_android
22
description: Permission plugin for Flutter. This plugin provides the Android API to request and check permissions.
33
homepage: https://github.com/baseflow/flutter-permission-handler
4-
version: 12.0.8
4+
version: 12.0.9
55

66
environment:
77
sdk: ">=2.15.0 <4.0.0"

0 commit comments

Comments
 (0)