1295 Commits

Author SHA1 Message Date
amirh
4ae1b5f415
Paint the shape border in the Material widget (#14383) 2018-02-07 15:18:04 -08:00
Hans Muller
788f01f90d
Revert kRadialReactionRadius was 20 is now 24 again (#14522) 2018-02-07 10:26:55 -08:00
Chris Bracken
66ecfb02c2
Apply media padding to persistent footer buttons (#14512)
Applies left, right, and bottom media padding (e.g. iOS safe area
insets) around ButtonBar in the material scaffold
persistentFooterButtons.
2018-02-07 09:34:46 -08:00
Amir Hardon
cc060ff2f2 Use PhysicalModel for the default canvas Material.
This is done to keep in place the workaround we have for rectangular material
where PhysicalModel skips the saveLayer call.
2018-02-06 18:44:42 -08:00
Amir Hardon
b40c112e22 Update MaterialType.canvas documentation.
While the documentation for MaterialType.canvas described it as
an infinite shape. The implementation has been clipping it to the
bounding rectangle for a while. And it is already used in the wild as a
rectangular piece. So we just update the documentation to match that.
2018-02-06 18:44:42 -08:00
Amir Hardon
b79f4e319d Revert "Use RRects instead of Paths when possible in Material. (#14404)"
This reverts commit d9ef7df978e6d50663a4d100963ec16205f3ab6f.
2018-02-06 18:44:42 -08:00
Hans Muller
28c8fd10cf
Radial splash and radio button update (#14483) 2018-02-06 08:20:51 -08:00
Alexandre Ardhuin
2e80bf1db7
unnessary parenthesis (#14475) 2018-02-06 09:00:11 +01:00
Hans Muller
23ee4a4af5
Updated InkWell, InkResponse troubleshooting doc (#14473) 2018-02-05 17:06:05 -08:00
Hans Muller
f5dea9325b
Material button update (#14410) 2018-02-05 12:59:45 -08:00
Hans Muller
f0f0f09707
Fix InkRipple.cancel animation race (#14442) 2018-02-02 16:13:56 -08:00
Ian Hickson
21ee1a25fd
Explain MaterialColor's constructor better. (#14407)
Fixes https://github.com/flutter/flutter/issues/14393
2018-02-02 16:00:57 -08:00
Alexandre Ardhuin
c02b6a8bcf
some whitespace cleanup (#14443) 2018-02-02 23:27:29 +01:00
Ian Hickson
c12d120bbf
Provide a way to override global InheritedWidgets (#14348)
For example, so that the gallery can override the media query globally.
2018-02-01 23:12:52 -08:00
Alexandre Ardhuin
841d5d7bd5
prefer_const_declarations on local variables (#14358) 2018-02-01 07:51:26 +01:00
Chris Bracken
b0e17949aa
Position bottom bar widgets relative to window (#14406)
Note: also fixes a bug wherein bottom media padding was applied even in the
presence of persistent footer buttons.

The material spec states that the keyboard should be positioned on top
of any bottom navigation bar or persistent footer buttons widget(s).

We no longer inset the bottom of bottom navigation bars / persistent
footer buttons by the bottom viewInset.

Body content bottom (and the bottom of bottom sheets) is now determined
by the greater of:
  1. bottom view inset (the keyboard height)
  2. bottom elements (nav bar, footer buttons)
relative to the window max-Y.
2018-01-31 21:19:15 -08:00
amirh
d9ef7df978
Use RRects instead of Paths when possible in Material. (#14404)
0672055a72ff1265b2aedb037f2848455318f22a changed the Material widget to
always use Paths for representing the outline.
These paths are later used for clipping and drawing a shadow.
This changed introduced a performance regression, see:
https://github.com/flutter/flutter/issues/14403

We did not expect a path that is a rounded rectangle to be less
performant than a rounded rectangle, as Skia should be able to tell the
path is just a rounded rectangle.
Until we find a solution for this regression, we keep using RRect when
we can represent the shape with it.
2018-01-31 16:06:14 -08:00
Michael Goderbauer
b54b576c1a
Assorted a11y fixes (#14395) 2018-01-31 15:23:20 -08:00
Chris Bracken
882be89e4c
Improved bottom media padding for SnackBars (#14396)
In a scaffold, snackbars are positioned above the BottomNavigationBar
and/or PersistentBottomButtons, if present. In such cases, they should
not apply bottom media padding to their widget sub-tree.
2018-01-31 12:35:13 -08:00
Michael Goderbauer
3fd737c8f7
a11y on Android: copy/cut/paste (#14343)
With a little refactor and unification of how availability of copy/cut/paste is determined across platforms.

Minor remaining issue: https://github.com/flutter/flutter/issues/14331.

Fixes https://github.com/flutter/flutter/issues/13501.
2018-01-31 12:26:24 -08:00
amirh
06d12a78d7
Use const constructor for RoundedRectangleBorder. (#14384)
This triggered an analysis failure only on the devicelab.
2018-01-31 00:21:09 -08:00
amirh
0672055a72
Support arbitrary shaped Material. (#14367)
For backward compatibility we keep supporting specifying the shape as a
combination of MaterialType and borderRadius, and we just use that as a
default when shapeBorder is null.

To cleanup the implementation if shapeBorder was not specified we just
translate the specified shape to a shapeBorder internally.
I benchmarked paint, layout and hit testing, with the specialized shape
clippers vs. the equivalent path clippers and did not see any
significant performance difference.

For testing, I extended the clippers/physicalShape matchers to match either the
specialized shape or the equivalent shape.
2018-01-30 23:24:42 -08:00
Greg Spencer
122796137b
Make Cupertino alert dialog honor text scale factor (#14346)
This updates the CupertinoAlertDialog to respect text scale factor more properly. Before this, it would scale, but would clip the action buttons at large scales, and would draw in the safe area. It also didn't match the iOS alert because the content didn't scroll. Now it does those properly.

I didn't address the fact that buttons should lay out properly (Issue #14345), but that's probably pretty low priority.

Fixes #12484
2018-01-30 17:23:03 -08:00
Tom Larsen
52d47751a0 Add onCancelled callback to PopupMenu (#14226)
* Add onCancelled callback to PopupMenu

* Fix spelling, don't call onCanceled if disposed, improve documentation.
2018-01-29 20:10:43 -08:00
amirh
85b5b88e0b
Add more animated icon assets (#14328) 2018-01-29 10:36:59 -08:00
amirh
ae1f65ebd6
Re-organize the Material widget's documentation. (#14303)
This widget evolved over time by multiple people, I'm just trying to explain
in a more direct way what the widget is currently doing.
2018-01-26 20:09:11 -08:00
Alexandre Ardhuin
10f721c8a5
use const instead of final with const declarations (#14253) 2018-01-25 19:28:22 +01:00
Vyacheslav Egorov
a5b3139126 Use void as type argument instead of Null where appropriate 2018-01-24 15:25:29 -08:00
Sam Rawlins
5ae770345a Self-execute closure passed to assert (#14235) 2018-01-23 13:46:14 -08:00
Hans Muller
773902c59d
Fix _RenderDecoration.debugDescribeChildren() (#14217) 2018-01-22 17:14:44 -08:00
Ian Hickson
a29d723c59
[H] Move the splitting of licenses to an isolate (#14160)
* Move the splitting of licenses to an isolate

This improves (from horrific to terrible) the performance of the
license screen. It also introduces a feature in the foundation layer
to make using isolates for one-off computations easier.

The real problem that remains with this, though, is that transfering
data between isolates is a stop-the-world operation and can take an
absurd amount of time (far more than a few milliseconds), so we still
skip frames.

More work thus remains to be done.

* - Add profile instrumentation to the isolate compute() method
- Add profile instrumentation to the LicensePage
- Add profile instrumentation to the scheduleTask method
- Make scheduleTask support returning a value
- Make the license page builder logic use scheduled tasks so that it doesn't blow the frame budget
2018-01-20 01:42:55 -08:00
Hans Muller
677f218ef6
Added InputDecorationTheme (#14177) 2018-01-19 22:53:29 -08:00
Hans Muller
629d325284
Fix: InputDecorator fails with null border, non-null labelText (#14166) 2018-01-18 17:15:43 -08:00
Michael Goderbauer
15af86459d
Identify CheckBox and RadioButton as such (#14087)
* Identify CHeckBox and RadioButton as such

* review feedback
2018-01-17 10:23:36 -08:00
Hans Muller
7b6af52c92
Improve TextField splash management: cancel() ... confirm() (#14130) 2018-01-17 09:27:22 -08:00
Hans Muller
b94f757d77
Small simplification in RenderEditable (#14119) 2018-01-17 09:14:30 -08:00
Ian Hickson
f98b4863a7
Make debugCheckHasMaterial more useful (#14101)
Fixes https://github.com/flutter/flutter/issues/2877
2018-01-16 20:31:21 -08:00
Hans Muller
27eeb9722f
TextField splash integration (#14055) 2018-01-12 17:40:53 -08: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
Hans Muller
03e8ab1f53
Add support for a new kind of InkSplash: the "ripple" (#13986) 2018-01-09 14:43:08 -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
Hans Muller
d188a8ff6b
Update InputDecorator et al (#13734) 2018-01-08 10:36:52 -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
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