Move the notch computation from the FAB to the BAB.
The notch in the BAB (bottom action bar) for the FAB (floating action button) was previously kept as part of the FAB's implementation. This was done to keep the shape of the FAB and the shape of the notch coupled.
That approach resulted in a somewhat complex and 'non Fluttery' mechanism for propagating the notch computation from the FAB to the BAB.
This CL uncouples the FAB and the notch computation.
With the new API the BAB computes its overall shape including the notch using a NotchedShape delegate.
This includes multiple breaking changes:
* Scaffold.setFloatingActionButtonNotchFor is deleted.
* The ComputeNotch type is deleted.
* The hasNotch property of BottomAppBar is deleted.
* The notchMargin property of FloatingActionButton is deleted.
Quick migration guide from the previous API:
| Previous API | New API |
| ------------------|-------------|
| BottomAppBar(hasNotch: false) | BottomAppBar() |
| Using a FloatingActionButton with: BottomAppBar() / BottomAppBar(hasNotch: true) | BottomAppBar(shape: CircularNotchedRectangle()) |
| Scaffold.setFloatingActionButtonNotchFor(..) | No longer supported |
This adds an HSLColor class which uses a perceptual color space based upon human perception of colored light (as opposed to HSV, which is based on pigment colors).
You can see the difference in the color spaces here: https://en.wikipedia.org/wiki/HSL_and_HSV
I also added a "within" matcher for both HSLColor and HSVColor that will check if the (floating point) color components are within a certain error.
And tests.
When setState() calls occur asynchronously, it's possible that the
Futures on which they're waiting don't complete until the widget is
offscreen. To avoid this, we check the widget is mounted before calling
setState().
fuchsia_tester.dart still assumes Dart 1. Previously, it ran tests directly
from source, flutter_platform.dart automatically runs a kernel compile when
operating in Dart 2 mode, but this assumes a functional Dart SDK is available
in the artifacts directly, and fuchsia_tester.dart mocks out the artifacts
directory with an empty temp dir.
Remaining work is:
1. Get the frontend server building as a dependency on Fuchsia.
2. Patch fuchsia_tester.dart to use a valid Dart SDK and frontend server.
This also reverts migration to Dart 2 typedef syntax.
This reverts commit 6c56bb2. (#18362)
This reverts commit 3daebd0. (#18316)
Now that Dart 1 is turned off, reapplying my change to turn on the prefer_generic_function_type_aliases analysis option, and fix all the typedefs to Dart 2 preferred syntax.
Also eliminated the unused analysis_options_repo.yaml file and turned on public_member_api_docs in analysys_options.yaml.
No logic changes, just changing the typedef syntax for all typedefs, and updating analysis options.
Our style guide says the k's are not necessary, and it seems like a good idea to make all the code be consistent on this.
Only naming changes to private vars: no logic changes.
I'm moving the assets in the assets-for-api-docs repo to a slightly different location to help with organization in that repo, so this PR points the doc URLs to the new location. The old assets won't be removed until this PR makes its way to the API docs website.
No documentation or code changes here, other than changing doc image URLs.
This chip demo is more interactive than the last one, trying to exercise all of the types of chips for a demo that lets you select different types of "chips" (like tortilla, wood, micro, etc.), and then filter them and select an action on them.
Changes since last roll:
```
ed303c628 Roll dart sdk again. Previous roll required 23ae4fa098 revert. (#4966)
8cd272733 Revert "Roll dart to 7764e6962e22afcf4b58c4e3cef3147330f3c884. (#4960)" (#4965)
9199b40f2 Revert "Support multiple shells in a single process. (#4932)" (#4964)
6baff4c82 Support multiple shells in a single process. (#4932)
31c5bb427 Roll dart to 7764e6962e22afcf4b58c4e3cef3147330f3c884. (#4960)
c8e4c6984 Avoid copying the contents of large platform message responses (#4947)
5ff527295 Update to use new vulkan GrBackendRenderTarget ctor. (#4962)
0c8993a1a Update to use new vulkan GrBackendRenderTarget ctor (part 2) (#4963)
132ebdda8 Revert "Roll src/third_party/skia/ 9874bf1bc..52e16d984 (135 commits) (#4958)" (#4961)
11882ab9e Roll src/third_party/skia/ 9874bf1bc..52e16d984 (135 commits) (#4958)
```
Add consts
This is not a grand refactor yet, it's just cleaning up what we have
already, so that people who keep using this API (e.g. dialogs) have
something coherent to deal with.
The major changes are that Navigator and NavigatorState have the same
API now, that most of the examples use `<void>` instead of `<Null>`,
that the navigator observer can see replaces, and that the `settings`
is moved from ModalRoute to Route. I also cleaned up some of the API
documentation.
* Gallery scaffolding
* Started RenderSliver
* demo and initial hookup
* Cleaned up demo more and scaffolding basic sliver->widget communication structure.
* works
* states and default indicator building works
* start adding docs
* added an alignment setting optimized the sliver relayout mechanism
* tested a default bottom aligned sized indicator
* Added a bunch of tests
* more fixes and more tests
* Finished the tests
* Add docs
* Add more doc diffing wrt material pull to refresh
* Mention nav bar synergy
* add more asserts
* review 1
* Fix mockito 2 / dart 2 / strong typed tests
* review
* Remove the vscode config
* review