Skip to content

Conversation

@reidbaker
Copy link
Contributor

@reidbaker reidbaker commented Mar 24, 2025

  • Inital conversion and single test case
  • Task registered with name
  • Test can handle multiple variants
  • configuration for baseOutput setup
  • Test passing
  • formatting
  • Use constant with upppercase
  • Replace flutter.groovy version of addTasksForOutputsAppLinkSettings

Fixes #164393

Helpful commands:
JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/ ./gradlew test --info --tests "com.flutter.gradle.FlutterPluginUtilsTest" from packages/flutter_tools/gradle
flutter test test/integration.shard/android_gradle_outputs_app_link_settings_test.dart from packages/flutter_tools

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@github-actions github-actions bot added platform-android Android applications specifically tool Affects the "flutter" command-line tool. See also t: labels. labels Mar 24, 2025
@reidbaker reidbaker force-pushed the i164393-app-link-settings-task-config branch from d79f97c to 0b33d8e Compare March 24, 2025 18:11
@reidbaker reidbaker added the team-android Owned by Android platform team label Mar 24, 2025
@github-actions github-actions bot removed the team-android Owned by Android platform team label Mar 24, 2025
@reidbaker reidbaker requested review from ash2moon and gmackall March 24, 2025 20:10
Copy link
Contributor Author

@reidbaker reidbaker left a comment

Choose a reason for hiding this comment

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

I dont like how deep the nesting gets in the main method. My primary focus was getting this code working structure and naming improvements welcomed.

internal fun addTasksForOutputsAppLinkSettings(project: Project) {
// Integration test for AppLinkSettings task defined in
// flutter/flutter/packages/flutter_tools/test/integration.shard/android_gradle_outputs_app_link_settings_test.dart
val android = getAndroidExtensionOrNull(project)
Copy link
Member

Choose a reason for hiding this comment

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

I think you can just use the existing getAndroidExtension here, right? It will throw if we can't find it, but I think that is also what would happen in the groovy code (the cast would error).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I cant, Even if we were ok with a semantics change in this pr. BaseExtension does not have applicationVariants as a object to do work on. I can rename the function though so they are not confused. Additionally I have updated the comment next to the todo that indicates we could use a typed search or remove the call in favor of BaseExtension (along with a refactor for how variant outputs are configured.

Copy link
Member

Choose a reason for hiding this comment

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

Ah yes sorry it would beed to be an AbstractAppExtension. I'm doing the same thing in addTaskForPrintBuildVariants. We could add a getAndroidExtensionAsApplication or something. But not a big deal

}

private fun findProcessResources(baseVariantOutput: BaseVariantOutput): ProcessAndroidResources {
// Semantic change from flutter.groovy source, baseVariant does not have a hasProperty
Copy link
Member

Choose a reason for hiding this comment

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

I think this is a good note but I don't know that we should leave it as a code comment. I think it won't make sense in a couple months and doesn't point at future work (and it is making me realize I may have left similar comments).

Copy link
Member

Choose a reason for hiding this comment

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

Also on what the actual code was doing, I think every object in groovy has a hasProperty method https://docs.groovy-lang.org/latest/html/groovy-jdk/java/lang/Object.html#hasProperty(java.lang.String)

And then also objects automatically have properties generated for things that they have getters and/or setters for, I believe. So that's probably what was happening. I think the actual Kotlin equivalent would be to use reflection to check method names or something like that, assuming it is possible. But I think this conversion works because I think that that method exists on all AGP versions inside our support range.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can remove the comment. Want me to leave the fallback logic even though it may not be used for our version ranges? Or do you think using reflection to do something similar to hasProperty is the right decision here.

Copy link
Member

Choose a reason for hiding this comment

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

I think just leave the fallback, and leave as is for now. We can clean it up after the conversion is done.

…on, reorginize test to have companion object at the top
Copy link
Member

@gmackall gmackall left a comment

Choose a reason for hiding this comment

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

L(more)GTM with the nesting level reduction from createAppLinkSettings

return project.extensions.findByType(BaseExtension::class.java)!!
}

// TODO: https://github.com/flutter/flutter/issues/165882
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

