2756 Commits

Author SHA1 Message Date
Misha Dynin
04dfa0bf87 Merge pull request #483 from mishadynin/imagecache
Introduced ImageProvider for asynchronously loading images.
2015-11-19 13:04:08 -08:00
Adam Barth
fd1dd7fafc Merge pull request #496 from abarth/push_layer
Some paint functions were using canvas.save/restore around children
2015-11-19 12:48:10 -08:00
Misha Dynin
7436dfd177 Introduced ImageProvider for asynchronously loading images.
Updated image cache to use any ImageProvider instance.
Renamed RawImage to AsyncImage and updated the interface
to use any ImageProvider instance.
2015-11-19 12:47:04 -08:00
Adam Barth
d689362dc5 Some paint functions were using canvas.save/restore around children
This pattern breaks when using compositing because we need to lift those
operations into the compositing tree. This patch removes all the ones I could
find and adds an assert to help prevent more from getting introduced.

Fixes #191
2015-11-19 12:29:36 -08:00
Adam Barth
4fb5bcd863 Merge pull request #486 from abarth/painting_context
Refactor PaintingContext
2015-11-19 11:24:09 -08:00
Adam Barth
fc576814d5 Refactor PaintingContext
This patch simplifies PaintingContext with several goals:

1) We now call a callback instead of assuming the caller has a single child to
   paint. This change will let us handle render objects that wish to paint more
   than one child.
2) We now avoid creating lots of empty picture layers because we don't eagerly
   start recording pictures. Instead, we wait for the first caller to touch the
   canvas before creating the picture recorder.
3) We now are more consistent about which values have incorporated the painting
   offset.
2015-11-19 11:18:04 -08:00
Eric Seidel
c882d423e4 Merge pull request #491 from flutter/issue_url
Point to Github issues instead of flutter.io
2015-11-19 11:05:29 -08:00
Eric Seidel
847df52860 Point to Github issues instead of flutter.io
Fixes #489.

@sethladd
2015-11-19 10:29:29 -08:00
Adam Barth
f97a125eee Merge pull request #487 from abarth/fix_menu_crash
Popup menu in Stocks throws exception
2015-11-19 01:53:01 -08:00
Adam Barth
2d82489406 Popup menu in Stocks throws exception
Previously, we were putting a ForcedLayer just below the overlay, but that
causes trouble for routes like the popup menu that want to position themselves
inside the overlay. Instead, I've moved the ForcedLayer down into ModalRoute.

Also, rename ForcedLayer to RepaintBoundary, which is more descriptive of what
this widget does.

Fixes #485
2015-11-19 01:40:56 -08:00
Adam Barth
2e2aa748ea Merge pull request #484 from abarth/image_alignment
Add `alignment` to image widgets
2015-11-18 21:42:38 -08:00
Adam Barth
d234c65df5 Add alignment to image widgets
We already had the code to implement this feature. We just needed to plumb it
out to the widget API.
2015-11-18 20:50:37 -08:00
Ian Hickson
5734821f48 Merge pull request #479 from Hixie/yak3-snackbar-PENDING
Snackbar Refactor
2015-11-18 17:07:13 -08:00
Hixie
954713ab23 Snackbar Refactor
"showSnackBar()" is now a feature of a Scaffold. To get to a Scaffold
you either use a global key (`scaffoldKey.currentState.showSnackBar(...)`),
or you use `Scaffold.of(context)`.

Snack bars no longer have a route. They are entirely managed by the
Scaffold. Fixes #432.

Snack bars now queue up when you have several of them. Fixes #374.

Snack bars now auto-size themselves around their contents. This is step
one towards implementing multiline snack bars.

Snack bars now self-dismiss after some per-snackbar configurable period.

The self-dismissing pauses while a dialog is up above the snackbar (or
anything that uses ModalRoute). To enable this, there's now a
`ModalRoute.of(context)` API that returns the current ModalRoute, and
you will be rebuilt if you asked for this and the route's "current"
status changes. To implement this, the Navigator now rebuilds
unconditionally any time it pushes or pops a route.

Snack bars now use the curves that Android uses for snack bars.

Snack bar contents now fade in.
2015-11-18 17:01:21 -08:00
Adam Barth
67b2ee3a3b Merge pull request #477 from abarth/reprojection
Reduce paint time for Stocks drawer animation by 88%
2015-11-18 16:21:50 -08:00
Adam Barth
95eb66856e Reduce paint time for Stocks drawer animation by 88%
Now we use a forced layer around the reprojected content of the drawer, which
means we don't have to re-record it during the slide animation. This saves 2ms
per frame.

The total main-thread time for the drawer animation is now 2.0ms.
2015-11-18 16:14:54 -08:00
Adam Barth
ec5b1c1a96 Merge pull request #476 from abarth/forced_layer
Reduce record time in Stocks drawer animation by 55%
2015-11-18 15:44:35 -08:00
Adam Barth
298f4a6eca Reduce record time in Stocks drawer animation by 55%
Now we use a ForcedLayer in the navigator overlay to cache the recording for
each entry in the overlay. This mechanism just caches the display list, not the
underlying pixels.

Also, remove the "dispose" notification in the Layer tree because it was
disposing layer too eagerly. We don't actually need this notification for
anything other than eagerly freeing some C++ memory.
2015-11-18 15:31:13 -08:00
Hans Muller
57bbc496ca Merge pull request #473 from HansMuller/tabs_elevation
Corrected Card resting elevation, tabs example toolbar

Fixes #411
2015-11-18 15:13:03 -08:00
Hans Muller
0dc652bd66 Corrected Card resting elevation, tabs example toolbar 2015-11-18 14:33:08 -08:00
Adam Barth
904acc832a Merge pull request #470 from abarth/dart_timeline
Switch from ui.tracing to dart:Developer Timeline
2015-11-18 13:16:59 -08:00
Adam Barth
c964a1f1f8 Switch from ui.tracing to dart:Developer Timeline
This change will let us remove the tracing interface from dart:ui and also
makes these timeline events show up in Observatory.
2015-11-18 12:57:58 -08:00
Hans Muller
e1b721f068 Merge pull request #451 from HansMuller/shadows
Update Material shadow rendering

Shadows now render as three seprate MaskFilter.blur components per the most recent Material spec.

The shadows Map was replaced by a similar Map called elevationToShadow with entries that match the 10 elevations specifed by http://www.google.com/design/spec/what-is-material/elevation-shadows.html.

The "level" property (many classes) is now called "elevation", to match the Material spec.

BoxShadow now includes a spreadRadius parameter - as in CSS box-shadow. Renamed the BoxShadow blur property to blurRadius to further align BoxShadow with CSS box-shadow.
2015-11-18 08:17:50 -08:00
Adam Barth
fd6bc856a7 Merge pull request #458 from abarth/adb_errors
Handle adb error cases more gracefully
2015-11-18 08:17:24 -08:00
Hans Muller
d9153a13c6 Update shadow rendering
Shadows now render as three seprate MaskFilter.blur components per the most recent Material spec.

The shadows Map was replaced by a similar Map called elevationToShadow with entries that match the 10 elevations specifed by http://www.google.com/design/spec/what-is-material/elevation-shadows.html.

The "level" property (many classes) is now called "elevation", to match the Material spec.

BoxShadow now includes a spreadRadius parameter - as in CSS box-shadow. Renamed the BoxShadow blur property to blurRadius to further align BoxShadow with CSS box-shadow.
2015-11-18 07:58:28 -08:00
Adam Barth
3027497f85 Handle adb error cases more gracefully
We now print a sensible message if we can't find `dart` or `adb`. Also, we
print a sensible message if the device isn't authorized.

Fixes #380
Fixes #358
2015-11-17 23:23:30 -08:00
Adam Barth
b20a1f4a15 Merge pull request #457 from abarth/asset_error
Improve error message for non-existent asset
2015-11-17 23:07:27 -08:00
Adam Barth
ef596fdb6a Merge pull request #456 from abarth/p_to_path
Import path.dart as path rather than p
2015-11-17 23:06:15 -08:00
Adam Barth
7b75d15d46 Improve error message for non-existent asset
Now we print the name of the asset and the base directory where we looked for
the error instead of throwing a null pointer exception.

Fixes #296
2015-11-17 22:56:00 -08:00
Adam Barth
cada8b3faa Import path.dart as path rather than p
Fixes #311
2015-11-17 22:44:54 -08:00
Adam Barth
b065036a0a Merge pull request #454 from abarth/repeating_performance
Add support for repeating performances
2015-11-17 22:19:08 -08:00
Ian Hickson
50cf609ed7 Merge pull request #453 from Hixie/yak4-of
Pave the Foo.of() cowpath.
2015-11-17 22:02:49 -08:00
Adam Barth
752e341d0f Merge pull request #449 from abarth/run_build
Make flutter run_mojo imply flutter build
2015-11-17 20:53:39 -08:00
Adam Barth
49b0843c84 Add support for repeating performances
Fixes #447
2015-11-17 17:05:38 -08:00
Hixie
65d814516b Pave the Foo.of() cowpath.
I'm planning on adding more .of() functions and so to avoid further
copypasta I'm providing some general utility functions here.
2015-11-17 16:49:22 -08:00
Adam Barth
4d0520bb40 Merge pull request #450 from abarth/rename_statistics_box
Rename StatisticsBox to RenderStatisticsBox
2015-11-17 16:20:31 -08:00
Adam Barth
f6bd26a3f3 Make flutter run_mojo imply flutter build
This makes run_mojo more similar to flutter start.
2015-11-17 16:19:55 -08:00
Adam Barth
e69e6c3eb1 Rename StatisticsBox to RenderStatisticsBox
Fixes #441
2015-11-17 16:10:15 -08:00
Florian Loitsch
7d7e20fd41 Merge pull request #405 from floitschG/scheduler
Add a task scheduler.
2015-11-17 16:05:26 -08:00
Adam Barth
0760c8be7f Merge pull request #446 from abarth/improve_version
Improve flutter --version output
2015-11-17 16:05:08 -08:00
Florian Loitsch
371bf37dd9 Add a task-scheduler.
The current implementation is still pretty rudimentary.
2015-11-17 15:59:54 -08:00
Ian Hickson
74f08e731a Merge pull request #448 from Hixie/nested-focus-scopes
Fix focus bug that was breaking nested navigators
2015-11-17 15:59:16 -08:00
Hixie
ad2dccf9d2 Fix focus bug that was breaking nested navigators
Turns out we were assuming that once the global key is gone, our
listener is unregistered. It isn't.

I'm planning on adding a test as part of my nested navigator work.
2015-11-17 15:54:05 -08:00
Jason Simmons
ba10546889 Merge pull request #437 from jason-simmons/apk_package
Add a Flutter command that builds an APK using a local build of the e…
2015-11-17 15:27:34 -08:00
Adam Barth
835e7f25fc Improve flutter --version output
Sample output:

```
Flutter
Repository: git@github.com:flutter/flutter.git
Branch: master
Revision: 7be58b1ae0d4bddd181b3f44f509721ab070177f (62 minutes ago)
```

Fixes #433
2015-11-17 15:24:25 -08:00
Jason Simmons
07556429f2 Add a Flutter command that builds an APK using a local build of the engine
Example:
   cd flutter/examples/stocks
   flutter --engine-src-path /path/to/engine/src apk -o Stocks.apk -m apk/AndroidManifest.xml
2015-11-17 14:54:25 -08:00
Adam Barth
7be58b1ae0 Merge pull request #442 from abarth/run_flutter_mojo
Switch flutter run_mojo over to flutter.mojo
2015-11-17 14:23:22 -08:00
Adam Barth
b8e16d7c09 Switch flutter run_mojo over to flutter.mojo
The new flutter.mojo is ready for use.
2015-11-17 14:16:20 -08:00
Ian Hickson
2734627ad9 Merge pull request #440 from Hixie/state-heroes
Notify the previous route when pushing and popping
2015-11-17 13:25:36 -08:00
Hixie
173a71ea5b Notify the previous route when pushing and popping
This makes HeroController ignore StateRoutes when deciding where to
animate heroes to and from.
2015-11-17 13:15:10 -08:00