Repository navigation
[camera_avfoundation] Replace deprecated high-resolution capture APIs - #12372
auto-submit[bot] merged 4 commits into
Conversation
Replaces `isHighResolutionCaptureEnabled`/`isHighResolutionPhotoEnabled` (`API_DEPRECATED`, iOS 16) with `maxPhotoDimensions`, falling back to the deprecated APIs below iOS 16. Part of flutter/flutter#160687 Also fixes the resolution setting being silently dropped for HEIF captures at `ResolutionPreset.max`, found while making this change: the HEIF branch of `captureToFile` replaces `settings` with a new instance after the flag was set on the discarded one. Regression tests are included for both the HEIF and JPEG-quality branches.
There was a problem hiding this comment.
Code Review
This pull request replaces the deprecated high-resolution photo APIs with maxPhotoDimensions on iOS 16 and later, falling back to the deprecated APIs on older iOS versions. It also fixes an issue where the maximum resolution setting was ignored for HEIF captures when using ResolutionPreset.max. The review feedback suggests defensively checking if high-resolution photo capture is supported on iOS versions prior to 16 before enabling it to prevent potential runtime crashes.
|
Thanks for the review — I don't think these three suggestions should be applied. The suggested property doesn't exist
The documented crash condition is differentApple's header for
That's an output/settings mismatch, not a format-support issue. This line predates the PR
|
hellohuanlin
left a comment
There was a problem hiding this comment.
The change makes sense to me. Can you address gemini's open comments?
|
@hellohuanlin Replied to all three of gemini's comments and resolved the threads — no code changes. All three are built on |
|
autosubmit label was removed for flutter/packages/12372, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.
|
|
This will need another review from @LouiseHsu |
…-max-photo-dimensions # Conflicts: # packages/camera/camera_avfoundation/CHANGELOG.md # packages/camera/camera_avfoundation/pubspec.yaml
|
Merged @LouiseHsu — this is already approved by @hellohuanlin and just needs a second review when you have a chance. Thanks! |
…-max-photo-dimensions
|
@hellohuanlin @LouiseHsu the |
…-max-photo-dimensions # Conflicts: # packages/camera/camera_avfoundation/CHANGELOG.md
|
@hellohuanlin @LouiseHsu Gentle ping — resolved another CHANGELOG conflict (no code changes). This is approved with |
…er#193289) Roll Packages from c2b58e1a97fb to 431ea69a42e2 (56 revisions) flutter/packages@c2b58e1...431ea69 2026-09-24 [email protected] [cross_file] Updates cross_file to a package separated federated plugin (flutter/packages#11010) 2026-09-23 [email protected] [material_ui] Remove static access of `copyWith` from `dart fix` golden tests for `ThemeData/TextTheme` (flutter/packages#12994) 2026-09-23 [email protected] [camera_avfoundation] Replace deprecated high-resolution capture APIs (flutter/packages#12372) 2026-09-23 [email protected] [pigeon] update nullish checks to use new isNullish method (flutter/packages#12985) 2026-09-23 [email protected] [ci] Assign batch release PR approver as reviewer on sync-back PR (flutter/packages#12976) 2026-09-23 [email protected] [image_picker] Fix scaling 10-bit images (flutter/packages#12557) 2026-09-23 [email protected] [material_ui] Improve Autocomplete, DrawerHeader, and Tooltip accessibility (flutter/packages#12918) 2026-09-23 [email protected] [google_fonts] Decouple GoogleFontsLite for full tree-shaking and add full feature parity (flutter/packages#12830) 2026-09-23 [email protected] [file_selector] Ignore flakey `file_selector_android` tests (flutter/packages#12992) 2026-09-23 [email protected] [CI] Remove bringup from `Mac_arm64 build_all_packages` targets (flutter/packages#12978) 2026-09-22 [email protected] [material_ui] Unskip 5 passing web tests in bottom_app_bar_test and text_field_test (flutter/packages#12983) 2026-09-22 [email protected] [cupertino_ui] Unskip 5 passing web tests in adaptive_text_selection_toolbar_test and text_field_test (flutter/packages#12984) 2026-09-22 [email protected] [go_router] Fix ShellRoute chrome dropped from semantics tree by ModalBarrier (flutter/packages#12353) 2026-09-22 [email protected] [material_ui] Add contrastLevel for M3 ColorScheme (flutter/packages#12743) 2026-09-22 [email protected] [go_router] Preserve nested pushes during config updates (flutter/packages#12611) 2026-09-22 [email protected] [material_ui] Migrate M3 Chip template to use new gen_defaults (flutter/packages#12847) 2026-09-22 [email protected] [material_ui] Fix LocalHistoryEntry leak when double tapping Drawer scrim (flutter/packages#12552) 2026-09-22 [email protected] Update suggested reviewers (flutter/packages#12974) 2026-09-22 [email protected] Sync release-material_ui-1.4.0 to main (flutter/packages#12966) 2026-09-22 [email protected] Sync release-cupertino_ui-1.1.1 to main (flutter/packages#12965) 2026-09-21 [email protected] [ci] Update repo for 3.47 stable release (flutter/packages#12959) 2026-09-21 [email protected] Manual roll Flutter from 27fec0e to 4fcd90b (1 revision) (flutter/packages#12904) 2026-09-21 [email protected] Revert "[go_router_builder] Migrate to material_ui" (flutter/packages#12962) 2026-09-21 [email protected] [material_ui] Update `material_ui` tests to prevent them from failing when framework `TextStyle` changes (flutter/packages#12728) 2026-09-21 [email protected] [go_router_builder] Migrate to material_ui (flutter/packages#12913) 2026-09-21 [email protected] [material_ui, cupertino_ui] Bump Flutter version from to 3.47 (flutter/packages#12944) 2026-09-21 [email protected] [cupertino_ui] Work around dart2wasm optional parameter inference bug in example checkbox tests (flutter/packages#12961) 2026-09-21 [email protected] [cupertino_ui] Work around dart2wasm optional parameter inference bug in checkbox_test.dart (flutter/packages#12956) 2026-09-21 [email protected] [google_sign_in] PR 3/4 Migrate ViewProvider and GID SDK wrappers from Objective-C to Swift (flutter/packages#12657) 2026-09-21 [email protected] [google_sign_in] PR 2/4 Migrate the plugin class from Objective-C to Swift. (flutter/packages#12655) 2026-09-20 [email protected] [cross_file_darwin] iOS/macOS implementation of `cross_file` (flutter/packages#12910) 2026-09-20 [email protected] [cross_file_web] Web implementation of `cross_file` (flutter/packages#12908) 2026-09-20 [email protected] [material_ui] Migrate M3 `InputChip` template to use new gen_defaults (flutter/packages#12850) 2026-09-20 [email protected] [material_ui] Migrate M3 Checkbox defaults to new gen_defaults (flutter/packages#12816) 2026-09-20 [email protected] [material_ui] Migrate M3 `FilterChip` template to use new gen_defaults (flutter/packages#12849) 2026-09-19 [email protected] [material_ui] Announce PopupMenuButton with a child as a button (flutter/packages#12585) 2026-09-19 [email protected] Roll Flutter (stable) from 9584c67 to 6a19cca (7 revisions) (flutter/packages#12950) 2026-09-18 [email protected] [material_ui] Reduce the `material_ui` non-wasm web test suite (flutter/packages#12763) 2026-09-18 [email protected] Replace `Mac_x64` builders with `Mac_arm64` ones (flutter/packages#12941) 2026-09-18 [email protected] [in_app_purchase_storekit] Use `_$SKPaymentDiscountWrapperToJson` (flutter/packages#12721) 2026-09-18 [email protected] [In_app _purchase] README excerpt examples and changelog (flutter/packages#12739) 2026-09-18 [email protected] [material_ui] Add alternative input method for `RangeSlider` in `NavigationMode.directional` (flutter/packages#12630) 2026-09-18 [email protected] [cross_file_android] Android implementation of `cross_file` (flutter/packages#12909) 2026-09-18 [email protected] [camera_platform_interface] Adds videoOutputPath support to startVideoRecording (flutter/packages#12667) 2026-09-17 [email protected] [cupertino_ui] Migrate a snippet in `CupertinoCheckbox`'s API doc to `{@example}` and add unit tests (flutter/packages#12180) 2026-09-17 [email protected] [material_ui] Default gen_defaults color helper prefix (flutter/packages#12848) ...
Replaces
isHighResolutionCaptureEnabled/isHighResolutionPhotoEnabled(
API_DEPRECATED, iOS 16) withmaxPhotoDimensions, falling back to thedeprecated APIs below iOS 16.
Part of flutter/flutter#160687
Also fixes the resolution setting being silently dropped for HEIF captures
at
ResolutionPreset.max, found while making this change: the HEIF branchof
captureToFilereplacessettingswith a new instance after the flagwas set on the discarded one. Regression tests are included for both the
HEIF and JPEG-quality branches.
Deprecation source (Xcode 26.2 SDK headers,
API_DEPRECATED("Use maxPhotoDimensions instead.", ios(10.0, 16.0))):Pre-Review Checklist
[shared_preferences]///).