3446 Commits

Author SHA1 Message Date
Greg Spencer
7be0bd1ce9
Move geometric sort for semantics to the framework side. (#14539)
This adds geometric sort ordering back in for semantics nodes that don't have a sort order defined.

With this change, widgets that either have no sort order, or have an equivalent sort order, will be compared geometrically. The comparison is between the two starting corners, so it is TextDirection-aware: parent nodes that are set to have LTR text will compare upper left corners of their children, and upper right when set to RTL.

Also fixed a bug in the Transform widget that didn't mark modified nodes as needing a semantics update.
2018-02-12 20:53:32 -08:00
Greg Spencer
bfc6833459
Swap nextNodeId for previousNodeId, since setTraversalBefore is broken. (#14607)
It seems that setTraversalBefore doesn't work as well as setTraversalAfter for some reason, although I'm using them the same way. Some apps would lock up TalkBack when traversing if setTraversalBefore was set, but not with the equivalent setTraversalAfter.

It's not entirely clear why this is, but I'm going with this to at least get it fixed for apps we know about.

Fixes #14600
2018-02-12 14:10:39 -08:00
Michael Goderbauer
04d3ecb87e
Add accessibilityFocus and loseAccessibilityFocus as a11y actions (#14603) 2018-02-09 19:57:02 -08:00
Michael Goderbauer
72517f0a0a
Encode scrolling status into tree (#14536) 2018-02-09 18:33:50 -08:00
Alexander Aprelev
0f3aa50071
Roll engine with rolled dart (#14538)
* Roll engine to pre-dart roll

* Roll engine to pick up updated dart

* Apply Map changes

* Move to dev.22

* Fix some analysis issues

* Silent analyzer

* More consts

* More const massaging

* Yet more const massaging

* Yet more const massaging

* Use nonconst()
2018-02-09 10:33:24 -08:00
Vyacheslav Egorov
d20125c3da
Change GlobalObjectKey.toString to strip away State<StatefulWidget>. (#14558)
This allows const GlobalObjectKey(0) to be concisely formatted as
[GlobalObjectKey int#0000] in both Dart 2 and Dart 1 modes.

Without this change it would be formatted as
[GlobalObjectKey<State<StatefulWidget>> int#0000] because in Dart 2
types are instantiated to bounds.

In addition to retaining general readability this also fixes few
tests that rely on this short string representation (see
test/widgets/global_keys_duplicated_test.dart).
2018-02-09 09:51:58 +01:00
asiva
8acb68888c Fix typo. 2018-02-07 21:28:18 -08:00
asiva
bdc6f10293 Fix issues. 2018-02-07 21:28:18 -08:00
asiva
e122d5d1d5 Revert "Fixes in flutter framework code to address the mixin issue raised"
This reverts commit 1c236d52454fd6c72c9b49b7b06f08c5ba36ec66.
2018-02-07 21:28:18 -08:00
amirh
4ae1b5f415
Paint the shape border in the Material widget (#14383) 2018-02-07 15:18:04 -08:00
Jason Simmons
3e1ef19fcb
Fix a type error in Scrollable.ensureVisible (#14525)
Fixes https://github.com/flutter/flutter/issues/14492
2018-02-07 14:17:08 -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
Chris Bracken
4b878dc687
Add minimum insets to SafeArea (#14505)
As a convenience, this adds a set of minimum padding to apply. The
greater of the minimum padding and the media padding is applied to each
edge.
2018-02-06 15:27:39 -08:00
Chris Bracken
35c2267ffe
Add SliverSafeArea widget (#14499)
A SafeArea-like widget that applies a SliverPadding instead of a
Padding.
2018-02-06 14:28:58 -08:00
Greg Spencer
14309b9311
Adds the semantic node traversal API. (#14060)
This adds an API for defining the semantic node traversal order.

It adds a sortOrder argument to the Semantics widget, which is a class that can define a list of sort keys to sort on. The keys are sorted globally so that an order that doesn't have to do with the current widget hierarchy may be defined.

It also adds a shortcut sortKey argument to the Semantics widget that simply sets the sortOrder to just contain that key.

The platform side (flutter/engine#4540) gets an additional member in the SemanticsData object that is an integer describing where in the overall order each semantics node belongs. There is an associated engine-side change that takes this integer and uses it to order widgets for the platform's accessibility services.
2018-02-06 13:24:16 -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
Volodymyr Lykhonis
b88ba79c04 Customized Cupertino navigation bar. (#14307)
- Add override of border color of CupertinoNavigationBar
- Add background color to CupertinoPageScaffold
2018-02-05 14:01:55 -08:00
Ian Hickson
e810bee6e5
Fix scrolling of multiple SliverLists and SliverGrids (#14449)
* Fix scrolling of multiple SliverLists and SliverGrids

* Update sliver_fixed_extent_list.dart

* Update sliver_grid.dart
2018-02-05 13:56:28 -08:00
Alexandre Ardhuin
3c379aaf43
whitespace cleanup (#14458) 2018-02-05 22:20:21 +01:00
Hans Muller
f5dea9325b
Material button update (#14410) 2018-02-05 12:59:45 -08:00
Jacob Richman
9d302ac46b
Widget Inspector support for tracking Widget creation locations. (#14056)
* Widget Inspector support for tracking Widget creation locations.
2018-02-05 10:25:28 -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
Siva Annamalai
5c2323fc3e address review comment. 2018-01-31 21:02:40 -08:00
Siva Annamalai
337ad9dc9e Add meta tag @optionalTypeArgs to the mixin classes where we don't expect a generic type to be specified at the points where the mixin is applied. This suppresses the analyzer warnings. 2018-01-31 21:02:40 -08:00
Siva Annamalai
1c236d5245 Fixes in flutter framework code to address the mixin issue raised
in https://github.com/dart-lang/sdk/issues/31984
2018-01-31 21:02:40 -08:00
Ian Hickson
17c50693b1
Rationalize the ScrollMetrics cloning logic (#14281) 2018-01-31 17:10:56 -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
Vyacheslav Egorov
340d9e00cf
Fix various strong mode issues. (#14284) 2018-01-31 08:21:32 +01: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
b7f6be6ff2 Add onLeave callback to DragTarget (#14103)
* Add a callback that fires when a Draggable leaves a DragTarget.  This enables the DragTarget to manage its state from entry to exit.

* It helps to have a null check here

* Add test for onLeave callback and add verbiage to onWillAccept explaining the callback lifecycle of a DragTarget.
2018-01-29 22:48:35 -08:00
Ankur Kedia
47e52b827f adds properties to dismissible widget (#14162)
* adds crossAxisEndOffset and rollbackDuration properties to dismissible widget

* re-added removed license comment

* corrected license comments

* Adds test for rollbackDuration and crossAxisEndOffset

* added tests and comments

* modified tests for dismissible widgets
2018-01-29 22:45:30 -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
Ian Hickson
7701127bdd
Fix shadows in NestedScrollView (#14279)
* Fix shadows in NestedScrollView

The previous logic (and especially the previous test) wasn't quite right.

* Update nested_scroll_view.dart
2018-01-26 22:36:00 -08:00