Now that we have all the Dart packages we need in //third_party, we can build
skyx bundles by default.
As part of this change, I've made it possible to build skyx bundles on Linux
and I've made the gn target names of the mojoms in //sky/services consistent
with each other and with //mojo/services/public.
TBR=eseidel@google.com
Review URL: https://codereview.chromium.org/1227973002 .
Material-style card dismissal. Many things remain to be done:
- Track event.dx sum; don't listen to the card container
- Make this a feature of Card
- Support dismissing to the left (too)
- Animate the layout change caused by dismissing the card
- Deal with many cards animating away at the same time
- Integrate with TBD VariableHeightScrollable
This version just exists to collect a little feedback,
including about the use of AnimationPerformance
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1231603003 .
This isn't quite perfect since we seem to do a second layout as the
activity switcher is brought up which is shifting down our
toolbar and making it bleed slightly below the Activity Switcher's
Task description bar. But at least we're the right color now.
R=abarth@chromium.org, abarth@google.com
Review URL: https://codereview.chromium.org/1209423008 .
Previously, if a subclass of FixedHeightScrollable didn't set itemCount,
everything would silently work except that you wouldn't actully be able to
scroll. This CL makes it harder to forget to provide the itemCount by making it
an abstract getter. Now the analyzer will flag it as missing in subclasses and
we'll throw an exception at runtime if you forget it.
R=ianh@google.com, tonyg@google.com
Review URL: https://codereview.chromium.org/1219933004 .
The initial fix was updating Image to NetworkImage, which is the new
name for the Widget that takes a URL to an image.
However, this exposed an underlying bug: slots given to
MultiChildRenderObjectWrapper children were not getting updated in the
initial build. Initially, we don't have a next sibling for any of the
children's roots, since we haven't yet synced anyone after the one
we're syncing. So we pass null. However, as soon as we build the next
one, the previous one now has an out of date slot: null means
"append", but it needs to be "insert before the newly inserted root of
the next child". So now we update the slot after each insertion.
This returned the spinning_mixed demo to its original state, but that
state was buggy: the image would expand to fit the button and push the
text out of the button. To resolve that, this patch changes how
RenderImage sizes an image that has no desired dimensions but has some
constraints that make it impossible to show the image at full size:
now, we try to maintain the aspect ratio and honour the constraints
all at the same time.
Also, if the constraints are tight we skip all that logic, because
it'd be a waste of time.
To help with the slot issue above, I needed to see the widget tree and
the render tree and compare them (to see where the nodes were getting
out of order), so I also extended Widget.toString() to dump a deep
tree of the widget hierarchy.
Also, while debugging all this I noticed we sometimes walk the tree
into nodes that are null, which causes crashes. So to avoid that I
added null-checks to certain walkChildren() functions.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1212943007.
This:
- Adds asserts all over the place to make sure things are working
right with respect to the parent pointer.
- Fixes the bugs those asserts uncovered. It turns out we were failing
to update the parent pointer in a couple of cases: when the child
hadn't changed (but the parent had), and when the node was replaced.
- Remove the operator[] nonsense in scaffold.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1218183009.
There were two problems:
1) We didn't update the demo's use of RenderImage when we switched RenderImage
to take a sky.Image rather than a URL.
2) Scheduling a layout no longer ensured a visual update, which meant we'd
never actually flushLayout unless something else ensured a visual update.
TBR=jackson@google.com
Review URL: https://codereview.chromium.org/1221273002.
This CL factors the skyx build logic out of sky/apk/rules.gni so that we can
build skyx bundles without building entire APKs. This change makes it possible
to build skyx bundles for all the examples (except game).
TBR=eseidel@google.com
Review URL: https://codereview.chromium.org/1222673003.
This CL adds a build-time flag for building skyx packages, which make our
example Sky applications work offline. We can't enable this flag by default yet
because our build bots lack a few Dart packages, but landing this flag will let
folks experiment with this feature locally.
TBR=eseidel@google.com
Review URL: https://codereview.chromium.org/1221203002.