Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/image_picker/image_picker_android/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## NEXT
## 0.8.9+4

* Minimizes scope of deprecation warning suppression to only the versions where it is required.
* Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
* Updates compileSdk version to 34.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -550,10 +550,14 @@ private File createTemporaryWritableFile(String suffix) {

private void grantUriPermissions(Intent intent, Uri imageUri) {
PackageManager packageManager = activity.getPackageManager();
// TODO(stuartmorgan): Add new codepath: https://github.com/flutter/flutter/issues/121816
@SuppressWarnings("deprecation")
List<ResolveInfo> compatibleActivities =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
List<ResolveInfo> compatibleActivities;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
compatibleActivities =
packageManager.queryIntentActivities(
intent, PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY));
} else {
compatibleActivities = queryIntentActivitiesPreApi33(packageManager, intent);
}

for (ResolveInfo info : compatibleActivities) {
activity.grantUriPermission(
Expand All @@ -563,6 +567,12 @@ private void grantUriPermissions(Intent intent, Uri imageUri) {
}
}

@SuppressWarnings("deprecation")
private static List<ResolveInfo> queryIntentActivitiesPreApi33(
PackageManager packageManager, Intent intent) {
return packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
}

@Override
public boolean onRequestPermissionsResult(
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,15 @@ final class ImagePickerUtils {
private static boolean isPermissionPresentInManifest(Context context, String permissionName) {
try {
PackageManager packageManager = context.getPackageManager();
// TODO(stuartmorgan): Add new codepath: https://github.com/flutter/flutter/issues/121816
@SuppressWarnings("deprecation")
PackageInfo packageInfo =
packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
PackageInfo packageInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
packageInfo =
packageManager.getPackageInfo(
context.getPackageName(),
PackageManager.PackageInfoFlags.of(PackageManager.GET_PERMISSIONS));
} else {
packageInfo = getPermissionsPackageInfoPreApi33(packageManager, context.getPackageName());
}

String[] requestedPermissions = packageInfo.requestedPermissions;
return Arrays.asList(requestedPermissions).contains(permissionName);
Expand All @@ -29,6 +34,13 @@ private static boolean isPermissionPresentInManifest(Context context, String per
}
}

@SuppressWarnings("deprecation")
private static PackageInfo getPermissionsPackageInfoPreApi33(
PackageManager packageManager, String packageName)
throws PackageManager.NameNotFoundException {
return packageManager.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
}

/**
* Camera permission need request if it present in manifest, because for M or great for take Photo
* ar Video by intent need it permission, even if the camera permission is not used.
Expand Down
2 changes: 1 addition & 1 deletion packages/image_picker/image_picker_android/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: image_picker_android
description: Android implementation of the image_picker plugin.
repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_android
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22
version: 0.8.9+3
version: 0.8.9+4

environment:
sdk: ^3.1.0
Expand Down