Skip to content

[image_picker] Fix android-16 not picking up file#11320

Draft
ashutosh2014 wants to merge 2 commits intoflutter:mainfrom
ashutosh2014:image-picker-Fix-android-16-not-picking-up-file
Draft

[image_picker] Fix android-16 not picking up file#11320
ashutosh2014 wants to merge 2 commits intoflutter:mainfrom
ashutosh2014:image-picker-Fix-android-16-not-picking-up-file

Conversation

@ashutosh2014
Copy link

@ashutosh2014 ashutosh2014 commented Mar 21, 2026

Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.

List which issues are fixed by this PR. You must list at least one issue.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Fixes flutter/flutter#182071

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses an issue on Android 16 (API 36) where the image picker would not return a file path. The solution is to enforce the use of the Android Photo Picker on API 36 and higher, which is implemented via a new utility method, effectiveUsePhotoPicker. This logic is consistently applied throughout the ImagePickerDelegate. The change is also accompanied by new unit tests, which is great. My review includes a minor suggestion to simplify the logic in the new utility method for improved conciseness.

@stuartmorgan-g
Copy link
Collaborator

Thanks for the contribution! You’ve checked boxes in the PR checklist above that are not reflected in this PR, so I’m assuming this is a work in progress and am marking it as a Draft. Please review the checklist, updating the PR as appropriate, and when the state of the PR as posted reflects the checklist please feel free to mark it as ready for review.

@stuartmorgan-g stuartmorgan-g marked this pull request as draft March 22, 2026 16:39
@ashutosh2014
Copy link
Author

@stuartmorgan-g

flutter/flutter#182071

This is the issue fixed by this current PR

@ashutosh2014 ashutosh2014 marked this pull request as ready for review March 22, 2026 16:46
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses an issue with file selection on Android API 36+ by enforcing the use of the Android Photo Picker. The implementation introduces a new utility method and is accompanied by corresponding tests, which is great. My feedback focuses on improving the clarity of a new constant and associated comments to prevent potential confusion regarding Android versions and API levels.

Comment on lines +3 to +5
* Fixes gallery image/video selection on Android 16 (API 36) returning no paths when
`useAndroidPhotoPicker` was false. The plugin now uses the Android Photo Picker on API 36 and
above regardless of that flag, avoiding a broken `ACTION_GET_CONTENT` result from the system UI.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The reference to "Android 16 (API 36)" could be confusing, as Android version 16 doesn't correspond to API level 36. To improve clarity, consider referring to the API level directly.

Suggested change
* Fixes gallery image/video selection on Android 16 (API 36) returning no paths when
`useAndroidPhotoPicker` was false. The plugin now uses the Android Photo Picker on API 36 and
above regardless of that flag, avoiding a broken `ACTION_GET_CONTENT` result from the system UI.
* Fixes gallery image/video selection on Android API 36+ returning no paths when
`useAndroidPhotoPicker` was false. The plugin now uses the Android Photo Picker on API 36 and
above regardless of that flag, avoiding a broken `ACTION_GET_CONTENT` result from the system UI.

import java.util.Arrays;

final class ImagePickerUtils {
private static final int ANDROID_16_API_LEVEL = 36;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The constant name ANDROID_16_API_LEVEL is potentially misleading, as Android version 16 corresponds to API level 23 (Jelly Bean), not 36. A more generic name like API_LEVEL_36 would be clearer and avoid confusion. Please also update its usage within this file.

Suggested change
private static final int ANDROID_16_API_LEVEL = 36;
private static final int API_LEVEL_36 = 36;

* androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia} (Android Photo
* Picker) instead of {@link android.content.Intent#ACTION_GET_CONTENT}.
*
* <p>On Android 16 (API 36), {@code ACTION_GET_CONTENT} for images may be handled by the system

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The reference to "Android 16 (API 36)" is potentially confusing. To improve clarity, it would be better to refer to the API level directly.

Suggested change
* <p>On Android 16 (API 36), {@code ACTION_GET_CONTENT} for images may be handled by the system
* <p>On Android API 36+, {@code ACTION_GET_CONTENT} for images may be handled by the system

@stuartmorgan-g
Copy link
Collaborator

@ashutosh2014 Please edit the PR description to include that information, along with the other requested information, instead of leaving placeholder text there and putting the requested information only in the comments.

@stuartmorgan-g stuartmorgan-g marked this pull request as draft March 22, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[image_picker] After selection image from gallery in android 16, receiving file object as null

2 participants