Skip to content

Commit b8d3182

Browse files
inTaoinTaoinTao
authored
perf:Optimize the status of READ_MEDIA_VISUAL_USER_SELECTED permission (#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 <seeintao96@gamil.com> Co-authored-by: inTao <seeintao96@gmail.com>
1 parent f141b9b commit b8d3182

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
@@ -538,15 +538,17 @@ private int determinePermissionStatus(final @PermissionConstants.PermissionGroup
538538
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_GRANTED);
539539
}
540540
} else if (permission == PermissionConstants.PERMISSION_GROUP_PHOTOS || permission == PermissionConstants.PERMISSION_GROUP_VIDEOS){
541-
final int permissionStatusLimited = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
542-
final int permissionStatus = ContextCompat.checkSelfPermission(context, name);
543-
if (permissionStatusLimited == PackageManager.PERMISSION_GRANTED){
544-
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_LIMITED);
545-
}
546-
else{
547-
if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
548-
permissionStatuses.add(PermissionUtils.determineDeniedVariant(activity, name));
549-
}
541+
final int permissionStatus = ContextCompat.checkSelfPermission(context, name);
542+
int permissionStatusLimited = permissionStatus;
543+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
544+
permissionStatusLimited = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
545+
}
546+
if (permissionStatusLimited == PackageManager.PERMISSION_GRANTED && permissionStatus == PackageManager.PERMISSION_DENIED) {
547+
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_LIMITED);
548+
} else if (permissionStatus == PackageManager.PERMISSION_GRANTED) {
549+
permissionStatuses.add(PermissionConstants.PERMISSION_STATUS_GRANTED);
550+
}else {
551+
permissionStatuses.add(PermissionUtils.determineDeniedVariant(activity, name));
550552
}
551553
}else {
552554
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)