flutter/dev/tools
Huy 494b08b420
Normalize BottomAppBarTheme (#168586)
This PR is to make `BottomAppBarTheme` conform to Flutter Material's
conventions for component themes:

- Added a `BottomAppBarThemeData` class which defines overrides for the
defaults for `BottomAppBar` properties.
- Added `BottomAppBarTheme` constructor parameters:
`BottomAppBarThemeData? data` and `Widget? child`. This is now the
preferred way to configure a `BottomAppBarTheme`:

```dart
BottomAppBarTheme(
	data: BottomAppBarThemeData(
	    color: xxx,
	    height: xxx,
	    elevation: xxx,
	    shape: xxx,
	    ...
	  ),
  	child: const BottomAppBar()
)
```
These two properties are made nullable to not break existing apps which
has customized `ThemeData.bottomAppBarTheme`.

- Update `BottomAppBarTheme` to be an `InheritedWidget` subclass.
- Changed the type of component theme defaults from `BottomAppBarTheme`
to `BottomAppBarThemeData`.
- Changed the `BottomAppBarTheme bottomAppBarTheme` property to
`BottomAppBarThemeData bottomAppBarTheme` in `ThemeData` and
`ThemeData.copyWith()`. This may cause breaking changes, a migration
guide will be created on website repo.
- Add new tests for `BottomAppBarThemeData` and update the existing
`BottomAppBarTheme` tests. And also turn to `true` for `useMaterial3`
(along with usages accordingly) at the common method `_withTheme()`
since `useMaterial3` is true by default.
- Addresses the "theme normalization" sub-project within #91772.

## 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.

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

---------

Signed-off-by: huycozy <huy@nevercode.io>
2025-05-14 17:38:18 +00:00
..
android_driver_extensions Roll pub packages (#168509) 2025-05-08 00:50:25 +00:00
bin Remove engine_hash.sh, which is no longer used by google3. (#164502) 2025-03-03 19:47:18 +00:00
gen_defaults Normalize BottomAppBarTheme (#168586) 2025-05-14 17:38:18 +00:00
gen_keycodes Roll pub packages (#168509) 2025-05-08 00:50:25 +00:00
localization Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00
test Add bin/internal/last_engine_commit.sh and tests. (#168387) 2025-05-06 19:04:18 +00:00
vitool Increase pinned version of leak tracker to enable access to experimental tracking on web. (#167502) 2025-04-21 23:48:15 +00:00
.gitignore [flutter_conductor] update dev/tools with release tool (#69791) 2020-11-06 11:14:04 -08:00
create_api_docs.dart Start using bin/cache/engine.{stamp|realm} instead of bin/internal/engine.{realm|version}. (#164352) 2025-03-02 00:54:33 +00:00
dartdoc_checker.dart Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00
examples_smoke_test.dart Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00
format.bat Add script to check format of changed dart files (#160007) 2024-12-11 19:38:24 +00:00
format.sh Add script to check format of changed dart files (#160007) 2024-12-11 19:38:24 +00:00
mega_gallery.dart Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00
pubspec.yaml Roll pub packages (#168509) 2025-05-08 00:50:25 +00:00
repackage_gradle_wrapper.sh Point to a new artifacts location. (#70673) 2021-02-04 18:44:47 -08:00
update_icons.dart Auto-format Framework (#160545) 2024-12-19 20:06:21 +00:00