423 Commits

Author SHA1 Message Date
Ian Hickson
186d1e9b0d
Have the framework in charge of scheduling frames. (#13344)
...instead of the engine.
2017-12-08 16:51:59 -08:00
Ian Hickson
d25e0eb0d3
Fix tapping on a test in flutter run (#13397)
Also:

* Remove find.byIcon since it's identical to find.icon. (I sent mail to flutter-dev about this.)

* Fix IconData's operator== and hashCode, which had not been updated when we added fields.

* Add the byTooltip finder to the list of suggested finders.

* Make the suggested Key finder prettier.
2017-12-08 14:37:24 -08:00
Yegor
b80751cdc3
Make time picker accessible (#13152)
* make time picker accessible

* use new CustomPaint a11y API

* flutter_localizations tests; use bigger distance delta

* fix am/pm control; selected values

* fix translations; remove @mustCallSuper in describeSemanticsConfiguration

* exclude AM/PM announcement from iOS as on iOS the label is read back automatically
2017-12-08 14:29:28 -08:00
xster
ecf5041807
Let translucent Cupertino bars have its scaffold children automatically pad their heights - second try (#13440)
* Let translucent Cupertino bars have its scaffold children automatically pad their heights (#13194)

* Let lists automatically add sliver padding from media query. Translucent nav and tab bars leave behind media query paddings in scaffolds.

* tests

* const lint

* Rename base abstract class to generalized ObstructingPreferredSizeWidget

* review

* More docs and comments from #13317
2017-12-08 09:00:20 -08:00
Michael Goderbauer
52d06b8213 a11y cursor movement (#13405) 2017-12-07 19:06:16 -08:00
Ian Hickson
44e228eb9e
Move image logic from services/ to painting/. (#13409)
This allows the scheduler library to depend on the services library
and the painting library to depend on the scheduler library without
the services library having to depend on the scheduler library.

While I was at it I also cleaned up some of the binding logic: the
licenses logic can now be overridden (and the test library does so),
and the image cache can now be overridden as well.
2017-12-07 14:53:08 -08:00
Jacob Richman
ed54868c22
Change enum properties to use camel case instead of dash separated names
Make regular Alignment values look more like enumProperties while
leaving more complex AlignmentDirectional values unchanged.
2017-12-07 10:32:56 -08:00
Michael Goderbauer
045ee5fd0a
Do not show handles when changing text selection via keyboard (#13338)
This contains a breaking API change to `SelectionChangedHandler`.

This is part of making text input accessible on Andriod (https://github.com/flutter/flutter/issues/12785).
2017-12-06 13:37:15 -08:00
Yegor
ffb24eda56
Accessibility API for CustomPainter (#13313)
Summary:

- Add `key` field to `SemanticsNode`, while moving key into `foundation` library so it can be used by the render layer.
- Introduce `SemanticsProperties` and move many of the `Semantics` fields into it.
- Introduce `CustomPaintSemantics` - a `SemanticsNode` prototype created by `CustomPainter`.
- Introduce `semanticsBuilder` and `shouldRebuildSemantics` in `CustomerPainter`

**Breaking change**

The default `Semantics` constructor becomes non-const (due to https://github.com/dart-lang/sdk/issues/20962). However, a new `const Semantics.fromProperties` is added that still allowed creating constant `Semantics` widgets ([mailing list announcement](https://groups.google.com/forum/#!topic/flutter-dev/KQXBl2_1sws)).

Fixes https://github.com/flutter/flutter/issues/11791
Fixes https://github.com/flutter/flutter/issues/1666
2017-12-04 19:49:14 -08:00
krisgiesing
898646f0f0
Separate focus management by build owner (#13334)
Separate focus management by build owner

Currently the focus manager is held by the singleton WidgetBinding.
This change places a focus manager in each build owner object,
which allows clients to run offscreen pipelines without disturbing
focus management for the main UI.
2017-12-04 15:04:41 -08:00
xster
2d6f268df6 Revert "Let translucent Cupertino bars have its scaffold children automatically pad their heights (#13194)" (#13317)
This reverts commit 5c4ffa13a6c4f00ea6f752866e9393ee6395d469.
2017-12-01 21:18:36 -08:00
Chris Bracken
3efbe00fa6
Correct handling for alwaysUse24HourFormat in MediaQuery (#13287)
1. Ensure that this value is defaulted to the value associated with the
   context rather than re-defaulted to false.
2. Add this value to operator==, hashCode, toString methods.
2017-11-30 18:26:07 -08:00
Chris Bracken
a1b22b17de
Don't remove view insets in removePadding ctor (#13286)
This will be followed by a patch that supports independently removing
padding and view insets.
2017-11-30 17:41:09 -08:00
xster
5c4ffa13a6
Let translucent Cupertino bars have its scaffold children automatically pad their heights (#13194)
* Let lists automatically add sliver padding from media query. Translucent nav and tab bars leave behind media query paddings in scaffolds.

* tests

* const lint

* Rename base abstract class to generalized ObstructingPreferredSizeWidget
2017-11-30 13:55:30 -08:00
Chris Bracken
d957c8f040
Add EdgeInsets, MediaQuery support for view insets (#13272)
* Add MediaQuery support for view insets

Also updates EdgeInsets documentation to reflect WindowPadding's use for
both padding and view insets.

See engine commits:
  flutter/engine#4403
  flutter/engine#4406
2017-11-30 13:29:59 -08:00
Michael Goderbauer
6493c8b43d
Adapt markNeedsSemanticsUpdate algorithm to new semantics tree compiler (#13274)
* ensures that only semantics boundaries will be added to owner._nodesNeedingSemantics as expected by compiler.
* no longer throws assert if markNeedsSemanticsUpdate is called on non-semantic-boundary render object with a non-semantic-boundary parent.
* Fixes #13109.
* removes onlyLocalUpdates from markNeedsSemanticsUpdate as its no longer needed.
2017-11-30 12:18:33 -08:00
xster
738e62cb2e
Let iOS have a minimum scroll movement threshold to break before motion starts (#13166)
* Add a minimum distance that needs breaking on iOS each time scrolls stopped.

* Testing and tests

* tweak docs

* review
2017-11-30 11:11:52 -08:00
Jacob Richman
277001d1a8
Inspector JSON protocol to support Flutter IntelliJ Plugin tree view. (#12932) 2017-11-28 15:06:16 -08:00
Ian Hickson
2db0c25f82
Dismissible RTL (#13137)
Fix the dismissible demo in the gallery (make it actuall update when you pick something from its menu; give it a better affordance for resetting once you've dismissed everything).

Improve some docs.

Fix various flinging bugs with dismissible. Add tests for those cases.

Add a feature to flutter_test to support a drag-then-fling gesture (used by the flinging tests).
2017-11-22 15:20:15 -08:00
Alex
e6119282b7 feat: add optional headers param to network image (#13128)
* feat: add optional headers params to network image

* fix: addressed comments

* feat: add test

* style: format code
2017-11-22 15:19:52 -08:00
Pascal Welsch
891a218002 Add missing onDragCompleted to LongPressDraggable (#13119)
* Add missing onDragCompleted to LongPressDraggable

* Add test for LongPressDraggable onDragStarted and onDragCompleted
2017-11-22 15:18:28 -08:00
amirh
155a4cab18
Don't keep image stream listeners when TickerMode is disabled. (#13106)
This makes sure that we don't decode frames when we don't need to run
the animation.

For example, prior to this CL: an animated image in a page that is not
currently at the top of the page stack (it is covered by another page),
will keep the the image stream listener, and thus frames will still be
decoded.
2017-11-22 13:45:55 -08:00
amirh
5fc8eb8263
Use MultiFrameImageStreamProvider in the various image providers. (#12997) 2017-11-17 13:48:28 -08:00
Greg Spencer
0259be90b8
Fix spelling errors in all the dartdocs. (#13061)
I got tired of drive-by spelling fixes, so I figured I'd just take care of them all at once.

This only corrects errors in the dartdocs, not regular comments, and I skipped any sample code in the dartdocs. It doesn't touch any identifiers in the dartdocs either. No code changes, just comments.
2017-11-17 10:05:21 -08:00
Ian Hickson
c97fc2063f
ExpansionPanel animation fixes (#13032)
Previously, ExpansionPanel would do weird things if interacted with
when it was already animating. This is fixed and there's now a test.

Also:

 * Minor fixes to make the gallery work in RTL, not that there's
   any way to see that without hard-coding the framework to RTL.
   But at least I'll be less annoyed when doing that.

 * Some trivial code and documentation cleanup.
2017-11-16 10:22:50 -08:00
Jeff McGlynn
473d75a6e3 PageView ballistics overshoot the page on some devices (#12884)
* PageView ballistics overshoot the page on some devices

On some devices, such as Cupertino “Plus”-sized devices, scrolling left on the first page of a PageView will overshoot the first page and land on the second page.

The issue is that applyContentDimensions incorrectly detects a content size change due to a floating point comparison on certain screen sizes (18257.400000000005 vs 18257.4)

To fix this, perform a nearEqual comparison in applyContentDimensions.

* Apply style changes to nearEqual for code review feedback.
2017-11-14 14:34:43 -08:00
Michael Goderbauer
736b414f13
Add text field content to semantics (#13000)
* Add text field content to semantics

* remove controller dup
2017-11-14 09:52:24 -08:00
Ian Hickson
9d0041c982
AnimatedAlign (#12871) 2017-11-13 11:31:15 -08:00
Mikkel Nygaard Ravn
7298f9ca0b
Expose isMethodCall matcher in flutter_test (#12942) 2017-11-10 08:09:14 +01:00
xster
152f5258b0
Let RenderSliverFixedExtentBoxAdapter handle disappearing top items (#12919)
* fix with first part of test

* Test without reshifting

* Let sliver fixed extend list also handle disappearing top items.
2017-11-08 17:06:46 -08:00
Yegor
a75f003b9c
add within matcher for comparing metric-space values (#12908) 2017-11-08 13:36:16 -08:00
Hans Muller
c4cdbf86eb
Transform Widget alignment is AlignmentGeometry (#12870)
* a => an
2017-11-07 14:43:57 -08:00
Chris Bracken
4e2e69797a
Eliminate MethodCall hashCode and equals (#12277)
Since MethodCall equality checks are limited to test scenarios, this
patch replaces them with an equivalent test matcher. At present
MethodCalls are always used in scenarios where indentity-based
equality/hashing is appropriate.

This change avoids an assertion failure when MethodCall args are
Iterable (possible since args are of type dyanmic), and hashValue() from
dart:ui asserts that its input is not an Iterable.

The alternative of implementing support for deep equality in dart:ui was
rejected on the basis that if we're to encourage performant code,
expensive checks should be obviously-expensive to the author.
2017-11-06 09:52:57 -08:00
amirh
616a2ad6da
Move semantics stuff from rendering to a top-level semantics/ library (#12793) 2017-11-02 17:38:28 -07:00
Michael Goderbauer
1d4607ff04
Identify text fields as such to a11y (#12804)
* Identify text fields as such to a11y

* focus

* make travis happy

* review comments
2017-11-02 10:08:56 -07:00
Ian Hickson
8fd20b5deb
Text Painting Fuzzer (#12813)
Various improvements (in particular a new painting fuzzer) to the text manual test.

Some additional documentation.

A fix to Stack to remove an LTR bias: make unpositioned children apply "alignment".

Some more debugging information on RichText and Text.

A fix to the flutter tool to not crash when an RPC call throws an exception.
2017-11-01 15:04:43 -07:00
Roberto Scaramuzzi
80e159d469
Add acceptNotification parameter to RefreshIndicator and OverscrollIn… (#12716)
* Add acceptNotification parameter to RefreshIndicator and OverscrollIndicator

* Various fixes suggested by reviewer

* Fixed lint errors
2017-11-01 10:29:37 -07:00
Michael Goderbauer
9184dfba14
Support value announcement for increase/decrease (#12741)
* Support value announcment for increase/decrease

* ++

* review comments about docs
2017-10-31 14:22:33 -07:00
Michael Goderbauer
e3327af22a Add option for custom actions to Semantics widget (#12695)
* Add option for custom actions to Semantics widget

* review comments

* review comment
2017-10-25 22:14:12 -07:00
amirh
aff731c0a6 Add an AlignTransition widget (#12724) 2017-10-25 15:32:46 -07:00
Alexandre Ardhuin
c9b94e1412 enable lint prefer_const_constructors_in_immutables (#12693)
* enable lint prefer_const_constructors_in_immutables

* remove LabeledGlobalKey._
2017-10-25 11:20:36 +02:00
Alexandre Ardhuin
28366002d9 enable lint prefer_foreach (#12674)
* enable lint prefer_foreach

* fix tests
2017-10-25 08:25:44 +02:00
Jeff McGlynn
021a268852 Add a pageSnapping parameter to PageView (#12596)
* Add a pageSnapping parameter to PageView

Setting the pageSnapping property allows extending the PageView scroll
behavior, such as custom scroll animations or custom scroll bars.

* Apply pageSnapping CR feedback

- Remove _kNonSnappingPhysics, use null instead.
- Minor code style fixes.
- It turns out that the forth state is Arkansas, not California.
2017-10-24 17:09:33 -07:00
Greg Spencer
ea679171e5 Add Material character counter to TextField. (#12648)
This adds an optional character counter and maxLength parameter to the TextField, as described in the Material Design Spec.

The counter text and style in the input decorator may be specified, but will default to the "right thing" if not specified, where the "right thing" is a counter that looks like "3 / 10" (if there are three characters entered into a field where maxLength is set to 10).

To limit the number of characters entered, I created a LengthLimitingTextFormatter that will limit the number of characters (Unicode runes) in the input, which can be used independently. The formatter is applied after the other formatters supplied (if any). Even if there is no decorator, the text field will limit the number of characters input if maxLength is set.

If maxLengthEnforced is set to false (it defaults to true), then the max length will not be enforced. In that case, if the text exceeds the length, then the counter will turn red, and it will make the divider turn red.
2017-10-24 14:49:39 -07:00
Michael Goderbauer
c3e049613d Support for accessibilityHint and accessibilityValue (#12677)
* Support accessibility labels and hints

* more tests

* ++

* review comments

* fix merge

* test fix
2017-10-24 11:17:51 -07:00
Michael Goderbauer
141a6355ce Performance improvements for semantics tree compilation (#12682)
* Without checking compatibility

* ++

* ++

* ++

* more docs
2017-10-23 17:33:46 -07:00
xster
52815b2224 Revive "Add a way to get the furthest Navigator" (#12647)
* Revert "Construct the accessibility channel's events by SemanticsEvent. (#12638)"

This reverts commit 4c1150dd01c0efb55278d35a9ce1467a65c45e40.

* Revert "Revert "Add a way to get the furthest Navigator" (#12608)"

This reverts commit 79f13c36258380408eb1a1738178b964be3bf7f3.
2017-10-23 12:24:19 -07:00
Ian Hickson
05a22fe0ab FittedBox RTL (#12662) 2017-10-23 11:05:23 -07:00
amirh
4c1150dd01 Construct the accessibility channel's events by SemanticsEvent. (#12638)
This refactoring allows us to have SemanticsEvent object for events that are not
associated with an accessibility node id.
And allow https://github.com/flutter/flutter/pull/12594 to be a bit
cleaner with a single place for accessibility channel documentation (the
SemanticsEvent classes documentation).
2017-10-19 18:31:58 -07:00
xster
79f13c3625 Revert "Add a way to get the furthest Navigator" (#12608)
* Revert "BoxDecoration.borderRadius and RoundedRectangleBorder.borderRadius RTL (#12603)"

This reverts commit 07908916003fdc9078275b75eee40090f36b1cef.

* Revert "Copy snapshot file into assets (#12523)"

This reverts commit f6135107bcba92f02df6572d1a8be5e93863e6f6.

* Revert "Add a rootNavigator option to Navigator.of (#12580)"

This reverts commit 822084b235eab2f899a89706c622c08512295a4b.
2017-10-19 17:34:39 -07:00