6027 Commits

Author SHA1 Message Date
Todd Volkert
84bdb326b4 dev/bots/test.sh += robustness (#4682) 2016-06-22 10:18:24 -07:00
pq
f452551d16 Bump Dart SDK to 1.18.0-dev.2.0.
Gets a bunch of fixes.  Most notably a VM that has background compilation re-enabled (and stable).  This should win us (back) a ~17% improvement of analysis times (CLI and server).

See: https://github.com/dart-lang/sdk/issues/26697 for more context.
2016-06-22 10:01:48 -07:00
Adam Barth
bf740cf46b Restore SystemChrome.setEnabledSystemUIOverlays (#4680)
I erroneously removed this function in an earlier patch. Also, export
SystemUiOverlayStyle because we expose that enum in the SystemChrome
API.
2016-06-22 16:45:47 +02:00
Hans Muller
7c3a943548 Remove the gallery Live Demo buttons, etc (#4678) 2016-06-21 17:28:41 -07:00
Adam Barth
a8f6f44a55 Update engine to include new version of Mojo (#4668)
This required switching from the Future-based bindings to the callback-based
bindings.
2016-06-21 15:53:47 -07:00
Jason Simmons
f307735edc Remove the assembleFlx accessor and FLX asset path overrides (#4671)
This is now obsolete
2016-06-21 15:29:34 -07:00
Hans Muller
b81229b5f1 DropdownButton layout (#4582) 2016-06-21 15:20:35 -07:00
Hans Muller
0e38cba95f Make the limit that defines Row/Column free space configurable (#4646) 2016-06-21 14:29:22 -07:00
Jason Simmons
fad7cf59e3 Update hello_services for a change to the message listener API (#4670) 2016-06-21 14:26:30 -07:00
Adam Barth
97c1f0b7b2 Route.didMount should throw a useful error message (#4665)
The error code path wasn't actually getting the point where it would throw the
useful error message. Also, fix error recovery when runApp fails.

Fixes #4655
2016-06-21 14:10:13 -07:00
Jason Simmons
c823acc345 Pass a package map to gen_snapshot instead of a packages symlink directory (#4666) 2016-06-21 13:47:24 -07:00
Jason Simmons
d4ecd0235d Update engine version (#4663) 2016-06-21 12:44:43 -07:00
Todd Volkert
db0efec505 Make bots.sh print failure for when it's run locally (#4654) 2016-06-21 10:50:05 -07:00
Ali Ghassemi
14f8d91803 Fixing sprites' image map regression. (#4628)
* Fixing sprites' image map regression.
* Smoke tests for ImageMap
2016-06-21 10:42:12 -07:00
Adam Barth
4a79d6f1f4 Update engine.version (#4658) 2016-06-21 10:06:46 -07:00
Todd Volkert
2e48c1a1bb Simplify SystemChrome.setSystemUIOverlayStyle() (#4653)
* Only schedule overlay style update microtask if needed

* Simplify API
2016-06-21 08:28:29 -07:00
Ian Hickson
e502e9c8f8 ImageIcon (#4649)
Anywhere that accepted IconData now accepts either an Icon or an
ImageIcon.

Places that used to take an IconData in an `icon` argument, notably
IconButton and DrawerItem, now take a Widget in that slot. You can wrap
the value that used to be passed in in an Icon constructor to get the
same result.

Icon itself now takes the icon as a positional argument, for brevity.

ThemeData now has an iconTheme as well as a primaryIconTheme, the same
way it has had a textTheme and primaryTextTheme for a while.

IconTheme.of() always returns a value now (though that value itself may
have nulls in it). It defaults to the ThemeData.iconTheme.

IconThemeData.fallback() is a new method that returns an icon theme data
structure with all fields filled in.

IconTheme.merge() is a new constructor that takes a context and creates
a widget that mixes in the new values with the inherited values.

Most places that introduced an IconTheme widget now use IconTheme.merge.

IconThemeData.merge and IconThemeData.copyWith act in a way analogous to
the similarly-named members of TextStyle.

ImageIcon is introduced. It acts like Icon but takes an ImageProvider
instead of an IconData.

Also: Fix the analyzer to actually check the stocks app.
2016-06-20 21:04:45 -07:00
Adam Barth
e071f0bafd Nesting MaterialApps should not assert (#4636)
Turns out we weren't managing focus correct between navigator routes because we
were missing a Focus widget above the routes. However, adding this widget
caused us to explode at startup because the initial route was trying to move
focus during the build phase.

This patch teaches Focus to have an initiallyFocusedScope, which can be use to
initialize the child focus scope.

Fixes #4065
2016-06-20 17:01:34 -07:00
Adam Barth
b3780ebc16 Fix asserts in Draggable dismounting (#4644)
In writing a test for #1927, I found a number of bugs in how Draggable shuts
down. Previously it would leak its recongizer. Now it disposes its recognizer
and the recognizer knows how to be disposed cleanly.

Fixes #1927
2016-06-20 15:58:20 -07:00
Ian Hickson
cff31a3f6d IconThemeData.size (#4633) 2016-06-20 14:21:28 -07:00
Todd Volkert
5809a0cb71 Move Brightness back to the material library (#4635) 2016-06-20 13:16:03 -07:00
Jason Simmons
3b9d8c5eb5 Call onPostResume to restart the animator in the example Android activity (#4634)
(onResume is now a no-op)

Fixes https://github.com/flutter/flutter/issues/4506
2016-06-20 13:06:10 -07:00
Hans Muller
c707b53f01 AppBar bottom widget, not necessarily a TabBar (#4631) 2016-06-20 12:45:20 -07:00
Todd Volkert
ef6a4faa8d System chrome overlay style fixes (#4627)
* System chrome overlay style fixes

1) Add a cache to avoid superfluous calls to the embedder
2) Coalesce calls to the embedder that are made in the same event loop
3) Move call site to material's AppBar from Title widget

#4461
2016-06-20 11:53:19 -07:00
Hans Muller
327d974dc5 Added shopping cart and sorting to Shrine (#4616) 2016-06-20 09:47:58 -07:00
Devon Carew
415324f2f0 bump our dep on the test package (#4625)
* bump out dep on the test package

* add other pubspecs
2016-06-19 08:10:03 -07:00
Adam Barth
ba4f1e02c2 Add an example of listening to app lifecycle events (#4623)
Fixes #4553
2016-06-18 10:43:38 -07:00
Ian Hickson
833b121664 Fix Switch (#4622)
I broke them when refactoring images. Oops.
2016-06-17 15:36:53 -07:00
Ali Ghassemi
94c4222f2b Few overscroll glow fixes. (#4610)
Fixes #4169 and also now overscroll indicator is dismissed the moment
user scrolls in the opposite direction (#4603) but the bounce overscroll
that happens behind the scene and is clamped in the indicator is still
problematic and needs to be fixed. However these fixes are orthogonal to that.

Also closes #4127 as I verified the timeout feature (reduced the duration
to 500ms to be closer to Android behaviour)
2016-06-17 14:44:00 -07:00
Jason Simmons
d89823be2a Remove packages/flx and the FLX code signing scheme (#4612) 2016-06-17 12:35:30 -07:00
Ian Hickson
3a88a973a3 Trivial but confusing typo in SynchronousFuture docs (#4599) 2016-06-17 10:42:57 -07:00
Hans Muller
2de2ce35bb It is not easy being green (#4606) 2016-06-16 17:33:12 -07:00
Hans Muller
69b4bcaff5 Use an ellipsis to clip wide cards_demo titles (#4604) 2016-06-16 17:20:54 -07:00
Adam Barth
d11d388d5a Update engine 2016-06-16 16:57:15 -07:00
Hans Muller
46a660f0d0 Removed obsolete flutter gallery assets (#4605) 2016-06-16 16:56:11 -07:00
Ali Ghassemi
6befb6308a Updating Reference: FlutterBinding -> RendererBinding (#4602) 2016-06-16 16:12:58 -07:00
Hans Muller
6ba5674d12 AppBar size can be lost after a Navigator.pop() (#4594) 2016-06-16 15:33:23 -07:00
Matt Perry
02a4483914 Pesto: Fix app bar height when returning from recipe page. (#4579)
The problem was that the Scaffold was getting a new key each time we
navigated to the main page. The key influences where page state is
stored, including the scroll offset. So for a single frame, the Scaffold
incorrectly thinks the scroll offset is 0 and the app bar should be
expanded.

BUG=https://github.com/flutter/flutter/issues/4400
2016-06-16 17:24:06 -04:00
Adam Barth
f6b8220c2e Update engine.version (#4596) 2016-06-16 12:07:04 -07:00
Ian Hickson
e9edf7a0af Update LayoutBuilder docs a bit (#4593) 2016-06-16 10:47:48 -07:00
Phil Quitslund
9fe7617184 Merge pull request #4588 from pq/1.18.0-dev.1.0_prep
Dead code, switch cleanup and `crypto` bump.
2016-06-16 10:01:34 -07:00
Ian Hickson
2dfdc840b1 Refactor everything to do with images (#4583)
Overview
========

This patch refactors images to achieve the following goals:

* it allows references to unresolved assets to be passed
  around (previously, almost every layer of the system had to know about
  whether an image came from an asset bundle or the network or
  elsewhere, and had to manually interact with the image cache).

* it allows decorations to use the same API for declaring images as the
  widget tree.

It requires some minor changes to call sites that use images, as
discussed below.

Widgets
-------

Change this:

```dart
      child: new AssetImage(
        name: 'my_asset.png',
        ...
      )
```

...to this:

```dart
      child: new Image(
        image: new AssetImage('my_asset.png'),
        ...
      )
```

Decorations
-----------

Change this:

```dart
      child: new DecoratedBox(
        decoration: new BoxDecoration(
          backgroundImage: new BackgroundImage(
            image: DefaultAssetBundle.of(context).loadImage('my_asset.png'),
            ...
          ),
          ...
        ),
        child: ...
      )
```

...to this:

```dart
      child: new DecoratedBox(
        decoration: new BoxDecoration(
          backgroundImage: new BackgroundImage(
            image: new AssetImage('my_asset.png'),
            ...
          ),
          ...
        ),
        child: ...
      )
```

DETAILED CHANGE LOG
===================

The following APIs have been replaced in this patch:

* The `AssetImage` and `NetworkImage` widgets have been split in two,
  with identically-named `ImageProvider` subclasses providing the
  image-loading logic, and a single `Image` widget providing all the
  widget tree logic.

* `ImageResource` is now `ImageStream`. Rather than configuring it with
  a `Future<ImageInfo>`, you complete it with an `ImageStreamCompleter`.

* `ImageCache.load` and `ImageCache.loadProvider` are replaced by
  `ImageCache.putIfAbsent`.

The following APIs have changed in this patch:

* `ImageCache` works in terms of arbitrary keys and caches
  `ImageStreamCompleter` objects using those keys. With the new model,
  you should never need to interact with the cache directly.

* `Decoration` can now be `const`. The state has moved to the
  `BoxPainter` class. Instead of a list of listeners, there's now just a
  single callback and a `dispose()` method on the painter. The callback
  is passed in to the `createBoxPainter()` method. When invoked, you
  should repaint the painter.

The following new APIs are introduced:

* `AssetBundle.loadStructuredData`.

* `SynchronousFuture`, a variant of `Future` that calls the `then`
  callback synchronously. This enables the asynchronous and
  synchronous (in-the-cache) code paths to look identical yet for the
  latter to avoid returning to the event loop mid-paint.

* `ExactAssetImage`, a variant of `AssetImage` that doesn't do anything clever.

* `ImageConfiguration`, a class that describes parameters that configure
  the `AssetImage` resolver.

The following APIs are entirely removed by this patch:

* `AssetBundle.loadImage` is gone. Use an `AssetImage` instead.

* `AssetVendor` is gone. `AssetImage` handles everything `AssetVendor`
  used to handle.

* `RawImageResource` and `AsyncImage` are gone.

The following code-level changes are performed:

* `Image`, which replaces `AsyncImage`, `NetworkImage`, `AssetImage`,
  and `RawResourceImage`, lives in `image.dart`.

* `DecoratedBox` and `Container` live in their own file now,
  `container.dart` (they reference `image.dart`).

DIRECTIONS FOR FUTURE RESEARCH
==============================

* The `ImageConfiguration` fields are mostly aspirational. Right now
  only `devicePixelRatio` and `bundle` are implemented. `locale` isn't
  even plumbed through, it will require work on the localisation logic.

* We should go through and make `BoxDecoration`, `AssetImage`, and
  `NetworkImage` objects `const` where possible.

* This patch makes supporting animated GIFs much easier.

* This patch makes it possible to create an abstract concept of an
  "Icon" that could be either an image or a font-based glyph (using
  `IconData` or similar). (see
  https://github.com/flutter/flutter/issues/4494)

RELATED ISSUES
==============

Fixes https://github.com/flutter/flutter/issues/4500
Fixes https://github.com/flutter/flutter/issues/4495
Obsoletes https://github.com/flutter/flutter/issues/4496
2016-06-16 09:49:48 -07:00
pq
3641f4ebe5 Merge branch '1.18.0-dev.1.0_prep' of github.com:pq/flutter into 1.18.0-dev.1.0_prep
# Conflicts:
#	packages/flutter/pubspec.yaml
2016-06-16 09:46:37 -07:00
pq
3e9067a4ec Dead code and switch cleanup (continued).
Prep to get us ready to pull in a new dev SDK and bump our analyzer DEP.

* updates `crypto` (required by fresh analyzer)
* fixes newly flagged dead code warnings
* fixes switches that fall through and don't return
2016-06-16 09:45:37 -07:00
Adam Barth
2ce57eb3ce Fix paths again (#4589)
I got confused about the sdk_ext directory.
2016-06-16 09:37:10 -07:00
pq
e8d1df0770 Dead code and switch cleanup (continued).
Prep to get us ready to pull in a new dev SDK and bump our analyzer DEP.

* updates `crypto` (required by fresh analyzer)
* fixes newly flagged dead code warnings
* fixes switches that fall through and don't return
2016-06-16 09:07:15 -07:00
Adam Barth
fc77bfe630 Attempt to fix AOT build (#4587)
I moved dart_ui.dart to an new path and forgot to update this reference.
2016-06-16 09:05:04 -07:00
Adam Barth
7e8274e24f Update engine.version (#4580) 2016-06-15 14:52:33 -07:00
Hans Muller
5766cdacd3 Define LayoutWidgetBuilder in terms of BoxConstraints instead of Size (#4578) 2016-06-15 14:11:58 -07:00
Devon Carew
661740d2d6 updates from previous review (#4577) 2016-06-15 11:25:31 -07:00