Conversation
…lutter#12146) ## Background [Dartdoc 9.0.7](dart-lang/dartdoc#4264) added support for `<callout-box>` (what we used to call the _blue container_). ## What's changed This PR migrates all former snippet instances in API docs to `<callout-box>`. This is what it looks like: <img width="734" height="302" alt="image" src="https://github.com/user-attachments/assets/cd0bd77c-4ab2-4875-8fbe-e838e0902c16" /> This PR also disables `unintended_html_in_doc_comment` because `<callout-box>` is not recognized by the linter for now. An issue has been filed: dart-lang/sdk#63782 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
Parallelizing tests isn't worth the overhead (and potential flake) of starting up multiple simulators. May address flutter/flutter#189005
Adds `backBufferDurationMs` to `VideoPlayerOptions` and configures ExoPlayer's `DefaultLoadControl` to retain the back buffer from keyframes. This significantly improves seek performance and responsiveness during video playback on Android. iOS already has some kind of back buffering implemented in AVPlayer because the replays and seeks are instantaneous for small videos. Before: Replays and seeks on Android for network based video assets involve a network call to fetch the video content. This significantly hampers the user experience. After: Replays and seeks on Android (within the back buffer duration) are instant just like in iOS. Improving user experience This PR partly addresses flutter/flutter#97428. Not enabling back buffering by default and instead allowing the app to configure as per need. The default behavior will be same as the existing implementation to avoid any regressions. ## Pre-Review Checklist
…r#12188) flutter/flutter@f7b66f3...cf9e8af 2026-07-12 srawlins@google.com Flip from deprecated strict analysis modes to lint rules (flutter/flutter#187692) 2026-07-12 engine-flutter-autoroll@skia.org Roll Skia from 6ecffccd32d5 to 8bf65996caba (5 revisions) (flutter/flutter#189333) 2026-07-11 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from czpzDg9ABY2oKLAOY... to vhIlDkWIy21IrlB9E... (flutter/flutter#189309) 2026-07-11 chris@bracken.jp iOS: clean up swiftc.py after migration to target triples (flutter/flutter#189240) 2026-07-10 magder@google.com Increase number of 'Mac tool_integration_tests' subshards from 5 to 10 (flutter/flutter#189040) 2026-07-10 matt.kosarek@canonical.com Fix PopupWindowControllerLinux missing WindowControllerLinux implementation (flutter/flutter#189189) 2026-07-10 awolff@google.com [android_hardware_smoke_test] Synchronize platform view compositing (flutter/flutter#189151) 2026-07-10 97480502+b-luk@users.noreply.github.com UberSDF thin roundrect handling (flutter/flutter#189224) 2026-07-10 engine-flutter-autoroll@skia.org Roll Skia from ab3a7b98c94d to 6ecffccd32d5 (15 revisions) (flutter/flutter#189270) 2026-07-10 malo.allee@gmail.com [skwasm][canvaskit] Honor Paint.filterQuality in Canvas.drawAtlas (flutter/flutter#186108) 2026-07-10 awolff@google.com Android_hardware_smoke_test: Cache flutter engine when running vulkan backend instrumented tests (flutter/flutter#189026) 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 Please CC boetger@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
Since this plugin already uses Kotlin code for the new codepaths, it doesn't fall under our usual policy of currently not converting code to Kotlin, we just never bothered to do the conversion for the old code. This converts the legacy implementation to Kotlin so that the plugin is consistent. The process for this conversion was: - use the Android Studio auto-conversion to Kotlin - fix up type nullability (the auto-convert assumes non-annotated types, including any generics, are nullable) - remove Throws annotations that aren't needed in Kotlin - autoformat - do a couple of conversions from direct Java translation to more idiomatic Dart, especially around collection filtering and mutation I did also remove some duplicate string constants and switched to the copies that the non-legacy Kotlin code already had, since sharing those constants was now trivial, and less duplication is better. Per our usual best practice, this doesn't convert the tests in the same PR, so that we guarantee that we aren't masking a regression with an accidental test change. I'll convert the unit tests in a separate PR with no changes to functional code. Part of flutter/flutter#188630 ## Pre-Review Checklist [^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.
…oup (flutter#12190) Bumps the all-github-actions group with 1 update: [actions/labeler](https://github.com/actions/labeler). Updates `actions/labeler` from 6.1.0 to 6.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/labeler/releases">actions/labeler's releases</a>.</em></p> <blockquote> <h2>v6.2.0</h2> <h2>What's Changed</h2> <h3>Bug Fix</h3> <ul> <li>Improve PR number validation and warning messages in input handling by <a href="https://github.com/chiranjib-swain"><code>@chiranjib-swain</code></a> in <a href="https://redirect.github.com/actions/labeler/pull/939">actions/labeler#939</a></li> </ul> <h3>Dependency Updates</h3> <ul> <li>Bump js-yaml to 4.2.0, apply npm audit fix, and add undici override by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/labeler/pull/943">actions/labeler#943</a></li> <li>Bump <code>@typescript-eslint/eslint-plugin</code> from 8.59.1 to 8.61.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/labeler/pull/942">actions/labeler#942</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/labeler/compare/v6.1.0...v6.2.0">https://github.com/actions/labeler/compare/v6.1.0...v6.2.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/labeler/commit/b8dd2d9be0f68b860e7dae5dae7d772984eacd6d"><code>b8dd2d9</code></a> Bump <code>@typescript-eslint/eslint-plugin</code> from 8.59.1 to 8.61.1 (<a href="https://redirect.github.com/actions/labeler/issues/942">#942</a>)</li> <li><a href="https://github.com/actions/labeler/commit/53affe8ca4150876fc7eb7d268d3a1f74511a244"><code>53affe8</code></a> Bump js-yaml to 4.2.0, apply npm audit fix, and add undici override for 0 vul...</li> <li><a href="https://github.com/actions/labeler/commit/f612d9ad188e81643862c2de70f57fbb1d17abd1"><code>f612d9a</code></a> Fix: Improve PR number validation and warning messages in input handling (<a href="https://redirect.github.com/actions/labeler/issues/939">#939</a>)</li> <li>See full diff in <a href="https://github.com/actions/labeler/compare/f27b608878404679385c85cfa523b85ccb86e213...b8dd2d9be0f68b860e7dae5dae7d772984eacd6d">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
Pigeon's input parser silently ignored the extra syntax in enhanced enums (constructors, fields, methods, or arguments on values), reading only the value names. This produced confusing generated output — as described in the linked issue, the enum's fields were effectively coalesced into the next class — with no indication that the input was unsupported.
This change detects enhanced enums in `visitEnumDeclaration` and reports a clear, source-located error:
```
Pigeon doesn't support enhanced enums ("Enum1"). Use a plain enum without a constructor, fields, methods, or arguments on its values.
```
Implementation notes:
- The enum is still registered by its value names so that classes referencing it don't produce additional cascading "Unknown type" errors — the user sees exactly one actionable message, and recording the error already prevents code generation.
- The visitor no longer walks the enhanced enum's body. Its class-like members aren't expected outside of a class by the rest of the visitor; in particular, a getter inside an enum previously crashed the parser on a null parameter list (`visitMethodDeclaration`'s `node.parameters!`). One of the new tests covers this case.
- Plain enums (including the legal trailing-semicolon form `enum E { a, b; }`) are unaffected; a test guards against false positives.
The scope follows the approach discussed and agreed in the issue thread (silent failure → clear error; no attempt to actually support enhanced enums).
Fixes flutter/flutter#160827
## Pre-Review Checklist
Four new tests in `pigeon_lib_test.dart`: enhanced enum with constructor+fields, enhanced enum with only arguments on values, enhanced enum with a getter (the previous parser-crash case), and a plain enum with a trailing semicolon (false-positive guard). The full `pigeon_lib_test.dart` suite (113 tests) and `version_test.dart` pass locally.
…rolEnabled, fullscreenControlEnabled, and streetViewControlEnabled for web (flutter#12191) *Part of flutter#11955 *Part of: flutter/flutter#104111 **Context**: As suggested in the review - flutter#11955 (review), this is a standalone sub-PR separating out just the platform interface changes. It introduces the necessary configuration flags (`mapTypeControlEnabled`, `fullscreenControlEnabled`, and `streetViewControlEnabled`) to `MapConfiguration` to pave the way for the web implementation. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
These example files are not used in `material_ui` anywhere. They're testing widgets defined in `flutter/widgets`, and these examples are only referenced in docs in `flutter/widgets`. This PR removes these files from `material_ui`. A subsequent PR will fix `flutter/widgets` to move these example files to `flutter/widgets/examples`, preserving them after the deprecation of `flutter/material`. There are no cases of the same kind in `cupertino_ui`. **Note to reviewers:** This is not a blocker to the 1.0 release, since it's a no-op. I'm happy to postpone this PR if deemed necessary. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
…11861) Guards the `value` assignments in `_initializeWithDescription` so they no longer run after `dispose()`, fixing the "A CameraController was used after being disposed." crash. These user-level steps, using the reproduction app in flutter/flutter#184959, trigger the crash: 1. Open camera A. 2. Close it before initialization finished (disposing the controller). 3. Open camera B. 4. Adjust an exposure/zoom slider. When the controller is disposed while initialization is still in flight, the deferred `value` updates could call `notifyListeners()` on a disposed `ChangeNotifier`, throwing the exception above. This adds `if (!_isDisposed)` guards (and awaits the initialization event only once) so those updates are skipped after dispose. The guard lives in shared Dart code, so it also covers iOS and web. Part of flutter/flutter#184959. This PR addresses only the Dart-layer crash. As @mbcorona noted in flutter/flutter#184959 (comment), the ANR observed on Android has a separate native root cause (`ImageReader` not severing the stream on dispose, "BufferQueue has been abandoned"), which was routed to team-android. That native issue is not addressed here and should be handled separately in `camera_android_camerax`. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
…lutter#11225) ## Description Adds support for screen auto-lock during video playback on iOS. By default, the video player keeps the screen awake during playback. Some apps (e.g. login screens with background videos, ambient content) want the screen to be able to auto-lock while video plays. This PR adds an option to allow that behavior. ### Changes * Add `preventsDisplaySleepDuringVideoPlayback` to `VideoPlayerOptions` (default: `true` to preserve existing behavior) * When `false`, the screen can auto-lock during playback * Implemented on iOS/macOS via `AVPlayer.preventsDisplaySleepDuringVideoPlayback` * Platform interface: `setPreventsDisplaySleepDuringVideoPlayback(int playerId, bool preventsDisplaySleepDuringVideoPlayback)` ### Usage ```dart VideoPlayerController.networkUrl( url, videoPlayerOptions: VideoPlayerOptions(preventsDisplaySleepDuringVideoPlayback: false), ); ``` ## Breakout PRs 1. Platform interface: flutter#11546 2. AVFoundation (iOS/macOS): flutter#11547 ## Issues fixed * Fixes: [flutter/flutter#183520](flutter/flutter#183520) (How to disable wakelock on iOS side?) * Addresses the need to allow screen auto-lock during video playback on iOS (e.g. for ambient/background videos) ## Pre-Review Checklist
…license headers (flutter#12170) This PR adds `#region` to example files to remove the license headers. Before: <img width="738" height="710" alt="image" src="https://github.com/user-attachments/assets/04069857-c590-470e-9682-bc601071bbc7" /> After: <img width="739" height="716" alt="image" src="https://github.com/user-attachments/assets/7face8b4-8f01-4c94-81a7-0bbdf26afd14" /> ### Verification I have audited all example files to ensure every file belongs to one of the following types: * **Referenced in `material_ui` or `cupertino_ui`:** These have been updated in this PR to include the `#region` tags. * **Not referenced and not for a Material/Cupertino widget:** These files have been removed in PR flutter#12179. * **Not referenced but for a Material/Cupertino widget:** The following two files remain, and we should consider adding them to the respective API documentation in the future: ``` material_ui/example/lib/selection_area/selection_area.1.dart material_ui/example/lib/selection_area/selection_area.2.dart ``` ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
…erial and used in Cupertino (flutter#12197) The `dartdoc` requires that `@macro` will only search `@template` from `dependencies` packages, not `dev_dependencies`. Before this PR, both Cupertino and Material have used macros defined in the other package, and this does not completely work because `cupertino_ui` only lists `material_ui` as a dev dependency. On the other hand, `material_ui` lists `cupertino_ui` as a dependency and we plan to keep this way for a long time due to support for adaptive widgets. This PR hence solves this macro problem by migrating all malfunctioning macros to be defined in `cupertino_ui` instead. The changes were made in a script written by Gemini. ### Known issue Referencing breadcrumbs ("square brackets") from `material_ui` in `cupertino_ui` does not work for now. The result is non-blocking for now, where all widget names (such as `[Button]`) do not have hyperlinks but are simply backticks. This is likely because of dart-lang/sdk#62812. Simply put, `dartdoc` only checks in symbols from `material_ui` if `material_ui` is `import`ed somewhere at least once, which means `material_ui` must be a dependency (not a dev dependency) of `cupertino_ui`. If dart-lang/sdk#62812 can be fixed, a `docImport` would make `dartdoc` checks in symbols. Also, this problem can be worsened as we develop next generation Cupertino widgets, since `cupertino_ui` is planning to remove the prefixes and therefore have widget name conflicts with `material_ui`, and [`docImport` currently does not support `as`](dart-lang/sdk#56527). For example, if a widget in `cupertino_ui` refers to a `[Dialog]`, which dialog does it refer to? ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
Converts the legacy tests for `shared_preferences_android` to Kotlin, so that the plugin is now consistently using Kotlin, instead of a mix of Java and Kotlin. As with the non-test PR, this was a first-pass conversion via the Android Studio auto-converted, followed by manual fixup, followed by running it through a local Gemini review focusing on making the Kotlin more idiomatic. Follow-up to flutter#12139 Part of flutter/flutter#188630 ## Pre-Review Checklist [^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.
This declares support for analyzer versions 13.x in the `go_router_builder` package. I ran `tool/run_tests.dart` after upgrading, no code changes are necessary and existing tests pass. Note that another package in this repository, `pigeon`, also depends on an older `analyzer` version but would require code changes to support analyzer version 13.x. Closes flutter/flutter#189357. ## Pre-Review Checklist Comments below: - There is no relevant documentation to update. - This change is covered by existing tests, so I have not added new ones.
…r#12200) flutter/flutter@cf9e8af...846664b 2026-07-14 engine-flutter-autoroll@skia.org Roll Skia from dfcff99566c3 to 88954ef8f36d (1 revision) (flutter/flutter#189440) 2026-07-14 34465683+rkishan516@users.noreply.github.com refactor: remove material import from scrollable_semantics_test and selectable_region_context_menu_test (flutter/flutter#186611) 2026-07-14 engine-flutter-autoroll@skia.org Roll Skia from 3d1fc554f1a2 to dfcff99566c3 (17 revisions) (flutter/flutter#189428) 2026-07-14 engine-flutter-autoroll@skia.org Roll Dart SDK from 2c587df8f05a to 05bf153370c4 (5 revisions) (flutter/flutter#189426) 2026-07-14 nshahan@google.com [flutter_tools] Remove web hot reload flag (flutter/flutter#185994) 2026-07-14 chris@bracken.jp [iOS] Fix flaky keyboard animation test (flutter/flutter#189353) 2026-07-14 flar@google.com [Impeller] Playground expanded role (flutter/flutter#188889) 2026-07-14 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#189409) 2026-07-13 6655696+guidezpl@users.noreply.github.com Update lock-threads dependency to 6.0.2 (flutter/flutter#189053) 2026-07-13 49699333+dependabot[bot]@users.noreply.github.com Bump actions/labeler from 6.1.0 to 6.2.0 in the all-github-actions group (flutter/flutter#189396) 2026-07-13 116356835+AbdeMohlbi@users.noreply.github.com Remove outdated todo about `analysis bug on Windows` and update condition to also perform `analysis on windows` (flutter/flutter#189283) 2026-07-13 ahmedsameha1@gmail.com Add more 0x0 size tests part 4 (flutter/flutter#185187) 2026-07-13 engine-flutter-autoroll@skia.org Roll Packages from 20928d5 to ad2eab1 (18 revisions) (flutter/flutter#189387) 2026-07-13 bkonyi@google.com [flutter_tools] Fix ADB device listing output parsing regression (flutter/flutter#189369) 2026-07-13 magder@google.com Stop running most Mac x64 builders that have Mac ARM equivalents on master (flutter/flutter#189301) 2026-07-13 magder@google.com Move a few benchmarks from x64 Intel Macs to ARM (flutter/flutter#189377) 2026-07-13 34871572+gmackall@users.noreply.github.com Add note that `hcpp` needs impeller (flutter/flutter#189382) 2026-07-13 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vhIlDkWIy21IrlB9E... to oOETA0ISPouDt2xBo... (flutter/flutter#189349) 2026-07-13 68429735+Vonarian@users.noreply.github.com [flutter_tools] Respect mustMatchAppBuild on Windows native assets (flutter/flutter#186788) 2026-07-13 engine-flutter-autoroll@skia.org Roll Skia from 8bf65996caba to 3d1fc554f1a2 (2 revisions) (flutter/flutter#189350) 2026-07-13 engine-flutter-autoroll@skia.org Roll Dart SDK from 0fc1668c4af4 to 2c587df8f05a (9 revisions) (flutter/flutter#189351) 2026-07-13 1961493+harryterkelsen@users.noreply.github.com [web] Fall back to full CJK fonts for characters not covered by split slices (flutter/flutter#188890) 2026-07-13 magder@google.com Take Mac tool_integration_tests_* out of bringup (flutter/flutter#189368) 2026-07-13 dacoharkes@google.com [hooks] Roll record_use to 1.0 and unpin (flutter/flutter#189366) 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 Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
…utter#12195) Updated all Flutter Android plugin example apps to align with newer template versions for the Flutter 3.47 release. Partially Addresses: flutter/flutter#189381 Related to: flutter/flutter#189380 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
flutter/flutter's flutter_localization package that relates to material_ui and cupertino_ui. Moves the code to the right place, makes sure it operates on the correct directories and works correctly and passes CI, and rewords docs and READMEs to reflect the changes. * Creates a *_ui/lib/src/l10n directory. * Moves dart classes into material_ui and cupertino_ui. * Moves the arb files into material_ui and cupertino_ui. * Moves the *_ui l10n tests and makes sure they pass. * Moves the localization scripts to script/l10n and updates them to work in their new location. * Moves READMEs and rewords them, and creates a new README for the scripts. * Updates the license headers to match flutter/packages. * Removed some tests that shouldn't come in until flutter/flutter#188473 is ported to flutter/packages. * Skips some tests that failed on web that were previously not run on the web at all.
Extract Config from google_fonts_all_parts.dart to google_fonts_config.dart. Rename Config to GoogleFontsConfig to avoid namespace clutter. Add a deprecated Config typedef for backward compatibility. Export GoogleFontsConfig and the deprecated Config in lib/google_fonts.dart. Bump package version to 8.2.0. Unblocks flutter#11433 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
…r#12203) flutter/flutter@846664b...fc1ad95 2026-07-15 chris@bracken.jp [iOS] Migrate FlutterKeyboardInsetManager to Swift (flutter/flutter#189425) 2026-07-15 engine-flutter-autoroll@skia.org Roll Dart SDK from 05bf153370c4 to 0c408ff6dce9 (4 revisions) (flutter/flutter#189487) 2026-07-15 97480502+b-luk@users.noreply.github.com Implement UberSDF lines to replace LineContents-based AA lines (flutter/flutter#188514) 2026-07-15 66727653+ishaq2321@users.noreply.github.com Fix stale eagerWinner reference in GestureArenaManager when rejected before arena close (flutter/flutter#187008) 2026-07-15 jason-simmons@users.noreply.github.com Disable some Windows tests that are flaking on CI (flutter/flutter#189477) 2026-07-15 dmgr Added unified check-run user manual (flutter/flutter#189453) 2026-07-15 engine-flutter-autoroll@skia.org Roll Skia from 88954ef8f36d to ab2410bc857c (9 revisions) (flutter/flutter#189474) 2026-07-14 1961493+harryterkelsen@users.noreply.github.com [agents] Refactor shepherd-prs skill into a pure Markdown runbook using native gh CLI (flutter/flutter#189095) 2026-07-14 6655696+guidezpl@users.noreply.github.com Add missing name to mirroring workflow (flutter/flutter#189439) 2026-07-14 biggs0125@gmail.com Add support for WASM deferred loading. (flutter/flutter#189308) 2026-07-14 116356835+AbdeMohlbi@users.noreply.github.com fix `templateDefaultGradleVersion` todo (flutter/flutter#189466) 2026-07-14 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from oOETA0ISPouDt2xBo... to lLFbh5kFWbUGgC9Ek... (flutter/flutter#189469) 2026-07-14 matt.kosarek@canonical.com Use ServicesBinding.instance.exitApplication instead of exit(0) in multiple_windows example (flutter/flutter#189364) 2026-07-14 chingjun@google.com Add CpuArch to the Device class (flutter/flutter#189207) 2026-07-14 bkonyi@google.com Fix space formatting in cherry-pick label for flutter_cp.dart (flutter/flutter#189463) 2026-07-14 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#189454) 2026-07-14 44747303+theprantadutta@users.noreply.github.com [flutter_tools] Format plugin example template to match dart format (flutter/flutter#188382) 2026-07-14 magder@google.com Move renamed x64->ARM benchmarks out of bringup (flutter/flutter#189400) 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 Please CC louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
fixes flutter/flutter#189098 ``` ~/.local/bin/zizmor --gh-token=$(gh auth token) .github/workflow INFO zizmor: 🌈 zizmor v1.25.2 INFO audit: zizmor: 🌈 completed .github/workflows/batch_release_pr.yml INFO audit: zizmor: 🌈 completed .github/workflows/go_router_batch.yml INFO audit: zizmor: 🌈 completed .github/workflows/internals/install_flutter/action.yml INFO audit: zizmor: 🌈 completed .github/workflows/pull_request_label.yml INFO audit: zizmor: 🌈 completed .github/workflows/release.yml INFO audit: zizmor: 🌈 completed .github/workflows/release_from_branches.yml INFO audit: zizmor: 🌈 completed .github/workflows/remove_cicd.yml INFO audit: zizmor: 🌈 completed .github/workflows/reusable_release.yml INFO audit: zizmor: 🌈 completed .github/workflows/sync_release_pr.yml No findings to report. Good job! (2 ignored, 56 suppressed) ```
This PR attempts to solve the flutter_localizations problem for material_ui and cupertino_ui. The crux of the problem is that apps that import flutter_localizations were getting a version of GlobalMaterialLocalizations that uses flutter/flutter's MaterialLocalizations instead of the one in material_ui (and the same thing for Cupertino). This PR moves these classes into material_ui and cupertino_ui, while keeping other localization code inside flutter_localizations. ### How this PR was created Similar to flutter#11888, this PR copies history from flutter/flutter. All commits are preserved as-is, plus one final commit from me that is a squash of all of my work on this PR. This PR should be landed as a merge without squash. ``` git filter-repo --path-glob "packages/flutter_localizations/lib/src/l10n/cupertino_*.arb" --path packages/flutter_localizations/lib/src/l10n/generated_cupertino_localizations.dart --path packages/flutter_localizations/lib/src/cupertino_localizations.dart --path packages/flutter_localizations/test/cupertino/ --path-glob "packages/flutter_localizations/lib/src/l10n/material_*.arb" --path packages/flutter_localizations/lib/src/l10n/generated_material_localizations.dart --path packages/flutter_localizations/lib/src/material_localizations.dart --path packages/flutter_localizations/test/material --path packages/flutter_localizations/test/test_utils.dart --path dev/tools/localization/gen_cupertino_localizations.dart --path dev/tools/localization/gen_material_localizations.dart --path dev/tools/localization/language_subtag_registry.dart --path dev/tools/localization/localizations_utils.dart --path dev/tools/localization/localizations_validator.dart --path dev/tools/localization/bin/encode_kn_arb_files.dart --path dev/tools/localization/bin/gen_localizations.dart --path dev/tools/localization/bin/gen_missing_localizations.dart cd ../packages git remote add source-origin ../flutter git fetch source-origin git merge source-origin/master --allow-unrelated-histories ``` ### Before As described in flutter/flutter#188757, a typical localized app like the following would encounter runtime type errors: ```dart import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:material_ui/material_ui.dart'; ... localizationsDelegates: const <LocalizationsDelegate<dynamic>>[ GlobalCupertinoLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], ``` ### After ```dart import 'package:material_ui/material_ui.dart'; ... localizationsDelegates: const <LocalizationsDelegate<dynamic>>[ ...GlobalMaterialLocalizations.delegates, ], ``` ### Open Questions * ~~I put the l10n folder in side of <material_ui or cupertino_ui>/lib/l10n because that's what the [docs](https://docs.flutter.dev/ui/internationalization) said. Should it be in src/?~~ * Yes, I've moved it to src/. * ~~I put the generation scripts inside of packages/material_ui/tools/l10n. Is there a better spot? Is it ok that cupertino_ui has to use a script inside of material_ui? The reason why I didn't split the scripts in two is that there would be large amounts of code duplication.~~ I have moved it to the root of the repo at /script/l10n ### TODOs * ~~Update l10n README files.~~ * Make a plan to update flutter.dev (see flutter#12119 (review)). * Move l10n scripts to root /script/ folder (see flutter#12119 (comment)). * Squash all of my own commits. ### Resources Fixes flutter/flutter#188757
Fixes the tree. `flutter_localizations` contains a patch from flutter/flutter#188473 that has not reached stable yet. This means this test needs to accommodate a different result when tested on stable versus master. Refactored to green the tree. @justinmc is filing a follow up issue and looking into extending the code freeze that did not originally apply to localizations. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
…ter#12198) This PR rename macro names from `flutter.material.*` to `material_ui.*`, and `flutter.cupertino.*` to `cupertino_ui.*`. These changes are not only aesthetic, but also functionally necessary, because the current macro names are also present in the Flutter framework. Since the `dartdoc` also read the framework, it will treat all macros/templates of the same name as duplicate entries, and will always display the macro content from the Flutter framework. For example, the following screenshot shows the page of `cupertino_ui.CupertinoCheckbox.fillColor` as of 745da2e . <img width="863" height="846" alt="image" src="https://github.com/user-attachments/assets/1fd790b5-18d7-4138-afab-2876003df1f8" /> Despite that we have long migrated it away from `@tool snippet`, https://github.com/flutter/packages/blob/745da2e91d112c280123bacf5435ab18a6240005/packages/cupertino_ui/lib/src/checkbox.dart#L211-L230 they still show `@tool snippet` because `dartdoc` replaces the `cupertino_ui` doc with the content from `flutter/cupertino` ([link](https://github.com/flutter/flutter/blob/6c66df7aeb64b834098441835f74fa24e2371a6e/packages/flutter/lib/src/cupertino/checkbox.dart#L205)). This issue is fixed after this PR. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
This PR follows up the comment under flutter#12198, and renames all remaining `@template`s so that no templates conflict with the framework. Note: The templates in `generated_cupertino_localizations.dart` and `generated_material_localizations.dart` have been left as-is for now, as these files are auto-generated. A separate migration of the generation script will be required to address those specific instances. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
Converts the XCUITest tests from Objective-C to Swift. The conversion was done by Gemini, but I did a side-by-side skim to check that everything was in fact translated over. I then discovered that the tests were all disabled, so to validate them I fixed and re-enabled the tests, which was trivial; it appears that at some point the semantics types of a few things we were looking for changed, presumably due to a Flutter SDK change, so they were no longer found. Changing the expected types (e.g., replacing `staticTexts` with `buttons` in a couple of places) made the tests pass. Fixes flutter/flutter#154641 Part of flutter/flutter#119108 ## Pre-Review Checklist [^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.
flutter#12208 re-enabled these tests using new semantics types, but it turns out that the semantics type had not only changed several years ago when the test was first disabled, but again since the last stable, so the PR failed in post-submit where we run platform tests against stable as well as master. This adjusts the test to look for the problematic element as any type, so that the test works on both stable and master. Validated locally with stable, since presubmit won't test it. Part of flutter/flutter#154641 ## Pre-Review Checklist [^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.
Now that Swift Package Manager support is on by default for both master and stable, we don't need to manually enable it in CI.
This PR renames macros used by l10n. For why the rename is needed, see flutter#12198. ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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. [^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.
Member
Author
|
Oh no! I thought this PR was targeting |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Work towards flutter/flutter#187899
Fixes flutter/flutter#188403
Pre-Review Checklist
[shared_preferences]///).Test exemption: Template migration PR.
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-assistbot 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.[test exemption]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*
Footnotes
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