Skip to content

[image_picker] Updates min SDK to 3.29 #9830

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 16, 2025

Conversation

stuartmorgan-g
Copy link
Contributor

For the image_picker packages:

  • Updates the min SDK version to 3.29
  • Runs the autoformatter with the new format
  • Update code excerpts

This does not update versions because pushing format changes (even in READMEs) isn't worth doing a release that drops an SDK version (which we don't normally version)

Prep for #9816

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 updates the minimum supported SDK version to Flutter 3.29/Dart 3.7 for all image_picker packages. It also includes extensive auto-formatting changes across the codebase to align with the new format. The changes are mostly mechanical, consisting of version bumps in pubspec.yaml files, changelog updates, and code reformatting. I found a couple of minor issues in one of the test files where the test verification logic seems to be incorrect.

Comment on lines 599 to 622
mockPlatform.getMultiImageWithOptions(
options: argThat(
isInstanceOf<MultiImagePickerOptions>()
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxWidth',
equals(10.0))
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxWidth',
equals(10.0),
)
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxHeight',
equals(10.0))
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxHeight',
equals(10.0),
)
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.imageQuality,
'imageQuality',
equals(70)),
(MultiImagePickerOptions options) =>
options.imageOptions.imageQuality,
'imageQuality',
equals(70),
),
named: 'options',
),
),

Choose a reason for hiding this comment

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

medium

The verification for the 7th call to pickMultiImage seems incorrect. The call is picker.pickMultiImage(maxWidth: 10.0, maxHeight: 20.0, imageQuality: 70). The verification for maxHeight checks options.imageOptions.maxWidth and expects a value of 10.0 instead of 20.0.

            mockPlatform.getMultiImageWithOptions(
              options: argThat(
                isInstanceOf<MultiImagePickerOptions>()
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.maxWidth,
                      'maxWidth',
                      equals(10.0),
                    )
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.maxHeight,
                      'maxHeight',
                      equals(20.0),
                    )
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.imageQuality,
                      'imageQuality',
                      equals(70),
                    ),
                named: 'options',
              ),
            ),

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since this is test code, I went ahead and fixed these latent test bugs in the PR.

Comment on lines 623 to 651
mockPlatform.getMultiImageWithOptions(
options: argThat(
isInstanceOf<MultiImagePickerOptions>()
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxWidth',
equals(10.0))
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxWidth',
equals(10.0),
)
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxHeight',
equals(10.0),
)
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.maxWidth,
'maxHeight',
equals(10.0))
(MultiImagePickerOptions options) =>
options.imageOptions.imageQuality,
'imageQuality',
equals(70),
)
.having(
(MultiImagePickerOptions options) =>
options.imageOptions.imageQuality,
'imageQuality',
equals(70))
.having((MultiImagePickerOptions options) => options.limit,
'limit', equals(5)),
(MultiImagePickerOptions options) => options.limit,
'limit',
equals(5),
),
named: 'options',
),
),

Choose a reason for hiding this comment

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

medium

The verification for the 8th call to pickMultiImage seems incorrect. The call is picker.pickMultiImage(maxWidth: 10.0, maxHeight: 20.0, imageQuality: 70, limit: 5). The verification for maxHeight checks options.imageOptions.maxWidth and expects a value of 10.0 instead of 20.0.

            mockPlatform.getMultiImageWithOptions(
              options: argThat(
                isInstanceOf<MultiImagePickerOptions>()
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.maxWidth,
                      'maxWidth',
                      equals(10.0),
                    )
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.maxHeight,
                      'maxHeight',
                      equals(20.0),
                    )
                    .having(
                      (MultiImagePickerOptions options) =>
                          options.imageOptions.imageQuality,
                      'imageQuality',
                      equals(70),
                    )
                    .having(
                      (MultiImagePickerOptions options) => options.limit,
                      'limit',
                      equals(5),
                    ),
                named: 'options',
              ),
            ),

Copy link
Contributor

@tarrinneal tarrinneal left a comment

Choose a reason for hiding this comment

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

following merge conflicts

@stuartmorgan-g
Copy link
Contributor Author

I'm hoping to actually land #9818 first and then re-format, rather than having to manually re-apply the changes; it'll depend on review timing.

