3954 Commits

Author SHA1 Message Date
ameiyil
b156a0f054 Wrap the label widget of the Chip in a Flexible. (#11523) (#11554)
* Wrap the label widget of the Chip in a Flexible. (#11523)

* This allows the Chip to constrain the size of its content after taking into account the space occupied by the avatar and delete icon (if they are present)

* Adding unit tests to evaluate correct size constraints of the Chip widget's label. (#11523)

* Minor change in formatting.

* Adjust function formatting.
2017-08-11 22:01:40 -07:00
xster
c9b0b3bb03 Fix iOS last up event velocity calculation - version 3 (#11571)
* Add synthesized property to pointer events

* test
2017-08-09 17:39:59 -07:00
Hans Muller
680d581db7 Correct handling of assets when no main asset is present (#11564) 2017-08-09 16:04:57 -07:00
xster
5ee8390e9c Let iOS back gesture listen to edge swipes only (#11559)
* Make iOS back gesture triggerable from the edge only.

* change to positioned
2017-08-09 12:35:05 -07:00
xster
2877dda572 Add a small doc suggesting usage pattern for setSystemUIOverlayStyle (#11558) 2017-08-09 12:27:11 -07:00
Mikkel Nygaard Ravn
859d8d3830 Alpha pre roll (#11560) 2017-08-09 15:52:04 +02:00
Alexandre Ardhuin
8a88e2efca Bump Dart SDK to 1.25.0-dev.9.0 (#11509)
* Bump Dart SDK to 1.25.0-dev.9.0

* add link to sdk bug
2017-08-09 14:45:55 +02:00
Michael Goderbauer
3b76e7e258 Make tear-offs cacheable for RenderSemanticsGestureHandler (#11556)
* Make tear-offs cachable for RenderSemanticsGestureHandler

Fixes https://github.com/flutter/flutter/issues/11552

* comment fix

* refactor
2017-08-08 15:46:47 -07:00
Michael Goderbauer
1d9f834fb2 a11y: handle left/right scrolls correctly (#11309)
* a11y: handle left/right scrolls correctly

* fix keep alive test

* fix scaffold test
2017-08-08 14:42:17 -07:00
Michael Goderbauer
b551f53471 Don't trigger an assert when markNeedsSemanticsUpdate is called multiple times in edge cases (#11544)
* Don't trigger assert if a render object ceases to be a semantic boundary

This bug was exposed by https://github.com/flutter/flutter/pull/11309, which caused the following assertion to trigger when scrolling in the Animation demo:

```
The following assertion was thrown during _updateSemantics():
'package:flutter/src/rendering/object.dart': Failed assertion: line 2626 pos 16: 'fragment is
_InterestingSemanticsFragment': is not true.
```

A minimal reproduction of the bug can be found in `semantics_10_test.dart`, which has been added as a regression test for the bug by this PR.

Looking at that test, here is a description of the faulty behaviour:
1. During the second `pumpWidget` call `RenderExcludeSemantics` marks itself as needing a semantics update (due to excluding going from `false` -> `true`).
2. This causes the nearest ancestor with semantics information (here: `RenderSemanticsAnnotations` representing the "container" Semantics widget) to be added to the `_nodesNeedingSemantics` list.
3. `RenderSliverList` (implementation behind ListView) marks itself as needing a semantics update (due to its changing children).
4. This causes the `RenderSemanticsGestureHandler` to be added to the `_nodesNeedingSemantics` list.
5. Next, canDrag is updated from `true` -> `false`. This means, `RenderSemanticsGestureHandler` is no longer a semantics boundary, it marks itself as needing a semantics update.
6. The nearest ancestor with semantics (`RenderSemanticsAnnotations`, the "container") is added to the `_nodesNeedingSemantics` list (this is a no-op because it is already in the list).
7. During `flushSemantics`, the `_nodesNeedingSemantics` list is walked. The first entry (`RenderSemanticsAnnotations`) updates the semantics tree to only contain the container widget and drop everything else (= no children of the ExcludeSemantics widget are walked).
8. The second entry (`RenderSemanticsGestureHandler`) is updated. It does not add any semantics of its own and is no longer a semantics boundary. Therefore, it wants to merge its descendent semantics into its parents. Here is where the assert throws because the algorithm assumes that every entry in the `_nodesNeedingSemantics` list will produce and own an `_InterestingSemanticsFragment` (passing your semantics on to your parents is not interesting).

The problem here seems to be step 4 in combination with step 5. In step 4 we rely on the fact that `RenderSemanticsGestureHandler` is an (explicit or implicit) semantics boundary and that it will be able to absorb the semantics change of `RenderSliverList`. This is true
at this time. However, in step 4 `RenderSemanticsGestureHandler` decides to no longer be an (explicit or implicit) semantics boundary and our assumption from step 5 becomes incorrect. We did nothing to correct this assumption.

This PR removes a node, that could potentially cease to be a (explicit or implicit) semantics boundary from the `_nodesNeedingSemantics` list to fix that problem. Please node that this does not mean that the node's semantics will not be updated: The node's closest ances
tor with semantics is added to that list during the `markNeedsSemanticsUpdate` call. During `flushSemantics` we will walk from this node to update the semantics of it's children (if changed), which will include the node in question.

* tiny fix

* simplify test

* analyzer fixes

* review comments
2017-08-08 14:17:20 -07:00
Michael Goderbauer
7edec88632 Allow tapping on TabBar indicator to switch tabs (#11525)
* Allow tapping on TabBar indicator to switch tabs

* fix semantics

* review comments
2017-08-08 10:14:35 -07:00
Hans Muller
9b3307a43b Add splashColor and highlightColor to IconButton (#11524) 2017-08-08 07:44:49 -07:00
Ian Hickson
02c214479f CupertinoPageRoute cleanup (#11473) 2017-08-07 16:55:37 -07:00
Chris Bracken
cb14eb989d Update IntelliJ project files for latest plugin (#11536)
The most recent Flutter IntelliJ plugin replaces FLUTTER_MODULE with
WEB_MODULE and eliminates the exclusion of packages/ directories.
Use of the packages/ directory was turned off by default months ago, and
is replaced by the .packages file.
2017-08-07 12:19:25 -07:00
paolosoares
4da5e9b249 Adds more customization options to the Chip widget (#11498)
* Adds more customization options to the Chip widget

Includes:
- Custom Tooltip message for the delete button;
- Custom background color for the chip
- Custom delete icon color
- Custom label text style

* Adds missing type annotations to tests and improves documentation.

* Tweaks labelStyle field documentation
2017-08-04 17:44:20 -07:00
Michael Goderbauer
1e53d3206b Adding tests for animationStatus (#11520)
* Adding tests for animationStatus

* remove comments

* animateTo is allways forward

* clearify docs

* review comments
2017-08-04 16:14:05 -07:00
Michael Goderbauer
ec9df2f269 Allow Duration.Zero for animateTo (#11515) 2017-08-04 13:04:51 -07:00
Ian Hickson
00e135d879 Prevent event dispatch from happening during reassemble. (#11459)
It was previously possible for event dispatch to occurr during the
brief window where the tree had been marked dirty but before it had
been relaid out by reassemble, which would cause assertions to fire if
someone did a hot reload while touching the device.
2017-08-04 12:01:35 -07:00
Michael Goderbauer
d17ae25034 Do not schedule animation if already at the target value (#11503)
* Do not schedule animation if already at the target value

* Partially fixes https://github.com/flutter/flutter/issues/11495.
* Also includes a fix for Cupertino button to always run the tap animation even if the finger is immediately lifted from the screen (uncovered by a test failure).

* refactorings

* more tests

* test clearifications

* remove Listener

* fix lints

* fix async issue
2017-08-04 10:42:08 -07:00
Jacob Richman
93a98327a8 Add Diagnosticable base class and add documentation. (#11458)
Add Diagnosticable base class and documentation
2017-08-03 09:49:44 -07:00
Yegor
89d06450e1 FadeInImage: shows a placeholder while loading then fades in (#11371)
* FadeInImage: shows a placeholder while loading then fades in

* fix dartdoc quotes

* license headers; imports

* use ImageProvider; docs; constructors

* _resolveImage when placeholder changes

* address comments

* docs re ImageProvider changes; unsubscribe from placeholder

* rebase

* address comments
2017-08-02 09:44:27 -07:00
Jason Simmons
c80d2482f9 An API that prefetches an image into the cache (#11471) 2017-08-01 17:36:38 -07:00
Michael Goderbauer
d68caaafcd post-alpha-release work (#11472) 2017-08-01 16:45:29 -07:00
Michael Goderbauer
bbcfb8d51a prepare alpha release (#11464) 2017-08-01 14:50:29 -07:00
perlatus
d1b222bef6 PopupMenuButton: create IconButton if child is Icon (#10230)
* PopupMenuButton: create IconButton if child is Icon

Otherwise the resulting button has an abnormally small and rectangular
area. With multiple PopupMenuButton(child: Icon) they get squished
together in the AppBar.

* Add separate icon argument to PopupMenuButton

* Fix style issues and tweak dartdocs

* Add tests for icon argument to PopupMenuButton

* Group icon tests and fix broken test, analyzer warnings

* Test that the correct custom icon is present

* Apply De Morgan's to work around dart analyzer bug

see: https://github.com/dart-lang/sdk/issues/30288
2017-08-01 12:32:49 -07:00
Ian Hickson
d4beaf54f0 Audit use of saveLayer (#11442)
It has recently come to light that we may have been ordering saveLayer
calls and clip calls incorrectly.
2017-07-31 12:21:42 -07:00
Devon Carew
561d17a876 add a profile() method (#11443)
* add a profile() method

* add todos
2017-07-30 16:29:28 -07:00
Ian Hickson
6655074b37 Fix documentation based on dartdoc's warnings (#11428) 2017-07-28 15:44:38 -07:00
Ian Hickson
58a28a2965 Improve some docs around WillPopScope. (#11429)
...and break the navigator<->routes circular dependency.

This is a step towards fixing https://github.com/flutter/flutter/issues/9577 but doesn't yet do so.
2017-07-28 15:10:11 -07:00
Devon Carew
ba5bb57a52 Revert "fire service protocol extension events for frames (#10966)" (#11430)
This reverts commit 4b4cabb761ec1cb7fb5f2e8ec6e850de29a03056.
2017-07-27 16:14:30 -07:00
Devon Carew
4b4cabb761 fire service protocol extension events for frames (#10966)
* fire service protocol extension events for frames

* start time in micros

* introduce a profile() function; only send frame events when in profile (or debug) modes

* moved the profile() function to foundation/profile.dart

* refactor to make the change more testable; test the change

* fire service protocol events by listening to onFrameInfo

* remove the frame event stream; add a devicelab test

* remove a todo

* final
2017-07-27 15:34:53 -07:00
Ian Hickson
87445e5913 Increase the touch slop. (#11419)
It was 8.0. It's now arbitrarily 18.0.

Changing this required adjusting some tests. Adjusting the tests
required debugging the tests. Debugging the tests required some tools
to help debugging gesture recognizers and gesture arenas, so I added
some. It also required updating some toString() methods which resulted
in some changes to the tree diagnostics logic.

Also I cleaned up some docs while I was at it.
2017-07-27 14:01:06 -07:00
Jason Simmons
838bd63182 Control raster cache flags in CustomPaint widgets (#11398) 2017-07-25 16:39:03 -07:00
Jacob Richman
9f510ebdc9 Refactor RenderObject.toStringDeep and Widget.toStringDeep code to use DiagnosticsNode (#11359)
Refactor RenderObject.toStringDeep and Widget.toStringDeep code to use DiagnosticsNode.
2017-07-25 09:25:13 -07:00
Ian Hickson
f0dec6e305 Add a debug feature to the gestures library to dump hit test results (#11346) 2017-07-24 10:10:19 -07:00
Mehmet Fidanboylu
94ed7dce41 Support automaticallyImplyLeading param in AppBar (#11264)
* Support automaticallyImplyLeading param in AppBar

* Review fixes

* fix review comments
2017-07-22 06:12:42 -07:00
Ian Hickson
dd40d0e29c Modal barrier shouldn't paint when the route is offstage. (#11347)
Fixes https://github.com/flutter/flutter/issues/11323
2017-07-21 16:39:11 -07:00
Ian Hickson
8f56f6fdd1 Add documentation and clean up code. (#11330)
Mainly, this adds documentation to members that were previously
lacking documentation.

It also adds a big block of documentation about improving performance
of widgets.

This also removes some references to package:collection and adds
global setEquals and listEquals methods in foundation that we can use.
(setEquals in particular should be much faster than the
package:collection equivalent, though both should be faster as they
avoid allocating new objects.) All remaining references now qualify
the import so we know what our remaining dependencies are.

Also lots of code reordering in Flutter driver to make the code
consistent and apply the style guide more thoroughly.
2017-07-21 16:39:04 -07:00
Collin Jackson
e0f3001fde Fix physics with NestedScrollView (#11326)
* Fix physics with NestedScrollView

* Review feedback
2017-07-21 18:42:12 -04:00
Ian Hickson
1f08bda304 AnimatedCrossFade layout customisation (#11343)
* Optimise AnimatedSize for the tight case.
* Remove `default` from a switch statement over enum (so that analyzer will complain if we add enum values).
* Adopt the Size since we use it after the child may have changed (which would throw normally).
* AnimatedCrossFade.layoutBuilder
2017-07-21 15:23:55 -07:00
gspencergoog
e4860ef0eb Fix Navigator.pop for named routes. (#11289)
* Prefix and Suffix support for TextFields

* Adding Tests

* Removing spurious newline.

* Fixing a small problem with the test

* Code review changes

* Code Review Changes

* Review Changes

* Export the new StrokeJoin enum

* Added example for line styles, and enabled line join styles.

* Reverting inadvertent change to main.dart.

* Updated due to code review of engine code

* Removed example.

* Added arguments to named routes, with test.

* Fixing some formatting

* Fixing Navigator.pop for named routes.

* Fixing comment.

* Simplifying test.

* Fixing new -> const for Text object.

* Tiny text change (also to kick a new Travis build)

* Added a more realistic test case.

* Reverting unintentional iml changes.

* Fixing trailing newline

* Removing some changes that snuck in.
2017-07-21 11:12:21 -07:00
xster
aa096b50af iOS text selection (#11224)
Extract common text selection overlay logic from Material to Widget and create a Cupertino version of the overlays
2017-07-21 11:33:17 -04:00
Jason Simmons
9d901327a4 Do not call saveLayer for physical model layers whose bounds are simple rectangles (#11324)
This is similar to an optimization done in PhysicalModelLayer::Paint in the engine
2017-07-20 17:06:57 -07:00
Michael Goderbauer
8e38848203 Fix sample code and update docs (#11257)
* fix sample code

* review comments

* review comments

* document other members for extra bonus points
2017-07-20 14:26:52 -07:00
Mary
bb15e346bb Add slider customizations (#11185)
* adds inactiveColor and showThumb to Slider

* add customizable color and showThumb tests

* remove showThumb, add negative tests
2017-07-20 11:15:22 -07:00
Ian Hickson
194bf41ee8 Don't relayout a Text if only its color changed. (#11313) 2017-07-19 17:53:32 -07:00
Jason Simmons
6dbf2269f0 Create one listener that merges the leading and trailing glow controllers and use it in each paint (#11311)
If a new listener is created for each paint, then the leading and trailing
controllers will accumulate and invoke a list of all those listeners
2017-07-19 17:32:39 -07:00
Ian Hickson
0b392665bf More debug help. (#11308) 2017-07-19 16:51:16 -07:00
Michael Goderbauer
b5c461a917 a11y: implement new SemanticsAction "showOnScreen" (v2) (#11156)
* a11y: implement new SemanticsAction "showOnScreen" (v2)

This action is triggered when the user swipes (in accessibility mode) to the last visible item of a scrollable list to bring that item fully on screen.

This requires engine rolled to flutter/engine#3856.

I am in the process of adding tests, but I'd like to get early feedback to see if this approach is OK.

* fix null check

* review comments

* review comments

* Add test

* fix analyzer warning
2017-07-19 16:40:24 -07:00
Hans Muller
d767ac0be5 Fixed a dartdoc sample code typo (#11306) 2017-07-19 16:33:55 -07:00