5475 Commits

Author SHA1 Message Date
pq
8bc06aa9b3 More type annotations for literals.
The `flutter` package gets more types!

Follow-up from: https://github.com/flutter/flutter/pull/3727.
2016-05-04 10:10:08 -07:00
Devon Carew
1d4cda5d13 fix the benchmark file written by the analyze command (#3725) 2016-05-04 10:01:39 -07:00
Phil Quitslund
c2363c88a6 Merge pull request #3727 from pq/annotate_literals
Literals get type annotations.
2016-05-04 09:37:53 -07:00
pq
bcede8dffb Literals get type annotations.
As per the recent fix to the `always_specify_types` lint (https://github.com/dart-lang/linter/issues/199), literal maps and lists are now expected to be explicitly typed.

Running that lint on the repo identifies quite a few spots to update.  This focuses on `flutter_driver` and `flutter_sprites` (somewhat arbitrarily) but the changes are fairly representative.

Note there are a number of places where I made a quick judgement on how specific to make the types.  Feedback on those is welcome.  (Especially as we move forward with more.)
2016-05-04 09:18:31 -07:00
Ian Hickson
1e093701b7 Save some memory by only storing one copy of the animation object... (#3724)
Turns out we were storing the same object in the base class and the
subclass. For pretty much every AnimatedWidget subclass.
2016-05-03 23:49:35 -07:00
Adam Barth
7712e583a4 Add missing dartdocs from material.dart (#3709)
Making progress towards document all public APIs in material.dart. We're still
missing a few odds and ends (as well as missing docs in tabs.dart,
tooltip.dart, and two_level_list.dart).
2016-05-03 21:07:29 -07:00
Hans Muller
a9b965cb9b Gallery demo start-time performance test (#3655)
*  Gallery demo start-time performance test
2016-05-03 17:37:10 -07:00
Viktor Lidholt
76b04cddde Refactor sprite physics, part 1 (#3711) 2016-05-03 17:16:36 -07:00
Yegor
4d88752c39 [tools] delete profile_startup.dart (#3703)
The same can now be achieved using `flutter run --trace-startup --no-checked`.
2016-05-03 15:52:15 -07:00
Devon Carew
713830964c make the usage text more visible (#3693)
* make the usage text more visible

* update the look of the usage text
2016-05-03 15:17:30 -07:00
Adam Barth
bf0f38c615 Add more dartdoc to material.dart (#3702)
This patch completes the circuit on this library. The next step is to go
through and add docs to anything we missed.
2016-05-03 15:01:46 -07:00
Ian Hickson
50626e9b21 ClipPath (#3695)
* ClipPath

* Add a test for ClipOval and ClipPath
2016-05-03 14:45:36 -07:00
Ian Hickson
961f5cd266 Fix framework-side time in profile data (#3706) 2016-05-03 14:45:22 -07:00
Adam Barth
00e0075f8b PathProvider.getTemporaryDirectory() never resolves (#3705)
We were looking for this service in the wrong service provider.

Fixes #3683
2016-05-03 14:35:00 -07:00
Ian Hickson
d8522191ba Update engine.version (#3704) 2016-05-03 14:16:07 -07:00
Collin Jackson
57d6e8514b Merge pull request #3701 from collinjackson/assets
Support for putting assets in android/assets folder (like ios/Resources)
2016-05-03 14:08:47 -07:00
Ian Hickson
4b401a3e75 Track the worst frame in perf tests (#3642)
* Track the worst frame in perf tests

* Use backticks in "/// Returns `null` if"
2016-05-03 14:00:10 -07:00
Ian Hickson
4b6af7a42f Provide framework-only timing information (#3699)
This makes it easier to generate charts that show the engine time and
the framework time separately.
2016-05-03 13:51:22 -07:00
Collin Jackson
80ef81422d Support for putting assets in android/assets folder (like ios/Resources) 2016-05-03 13:32:35 -07:00
Devon Carew
00062761be filter an assertiond log message from ios (#3692) 2016-05-03 12:46:46 -07:00
Adam Barth
93926d2220 More dartdoc for material.dart (#3690)
Also, move the default theme transition duration into theme.dart.
2016-05-03 12:25:51 -07:00
Hans Muller
1a2f19b7fa Add a non-null builder assert to Builders, renamed IndexedBuilder (#3694) 2016-05-03 11:22:26 -07:00
Hans Muller
b38927e70e LayoutBuilder widget (#3670)
* LayoutBuilder Widget
2016-05-03 10:35:24 -07:00
Devon Carew
c9010c91f6 fix analysis errors (#3677)
* fix analysis errors

* review comments; fix test

* re-add an export for debugPrint
2016-05-03 09:09:00 -07:00
Eric Seidel
76724e857f Merge pull request #3679 from eseidelGoogle/aot_error
Add note about explicit `pub get` needed.
2016-05-03 08:30:55 -07:00
Ian Hickson
7020e6cb93 Fix Inherited bugs (#3657)
Fixes https://github.com/flutter/flutter/issues/3493

 - rebuild stateless widgets that have dependencies when their ancestors change but they don't

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

 - rebuild widgets that tried to inherit from a widget that didn't exist, when the widget is added

This adds a pointer and a bool to Element, which isn't great. It also adds a more or less complete tree walk when you add a new Inherited widget at the top of your tree, which isn't cheap.
2016-05-03 00:06:29 -07:00
Eric Seidel
f58fa766c3 Add note about explicit pub get needed.
@devoncarew @jason-simmons
2016-05-02 16:14:35 -07:00
Adam Barth
6072552868 AspectRatio has incorrect intrinsic sizing (#3666)
If there's a max height or width, we should factor that into the intrinsic
sizing for the other dimension.
2016-05-02 15:51:45 -07:00
Adam Barth
0910a78fd6 Improve dartdoc for SystemChrome and SystemSound (#3669)
We need to import these enums in order for the dartdoc to linkify correctly.

Fixes #3668
2016-05-02 15:51:35 -07:00
Devon Carew
cd8f65dfb3 add an infra/docs.sh script (#3674) 2016-05-02 14:33:39 -07:00
Jason Simmons
30d8dc1399 Check the adb install output for errors and stop "flutter run" if package installation fails (#3672) 2016-05-02 14:11:40 -07:00
Adam Barth
5460e94488 Add docs to Element.performRebuild (#3667) 2016-05-02 13:38:07 -07:00
Jason Simmons
f161f239ef Download Android AOT tools to the artifacts cache and build APKs using these tools (#3649)
Also update the engine to a build where these tools have been uplaoded
2016-05-02 11:40:32 -07:00
Adam Barth
21f1827bad Add a sensible error message when jarsigner is missing (#3665)
Fixes #3624
2016-05-02 10:27:34 -07:00
Devon Carew
a807b009ad Re add large sample (#3661)
* Revert "Revert "Mega gallery (#3647)" (#3659)"

This reverts commit ea62d31fde20ab109d51aa9d0104583c414b13a4.

* fix the dev/dartdoc.dart script
2016-05-01 15:52:51 -07:00
Adam Barth
5a3327bb7b Update engine.version (#3660) 2016-05-01 15:37:41 -07:00
Adam Barth
ea62d31fde Revert "Mega gallery (#3647)" (#3659)
This reverts commit 9497fb56d44b21a701b9c9da37af8f7c36fe2120.

This patch broke the dartdoc step on the bots.
2016-05-01 14:58:40 -07:00
Devon Carew
66c868e492 Update pubspec.yaml
Pick up a bug fix to the `usage` package.
2016-04-30 08:19:36 -07:00
Devon Carew
9497fb56d4 Mega gallery (#3647)
* working on a large benchmark app

* build a 100k saple app

* print sizes of other libs; scale to 60k lines

* test the generated app on travis
2016-04-29 21:47:17 -07:00
Andrew Wilson
1c053b7d0a Fix NetworkImage by always auto following redirects. (#3653) 2016-04-29 20:53:53 -07:00
Adam Barth
b2fa6c250a Fix the padding and space for FlatButton and RaisedButton (#3650)
Instead of incorporating the margin into the button, introduce a ButtonBar
widget that supplies the proper spacing between the buttons. Also, make these
buttons more configurable via ButtonTheme so that dialogs can change the
minWidth and padding of the buttons as required by the spec.

Fixes #1843
Fixes #3184
2016-04-29 16:13:25 -07:00
Adam Barth
f8d76d1851 Center the "slow mode" banner (#3651)
Also add dartdocs.
2016-04-29 16:12:56 -07:00
Viktor Lidholt
ed40dd3577 Initial set of tests for flutter sprites (#3643)
* Initial set of tests for flutter sprites
2016-04-29 14:46:09 -07:00
Jason Simmons
01a27ca4ae Build ahead-of-time compiled snapshots and incorporate them into Android APKs (#3592)
This currently requires a local build of the engine.

Run "flutter build aot" to build an AOT snapshot.
Run "flutter build apk --profile" to build a "profile mode" APK that uses AOT.
2016-04-29 13:44:01 -07:00
Devon Carew
53c07045f2 create a service extension to terminate an app (#3634) 2016-04-29 13:34:31 -07:00
Yegor
7c017898da invert first frame condition to make it positive (#3641) 2016-04-29 13:34:06 -07:00
Ian Hickson
91dd969966 Refactor the test framework (#3622)
* Refactor widget test framework

Instead of:

```dart
  test("Card Collection smoke test", () {
    testWidgets((WidgetTester tester) {
```

...you now say:

```dart
  testWidgets("Card Collection smoke test", (WidgetTester tester) {
```

Instead of:

```dart
  expect(tester, hasWidget(find.text('hello')));
```

...you now say:

```dart
  expect(find.text('hello'), findsOneWidget);
```

Instead of the previous API (exists, widgets, widget, stateOf,
elementOf, etc), you now have the following comprehensive API. All these
are functions that take a Finder, except the all* properties.

* `any()` - true if anything matches, c.f. `Iterable.any`
* `allWidgets` - all the widgets in the tree
* `widget()` - the one and only widget that matches the finder
* `firstWidget()` - the first widget that matches the finder
* `allElements` - all the elements in the tree
* `element()` - the one and only element that matches the finder
* `firstElement()` - the first element that matches the finder
* `allStates` - all the `State`s in the tree
* `state()` - the one and only state that matches the finder
* `firstState()` - the first state that matches the finder
* `allRenderObjects` - all the render objects in the tree
* `renderObject()` - the one and only render object that matches the finder
* `firstRenderObject()` - the first render object that matches the finder

There's also `layers' which returns the list of current layers.

`tap`, `fling`, getCenter, getSize, etc, take Finders, like the APIs
above, and expect there to only be one matching widget.

The finders are:

 * `find.text(String text)`
 * `find.widgetWithText(Type widgetType, String text)`
 * `find.byKey(Key key)`
 * `find.byType(Type type)`
 * `find.byElementType(Type type)`
 * `find.byConfig(Widget config)`
 * `find.byWidgetPredicate(WidgetPredicate predicate)`
 * `find.byElementPredicate(ElementPredicate predicate)`

The matchers (for `expect`) are:

 * `findsNothing`
 * `findsWidgets`
 * `findsOneWidget`
 * `findsNWidgets(n)`
 * `isOnStage`
 * `isOffStage`
 * `isInCard`
 * `isNotInCard`

Benchmarks now use benchmarkWidgets instead of testWidgets.

Also, for those of you using mockers, `serviceMocker` now automatically
handles the binding initialization.

This patch also:

* changes how tests are run so that we can more easily swap the logic
  out for a "real" mode instead of FakeAsync.

* introduces CachingIterable.

* changes how flutter_driver interacts with the widget tree to use the
  aforementioned new API rather than ElementTreeTester, which is gone.

* removes ElementTreeTester.

* changes the semantics of a test for scrollables because we couldn't
  convince ourselves that the old semantics made sense; it only worked
  before because flushing the microtasks after every event was broken.

* fixes the flushing of microtasks after every event.

* Reindent the tests

* Fix review comments
2016-04-29 13:23:27 -07:00
Yegor
e60a624a4a fix first frame reporting logic (#3640) 2016-04-29 13:21:59 -07:00
Adam Barth
870c361915 Add ergonomic wrappers for Flutter platform services (#3636)
These wrappers also give us a chance to document what these services do.

Fixes #3164
2016-04-29 12:15:04 -07:00
Adam Barth
5497ba182f Update engine (#3637)
Turns out there were more clients of the old paragraph API than I expected.
This patch migrates them to the new API.
2016-04-29 11:19:35 -07:00