3853 Commits

Author SHA1 Message Date
Ian Hickson
78dcc0e685
Revert "Revive "Push physical layers with paths instead of rects in RenderPhy… (#14054)" (#14063)
This reverts commit 592f297922270c0c338b0048d37a510c9c16db14.
2018-01-11 22:27:11 -08:00
amirh
592f297922
Revive "Push physical layers with paths instead of rects in RenderPhy… (#14054)
* Revive "Push physical layers with paths instead of rects in RenderPhysicalModel. (#13942)"

That commit was reverted due to a performance problem which has now been
fixed.

* Roll engine 05fe72d068e19c7886e8d27f9b004201d5ad1300
2018-01-11 18:54:12 -08:00
Sebastiano Poggi
2a07f3f211 Fix typo in framework.dart private method name (#14046) 2018-01-11 21:15:34 +01:00
Michael Thomsen
62ea62a729
Remove enableAssertInitializer from analysis options as it's not needed in Dart 2 (#14042) 2018-01-11 16:52:34 +01:00
Mikkel Nygaard Ravn
aad36ab7dd
Remove large int support in standard message codec (#14011) 2018-01-11 08:47:16 +01:00
Ian Hickson
09270dcb0b
The Ink widget (#13900)
This provides a way to draw colors, images, and general decorations on Material widgets, without interfering with InkWells that are further descendants of the widget.

This thus provides a cleaner way to solve the issue of FlatButtons and InkWells not working when placed over Image widgets than the old hack of introducing a transparency Material.

Fixes #3782.

Also, some fixes to documentation, and remove a redundant property on the Image widget.
2018-01-10 16:42:45 -08:00
Leaf Petersen
ab874da7be
Roll Dart SDK to 2.0.0-dev.16.0, along with associated package updates (#13857)
Rolling the Dart SDK to 2.0, with associated package updates.  

https://groups.google.com/forum/#!topic/flutter-dev/E22RdKAYjs8
2018-01-10 14:31:28 -08:00
Michael Goderbauer
46629b7187
Do not crash when toggling Semantics on, off, on (#13999)
* Do not crash when toggeling Semantics on, off, on

* review comments
2018-01-10 10:12:36 -08:00
Ian Hickson
316d8e1c2c
Make DecoratedBox repaint after being reparented (#13927)
Fixes https://github.com/flutter/flutter/issues/12553

The root cause of https://github.com/flutter/flutter/issues/12553 was that when the refresh indicator went away, which happened after the avatars had started their image loads but before the avatars had loaded, the DecoratedBoxes, along with the rest of the list, got GlobalKey-reparented, which caused the RenderDecoratedBox objects to unregister from the DecorationImagePainters, but they never re-registered since the whole subtree was in a RepaintBoundary and was therefore not explicitly repainted when the tree got reattached.

This fixes the bug by explicitly requiring any RenderDecoratedBox to repaint when it's reattached. This is probably a little more aggressive than required; we could probably expose a flag on Decoration that says whether or not the onChanged handler will ever be invoked, and only call markNeedsPaint if that's true, but we'll do that if it turns out that there's a performance issue here.

(This patch also introduces a bunch of improved debugging information that I used to track down the bug.)
2018-01-09 20:26:37 -08:00
Hans Muller
03e8ab1f53
Add support for a new kind of InkSplash: the "ripple" (#13986) 2018-01-09 14:43:08 -08:00
xster
c5c63dfd47
Don't flush touch events during first launch frame pre-warm (#13990)
* Lock events during runApp's warm up frame

* move to scheduler binding

* let the one scheduleWarmUpFrame api always lock

* tweak test
2018-01-09 14:05:12 -08:00
Michael Goderbauer
8a6e973739
Remove semantics boundary from gesture detector AND MORE (#13983)
`RenderSemanticsGestureHandler` is no longer a semantics boundary, which allows us to correctly mark disabled buttons as disabled without having their semantics size and semantics node id change unexpectedly.

Fixes https://github.com/flutter/flutter/issues/12589.
Fixes https://github.com/flutter/flutter/issues/11991.
See also https://github.com/flutter/flutter/issues/11993.

This change also required some refactoring to how we deal with `twoPaneSemantics` scrolling as it previously relied on `RenderSemanticsGestureHandler` being a semantics boundary. This should also make the underlying logic easier to understand.

In addition, the following minor changes are included in this PR:
* Removal of orphaned and unused `SemanticsConfiguration.isMergingDescendantsIntoOneNode`.
* Logic optimizations for `markNeedsSemanticsUpdate` .
* Fix for edge case where `MergeSemantics` failed to merge semantics.
* Use of emojis to better indicate leaf merging in the printed semantics tree.
* Better assert message for adding invisible child semantics nodes.
* Make some semantics tests robuster by not relying on creation order of SemanticsNode ids across test boundaries.

Fixes https://github.com/flutter/flutter/issues/13943.
2018-01-09 13:31:59 -08:00
Michael Goderbauer
24e3f70536
Rename SemanticsFlags to SemanticsFlag (#13994)
to align with `SemanticsAction` and other enum-like types.
2018-01-09 10:31:23 -08:00
Ian Hickson
9b92c919a0
Imply stops on LinearGradient and RadialGradient if they're missing (#13987) 2018-01-09 08:22:17 -08:00
Ian Hickson
7cf58702c1
Wrap _debug flag setting in asserts. (#13974)
Fixes the last bits of #5759.
2018-01-08 21:39:50 -08:00
Ian Hickson
3905d99109
Minor doc improvements. (#13969) 2018-01-08 21:39:40 -08:00
Ian Hickson
ce83f4fbe2
Make updateUserScrollDirection protected (#13850) 2018-01-08 21:39:16 -08:00
amirh
61a8132ea9
Revert "Push physical layers with paths instead of rects in RenderPhysicalModel. (#13942)" (#13988)
This reverts commit 57b4a52555388a613d3e4d5378b5bdf761d5f8df.
2018-01-08 19:24:19 -08:00
amirh
57b4a52555
Push physical layers with paths instead of rects in RenderPhysicalModel. (#13942) 2018-01-08 18:41:16 -08:00
Hans Muller
d188a8ff6b
Update InputDecorator et al (#13734) 2018-01-08 10:36:52 -08:00
Brian Egan
c3fab029c2 Idea: Provide initial data to the StreamBuilder (#13820) 2018-01-06 15:49:29 +01:00
Volodymyr Lykhonis
467daba419 RouteObserver supports multiple RouteAware per Route. (#13757)
Unsubscribe should remove RouteAware for all routes.
2018-01-05 12:52:43 -08:00
Michael Goderbauer
b741d91a20
Support disabled state for semantics (#13877)
Fixes https://github.com/flutter/flutter/issues/11993
2018-01-05 12:10:21 -08:00
amirh
885e96914d
Move animated_icons into the material package (#13886) 2018-01-04 13:01:45 -08:00
Ali Bitek
50a5e98322 Add support for romanian locale (#13807) 2018-01-04 09:14:56 -08:00
xster
1eb6a95fcb
Pipe onsubmit for text form fields (#13687) 2018-01-03 23:57:38 +08:00
Michael Goderbauer
94f48c2cc6
Make UserAccountsDrawerHeader accessible (#13851)
Fixes #13743 
Fixes #12379
Follow-up to #13745

Also adds an option to hide gestures introduced by `InkWell` and `InkResponse` from the semantics tree (see also `GestureDetector.excludeFromSemantics`).
2018-01-02 16:28:31 -08:00
Leaf Petersen
1d8ac6d429
Remaining code changes for Dart 2.0 SDK roll. (#13741)
* Remaining code changes for Dart 2.0 SDK roll
2018-01-02 14:41:03 -08:00
Todd Volkert
7132083b24
Partially revert #13711 (#13745)
This reverts the change to `user_accounts_drawer_header.dart`
(and the associated test), as it was causing regressions in layout
of the drawer header.

https://github.com/flutter/flutter/issues/13743
2017-12-22 01:26:15 -05:00
xster
4fcdb50d9b
Add Cupertino scrollbar (#13290)
* Create CupertinoScrollbar

* handle main axis margin

* Adaptive material scrollbar and tests

* Small tweaks

* reapply changes on head

* Docs

* start

* Refactored ScrollbarPainter to be more immutable

* fix tests

* fix bug: one animationcontroller pointed to multiple painters

* some docs tweak

* remove unused import

* review

* review

* add dispose
2017-12-21 16:44:42 -08:00
Michael Goderbauer
4e13cd07bb
Fixes crash caused by invisible semantics children (#13740)
**tl;dr:** A `RenderObject` can only be an effective semantics boundary if it actually owned a `SemanticsNode` in the previous tree generation.

When using the `BlockSemantics` widget it is possible to introduce `RenderObject`s that are configured to be a semantics boundary, but because their semantics are blocked by `BlockSemantics` they will not (immediately) end up owning a `SemanticsNode`. When now a descendant of such a node-less semantics boundary marks itself as needing a semantics update we walk up the tree until we find the closest semantics boundary (which is our node-less `RenderObject`). We now incorrectly assume that this semantics boundary has a valid `SemanticsNode` and only regenerate the semantics subtree below this node. However, because the identified semantics boundary doesn't actually own a valid `SemanticsNode` asserts are throwing (e.g. `Child with id xx is invisible and should not be added to tree.`).

To fix this problem, we can just abort the walk if we reach a semantics boundary without a semantics node because (for now) we know that the semantics information of this branch will not make it into the final semantics tree.
If the semantics block is ever removed, the current algorithm re-generates the semantics for the entire branch and the semantics will be up-to-date then despite the abort. I've added a test to verify this to make sure it continues to work even when we change the algorithm.

Fixes https://github.com/flutter/flutter/issues/13326.
/cc @gavindoughtie FYI
2017-12-21 16:09:43 -08:00
amirh
56061759fc
Add an AnimatedIcon class and vitool (vector icon tool) to generate data for it (#13530) 2017-12-21 15:46:05 -08:00
Ian Hickson
370c73d9bc
Audit all the "final Widget child" properties. (#13718)
This attempts to apply some of what we learnt from UX studies, namely
that people wonder how to add multiple children to widget that take
one child.
2017-12-21 15:02:35 -08:00
Ian Hickson
4e2f77745f
Miscellaneous documentation improvements (#13719)
This is a collection of fixes I've run into recently.
2017-12-21 15:02:21 -08:00
Ian Hickson
4e16b9db29
Attempt a less invasive way to disable fading. (#13733)
Hopefully this will fix the performance regression in https://github.com/flutter/flutter/pull/13680 but with an easier way to flip the switch.
2017-12-21 15:02:03 -08:00
Leaf Petersen
b3cfa785c4
Uncontroversial and backwards compatible 2.0 SDK fixes (#13723)
Small code changes as part of moving the framework SDK forward to a 2.0 dev version.
2017-12-21 13:39:03 -08:00
Ian Hickson
ecb708ee3a
Clean up lerp() methods and their documentation. (#13684)
This cleans up lerp, lerpFrom, lerpTo, and scale methods, and their
documentation.

Fixes https://github.com/flutter/flutter/issues/12377.
2017-12-21 11:09:49 -08:00
Yegor
291602db92
localize a11y tab labels in the TabBar (#13714)
* localize a11y tab labels in the TabBar

* break import cycle

* test boilerplate

* fix German translation

* more test boilerplate fixes
2017-12-20 17:10:32 -08:00
Yegor
6873608184
Make UserAccountsDrawerHeader accessible (#13711)
* other accounts a11y; show accounts button a11y

* layout with bigger tap areas; all semantics

* internationalize UserAccountsDrawerHeader a11y labels

* better Russian translation

* break import cycle

* address comments
2017-12-20 17:10:06 -08:00
Ian Hickson
b1c870b312
Reenable fade transition for Material page transition (#13048) (#13680)
Fixes #12877 by reverting #9472
2017-12-20 13:52:01 -08:00
Yegor
81d4834278
support increase and decrease SemanticsActions in time picker (#13689)
* support increase and decrease SemanticsActions in time picker

* test roll over
2017-12-20 10:25:33 -08:00
Michael Goderbauer
52ebff721a
selected ListTile is selected (#13676)
* selected ListTile is selected

* review comment

* analyzer fix
2017-12-19 16:39:56 -08:00
Ian Hickson
78ff7707e1
Fix niggling PaginatedDataTable bugs (#13556)
Prevent header from thinking it can wrap and then overflowing.

Fix default footer string which lost its colon (localized values are fine).

Make the "rows per page" drop-down include at least one value even when the table lacks many items. (Previously it would assert if your table was too short.)

Make the footer scrollable.

Fix some todos and improve some debug output.

Tests for much of the above.
2017-12-19 12:39:48 -08:00
Michael Goderbauer
e6f20eb95c
IconButton is a button, semantically (#13674)
* IconButton is a button, semantically

* fix datepicker test
2017-12-19 11:33:23 -08:00
Ian Hickson
8e5d77d3fa
Make animating opacity cheaper. (#13583)
No need to update the compositing bits all the time.
2017-12-15 18:10:36 -08:00
Chris Bracken
813be533cd
Apply media padding to snackbar contents (#13623)
Applies any additional bottom, left, and right media padding inside the
snackbar, if present. This accounts for the iPhone X home indicator
widget and horizontal padding for the sensor housing notch in landscape
orientation.
2017-12-15 17:55:25 -08:00
xster
a43be998ec
Split one CustomPainter doc paragraph to bullet points (#13590)
* split doc paragraph

* specify shouldRepaint argument nullability

* review
2017-12-15 15:56:28 -08:00
Chris Bracken
f39a847c8b
Apply media padding in UserAccountsDrawerHeader (#13619)
Applies top, left, right media padding to avoid placing content within
the safe area insets (e.g. iPhone X notch area in landscape
orientation).
2017-12-15 15:52:19 -08:00
Ian Hickson
e65c882e97
Provide a navigatorKey property on MaterialApp and WidgetsApp (#13591)
This lets people poke at navigators without having to get their
BuildContext from a build function or State first.
2017-12-15 14:41:52 -08:00
Yegor
235b64ed2f
make date picker accessible (#13502)
* make date picker accessible

* make test file lookup location-independent

* address some comments

* always wrap in IgnorePointer

* no bitmasks for flags and actions

* recommend List<*>
2017-12-14 20:38:39 -08:00