android.applicationVariants.configureEach {
val variant = this
project.tasks.register("output${FlutterPluginUtils.capitalize(variant.name)}AppLinkSettings") {
val task = this
Copy link
Contributor

Choose a reason for hiding this comment

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

It doesn't seem like we're using this task anywhere else.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We are not but when parsing this code I found that renaming "this" was a pattern that makes the code significantly more readable.

task.description =
"stores app links settings for the given build variant of this Android project into a json file."
variant.outputs.configureEach {
val baseVariantOutput = this
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here but for baseVariantOutput

Copy link
Contributor Author

Choose a reason for hiding this comment

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

see above

* Extracts app deeplink information from the Android manifest file of a variant then returns
* an AppLinkSettings object.
*
* @receiver BaseVariantOutput The output of a specific build variant (e.g., debug, release).
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be @param

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

node is Node && node.name() == "application"
} as Node?

applicationNode?.let { appNode ->
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's do an early return if the applicationNode is null instead of a ?.let

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.


applicationNode?.let { appNode ->
val activities: List<Any?> =
appNode.children().filter { item ->
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if .filterIsInstance is available here, but you can try using .filterIsInstance and then chain it with another filter to check the name. That way, you can avoid the second is Node check below.

Same goes for rest of the is Node checks below.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for this recommendation. It alone removed maybe 6 layers of nesting.
@gmackall fyi .filterIsInstance exists.

// TODO exit out early per intent filter action view.
actionItems.forEach { action ->
if (action is Node) {
if (action.attribute("android:name") == "android.intent.action.VIEW") {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we make treat these magic values as private constants outside this function?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We can but for most of the constants I think it makes it less readable not more. Specifically for the keys/values we are checking that are not used in multiple locations.
I did turn android:name and android:value and "true" into keys. Name and value might change when modify xml parsers depending on how the new parser handles custom schema. If they change it would change everywhere. For value the code does not need to know or care if it is "true" or "True" so that also makes sense.
But for values like scheme and path pattern I think the strings are more readable.

dataItems.forEach { data ->
if (data is Node) {
data.attributes().forEach { entry ->
when ((entry.key)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Double parenthesis here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed.


val devDependency: Map<String?, Any?> =
mapOf(
Pair("name", "grays_fun_dev_dependency"),
Copy link
Contributor

Choose a reason for hiding this comment

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

Instead of constructing Pair's like this, we can also construct them using the to DSL. Like this:

"path" to "/Users/someuser/.pub-cache/hosted/pub.dev/grays_fun_dev_dependency-1.1.1/"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In this case I would like to leave this alone. These lines are a move unrelated to this pr where I just pulled the companion object to the top of the file.

@gmackall fyi.

Comment on lines 1235 to 1237
every { mockProject.logger } returns mockLogger
every { mockLogger.info(any()) } returns Unit
every { mockLogger.warn(any()) } returns Unit
Copy link
Contributor

Choose a reason for hiding this comment

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

We should be able to clean this up a little more by moving these mock building code into their own builder functions and also using a hierarchical pattern. See https://mockk.io/#hierarchical-mocking

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done for a good number of these.

@reidbaker reidbaker added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 27, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 1, 2025
Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
… (#8960)

Manual roll Flutter from 1d954f4e96bd to 05b5e7910544 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
…8960)

Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
zhangyuang pushed a commit to zhangyuang/flutter-fork that referenced this pull request Jun 9, 2025
- **Inital conversion and single test case**
- **Task registered with name**
- **Test can handle multiple variants**
- **configuration for baseOutput setup**
- **Test passing**
- **formatting**
- **Use constant with upppercase**
- **Replace flutter.groovy version of
addTasksForOutputsAppLinkSettings**

Fixes flutter#164393 

Helpful commands: 
`
JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/
./gradlew test --info --tests
"com.flutter.gradle.FlutterPluginUtilsTest"` from
packages/flutter_tools/gradle
`flutter test
test/integration.shard/android_gradle_outputs_app_link_settings_test.dart`
from packages/flutter_tools

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
…8960)

Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
- **Inital conversion and single test case**
- **Task registered with name**
- **Test can handle multiple variants**
- **configuration for baseOutput setup**
- **Test passing**
- **formatting**
- **Use constant with upppercase**
- **Replace flutter.groovy version of
addTasksForOutputsAppLinkSettings**

Fixes flutter#164393 

Helpful commands: 
`
JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/
./gradlew test --info --tests
"com.flutter.gradle.FlutterPluginUtilsTest"` from
packages/flutter_tools/gradle
`flutter test
test/integration.shard/android_gradle_outputs_app_link_settings_test.dart`
from packages/flutter_tools

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform-android Android applications specifically tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pull out manifest parsing logic for AppLink settings from flutter.groovy into kotlin code

3 participants