@stuartmorgan-g stuartmorgan-g added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 16, 2025
@auto-submit auto-submit bot merged commit a0ca1ac into flutter:main Aug 16, 2025
80 checks passed
CaoGiaHieu-dev added a commit to CaoGiaHieu-dev/packages that referenced this pull request Aug 18, 2025
* main: (24 commits)
  Roll Flutter from 0a2906b81d5e to b3fb4c786d80 (5 revisions) (flutter#9840)
  Update repo for 3.35 stable release (flutter#9816)
  Roll Flutter from 52af7a504025 to 0a2906b81d5e (16 revisions) (flutter#9836)
  [image_picker] Updates min SDK to 3.29 (flutter#9830)
  [image_picker] Add the ability to pick multiple videos (flutter#9775)
  [image_picker] Add the ability to pick multiple videos - platform implementations (flutter#9818)
  [various] Updates min SDK for third_party/packages to 3.29 (flutter#9819)
  [vector_graphics] Updates min SDK to 3.29 (flutter#9820)
  [google_maps_flutter] Updates min SDK to 3.29 (flutter#9821)
  [video_player] Updates min SDK to 3.29 (flutter#9826)
  [shared_preferences] Updates min SDK to 3.29 (flutter#9829)
  [image_picker_ios] Add photo to simulator Photos library during test (flutter#9759)
  [interactive_media_ads] Updates `README` with information about enabling desugaring on Android (flutter#9790)
  [in_app_purchase] Updates min SDK to 3.29 (flutter#9825)
  Roll Flutter from f4334d27934b to 52af7a504025 (29 revisions) (flutter#9832)
  [go_router] Update generated output format (flutter#9817)
  [video_player] Move Android buffer updates to Dart (flutter#9771)
  [webview_flutter] Add support for payment requests on Android (flutter#9679)
  [vector_graphics_compiler] Set the m4_10 (Z scale) value to 1 when constructing an AffineMatrix from an SVG matrix (flutter#9813)
  [url_launcher_ios] Fix test button text to work on iOS 26 (flutter#9766)
  ...

# Conflicts:
#	packages/go_router_builder/CHANGELOG.md
#	packages/go_router_builder/example/lib/all_types.g.dart
#	packages/go_router_builder/example/lib/main.g.dart
#	packages/go_router_builder/example/lib/shell_route_with_keys_example.g.dart
#	packages/go_router_builder/example/lib/shell_route_with_observers_example.g.dart
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 19, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Aug 19, 2025
flutter/packages@5c52c55...953cae0

2025-08-19 [email protected] Add com.android.tools.build:gradle to
dependabot gradle-plugin group (flutter/packages#9848)
2025-08-19 [email protected] [flutter_migrate] Remove source
(flutter/packages#9847)
2025-08-18 [email protected] [go_router]: Add `RelativeGoRouteData`
and `TypedRelativeGoRoute` (flutter/packages#9732)
2025-08-18 [email protected] Roll Flutter (stable) from
edada7c to 20f8274 (1474 revisions) (flutter/packages#9837)
2025-08-18 [email protected] Roll Flutter from
b3fb4c7 to 2265d94 (7 revisions) (flutter/packages#9845)
2025-08-18 [email protected] Disable SwiftPM for `xcode-analyze`
(flutter/packages#9666)
2025-08-17 [email protected] Roll Flutter from
0a2906b to b3fb4c7 (5 revisions) (flutter/packages#9840)
2025-08-16 [email protected] Update repo for 3.35 stable release
(flutter/packages#9816)
2025-08-16 [email protected] Roll Flutter from
52af7a5 to 0a2906b (16 revisions) (flutter/packages#9836)
2025-08-16 [email protected] [image_picker] Updates min SDK to
3.29 (flutter/packages#9830)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos (flutter/packages#9775)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos - platform implementations (flutter/packages#9818)
2025-08-16 [email protected] [various] Updates min SDK for
third_party/packages to 3.29 (flutter/packages#9819)
2025-08-16 [email protected] [vector_graphics] Updates min SDK to
3.29 (flutter/packages#9820)
2025-08-16 [email protected] [google_maps_flutter] Updates min SDK
to 3.29 (flutter/packages#9821)
2025-08-16 [email protected] [video_player] Updates min SDK to
3.29 (flutter/packages#9826)
2025-08-15 [email protected] [shared_preferences] Updates min SDK
to 3.29 (flutter/packages#9829)
2025-08-15 [email protected] [image_picker_ios] Add photo to simulator
Photos library during test (flutter/packages#9759)
2025-08-15 [email protected]
[interactive_media_ads] Updates `README` with information about enabling
desugaring on Android (flutter/packages#9790)
2025-08-15 [email protected] [in_app_purchase] Updates min SDK to
3.29 (flutter/packages#9825)
2025-08-15 [email protected] Roll Flutter from
f4334d2 to 52af7a5 (29 revisions) (flutter/packages#9832)
2025-08-15 [email protected] [go_router] Update generated output
format (flutter/packages#9817)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
WillBLogical pushed a commit to WillBLogical/packages that referenced this pull request Aug 20, 2025
For the `image_picker` packages:
- Updates the min SDK version to 3.29
- Runs the autoformatter with the new format
- Update code excerpts

This does not update versions because pushing format changes (even in READMEs) isn't worth doing a release that drops an SDK version (which we don't normally version)

Prep for flutter#9816
SydneyBao pushed a commit to SydneyBao/flutter that referenced this pull request Aug 22, 2025
…er#174040)

flutter/packages@5c52c55...953cae0

2025-08-19 [email protected] Add com.android.tools.build:gradle to
dependabot gradle-plugin group (flutter/packages#9848)
2025-08-19 [email protected] [flutter_migrate] Remove source
(flutter/packages#9847)
2025-08-18 [email protected] [go_router]: Add `RelativeGoRouteData`
and `TypedRelativeGoRoute` (flutter/packages#9732)
2025-08-18 [email protected] Roll Flutter (stable) from
edada7c to 20f8274 (1474 revisions) (flutter/packages#9837)
2025-08-18 [email protected] Roll Flutter from
b3fb4c7 to 2265d94 (7 revisions) (flutter/packages#9845)
2025-08-18 [email protected] Disable SwiftPM for `xcode-analyze`
(flutter/packages#9666)
2025-08-17 [email protected] Roll Flutter from
0a2906b to b3fb4c7 (5 revisions) (flutter/packages#9840)
2025-08-16 [email protected] Update repo for 3.35 stable release
(flutter/packages#9816)
2025-08-16 [email protected] Roll Flutter from
52af7a5 to 0a2906b (16 revisions) (flutter/packages#9836)
2025-08-16 [email protected] [image_picker] Updates min SDK to
3.29 (flutter/packages#9830)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos (flutter/packages#9775)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos - platform implementations (flutter/packages#9818)
2025-08-16 [email protected] [various] Updates min SDK for
third_party/packages to 3.29 (flutter/packages#9819)
2025-08-16 [email protected] [vector_graphics] Updates min SDK to
3.29 (flutter/packages#9820)
2025-08-16 [email protected] [google_maps_flutter] Updates min SDK
to 3.29 (flutter/packages#9821)
2025-08-16 [email protected] [video_player] Updates min SDK to
3.29 (flutter/packages#9826)
2025-08-15 [email protected] [shared_preferences] Updates min SDK
to 3.29 (flutter/packages#9829)
2025-08-15 [email protected] [image_picker_ios] Add photo to simulator
Photos library during test (flutter/packages#9759)
2025-08-15 [email protected]
[interactive_media_ads] Updates `README` with information about enabling
desugaring on Android (flutter/packages#9790)
2025-08-15 [email protected] [in_app_purchase] Updates min SDK to
3.29 (flutter/packages#9825)
2025-08-15 [email protected] Roll Flutter from
f4334d2 to 52af7a5 (29 revisions) (flutter/packages#9832)
2025-08-15 [email protected] [go_router] Update generated output
format (flutter/packages#9817)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
SydneyBao pushed a commit to SydneyBao/flutter that referenced this pull request Aug 22, 2025
…er#174040)

flutter/packages@5c52c55...953cae0

2025-08-19 [email protected] Add com.android.tools.build:gradle to
dependabot gradle-plugin group (flutter/packages#9848)
2025-08-19 [email protected] [flutter_migrate] Remove source
(flutter/packages#9847)
2025-08-18 [email protected] [go_router]: Add `RelativeGoRouteData`
and `TypedRelativeGoRoute` (flutter/packages#9732)
2025-08-18 [email protected] Roll Flutter (stable) from
edada7c to 20f8274 (1474 revisions) (flutter/packages#9837)
2025-08-18 [email protected] Roll Flutter from
b3fb4c7 to 2265d94 (7 revisions) (flutter/packages#9845)
2025-08-18 [email protected] Disable SwiftPM for `xcode-analyze`
(flutter/packages#9666)
2025-08-17 [email protected] Roll Flutter from
0a2906b to b3fb4c7 (5 revisions) (flutter/packages#9840)
2025-08-16 [email protected] Update repo for 3.35 stable release
(flutter/packages#9816)
2025-08-16 [email protected] Roll Flutter from
52af7a5 to 0a2906b (16 revisions) (flutter/packages#9836)
2025-08-16 [email protected] [image_picker] Updates min SDK to
3.29 (flutter/packages#9830)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos (flutter/packages#9775)
2025-08-16 [email protected] [image_picker] Add the ability to
pick multiple videos - platform implementations (flutter/packages#9818)
2025-08-16 [email protected] [various] Updates min SDK for
third_party/packages to 3.29 (flutter/packages#9819)
2025-08-16 [email protected] [vector_graphics] Updates min SDK to
3.29 (flutter/packages#9820)
2025-08-16 [email protected] [google_maps_flutter] Updates min SDK
to 3.29 (flutter/packages#9821)
2025-08-16 [email protected] [video_player] Updates min SDK to
3.29 (flutter/packages#9826)
2025-08-15 [email protected] [shared_preferences] Updates min SDK
to 3.29 (flutter/packages#9829)
2025-08-15 [email protected] [image_picker_ios] Add photo to simulator
Photos library during test (flutter/packages#9759)
2025-08-15 [email protected]
[interactive_media_ads] Updates `README` with information about enabling
desugaring on Android (flutter/packages#9790)
2025-08-15 [email protected] [in_app_purchase] Updates min SDK to
3.29 (flutter/packages#9825)
2025-08-15 [email protected] Roll Flutter from
f4334d2 to 52af7a5 (29 revisions) (flutter/packages#9832)
2025-08-15 [email protected] [go_router] Update generated output
format (flutter/packages#9817)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App override: no versioning needed Override the check requiring version bumps for most changes p: image_picker platform-android platform-ios platform-linux platform-macos platform-web platform-windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants