24044 Commits

Author SHA1 Message Date
Tong Mu
b82a449c4b
[Stable] Revert: Fix DropdownMenu rendered behind AppBar (#159907) (#162132)
Impacted Users: App developers who use `MenuAnchor` to build widgets.

Impact Description: DropdownMenu's menuChildren might be placed somewhere far from menuAnchor. https://github.com/flutter/flutter/issues/159906 and https://github.com/flutter/flutter/issues/161437

Workaround: Not known

Risk: Low. This CP reverts a PR, which is by itself a incorrect bug fix. 

Test Coverage: An additional test is added besides the revert, which is the same test used in the reland https://github.com/flutter/flutter/pull/162143.

Validation Steps: https://github.com/flutter/flutter/issues/161437#issuecomment-2594059885
2025-01-28 16:47:54 +00:00
Jackson Gardner
fd30711525
[CP-stable] Suppress previous route transition if current route is fullscreenDialog (#161784)
CP issue: https://github.com/flutter/flutter/issues/160420
Original PR: https://github.com/flutter/flutter/pull/159312

Original description below:

Fixes #159289

Cupertino and Material routes were looking to see if the next route was a full screen dialog route, and not transitioning accordingly. However with the updates to allow [mixed transitions in an app](https://github.com/flutter/flutter/pull/150031), any route will try and transition if a delegatedTransition is available. This PR makes it so that Cupertino and Material routes that are fullscreen dialogs will use `canTransitionFrom` to tell the previous route not to transition.

Before:

[388677067-d301238d-6615-42a7-b60a-611c61136d88.webm](https://github.com/user-attachments/assets/eea99ee9-0bc8-4981-a950-08f99a7fdb3e)

After:

https://github.com/user-attachments/assets/7deb5143-cd67-4696-95ec-9d7df329dfa4

https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-01-17 18:28:20 +00:00
Jackson Gardner
0a59deb98c
[CP-stable] Fix TabBar glitchy elastic Tab animation (#161783)
Original PR: https://github.com/flutter/flutter/pull/161514
Cherry-pick issue: https://github.com/flutter/flutter/issues/161664

Original PR description below:

Fixes [M3 TabBar indicator animation broken both when swiping or tapping](https://github.com/flutter/flutter/issues/160631)

This refactors the elastic `Tab` animation. Added additional tests that follows the elastic animation frame by frame and generates a golden file.

<details>
<summary>expand to view the code sample</summary>

```dart
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    // timeDilation = 10;
    return MaterialApp(
      home: ScrollConfiguration(
        behavior: ScrollConfiguration.of(context).copyWith(dragDevices: <PointerDeviceKind>{
          PointerDeviceKind.touch,
          PointerDeviceKind.mouse,
        }),
        child: Directionality(
          textDirection: TextDirection.ltr,
          child: DefaultTabController(
            length: 8,
            child: Scaffold(
              appBar: AppBar(
                bottom: const TabBar(
                  isScrollable: true,
                  tabAlignment: TabAlignment.start,
                  tabs: <Widget>[
                    Tab(text: 'Home'),
                    Tab(text: 'Search'),
                    Tab(text: 'Add'),
                    Tab(text: 'Favorite'),
                    Tab(text: 'The longest text...'),
                    Tab(text: 'Short'),
                    Tab(text: 'Longer text...'),
                    Tab(text: 'Profile'),
                  ],
                ),
              ),
              body: const TabBarView(
                children: <Widget>[
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                  Center(child: Text('Page')),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

```

</details>

https://github.com/user-attachments/assets/4f69f94b-0bcf-4813-b49f-06ff411435ca

https://github.com/user-attachments/assets/65801c1c-d28f-4b42-870a-7140d5d3c4c3

| Before Test Results | After Test Results |
| --------------- | --------------- |
| <img
src="https://github.com/user-attachments/assets/72ae9fbe-fef9-44a0-9b86-5a4c31fd39cf" /> | <img
src="https://github.com/user-attachments/assets/2545f35e-ac03-495d-a33b-72b9bc71299b" /> |

https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-01-17 16:11:26 +00:00
flutteractionsbot
913c208cab
[CP-stable]Report usage of deferred-components to analytics. (#159506)
### Issue Link:

https://github.com/flutter/flutter/issues/159212

### Changelog Description:

Track (via Google Analytics) if the Dart AOT Android "Deferred Components" feature is being meaningfully used.

### Impact Description:

Changes what events are reported to GA4 by `flutter_tools`. 

### Workaround:

N/A

### Risk:

What is the risk level of this cherry-pick?

### Test Coverage:

Are you confident that your fix is well-tested by automated tests?

### Validation Steps:

Run a sample that uses deferred components, and view the event in the GA4 dashboard.
2025-01-17 00:37:17 +00:00
flutteractionsbot
44290736b2
[CP-stable]Migrate module templates to declarative application of the Flutter Gradle Plugin (#160090)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/159729

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples

https://github.com/flutter/flutter/issues/159729: Warning in logs after a fresh flutter module create when building an aar for android. 

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Warning after flutter create of a module. 

### Workaround:
Is there a workaround for this issue?

Manual migration after flutter create. 

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

create module then build as app or aar then look in logs for warnings about gradle imperative apply
2025-01-09 00:19:15 +00:00
Nate Wilson
d9d3889987
[CP-stable] Revert "Fix DropdownMenu does not rematch initialSelection when entries have changed" (#161177)
This pull request reverts the changes in #155757.

The auto-formatter created conflicts in the master branch, so the revert was performed manually in #160643.
For this cherry-pick PR, I was able to run `git revert 21381d843f3feb32640ae385aedd8e5c4003696b` without any problems.

<br>

### Issue Links

bug reports: #160196, #160555
cherry-pick request: #161176

### Target

stable

### Changelog Description

Passing a list literal to a `DropdownMenu` causes the widget to reset to the `initialSelection` after each build.

### Impacted Users

This affects anyone using the [DropdownMenu](https://api.flutter.dev/flutter/material/DropdownMenu-class.html) widget.

### Impact Description

The impact usually consists of the text value being inconveniently reset each time the widget is rebuilt. (In some cases it can be a fatal crash: the code sample from #160196 shows how this change can lead to an infinite build loop.)

### Workaround

This regression can be mitigated by caching & modifying a single list instance, rather than using a list literal for the `DropdownMenu` constructor.

### Risk

low

### Test Coverage

yes

### Validation Steps

#160643 added a regression test for this revert.

The fix can also be verified by running the code sample from #160196 and verifying that there is no infinite build loop.
2025-01-09 00:11:56 +00:00
Victor Sanni
bfb4a722bf
[CP-stable] Revert "fixed keyboardDismissBehavior on scroll without a drag" (#161329) 2025-01-08 23:47:01 +00:00
flutteractionsbot
bf57229b2a
[CP-beta]Add deprecation notice for Android x86 when building for the target (#159847)
This pull request is created by [automatic cherry pick
workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate
this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/157543

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter
developers. See [best
practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md)
for examples

Add deprecation notice for Android x86 support, which will be removed in
next stable release after 3.27.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot
ship an iOS app)? Does it impact development (ex. flutter doctor crashes
when Android Studio is installed), or the shipping production app (the
app crashes on launch)

A deprecation notice will be printed when users build or run an x86
Android application.

### Workaround:
Is there a workaround for this issue?

No, this is simply a deprecation notice.

### Risk:
What is the risk level of this cherry-pick?

  - [X] Low
  - [ ] Medium
  - [ ] High

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [X] Yes
  - [ ] No

### Validation Steps:
What are the steps to validate that this fix works?

Run `flutter build apk --target-platform=android-x86` and observe a
deprecation notice is printed.

Co-authored-by: Ben Konyi <bkonyi@google.com>
2024-12-10 10:56:24 -08:00
flutteractionsbot
32cb6f7632
[CP-beta]Adds a new helpful tool exit message for SocketExceptions thrown during mdns discovery (#158950)
This pull request is created by [automatic cherry pick
workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate
this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/150131

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter
developers. See [best
practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md)
for examples

Suggest macOS Sequoia Local Network permissions instead of CLI tool
SocketException crash.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot
ship an iOS app)? Does it impact development (ex. flutter doctor crashes
when Android Studio is installed), or the shipping production app (the
app crashes on launch)

The app fatally crashes on `flutter run ios` with a non-actionable
error.

### Workaround:
Is there a workaround for this issue?

The potential workarounds are listed in the error message added by this
PR.

### Risk:
What is the risk level of this cherry-pick?

  - [x] Low
  - [ ] Medium
  - [ ] High

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [x] Yes
  - [ ] No

### Validation Steps:
What are the steps to validate that this fix works?

It's hard to validate this PR because the original issue is hard to
reproduce, but you can manually add a socket exception here
4b818b56c2/packages/flutter_tools/lib/src/mdns_discovery.dart (L235-L239)
and `flutter run ios`, and inspect the output.

Co-authored-by: LouiseHsu <louisehsu@google.com>
2024-12-10 10:56:07 -08:00
flutteractionsbot
d5a20a12ce
[CP-beta]Do not rely on Leader/Follower to position DropdownMenu menu (#159436)
This pull request is created by [automatic cherry pick
workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate
this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/157916 and
https://github.com/flutter/flutter/issues/158924

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter
developers. See [best
practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md)
for examples

Restore the previous dropdown menu positioning logic.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot
ship an iOS app)? Does it impact development (ex. flutter doctor crashes
when Android Studio is installed), or the shipping production app (the
app crashes on launch)

DropdownMenu menu is misplaced and can be fully or partially hidden.
See
https://github.com/flutter/flutter/pull/158930#issuecomment-2492120497
for more context.

### Workaround:
Is there a workaround for this issue?

No

### Risk:
What is the risk level of this cherry-pick?

  - [x] Low
  - [ ] Medium
  - [ ] High

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [x] Yes
  - [ ] No

### Validation Steps:
What are the steps to validate that this fix works?

< Replace with validation steps here >

Co-authored-by: Bruno Leroux <bruno.leroux@gmail.com>
2024-12-10 10:55:03 -08:00
flutteractionsbot
32644266fa
[CP-beta][ tool ] Don't throw StateError when DDS fails to start (#159079)
This pull request is created by [automatic cherry pick
workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate
this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/158537

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter
developers. See [best
practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md)
for examples

Avoid rethrowing `DartDevelopmentServiceException`s as `StateError`s
when the Dart Development Service fails to start due to the target
shutting down.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot
ship an iOS app)? Does it impact development (ex. flutter doctor crashes
when Android Studio is installed), or the shipping production app (the
app crashes on launch)

Currently one of the top tool crashers on the beta branch. The crash is
harmless and shouldn't impact user workflows, but causes significant
noise.

### Workaround:
Is there a workaround for this issue?

No workaround available.

### Risk:
What is the risk level of this cherry-pick?

  - [x] Low
  - [ ] Medium
  - [ ] High

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [x] Yes
  - [ ] No

### Validation Steps:
What are the steps to validate that this fix works?

Hard to replicate the original issue consistently, but in theory: start
applications and immediately shut them down before DDS can finish
starting.

Co-authored-by: Ben Konyi <bkonyi@google.com>
2024-12-06 16:04:51 -08:00
flutteractionsbot
e466195f42
[CP-beta]Update Android plugin templates for newer AGP (#157100)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
Part of https://github.com/flutter/flutter/issues/156111

### Changelog Description:
Updates the Android plugin templates to use newer configurations that have better compatibility with recent versions of AGP.

### Impact Description:
Without this, plugins created by `flutter create` will have deprecation warnings out of the box for developers whose projects use new versions of AGP, and will eventually fail to compile without manual updates.

### Workaround:
Manually change the Java version after running `flutter create`

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
1. `flutter create -t plugin some_plugin --platforms=android`
2. Update the example project to the latest version of AGP
3. Build

There should not be warnings about `source value 8 is obsolete` or `target value 8 is obsolete`.
2024-11-13 01:01:21 +00:00
flutteractionsbot
72ccdd2153
[CP-beta]Prevent flutter build ios-framework --xcframework from copying Flutter.xcframework.dSYM into the App.framework folder. (#158131)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/157359

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples

Prevents `flutter build ios-framework --xcframework` from copying an extraneous Flutter.xcframework.dSYM into the App.framework folder

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Previously, `flutter build ios-framework --xcframework` would fail with
`error: Multiple commands produce '......./BuildProductsPath/Release-iphoneos/Flutter.framework.dSYM/Contents'`. 

Is there a workaround for this issue?

The workaround is to delete `App.xcframework/ios-arm64/dSYMs/Flutter.framework.dSYM`.

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Try to build any example app with `flutter build ios-framework --xcframework`, then inspect the App.framework folder. It should only include  `App.framework.dSYM`, and not `Flutter.xcframework.dSYM `
2024-11-12 21:21:45 +00:00
Matan Lurey
380707fb0e
Manually cherry-pick #158141 (out_dir_shared) into beta (#158395)
Cherry-pick https://github.com/flutter/flutter/pull/158141.

Unblocks https://github.com/flutter/flutter/pull/157100#issuecomment-2465138790.

This is a test-only change that works around `native_assets_cli` now being `0.9.0`.
2024-11-08 23:24:08 +00:00
flutteractionsbot
31c0ff4763
[CP-beta]Support host android apps with kts gradle files for add to app (#157881)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

This allows host Android apps using Kotlin Gradle files to depend on a Flutter module as source, see
https://docs.flutter.dev/add-to-app/android/project-setup#add-the-flutter-module-as-a-dependency. 

Previously they wouldn't be able to, because we expected the host app to use `setBinding` in it's Gradle files, which is Groovy syntax that doesn't have a parallel in the Kotlin Gradle DSL. They could still depend on a flutter module if built as an aar.

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples

Allows host Android apps using Kotlin Gradle files to include a Flutter module.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Without this change, Android apps using Kotlin Gradle files are unable to depend on a Flutter module as source (they would still be able to as an aar).

### Workaround:
Is there a workaround for this issue?

Build the flutter module as an aar.

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Create a new Android app (probably in Android studio).
Create a Flutter module (`flutter create foobar --template=module`).
Apply [this diff](1f1e92ac79), matching names to your specific case, to the Android app.
2024-11-05 19:56:37 +00:00
flutteractionsbot
831ae93c47
[CP-beta]Add handler for jlink error when using Java 21 (#157946)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/156304

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples

Provides guidance on how to fix a common error encountered when using Java 21 and Android Gradle Plugin versions less than 8.2.1, a combination that many users are encountering due to a recent Android Studio upgrade.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Flutter apps fail to build on Android when using the previously mentioned combination (Java 21/AGP < 8.2.1). This error handler guides users on fixing the problem.

### Workaround:
Is there a workaround for this issue?

Users can upgrade their AGP version, or specify a lower Java version. But they would be unlikely to know this, because the (unhandled) error message is not helpful for Flutter developers.

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Try building an app with the mentioned combination, verify that the handler triggers (i.e., the message includes `flutter fix...`
2024-11-05 18:42:51 +00:00
Andrew Kolos
41f3f4043e
[CP-beta] Fix flavor-conditional asset bundling for path dependencies (#157306)
Fixes https://github.com/flutter/flutter/issues/155755 on the beta branch so that this will be available with the 3.27 release.

<details>

<summary> Pre-launch checklist </summary> 

</details>
2024-11-05 18:09:14 +00:00
John McDole
1806f2c94a
Flutter tool assumes impeller is enabled by default (#156540) (#156545)
Cherry pick request to get correct analytics
2024-11-05 17:46:53 +00:00
Jenn Magder
077c0084d2
Beta test alternate correct macOS framework xcprivacy manifest location (#157136)
The PrivacyInfo.xcprivacy file was originally copied to the top-level macOS framework, but instead needs to be in the Resources directory (which is a different path than iOS).  This caused codesigning issues https://github.com/flutter/flutter/issues/157016.

The path is being corrected https://github.com/flutter/engine/pull/55938 so update the framework test to handle either path.  It will be updated to just check the correct path once it rolls into the framework.
2024-10-18 17:51:51 +00:00
auto-submit[bot]
0403c1cb8f
Reverts "Roll pub packages (#156440)" (#156473)
Reverts: flutter/flutter#156440
Initiated by: zanderso
Reason for reverting: Failing in post submit with
```
[2024-10-08 18:00:22.743647] [STDOUT] stdout:                [!] CocoaPods could not find compatible versions for pod "Google-Mobile-Ads-SDK":
[2024-10-08 18:00:22.743695] [STDOUT] stdout:                  In Podfile:
[2024-10-08 18:00:22.743718] [STDOUT] stdout:                    google_mobile_ads (from `.symlinks/plugins/google_mobile_ads/ios`) was resolved t
Original PR Author: flutter-pub-roller-bot

Reviewed By: {fluttergithubbot}

This change reverts the following previous change:
This PR was generated by `flutter update-packages --force-upgrade`.
2024-10-09 13:45:47 +00:00
flutter-pub-roller-bot
f96d1618c4
Roll pub packages (#156440)
This PR was generated by `flutter update-packages --force-upgrade`.
2024-10-08 23:28:01 +00:00
Kevin Moore
a80c3823f5
[tool] Update description of where to install platforms in XCode (#156432)
Fixes https://github.com/flutter/flutter/issues/156431
2024-10-08 21:34:22 +00:00
Qun Cheng
e317860b35
Normalize ThemeData.tabBarTheme (#156253)
Following https://github.com/flutter/flutter/pull/155476, this PR is to normalize `ThemeData.tabBarTheme`; change the `TabBarTheme tabBarTheme` property to `TabBarThemeData tabBarTheme` in `ThemeData`. In `ThemeData()` and `ThemeData.copyWith()`, the `tabBarTheme` parameter type is changed to `Object?` to accept both `TabBarTheme` and `TabBarThemeData` so that we won't cause immediate breaking change and make sure rolling is smooth. Once all component themes are normalized, these `Object?` types should be changed to `xxxThemeData`.

There's no way to create a dart fix because we can't add a "@deprecated" label for TabBarTheme; TabBarTheme is a new InheritedWidget subclass now.

Addresses the "theme normalization" sub project within https://github.com/flutter/flutter/issues/91772
2024-10-08 19:52:38 +00:00
Adam
37d5dc45d1
Add bySemanticsIdentifier finder for finding by identifier (#155571)
## Add `bySemanticsIdentifier` finder for finding by identifier

### Description

This pull request introduces a new finder, `CommonFinders.bySemanticsIdentifier`, to the Flutter testing framework. This finder allows developers to locate `Semantics` widgets based on their `identifier` property, enhancing the precision and flexibility of widget tests.

### Motivation

Establish a consistent and reliable method for locating elements in integration and end-to-end (e2e) tests. Unlike `label` or `key`, which may carry functional significance within the application, the `identifier` is purely declarative and does not impact functionality. Utilizing the `identifier` for finding semantics widgets ensures that tests can target specific elements without interfering with the app's behavior, thereby enhancing test reliability, maintainability, and reusability across testing frameworks.

### Changes

- **semantics.dart**
  - Updated documentation to mention that `identifier` can be matched using `CommonFinders.bySemanticsIdentifier`.
  
- **finders.dart**
  - Added the `bySemanticsIdentifier` method to `CommonFinders`.
  - Supports both exact string matches and regular expression patterns.
  - Includes error handling to ensure semantics are enabled during tests.
  
- **finders_test.dart**
  - Added tests to verify that `bySemanticsIdentifier` correctly finds widgets by exact identifier and regex patterns.
  - Ensures that the finder behaves as expected when semantics are not enabled.

### Usage

Developers can use the new finder in their tests as follows:

```dart
// Exact match
expect(find.bySemanticsIdentifier('Back'), findsOneWidget);

// Regular expression match
expect(find.bySemanticsIdentifier(RegExp(r'^item-')), findsNWidgets(2));
```
2024-10-08 17:27:32 +00:00
PurplePolyhedron
138144bb2f
Update DropdownMenu tests to remove some dependence on platforms (#156131)
Keyboard navigation in  `DropdownMenu` depends on `focus` instead of platforms.
Updating tests to remove `variant: TargetPlatformVariant.desktop()`  from keyboard navigation tests.
2024-10-08 15:55:18 +00:00
Justin McCandless
22635e19c1
NavigatorPopHandler.onPopWithResult (#155618)
NavigatorPopHandler now includes the return value from Route. Recently some navigation infrastructure was updated to support passing through these return values, but NavigatorPopHandler was missed until now.
2024-10-08 08:19:29 -07:00
Daco Harkes
e695cd6e9a
Migrator for android 35/16kb page size cmake flags for plugin_ffi (#156221)
Migrates existing instantions of `--template plugin_ffi` to deal with Android 15 16kb memory pages.

Issue:

* https://github.com/flutter/flutter/issues/155933

@reidbaker I could only find migrations that run from the root application. However the file needing to be migrated is a plugin. The plugin is being referenced from the example in the example dir and that's where the migrator is run, so I wrote the code so that it walks up to find the plugin. Do you know of a way to run migrators to non-root projects? (Can we even safely do so, e.g. the non-root could be in the pub cache, could be a different project on the users' system etc. So maybe checking if we are in the examples dir is the only sane thing to do?)

Tests:

* Added unit tests in `test/general.shard/android/migrations/cmake_android_16k_pages_migration_test.dart`
2024-10-08 08:41:09 +00:00
Taha Tesser
44f7c6913f
Update flexible_space_bar_test.dart tests for Material 3 (#156226)
Updated unit tests for `FlexibleSpaceBar` to have M2 and M3 versions.

More info in #139076
2024-10-08 07:42:08 +00:00
David Iglesias
d744da18e5
[tool] Emit a deprecation warning for some values of --web-renderer. (#156376)
This PR emits a blue warning text when using `flutter ... --web-renderer=html|auto`.

(The message is similar to the one that we emit at run-time)

## Issues

Fixes https://github.com/flutter/flutter/issues/154878
See also: https://github.com/flutter/engine/pull/55709
2024-10-08 01:39:06 +00:00
Mairramer
56a33efd73
Fixes an issue where onTapOutside was incorrectly triggered across routes in TapRegion (#155297)
Fixes https://github.com/flutter/flutter/issues/153093

This PR fixes the issue of onTapOutside being triggered on other routes incorrectly.
2024-10-07 20:48:00 +00:00
Nate Biggs
da71e6e93d
Update 'dump-info' usage for dart2js builds (#156187)
Dart2js updated its CLI to support generating a 'dump-info' json file by passing a "--stage" option. The "dump-info-all" stage performs a full compilation (from the provided dill) and then also generates the dump info file.

Tested via the `flutter-dev` CLI locally. This results in the same output but with the addition of an extra `main.dart.js.info.json` file.
2024-10-07 20:06:18 +00:00
Andrew Kolos
e96c47f953
handle any RPCError due to vm service disconnection in flutter run (#156346)
Follow-up to https://github.com/flutter/flutter/pull/153714. While reading through run.dart, I noticed we missed a case.
2024-10-07 18:48:22 +00:00
Taha Tesser
b3de00ad54
Fix DropdownMenu with expandedInsets always aligned on top (#156214)
Fixes [DropdownMenu can not be center aligned when using expandedInsets
](https://github.com/flutter/flutter/issues/155581)

### Code sample

<details>
<summary>expand to view the code sample</summary> 

```dart
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final List<DropdownMenuEntry<ShortMenu>> shortMenuItems =
        <DropdownMenuEntry<ShortMenu>>[];
    for (final ShortMenu value in ShortMenu.values) {
      final DropdownMenuEntry<ShortMenu> entry =
          DropdownMenuEntry<ShortMenu>(value: value, label: value.label);
      shortMenuItems.add(entry);
    }

    return MaterialApp(
      home: Scaffold(
        body: Row(
          children: <Widget>[
            Expanded(
              child: Center(
                child: DropdownMenu<ShortMenu>(
                  expandedInsets: const EdgeInsets.all(16),
                  initialSelection: ShortMenu.item0,
                  dropdownMenuEntries: shortMenuItems,
                  label: const Text('With expandedInsets'),
                ),
              ),
            ),
            Expanded(
              child: Center(
                child: DropdownMenu<ShortMenu>(
                  initialSelection: ShortMenu.item0,
                  dropdownMenuEntries: shortMenuItems,
                  label: const Text('Without expandedInsets'),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

enum ShortMenu {
  item0('Menu 0'),
  item1('Menu 1'),
  item2('Menu 2');

  const ShortMenu(this.label);
  final String label;
}
```

</details>

### Before 
(`DropdownMenu` without `expandedInsets` cannot be centered)
<img width="770" alt="Screenshot 2024-10-04 at 14 13 58" src="https://github.com/user-attachments/assets/c7520c12-d16a-4867-8fae-38b75dbc4225">

### After
(`DropdownMenu` with `expandedInsets` be centered)

<img width="770" alt="Screenshot 2024-10-04 at 14 13 49" src="https://github.com/user-attachments/assets/82e0b81e-5c85-4e59-99b8-df329459773b">
2024-10-07 13:43:22 +00:00
Jatin Nagar
bae7971431
CheckboxListTile: add property to scale the checkbox (#154806)
Added a property in the CheckboxListTile to scale the underlying Checkbox using `Transform.scale`.

Fixes: #81334
2024-10-06 14:49:20 +00:00
Qun Cheng
534adfbe02
Normalize ThemeData.cardTheme (#153254)
Following https://github.com/flutter/flutter/pull/151914, this PR is to normalize `ThemeData.cardTheme`; change the `CardTheme cardTheme` property to `CardThemeData cardTheme` in `ThemeData`. In `ThemeData()` and `ThemeData.copyWith()`, the `cardTheme` parameter type is changed to `Object?` to accept both `CardTheme` and `CardThemeData` so that we won't cause immediate breaking change and make sure rolling is smooth. Once all component themes are normalized, these `Object?` types should be changed to `xxxThemeData`.

There's no way to create a dart fix because we can't add a "@deprecated" label for `CardTheme` because `CardTheme` is a new InheritedWidget subclass now.

Addresses the "theme normalization" sub project within https://github.com/flutter/flutter/issues/91772
2024-10-04 18:59:05 +00:00
Nate Wilson
5bfc3d43ae
Refactor devfs_web_ddc_modules_test.dart (#155609)
This pull request adds a local function `runInTestbed()` to **devfs_web_ddc_modules_test.dart**, which wraps the `testbed.run()` method. Several whitespace adjustments have been made as well.

<br>

It's much easier to read after clicking "hide whitespace".

<br>

Relevant style guidelines:
- Prefer avoiding line breaks after assignment operators.
- If you have a newline after some opening punctuation, match it on the closing punctuation.
- Only use `=>` when everything, including the function declaration, fits on a single line.
2024-10-03 21:10:03 +00:00
Tong Mu
59e57437db
Allow arrow keys to navigate MenuAnchor independently of global shortcut definition (#155728)
This PR adjusts the implementation of handling navigational shortcuts (i.e. arrow keys) on `MenuAnchor` and `DropdownMenu`.

## Motivation
The direct outcome of this PR is to allow keyboard to enter submenus on Web: When the focus is on a `MenuAnchor` while the menu is open, pressing arrow keys should move the focus to the menu item.
* Before the PR, this works for all platforms but Web, a problem described in https://github.com/flutter/flutter/issues/119532#issuecomment-2274705565.

It is caused by the fact that `MenuAnchor` does not wrap itself with a `Shortcuts`, and therefore key events when the focus is on a `MenuAnchor` has been working only because the event falls back to the `Shortcuts` widget defined by `WidgetsApp`, whose default value happens to satisfy `MenuAnchor`'s needs - except on Web where arrow keys are defined to scroll instead of traverse. 

Instead of defining this problem as "just a patch for Web", I think it's better to define it as a problem of all platforms: `MenuAnchor`'s shortcuts should be independent of `WidgetsApp.shortcuts`. Because even if `WidgetsApp.shortcuts` is redefined as something else, people should probably still expect arrow keys to work on `MenuAnchor`.

Therefore this PR makes `MenuAnchor` produce a `Shortcuts` by itself.

### Dropdown menu
The fix above breaks `DropdownMenu`. `DropdownMenu` uses `MenuAnchor`, while defining its own shortcuts because, when filter is enabled:
* The left and right arrow keys need to move the text carets instead
* The up and down arrow keys need to "fake" directional navigation - the focus needs to stay on the text field, while some menu item is highlighted as if it is focused.

Before the PR, `DropdownMenu` defines these shortcuts out of `MenuAnchor`. In order for the `DropdownMenu`'s shortcuts to take priority, these shortcuts are moved to between `MenuAnchor` and the `Textfield`.

A test is added to verify that the left/right keys move text carets.

Below are psuedo-widget-trees after the PR:
```
MenuAnchor
 |- Shortcuts(arrows->DirectionalFocusIntent)
    |- MenuAnchor.child
    |- menu

DropdownMenu
 |- Actions(DirectionalFocusIntent->_dropdownMenuNavigation)
    |- MenuAnchor
        |- Shortcuts(arrows->DirectionalFocusIntent)
            |- Shortcuts(leftright->ExtendSelectionByCharacterIntent, updown->_dropdownMenuArrowIntent)
            |  |- TextField
            |     |- EditableText
            |        |- Actions(DirectionalFocusIntent->DirectionalFocusAction.forTextField)
            |- menu
```

## Known issues
After this PR, traversing the menu still have quite a few problems, which are left for other PRs.
2024-10-03 20:09:19 +00:00
Nate Wilson
500285d39a
Inherited Theme: zero rebuilds (#155699)
> ### Write Test, Find Bug
>
> When you fix a bug, first write a test that fails, then fix the bug and verify the test passes.

<br>

When `Theme.of(context)` is called in a `build()` method, the widget is rebuilt each frame during an `AnimatedTheme` transition.

I wanted to create a way for `RenderObject`s to be updated directly, so I wrote a test:

```dart
testWidgets('InheritedWidgets can trigger RenderObject updates', (WidgetTester tester) async {
  // ...
});
```

…and it passed.

<br><br>

As it turns out, no change is needed at all!

This PR resolves #155852 by adding the "InheritedWidgets can trigger RenderObject updates" test, to ensure that this awesome capability doesn't break in the future.
2024-10-03 19:24:06 +00:00
Nate Wilson
5ecf10052f
pattern-matching refactor (#154753)
This pull request aims to improve code readability, based on feedback gathered in a recent design doc.

<br>

There are two factors that hugely impact how easy it is to understand a piece of code: **verbosity** and **complexity**.

Reducing **verbosity** is important, because boilerplate makes a project more difficult to navigate. It also has a tendency to make one's eyes gloss over, and subtle typos/bugs become more likely to slip through.

Reducing **complexity** makes the code more accessible to more people. This is especially important for open-source projects like Flutter, where the code is read by those who make contributions, as well as others who read through source code as they debug their own projects.

<hr>

<br>

The following examples show how pattern-matching might affect these two factors:

<details> <summary><h3>Example 1 (GOOD)</h3> [click to expand]</summary>

```dart
if (ancestor case InheritedElement(:final InheritedTheme widget)) {
  themes.add(widget);
}
```

Without using patterns, this might expand to

```dart
if (ancestor is InheritedElement) {
  final InheritedWidget widget = ancestor.widget;
  if (widget is InheritedTheme) {
    themes.add(widget);
  }
}
```

Had `ancestor` been a non-local variable, it would need to be "converted" as well:

```dart
final Element ancestor = this.ancestor;
if (ancestor is InheritedElement) {
  final InheritedWidget inheritedWidget = ancestor.widget;
  if (widget is InheritedTheme) {
    themes.add(theme);
  }
}
```

</details>

<details> <summary><h3>Example 2 (BAD) </h3> [click to expand]</summary>

```dart
if (widget case PreferredSizeWidget(preferredSize: Size(:final double height))) {
  return height;
}
```

Assuming `widget` is a non-local variable, this would expand to:

```dart
final Widget widget = this.widget;
if (widget is PreferredSizeWidget) {
  return widget.preferredSize.height;
}
```

<br>

</details>

In both of the examples above, an `if-case` statement simultaneously verifies that an object meets the specified criteria and performs a variable assignment accordingly.

But there are some differences: Example 2 uses a more deeply-nested pattern than Example 1 but makes fewer useful checks.

**Example 1:**
- checks that `ancestor` is an `InheritedElement`
- checks that the inherited element's `widget` is an `InheritedTheme`

**Example 2:**
- checks that `widget` is a `PreferredSizeWidget`
(every `PreferredSizeWidget` has a `size` field, and every `Size` has a `height` field)

<br>

<hr>

I feel hesitant to try presenting a set of cut-and-dry rules as to which scenarios should/shouldn't use pattern-matching, since there are an abundance of different types of patterns, and an abundance of different places where they might be used.

But hopefully the conversations we've had recently will help us converge toward a common intuition of how pattern-matching can best be utilized for improved readability.

<br><br>

- resolves https://github.com/flutter/flutter/issues/152313
- Design Doc: [flutter.dev/go/dart-patterns](https://flutter.dev/go/dart-patterns)
2024-10-03 18:21:04 +00:00
Thomas Hareau
91eb8d226d
Add autocorrect and enableSuggestions to SearchDelegate (#154932)
Add `autocorrect` and `enableSuggestions` to `SearchDelegate`, so that autocompletion can be disabled in search. 

*List which issues are fixed by this PR. You must list at least one issue. An issue is not required if the PR fixes something trivial like a typo.*

* https://github.com/flutter/flutter/issues/98241

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
2024-10-03 18:14:51 +00:00
Qun Cheng
64906c28a6
Update ThemeData.dialogTheme type to accept DialogThemeData (#155129)
Following https://github.com/flutter/flutter/pull/153982, this PR is to normalize `ThemeData.dialogTheme`; change the `DialogTheme dialogTheme` property to `DialogThemeData dialogTheme` in ThemeData. In `ThemeData()` and `ThemeData.copyWith()`, the dialogTheme parameter type is changed to `Object?` to accept both `DialogTheme` and `DialogThemeData` so that we won't cause immediate breaking change and make sure rolling is smooth. Once all component themes are normalized, these `Object?` types should be changed to `xxxThemeData`.

There's no way to create a dart fix because we can't add a "@deprecated" label for `DialogTheme`; `DialogTheme` is a new `InheritedWidget` subclass now.

Addresses the "theme normalization" sub project within https://github.com/flutter/flutter/issues/91772
2024-10-02 23:48:13 +00:00
flutter-pub-roller-bot
a9047e93bc
Roll pub packages (#156117)
This PR was generated by `flutter update-packages --force-upgrade`.
2024-10-02 23:01:09 +00:00
Victor Sanni
d0f2a6887e
Add mouseCursor property to CupertinoCheckbox (#151788)
Part of https://github.com/flutter/flutter/issues/58192
2024-10-02 22:47:18 +00:00
flutter-pub-roller-bot
4ad274720f
Roll pub packages (#156114)
This PR was generated by `flutter update-packages --force-upgrade`.
2024-10-02 21:12:16 +00:00
Mitchell Goodwin
d877d2875e
Allow mixing route transitions in one app. (#150031)
Fixes #33799

Allows for a route to inform the route below it in the navigation stack how to animate when the topmost route enters are leaves the stack.

It does this by making a `DelegatedTransition` available for the previous route to look up and use. If available, the route lower in the stack will wrap it's transition builders with that delegated transition and use it instead of it's default secondary transition.

This is what the sample code in this PR shows an app that is able to use both a Material zoom transition and a Cupertino slide transition in one app. It also includes a custom vertical transition. Every page animates off the screen in a way to match up with the incoming page's transition. When popped, the correct transitions play in reverse.

https://github.com/user-attachments/assets/1fc910fa-8cde-4e05-898e-daad8ff4a697

The below video shows this logic making a pseudo iOS styled sheet transition.

https://github.com/flutter/flutter/assets/58190796/207163d8-d87f-48b1-aad9-7e770d1d96c5

All existing page transitions in Flutter will be overwritten by the incoming route if a `delegatedTransition` is provided. This can be opted out of through `canTransitionTo` for a new route widget. Of Flutter's existing page transitions, this PR only adds a `DelegatedTransition` for the Zoom and Cupertino transitions. The other transitions possible in Material will get delegated transitions in a later PR.
2024-10-02 20:08:11 +00:00
PurplePolyhedron
d461426922
fix wrong test in "fixing DropdownMenu keyboard navigation" (#156084)
I accidentally submitted the wrong test in the last commit in https://github.com/flutter/flutter/pull/155252
Re-uploading the correct one.
2024-10-02 19:06:20 +00:00
Navaron Bracke
57d2a20be3
fix ReorderableList not passing in item extent builder (#155994)
This PR fixes the `ReorderableList` in `flutter/widgets.dart` not passing the item extent builder to the underlying SliverReorderableList. I double checked and the material equivalent is working as intended.

Fixes https://github.com/flutter/flutter/issues/155936

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
2024-10-02 17:18:21 +00:00
auto-submit[bot]
d238834bee
Reverts "integration_test: migrate to build.gradle.kts (#154125)" (#156087)
Reverts: flutter/flutter#154125
Initiated by: bartekpacia
Reason for reverting: broke postsubmit
Original PR Author: bartekpacia

Reviewed By: {reidbaker, gmackall}

This change reverts the following previous change:
Attempt to reland #142008 half a year later.

Benefit: this will be the first plugin in Flutter repo that uses Gradle KTS for Android buildscripts. Once it works fine, we can follow up with migration of more plugins later.

[The previous error message](https://github.com/flutter/flutter/pull/142008#issuecomment-1939558432) was:

```
e: /b/s/w/ir/cache/gradle/caches/jars-8/42139b5be0c79e133a7b5c5c5d5bf731/gradle-7.3.1.jar!/com/android/build/gradle/LibraryExtension.class: Class 'com/android/build/gradle/LibraryExtension' was compiled with an incompatible version of Kotlin. The binary version of its bytecode is unknown, expected version is 1.0.3
e: /b/s/w/ir/cache/gradle/caches/jars-8/043c0d54e2c1bb39208ec4477607cdf5/gradle-api-7.3.1.jar!/com/android/build/api/dsl/LibraryVariantDimension.class: Class 'com/android/build/api/dsl/LibraryVariantDimension' was compiled with an incompatible version of Kotlin. The binary version of its bytecode is unknown, expected version is 1.0.3

FAILURE: Build failed with an exception.

* Where:
Build file '/b/s/w/ir/x/w/flutter/packages/integration_test/android/build.gradle.kts' line: 36

* What went wrong:
com.android.build.gradle.LibraryExtension.setNamespace(Ljava/lang/String;)V
```

The `integration_test` plugin now puts `com.android.tools.build:gradle:8.1.0` on its classpath since https://github.com/flutter/flutter/issues/153795.

This makes me take an optimistic bet that it won't kill the autoroller now 🤞
2024-10-02 16:34:17 +00:00
Jenn Magder
22247cd55c
Add deprecation warning for "flutter create --ios-language" (#155867)
The Objective-C  `flutter create --ios-language objc` template will be removed in https://github.com/flutter/flutter/issues/148586.

Add a deprecation warning when this flag is passed.  Add an additional warning when Objective-C is specified requesting the user's use-case.

Do not show the warning when creating the module, as Swift is not supported for it yet https://github.com/flutter/flutter/issues/23955

![Screenshot 2024-09-27 at 8 54 16 PM](https://github.com/user-attachments/assets/112be47f-a5bd-4f57-9a9d-c96c7bbc8ac3)

Part of https://github.com/flutter/flutter/issues/148586
2024-10-02 16:13:25 +00:00
Devon Carew
ff7e5f3d73
update flutter create generated projects to use package:flutter_lints 5.0.0 (#156011)
- update flutter create generated projects to use package:flutter_lints
5.0.0; this is a follow-up to publishing `package:flutter_lints` 5.0.0

- related to https://github.com/dart-lang/lints/issues/205

## 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 `///`).
- [ ] 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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2024-10-02 08:36:40 -07:00