35 Commits

Author SHA1 Message Date
Adam Barth
5108e15ed0 Introduce painting.dart and move painting code to src/painting 2015-09-08 10:36:14 -07:00
Adam Barth
b356d14635 Introduce package:sky/animation.dart
Move the animation libraries into src/animation and change importers to use
package:sky/animation.dart. Also, move scheduler.dart into the animation
library so that the animation library can be self-contained.
2015-09-08 09:44:01 -07:00
Adam Barth
318b69be10 Fold package:sky/editing/* into package:sky/widgets.dart
The editing directory just defined two widgets. We might as well fold them into
the main widgets library.
2015-09-07 10:07:41 -07:00
Hixie
9047830c2e Rationalise the Key API.
Add a way of having keys based on numeric types or DateTimes by having a ValueKey<T> class.
Remove the redundant ways of declaring things, except for leaving one shorthand -- you can say `new Key(s)` instead of `new ValueKey<String>(s)`.
2015-08-28 13:17:34 -07:00
Adam Barth
dc84e882df Use GestureDetector in the framework and examples
We're now using it at the widget layer for everything except scrolling and
flinging.
2015-08-28 10:58:46 -07:00
Collin Jackson
a1bafaa317 Merge pull request #838 from collinjackson/improve_date_picker
Add date picker to widgets library and teach fitness app to use it
2015-08-26 10:28:27 -07:00
Hixie
ce28a7176e Replace Flex to Row and Column in tests and examples.
This still leaves Flex and FlexDirection available. At some point once
people have transitioned to Row/Column we should rename Flex to _Flex
and stop reexporting FlexDirection from basic.dart.
2015-08-26 09:05:14 -07:00
Collin Jackson
f164e560c3 Add date picker to widgets library and teach fitness app to use it
Also, add an example for the date picker
2015-08-25 16:41:11 -07:00
Eric Seidel
1c9837630d Make 'save failed' snackbar show up
SnackBar's crash if you fail to provide a showing bool.

I tried to edit it in the framework, but this seemed easier for now.

The snackbar still shows behind the keyboard unfortunately.
https://github.com/domokit/sky_engine/issues/810

@collinjackson
2015-08-25 13:39:27 -07:00
Eric Seidel
5ad78bd3bc Hack around Fitness.app crashing if it can't load data
I'm not sure this is the correct approach, but it
at least mitigates https://github.com/domokit/sky_engine/issues/804
for now.

I also made it not crash if you haven't set a goalWeight.

@collinjackson
2015-08-25 13:09:50 -07:00
Adam Barth
627b049216 Address review comments from #767
Mostly formating and removing arguments with default values.
2015-08-22 11:25:53 -07:00
Adam Barth
5d99f31c04 Merge pull request #767 from abarth/modernize_drawer_item
DrawerItem, DrawerHeader should take a child instead of children
2015-08-22 08:46:12 -07:00
Adam Barth
2873880f50 Fix analyzer warnings 2015-08-22 08:24:02 -07:00
Adam Barth
18248543cb DrawerItem, DrawerHeader should take a child instead of children
These widgets were designed in CSS where you need to specify a layout model for
your children. This patch updates them to the modern style of just taking a
unique child.

Fixes #755
2015-08-22 08:19:38 -07:00
Adam Barth
b61fe238f5 Rename syncFields to syncConstructorArguments 2015-08-21 17:21:42 -07:00
Collin Jackson
ca42e8865d Merge pull request #747 from collinjackson/fitness_loading
Don’t flash a message while fitness data is loading
2015-08-21 16:21:05 -07:00
Adam Barth
010589be9e Rename all the scrollable classes
Block -> BlockBody
ScrollableBlock -> Block
FixedHeightScrollable -> ScrollableWidgetList
VariableHeightScrollable -> ScrollableMixedWidgetList
BlockViewport -> MixedViewport
2015-08-21 14:39:41 -07:00
Adam Barth
51c7194075 Add SetRequestedOrientation to Activity service
Fixes #743
2015-08-21 12:49:49 -07:00
Collin Jackson
d75fb40585 Don’t flash a message while fitness data is loading 2015-08-21 11:19:26 -07:00
Collin Jackson
d77d7b4893 Add goal weight indicator line to fitness chart 2015-08-20 11:45:31 -07:00
Collin Jackson
3e3f6242e3 Support for goal weight saving 2015-08-20 11:02:00 -07:00
Collin Jackson
c890dde70a Split fitness app’s UserData into UserData and UserDataImpl 2015-08-20 10:54:48 -07:00
Collin Jackson
09216794e7 Add support for saving settings in fitness app 2015-08-19 12:12:33 -07:00
Hans Muller
7782a11534 Adds PageableList, other scrolling related changes and fixes
- PageableList extends ScrollableList
One fixed width or height item is visible and centered at a
time. Fling and drag gestures scroll to the next/previous item.

- Scrollable.scrollTo(), Scrollable.scrollBy(), ensureWidgetIsVisible() API changed
The named animation parameter for these methods was replaced by
duration and curve. All of the methods now return a Future. The Future
completes when the scroll does.

This change eliminates the need for Scrollable to temporarily take ownership
of a ValueAnimation object (see #645).

- Using Future.then() instead of an AnimationPerformance status listener
In ensure_visible.dart _handleTap() uses ensureWidgetIsVisible() to
center the card roughly as before and then. When the implicit scroll
animation is complete, it changes the centered card's label font. The
change is made when the Future returned by ensureWidgetIsVisible()
completes.

- FixedHeightScrollable's itemHeight parameter is now itemExtent
If scrollDirection is ScrollDirection.vertical (the default) then itemExtent should
be the height of each item; otherwise it should be the width of each item.

Replaced _velocityForFlingGesture() in scrollable.dart with Scrollable._eventVelocity()
The original version clamped pixels/ms against pixels/sec constants. The new version
also deals with scrollDirection.

- Plumbed scrollDirection though FixedHeightScrollable and ScrollableList

Both classes should now support horizontal scrolling.
2015-08-19 10:14:21 -07:00
Collin Jackson
429c39455d Request gridlines for fitness chart 2015-08-18 15:15:49 -07:00
Collin Jackson
98d4c3af12 Add weight chart to fitness app 2015-08-12 14:50:50 -07:00
Matt Perry
3d9f523179 Scaffold: animate the FloatingActionButton with the SnackBar.
This introduces the concept of an Anchor, which you can use to link
transitions together. I've used this in the Fitness and Stocks apps to
link the FAB and SnackBar to animate together by sharing the
SlideTransition.

I also fixed the Scaffold hit testing code to apply sub-widget
transforms, so it works with Transformed nodes.
2015-08-11 17:21:20 -04:00
Eric Seidel
b221278582 Make Fitness tiles nicer
Moved from Cards to Tiles and made the printing
of the dates nicer by using some code from a Dart SDK example:
https://github.com/dart-lang/sdk/blob/master/samples-dev/swarm/swarm_ui_lib/util/DateUtils.dart

I also built a UserData class to help keep saving/sorting
consistent as well as fixed the sort order to have most
recent at the top.

@abarth
2015-08-11 14:02:12 -07:00
Eric Seidel
441fe4d491 Fix crash when hitting "enter" key on keyboard during entry
Now it wont crash on save, but it still doesn't display
the error message in a snackbar and this also doesn't
wire up the enter/go key to actually do anything.

We'll need to implement performEditorAction on our
InputConnection implementation to catch this key and
pass it along to dart.

Our Input control needs to get more powerful to handle things
like this, including filtering of input.

The code was crashing by triggering a bug in the SnackBar
which didn't assert for actions, but crashed when they
were not null.

Partial fix for https://github.com/domokit/sky_engine/issues/543

@abarth
2015-08-11 12:27:54 -07:00
Chinmay Garde
63b9f17d97 Merge pull request #550 from eseidel/patch-2
Remove non-working Height setting
2015-08-10 22:31:42 -07:00
Eric Seidel
44b2c778c3 Remove non-working Height setting
Fixes https://github.com/domokit/sky_engine/issues/547

@collinjackson
2015-08-10 22:16:51 -07:00
Eric Seidel
db24db4b20 Reduce precision shown for measurements
Fixes https://github.com/domokit/sky_engine/issues/548

@collinjackson
2015-08-10 22:14:00 -07:00
Eric Seidel
e8ba6fb619 Fix typo in feed icon in drawer
Fixes https://github.com/domokit/sky_engine/issues/540

@abarth
2015-08-10 17:55:28 -07:00
Eric Seidel
01255a6417 Make it possible to save/load fitness measurements
This required me wrapping the new Activity APIs
as well as adding the missing pubspec.yaml

@abarth
2015-08-10 14:29:22 -07:00
Ian Fischer
d44ed7dfc3 Move example out of sky/packages to //examples 2015-08-07 17:04:50 -07:00