Conversation
Converts plugin implementation package example apps to Kotlin Gradle. Does not include app-facing package examples, which are still unmigrated, because they don't have all the same elements. (That will be a follow-up PR) Unlike some of the other example conversion PRs, these were not done by recreating the `android/` directory from scratch, since there's a lot more going on these directories (e.g., native unit tests). Instead they were converted directly: - I used Gemini to convert one plugin, following the example of one of the previous non-plugin PRs. - I did some manual fixup on that. - I had Gemini replicate that commit to the other plugin implementation packages. - I manually diffed the files across plugins, removing any variation introduced by inconsistent AI output. - I took this opportunity to remove some `-Xlint:-classfile` flags that were no longer needed, since we are requiring a new enough version of Java that some versions of the problem no longer happen. - I did side-by-side comparison of the new and old files to look for any accidental changes. The last step is the one where I'm most likely to have missed something, but since these are example apps, CI should give us good confidence that everything that matters is correct. Includes an update to the repo tools to recognize `.kts` files as Kotlin for excerpting, since a .gradle excerpt source file is now a `.gradle.kts` file. Part of flutter/flutter#176065 ## 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/flutter@0f401ee...7245c3f 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 engine-flutter-autoroll@skia.org Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 evanwall@buffalo.edu Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 jakemac@google.com forward an application name to DDS (flutter/flutter#184459) 2026-04-02 engine-flutter-autoroll@skia.org Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 97480502+b-luk@users.noreply.github.com Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 bkonyi@google.com [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 47866232+chunhtai@users.noreply.github.com Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 engine-flutter-autoroll@skia.org Roll Packages from b3fcf14 to 66bf7ec (4 revisions) (flutter/flutter#184514) 2026-04-02 rmolivares@renzo-olivares.dev Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 15619084+vashworth@users.noreply.github.com Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 34871572+gmackall@users.noreply.github.com Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 dbebawy@users.noreply.github.com [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 dacoharkes@google.com [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 okorohelijah@google.com Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 victorsanniay@gmail.com Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 engine-flutter-autoroll@skia.org Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 bkonyi@google.com [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 srawlins@google.com [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) 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
This hasn't been running, because I accidentally didn't put in in workflows/ See #11301 for context on this file.
The ci only capture label that starts with `override:`. We can either (1) update the ci to capture more labels, or (2) update the post release label to start with `override:`. I figured adding `override:` prefix is more appropriate because the label is attempting to override verision check for batch release. ## 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.
…9770) https://developer.android.com/guide/components/processes-and-threads ## 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.
manually because the current ci can't rerun checks in https://github.com/flutter/packages/pull/11447/checks ## 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@7245c3f...9cd60b5 2026-04-06 97480502+b-luk@users.noreply.github.com Fix go/ links in rbe.mde (flutter/flutter#184672) 2026-04-06 engine-flutter-autoroll@skia.org Roll Packages from d31df66 to 5299279 (2 revisions) (flutter/flutter#184663) 2026-04-06 1063596+reidbaker@users.noreply.github.com Add suggestion for what types of skills are helpful (flutter/flutter#184661) 2026-04-06 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from hrLZV-ij47FXnv_m5... to 1rcChbOv4nSTVkUxs... (flutter/flutter#184657) 2026-04-06 1063596+reidbaker@users.noreply.github.com Skill to find dart or flutter revision from a hash (flutter/flutter#184589) 2026-04-06 engine-flutter-autoroll@skia.org Roll Skia from 207c6721c64b to 163dfdf500c7 (7 revisions) (flutter/flutter#184650) 2026-04-05 engine-flutter-autoroll@skia.org Roll Skia from 52b79372764c to 207c6721c64b (1 revision) (flutter/flutter#184636) 2026-04-05 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from D2z-jMnRVbcwcraY-... to hrLZV-ij47FXnv_m5... (flutter/flutter#184623) 2026-04-05 engine-flutter-autoroll@skia.org Roll Skia from 500bc1651c86 to 52b79372764c (1 revision) (flutter/flutter#184621) 2026-04-04 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from PpL3Bn2YMb2h9LbdK... to D2z-jMnRVbcwcraY-... (flutter/flutter#184611) 2026-04-04 engine-flutter-autoroll@skia.org Roll Dart SDK from 102a3d1c7fe5 to 79f728f5d66e (1 revision) (flutter/flutter#184610) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from 5e5a7f252b5e to 500bc1651c86 (1 revision) (flutter/flutter#184609) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from ec209c206aa5 to 5e5a7f252b5e (2 revisions) (flutter/flutter#184606) 2026-04-04 engine-flutter-autoroll@skia.org Roll Dart SDK from f7be88117622 to 102a3d1c7fe5 (2 revisions) (flutter/flutter#184604) 2026-04-04 34465683+rkishan516@users.noreply.github.com refactor: remove material from color and image filter test (flutter/flutter#183563) 2026-04-04 engine-flutter-autoroll@skia.org Roll Skia from 50f3a9aaa185 to ec209c206aa5 (1 revision) (flutter/flutter#184601) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 4ecb7b28459f to 50f3a9aaa185 (3 revisions) (flutter/flutter#184599) 2026-04-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (#184566)" (flutter/flutter#184586) 2026-04-03 15619084+vashworth@users.noreply.github.com Add integration scripts and tools for SwiftPM add to app (flutter/flutter#184204) 2026-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 46f49142acd9 to f7be88117622 (1 revision) (flutter/flutter#184596) 2026-04-03 jesswon@google.com [AGP 9] Add Disable Built-in Kotlin and newDSL Migratorrs (flutter/flutter#184255) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 3b0f0f04f97c to 4ecb7b28459f (7 revisions) (flutter/flutter#184594) 2026-04-03 34465683+rkishan516@users.noreply.github.com refactor: remove material from list_view_viewporting_test and page_forward_transitions_test (flutter/flutter#183564) 2026-04-03 737941+loic-sharma@users.noreply.github.com [Dot shorthands] Migrate examples/api/lib/cupertino (flutter/flutter#183964) 2026-04-03 okorohelijah@google.com Downgrade CocoaPods doctor check to warning and fix build error messaging (flutter/flutter#184511) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 4134f8091147 to 3b0f0f04f97c (2 revisions) (flutter/flutter#184582) 2026-04-03 73785960+xfce0@users.noreply.github.com Remove live_text_utils cross-imports from material and cupertino tests (flutter/flutter#184517) 2026-04-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[data_assets] Cleanup tests (#184209)" (flutter/flutter#184575) 2026-04-03 engine-flutter-autoroll@skia.org Roll Packages from 66bf7ec to d31df66 (3 revisions) (flutter/flutter#184578) 2026-04-03 engine-flutter-autoroll@skia.org Roll Skia from 5d847ba5c4aa to 4134f8091147 (1 revision) (flutter/flutter#184573) 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 bmparr@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
Remove and ignore `generated_plugins.cmake`, since ideally they should have been ephemeral in the first place (see flutter/flutter#149917, flutter/flutter#76726, flutter/flutter#71762). Removing them means that changes to the contents shouldn't trip format or publish checks, which should allow us to re-publish `path_provider_android`'s jni-based implementation. Fixes flutter/flutter#184702 ## 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 is the last in the series of PRs to convert all of our legacy Groovy Gradle files to Kotlin. This converts all remaining Groovy files in the repository to Kotlin (with the exception of legacy_project; see flutter/flutter#184656). This is the app-facing plugin example apps, as well as the Pigeon example app, as those were the ones not yet converted. As with #11421 I did this as an in-place update primarily done via Gemini, rather than by recreating the entire test app, since plugins tend to have special setup/configs in their example apps: - I had Gemini mass-convert the remaining files using the previous conversions as a template. - I had Gemini specifically re-review the results for any accidental changes. - I did some manual checks for unexpected diffs between resulting files. - I did a small amount of manual fixup where Gemini didn't convert correctly. - I removed `settings_aar.gradle` from local_auth's example (the only package containing it); it seems to have been something auto-created by an old version of `flutter` for AndroidX compat during a transition phase, and no longer seems to be relevant. I also removed all the logic from the repo tool to validate Groovy versions of files, now that we don't need to support them, and simplified/updated the tests accordingly. Fixes flutter/flutter#176065 ## 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.
Removes files that were missed in #11455, causing `pub publish` checks to fail due to a mismatch between checked in and ignored files.
…not firing (#11390) As described in flutter/flutter#184338, Google Maps Flutter Android has an issue where the cluster pin info window doesn't fire the `onTap` callback. That's the info window that shows when you tap a clustered pin (a pin which is part of a cluster manager). While the info window shows properly, the `onTap` doesn't fire in Android, but properly fires in other platforms. Fixes flutter/flutter#184338 ## 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@9cd60b5...a0924c7 2026-04-07 dacoharkes@google.com Reland "[data_assets] Cleanup tests" (flutter/flutter#184714) 2026-04-07 matt.kosarek@canonical.com Use the WindowRegistry in the multiple_windows example app (flutter/flutter#184579) 2026-04-07 15619084+vashworth@users.noreply.github.com Introduce command to build a swift package for SwiftPM add to app integration (flutter/flutter#184660) 2026-04-07 sigurdm@google.com Have `flutter create` create a pubspec.lock to ensure pinned versions are being used. (flutter/flutter#175352) 2026-04-07 59215665+davidhicks980@users.noreply.github.com [widgets/raw_menu_anchor.dart] Always call onClose and onCloseRequested on descendants before parent. (flutter/flutter#182357) 2026-04-07 rmolivares@renzo-olivares.dev `WindowsPlugin` should not crash when ffiPlugin enabled (flutter/flutter#184695) 2026-04-06 97480502+b-luk@users.noreply.github.com Use full goto.google.com hostname for go/ links (flutter/flutter#184679) 2026-04-06 34871572+gmackall@users.noreply.github.com Apply rect clipping to surface views (flutter/flutter#184471) 2026-04-06 jhy03261997@gmail.com [A11y] Allow percentage strings like "50%" as `SemanticsValue` for `ProgressIndicator` (flutter/flutter#183670) 2026-04-06 louisehsu@google.com Fix invisible accessibility element before scroll view (flutter/flutter#184155) 2026-04-06 engine-flutter-autoroll@skia.org Roll Skia from 163dfdf500c7 to e264d870a380 (2 revisions) (flutter/flutter#184674) 2026-04-06 54688429+TrangLeQuynh@users.noreply.github.com Keep last character obscured when toggling obscureText (flutter/flutter#183488) 2026-04-06 15619084+vashworth@users.noreply.github.com Parse scheme file with XML parser for SwiftPM migrator (flutter/flutter#184525) 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 bmparr@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
go/flutter-flutter-skills-initial-adoption Longer term we will want the ability to have per package skills but to start out we will just go with one skills directory. ## Pre-Review Checklist
Removes the calls to the Flutter engine's `PathUtils`, and replaces them with direct `Context` calls that have the same logic as the expected codepath for those methods so that there will be continuity with previous releases of `path_provider`. This avoids reliance on `PathUtils` not being removed by R8, and also means that engine changes can't unexpectedly change the paths returned by `path_provider`, since we want to make sure any such changes in this package's return values follow semver. This does not include the fallback logic from flutter/engine#30367 because unlike the engine callers, `path_provider` doesn't try to assert a non-null return value, and if the paths aren't available (e.g., due to the device being full) we should return null rather than silently return a different directory than was previously returned. Fixes flutter/flutter#184750 ## 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.
There was a problem hiding this comment.
Code Review
This pull request migrates Android build configurations from Groovy to Kotlin DSL across multiple packages and updates path_provider_android to use a JNI-based implementation via jnigen. It also includes bug fixes for google_maps_flutter_android and go_router, along with tooling updates to support Kotlin DSL validation. Feedback indicates that the -Xlint:-classfile compiler flag and its corresponding workaround comment were omitted during the migration in several example apps, including camera, espresso, google_sign_in, quick_actions, and webview_flutter; these should be restored to prevent build failures related to RequiresApi annotation warnings.
| tasks.withType<JavaCompile> { | ||
| options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) | ||
| } |
There was a problem hiding this comment.
The -Xlint:-classfile flag and its associated workaround comment were removed during the migration to Kotlin DSL. This flag is necessary to avoid build failures caused by the RequiresApi annotation warning being treated as an error. Please restore it, using the updated comment style seen in other packages in this PR (e.g., file_selector_android).
tasks.withType<JavaCompile> {
// Workaround for a warning when building that the above turns into
// an error:
// Cannot find annotation method 'api()' in type 'RequiresApi': class
// file for android.annotation.RequiresApi not found
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile"))
}| project(":espresso") { | ||
| tasks.withType<JavaCompile> { | ||
| options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) |
There was a problem hiding this comment.
The -Xlint:-classfile flag and its associated workaround comment were removed during the migration to Kotlin DSL. This flag is necessary to avoid build failures caused by the RequiresApi annotation warning being treated as an error. Please restore it.
tasks.withType<JavaCompile> {
// Workaround for a warning when building that the above turns into
// an error:
// Cannot find annotation method 'api()' in type 'RequiresApi': class
// file for android.annotation.RequiresApi not found
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile"))
}| tasks.withType<JavaCompile> { | ||
| options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) | ||
| } |
There was a problem hiding this comment.
The -Xlint:-classfile flag and its associated workaround comment were removed during the migration to Kotlin DSL. This flag is necessary to avoid build failures caused by the RequiresApi annotation warning being treated as an error. Please restore it.
tasks.withType<JavaCompile> {
// Workaround for a warning when building that the above turns into
// an error:
// Cannot find annotation method 'api()' in type 'RequiresApi': class
// file for android.annotation.RequiresApi not found
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile"))
}| tasks.withType<JavaCompile> { | ||
| options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) | ||
| } |
There was a problem hiding this comment.
The -Xlint:-classfile flag and its associated workaround comment were removed during the migration to Kotlin DSL. This flag is necessary to avoid build failures caused by the RequiresApi annotation warning being treated as an error. Please restore it.
tasks.withType<JavaCompile> {
// Workaround for a warning when building that the above turns into
// an error:
// Cannot find annotation method 'api()' in type 'RequiresApi': class
// file for android.annotation.RequiresApi not found
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile"))
}| tasks.withType<JavaCompile> { | ||
| options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror")) | ||
| } |
There was a problem hiding this comment.
The -Xlint:-classfile flag and its associated workaround comment were removed during the migration to Kotlin DSL. This flag is necessary to avoid build failures caused by the RequiresApi annotation warning being treated as an error. Please restore it.
tasks.withType<JavaCompile> {
// Workaround for a warning when building that the above turns into
// an error:
// Cannot find annotation method 'api()' in type 'RequiresApi': class
// file for android.annotation.RequiresApi not found
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror", "-Xlint:-classfile"))
}
This is a test pr to audit the mergability after release sync back to main. DO NOT MERGE
Pre-Review Checklist
[shared_preferences]///).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.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