croupier: Upgrade Flutter to Latest
Interestingly (or unfortunately?), flutter is still at 0.0.21.
What really upgraded were sky_engine and sky_services from 0.0.75 to 0.0.89.
(Mojo/Syncbase/Discovery packages were upgraded to correspond with this
new version of Flutter.)
* flutter tools seems to have lost the "very-verbose" flag.
* All Flex/Row/Column/Block/BlockBody now specify the 'children' "optional"
parameter.
* Upgraded the card animations implementation since the API changed.
I replaced the code with an AnimationController and Tween<Point>.
* Shortcut template now points to the new location of the flutter file.
* Also updated the README.
Change-Id: I2245e2519a4b296cdcdfaee72371d66d1c47f426
diff --git a/FLUTTER_VERSION b/FLUTTER_VERSION
new file mode 100644
index 0000000..f2d5799
--- /dev/null
+++ b/FLUTTER_VERSION
@@ -0,0 +1 @@
+1b75de1b164a3c5f668933a7603aa9094c181aae
diff --git a/Makefile b/Makefile
index bc066e0..63bb69c 100644
--- a/Makefile
+++ b/Makefile
@@ -74,7 +74,7 @@
# Runs a sky app.
# $1 is location of flx file.
define RUN_SKY_APP
- pub run flutter_tools -v --very-verbose run_mojo \
+ pub run flutter_tools -v run_mojo \
--app $1 \
$(MOJO_ANDROID_FLAGS) \
--mojo-path $(MOJO_DIR)/src \
diff --git a/README.md b/README.md
index 9cef7b2..2840b66 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,9 @@
possible that the `pubspec.yaml` file will need to be modified to accomodate
your installation of Flutter. Instructions are available [here](http://flutter.io/getting-started/).
+The last known version of Flutter guaranteed to work with this project is
+present inside the FLUTTER_VERSION file.
+
## Dart
Flutter depends on a relatively new version of the Dart SDK. Therefore, please
@@ -85,8 +88,7 @@
The workaround is to launch Croupier on a single device at a time.
__Note:__ This example currently relies on a mount table on the local network at
-`192.168.86.254:8101`. This may be changed to the global mount table at a later time.
-https://github.com/vanadium/issues/issues/782
+`192.168.86.254:8101`. To avoid this, use the set the `GLOBAL` environment variable to true (see below).
## Start
@@ -99,6 +101,32 @@
syncbase instance that the others are mounted upon, it is recommended that this
one is started before the other devices.
+# Shortcuts
+
+In order to run the app without being connected to a workstation, you need to
+load a shortcut onto your Android devices.
+```
+ANDROID=1 make shortcut
+```
+
+Note: The command above loads a file that affects how `make start` runs. To
+return to normal development, you should clean up the shortcut file.
+```
+ANDROID=1 make shortcut-remove
+```
+
+# Global Flag
+
+If you want to run the app on the global public mount table (recommended), you
+should set the GLOBAL environment variable to true.
+```
+GLOBAL=true ANDROID=1 make start
+GLOBAL=true ANDROID=1 make shortcut
+```
+
+Using the global mount table can make app performance a little slower, but you
+will not need to run a local mount table at `192.168.86.254:8101`.
+
## Deleting Mojo Shell
On your Android device, go to the Apps that you downloaded and Uninstall Mojo
diff --git a/lib/components/board.dart b/lib/components/board.dart
index 4741392..9f6bbfc 100644
--- a/lib/components/board.dart
+++ b/lib/components/board.dart
@@ -179,7 +179,7 @@
return new Container(
height: config.height,
width: config.width,
- child: new Stack([
+ child: new Stack(children: [
new Positioned(top: 0.0, left: 0.0, child: boardChild),
new Positioned(
top: config.height * (offscreenDelta + 0.5),
@@ -225,7 +225,7 @@
return new Container(
height: config.height,
width: config.width,
- child: new Stack([
+ child: new Stack(children: [
new Positioned(
top: 0.0,
left: 0.0,
@@ -288,14 +288,16 @@
return new Container(
height: config.height,
width: config.width,
- child: new Column([
+ child: new Column(
+ children: [
new Flexible(child: _playerProfile(2, PROFILE_SIZE), flex: 0),
new Flexible(child: _getPass(2), flex: 0),
new Flexible(
- child: new Row([
+ child: new Row(
+ children: [
new Flexible(child: _playerProfile(1, PROFILE_SIZE), flex: 0),
new Flexible(child: _getPass(1), flex: 0),
- new Flexible(child: new Block([]), flex: 1),
+ new Flexible(child: new Block(children: []), flex: 1),
new Flexible(child: _getPass(3), flex: 0),
new Flexible(child: _playerProfile(3, PROFILE_SIZE), flex: 0)
],
@@ -314,14 +316,14 @@
height: config.height,
width: config.width,
child: new Center(
- child: new Row([
+ child: new Row(children: [
new Flexible(
flex: 1,
child: new Center(
child: _buildAvatarSlotCombo(rotateByGamePlayerNumber(1)))),
new Flexible(
flex: 1,
- child: new Column([
+ child: new Column(children: [
new Flexible(
flex: 1,
child: _buildAvatarSlotCombo(rotateByGamePlayerNumber(2))),
@@ -380,7 +382,7 @@
return new Container(
width: config.cardWidth,
height: config.cardHeight,
- child: new Stack(items));
+ child: new Stack(children: items));
}
Widget _showTrickText(int pNum) {
@@ -465,11 +467,13 @@
? style.theme.accentColor
: style.transparentColor,
width: 5.0))),
- child: new Column([
+ child: new Column(
+ children: [
new Flexible(child: _playerProfile(2, PROFILE_SIZE), flex: 0),
new Flexible(child: _showTrickText(2), flex: 0),
new Flexible(
- child: new Row([
+ child: new Row(
+ children: [
new Flexible(
child: _playerProfile(1, PROFILE_SIZE), flex: 0),
new Flexible(child: _showTrickText(1), flex: 0),
@@ -494,8 +498,8 @@
double height = config.cardHeight * this._centerScaleFactor;
double width = config.cardWidth * this._centerScaleFactor;
- Widget centerPiece =
- new Container(height: height, width: width, child: new Block([]));
+ Widget centerPiece = new Container(
+ height: height, width: width, child: new Block(children: []));
if (localAsking == 4) {
// If all cards played are revealed, show Take Trick button.
int rotateNum = config.game.determineTrickWinner();
@@ -511,28 +515,32 @@
rotateNum);
}
- return new Column([
+ return new Column(
+ children: [
new Flexible(
- child: new Row([
- new Flexible(child: new Block([])),
+ child: new Row(
+ children: [
+ new Flexible(child: new Block(children: [])),
new Flexible(child: new Center(child: _buildCenterCard(2))),
- new Flexible(child: new Block([])),
+ new Flexible(child: new Block(children: [])),
],
alignItems: FlexAlignItems.center,
justifyContent: FlexJustifyContent.center)),
new Flexible(
- child: new Row([
+ child: new Row(
+ children: [
new Flexible(child: new Center(child: _buildCenterCard(1))),
- new Flexible(child: new Block([centerPiece])),
+ new Flexible(child: new Block(children: [centerPiece])),
new Flexible(child: new Center(child: _buildCenterCard(3))),
],
alignItems: FlexAlignItems.center,
justifyContent: FlexJustifyContent.center)),
new Flexible(
- child: new Row([
- new Flexible(child: new Block([])),
+ child: new Row(
+ children: [
+ new Flexible(child: new Block(children: [])),
new Flexible(child: new Center(child: _buildCenterCard(0))),
- new Flexible(child: new Block([])),
+ new Flexible(child: new Block(children: [])),
],
alignItems: FlexAlignItems.center,
justifyContent: FlexJustifyContent.center))
@@ -558,9 +566,9 @@
List<logic_card.Card> cards =
game.cardCollections[playerNumber + HeartsGame.OFFSET_PLAY];
- bool hasPlayed = cards.length > 0;
// TODO(alexfandrianto): Clean up soon.
// https://github.com/vanadium/issues/issues/1098
+ //bool hasPlayed = cards.length > 0;
//bool isTurn = game.whoseTurn == playerNumber && !hasPlayed;
double height = config.cardHeight * this._centerScaleFactor;
@@ -599,7 +607,7 @@
}*/
return new Container(
- height: height, width: width, child: new Stack(stackWidgets));
+ height: height, width: width, child: new Stack(children: stackWidgets));
}
// The off-screen cards consist of trick cards and play cards.
diff --git a/lib/components/card.dart b/lib/components/card.dart
index bdd8ae5..92c5ff8 100644
--- a/lib/components/card.dart
+++ b/lib/components/card.dart
@@ -154,7 +154,8 @@
}
class ZCardState extends widgets.State<ZCard> {
- ValuePerformance<Point> _performance;
+ Tween<Point> _positionTween;
+ AnimationController _animationController;
List<
Point> _pointQueue; // at least 1 longer than the current animation index.
int _animationIndex;
@@ -173,11 +174,10 @@
_pointQueue.add(config.startingPosition);
}
_pointQueue.add(config.endingPosition);
- _performance = new ValuePerformance<Point>(
- variable: new AnimatedValue<Point>(Point.origin, curve: Curves.easeOut),
- duration: this.animationDuration);
- _performance.addStatusListener((PerformanceStatus status) {
- if (status == PerformanceStatus.completed) {
+ _animationController =
+ new AnimationController(duration: this.animationDuration);
+ _animationController.addStatusListener((AnimationStatus status) {
+ if (status == AnimationStatus.completed) {
_animationIndex++;
_tryAnimate();
}
@@ -220,11 +220,9 @@
if (config.animationType == CardAnimationType.NONE ||
_pointQueue.length == 1) {
Point endingLocation = config.endingPosition;
- _performance.variable
- ..begin = endingLocation
- ..value = endingLocation
- ..end = endingLocation;
- _performance.progress = 0.0;
+ _positionTween =
+ new Tween<Point>(begin: endingLocation, end: endingLocation);
+ _animationController.value = 0.0;
_animationIndex = _pointQueue.length - 1;
return;
}
@@ -238,21 +236,19 @@
// Return the current animation position of the ZCard.
Point get localPosition {
- return _performance.variable.value;
+ return _positionTween.evaluate(_animationController);
}
void _tryAnimate() {
// Let animations finish... (Is this a good idea?)
- if (!_performance.isAnimating && _needsAnimation()) {
+ if (!_animationController.isAnimating && _needsAnimation()) {
Point startingLocation = _pointQueue[_animationIndex];
Point endingLocation = _pointQueue[_animationIndex + 1];
- _performance.variable
- ..begin = startingLocation
- ..value = startingLocation
- ..end = endingLocation;
- _performance.progress = 0.0;
- _performance.duration = this.animationDuration;
- _performance.play();
+ _positionTween =
+ new Tween<Point>(begin: startingLocation, end: endingLocation);
+ _animationController.value = 0.0;
+ _animationController.duration = this.animationDuration;
+ _animationController.play(AnimationDirection.forward);
}
}
@@ -264,14 +260,13 @@
alignment: new FractionalOffset(0.5, 0.5));
// Prepare the transition, which is a fixed pixel translation.
- widgets.Widget retWidget = new widgets.BuilderTransition(
- variables: <AnimatedValue>[_performance.variable],
- builder: (widgets.BuildContext c) {
+ widgets.Widget retWidget = new widgets.AnimatedBuilder(
+ animation: _animationController,
+ builder: (widgets.BuildContext c, widgets.Widget child) {
Matrix4 transform = new Matrix4.identity()
- ..translate(
- _performance.variable.value.x, _performance.variable.value.y);
- return new widgets.Transform(transform: transform, child: image);
- }, performance: _performance.view);
+ ..translate(localPosition.x, localPosition.y);
+ return new widgets.Transform(transform: transform, child: child);
+ }, child: image);
return retWidget;
}
diff --git a/lib/components/card_collection.dart b/lib/components/card_collection.dart
index ba31fe3..99994a7 100644
--- a/lib/components/card_collection.dart
+++ b/lib/components/card_collection.dart
@@ -180,7 +180,7 @@
decoration: new BoxDecoration(backgroundColor: config.backgroundColor),
height: config.height,
width: _produceColumnWidth,
- child: new Stack(draggableKids));
+ child: new Stack(children: draggableKids));
}
double get _produceRowHeight => config.heightCard + CARD_MARGIN * 2;
@@ -217,7 +217,7 @@
decoration: new BoxDecoration(backgroundColor: config.backgroundColor),
height: _produceRowHeight,
width: config.width,
- child: new Stack(draggableKids));
+ child: new Stack(children: draggableKids));
}
Widget _produceSingle(List<component_card.Card> cardWidgets) {
@@ -230,7 +230,7 @@
decoration: new BoxDecoration(backgroundColor: config.backgroundColor),
height: _produceRowHeight,
width: _produceColumnWidth,
- child: new Stack(draggableKids));
+ child: new Stack(children: draggableKids));
}
double get _whiteLineHeight => WHITE_LINE_HEIGHT;
@@ -276,7 +276,7 @@
}
return new Container(
decoration: new BoxDecoration(backgroundColor: Colors.white),
- child: new Stack(<Widget>[
+ child: new Stack(children: <Widget>[
new Positioned(
top: 2 * _produceRowHeight + 2 * _whiteLineHeight,
child: _produceRow(ss,
diff --git a/lib/components/croupier.dart b/lib/components/croupier.dart
index 910e776..e4476d7 100644
--- a/lib/components/croupier.dart
+++ b/lib/components/croupier.dart
@@ -44,7 +44,7 @@
// in which we show them a UI to start a new game, join a game, or change some settings.
return new Container(
padding: new EdgeDims.only(top: ui.window.padding.top),
- child: new Column([
+ child: new Column(children: [
new FlatButton(
child: new Text('Create Game', style: style.Text.titleStyle),
onPressed: makeSetStateCallback(
@@ -69,7 +69,7 @@
// in which we let them pick a game out of the many possible games... There aren't that many.
return new Container(
padding: new EdgeDims.only(top: ui.window.padding.top),
- child: new Flex([
+ child: new Column(children: [
new FlatButton(
child: new Text('Proto', style: style.Text.titleStyle),
onPressed: makeSetStateCallback(
@@ -91,7 +91,7 @@
child: new Text('Back', style: style.Text.subtitleStyle),
onPressed: makeSetStateCallback(
logic_croupier.CroupierState.Welcome))
- ], direction: FlexDirection.vertical));
+ ]));
case logic_croupier.CroupierState.JoinGame:
// A stateful view, showing the game ads discovered.
List<Widget> gameAdWidgets = new List<Widget>();
@@ -120,7 +120,7 @@
// in which players wait for game invitations to arrive.
return new Container(
padding: new EdgeDims.only(top: ui.window.padding.top),
- child: new Column(gameAdWidgets));
+ child: new Column(children: gameAdWidgets));
case logic_croupier.CroupierState.ArrangePlayers:
return new Container(
padding: new EdgeDims.only(top: ui.window.padding.top),
@@ -174,11 +174,11 @@
if (needsArrangement) {
return new ScrollableViewport(
- child: new Row(profileWidgets),
- scrollDirection: ScrollDirection.horizontal);
+ child: new Row(children: profileWidgets),
+ scrollDirection: Axis.horizontal);
}
- return new MaxTileWidthGrid(profileWidgets,
- maxTileWidth: style.Size.settingsWidth);
+ return new MaxTileWidthGrid(
+ children: profileWidgets, maxTileWidth: style.Size.settingsWidth);
}
Widget _buildArrangePlayers() {
@@ -189,7 +189,7 @@
allWidgets.add(new Flexible(
flex: 0,
- child: new Row([
+ child: new Row(children: [
new Text("${config.croupier.game.gameTypeName}",
style: style.Text.hugeStyle)
], justifyContent: FlexJustifyContent.spaceAround)));
@@ -225,7 +225,7 @@
if (config.croupier.game.isCreator) {
allWidgets.add(new Flexible(
flex: 0,
- child: new Row([
+ child: new Row(children: [
new FlatButton(
child: new Text("Start Game", style: style.Text.hugeStyle),
onPressed: startCb,
@@ -239,6 +239,6 @@
onPressed:
makeSetStateCallback(logic_croupier.CroupierState.Welcome))));
- return new Column(allWidgets);
+ return new Column(children: allWidgets);
}
}
diff --git a/lib/components/croupier_game_advertisement.dart b/lib/components/croupier_game_advertisement.dart
index 07a960c..fb7fcac 100644
--- a/lib/components/croupier_game_advertisement.dart
+++ b/lib/components/croupier_game_advertisement.dart
@@ -23,7 +23,7 @@
Widget build(BuildContext context) {
return new GestureDetector(
child: new Card(
- child: new Row([
+ child: new Row(children: [
new Card(
child: new CroupierProfileComponent(
settings: settings,
diff --git a/lib/components/croupier_profile.dart b/lib/components/croupier_profile.dart
index b406546..9f079a4 100644
--- a/lib/components/croupier_profile.dart
+++ b/lib/components/croupier_profile.dart
@@ -56,7 +56,7 @@
padding: const EdgeDims.all(padAmount),
child: new Card(
color: new Color(settings.color),
- child: new Column([
+ child: new Column(children: [
new AssetImage(
name: CroupierSettings.makeAvatarUrl(settings.avatar)),
new Text(settings.name, style: style.Text.largeStyle)
@@ -68,7 +68,7 @@
padding: const EdgeDims.all(padAmount),
child: new Card(
color: new Color(settings.color),
- child: new Row([
+ child: new Row(children: [
new AssetImage(
name: CroupierSettings.makeAvatarUrl(settings.avatar),
fit: ImageFit.scaleDown)
@@ -78,7 +78,7 @@
color: new Color(settings.color),
child: new Container(
padding: const EdgeDims.all(padAmount),
- child: new Row([
+ child: new Row(children: [
new AssetImage(
name: CroupierSettings.makeAvatarUrl(settings.avatar),
fit: ImageFit.scaleDown),
@@ -89,9 +89,9 @@
color: new Color(settings.color),
child: new Container(
padding: const EdgeDims.all(padAmount),
- child: new Row(
- [new Text(settings.name, style: style.Text.largeStyle)],
- justifyContent: FlexJustifyContent.collapse)));
+ child: new Row(children: [
+ new Text(settings.name, style: style.Text.largeStyle)
+ ], justifyContent: FlexJustifyContent.collapse)));
}
}
}
diff --git a/lib/components/croupier_settings.dart b/lib/components/croupier_settings.dart
index b169bec..7779e39 100644
--- a/lib/components/croupier_settings.dart
+++ b/lib/components/croupier_settings.dart
@@ -88,14 +88,14 @@
new AssetImage(
name: CroupierSettings.makeAvatarUrl(config.settings.avatar))));
- return new Column(w);
+ return new Column(children: w);
}
Widget _makeButtonRow(String type, Widget child) {
String capType = _capitalize(type);
return new FlatButton(
onPressed: () => _handlePressed(type),
- child: new Row([
+ child: new Row(children: [
new Flexible(
flex: 1,
child: new Text(capType, style: Theme.of(context).text.subhead)),
@@ -114,9 +114,9 @@
title: new Text(capType),
content: new Input(
key: globalKeys[type],
- placeholder: capType,
+ hintText: capType,
initialValue: config.settings.getStringValue(type),
- keyboardType: KeyboardType.TEXT,
+ keyboardType: KeyboardType.text,
onChanged: _makeHandleChanged(type)),
actions: [
new FlatButton(child: new Text('CANCEL'), onPressed: () {
@@ -150,7 +150,8 @@
dialog = new Dialog(
title: new Text(capType),
- content: new MaxTileWidthGrid(flexColors, maxTileWidth: 75.0),
+ content:
+ new MaxTileWidthGrid(children: flexColors, maxTileWidth: 75.0),
actions: [
new FlatButton(child: new Text('CANCEL'), onPressed: () {
Navigator.pop(context);
@@ -168,7 +169,8 @@
dialog = new Dialog(
title: new Text(capType),
- content: new MaxTileWidthGrid(flexAvatars, maxTileWidth: 75.0),
+ content:
+ new MaxTileWidthGrid(children: flexAvatars, maxTileWidth: 75.0),
actions: [
new FlatButton(child: new Text('CANCEL'), onPressed: () {
Navigator.pop(context);
diff --git a/lib/components/game.dart b/lib/components/game.dart
index 591c92e..9f2c5a9 100644
--- a/lib/components/game.dart
+++ b/lib/components/game.dart
@@ -198,7 +198,7 @@
child: new Container(
width: config.width,
height: config.height,
- child: new Stack(positionedCards)));
+ child: new Stack(children: positionedCards)));
}
}
diff --git a/lib/components/hearts/hearts.part.dart b/lib/components/hearts/hearts.part.dart
index 0f787eb..1ddd970 100644
--- a/lib/components/hearts/hearts.part.dart
+++ b/lib/components/hearts/hearts.part.dart
@@ -143,7 +143,9 @@
children.add(this.buildCardAnimationLayer(visibleCardCollectionIndexes));
return new Container(
- width: config.width, height: config.height, child: new Stack(children));
+ width: config.width,
+ height: config.height,
+ child: new Stack(children: children));
}
void _switchViewCallback() {
@@ -305,11 +307,11 @@
Widget _makeDebugButtons() {
if (config.game.debugMode == false) {
- return new Row([
+ return new Row(children: [
new Flexible(flex: 4, child: _makeButton('Quit', _quitGameCallback))
]);
}
- return new Row([
+ return new Row(children: [
new Flexible(flex: 1, child: new Text('P${config.game.playerNumber}')),
new Flexible(
flex: 5, child: _makeButton('Switch Player', _switchPlayersCallback)),
@@ -373,7 +375,8 @@
return null;
}
kids.add(_makeDebugButtons());
- return new Column(kids, justifyContent: FlexJustifyContent.spaceBetween);
+ return new Column(
+ children: kids, justifyContent: FlexJustifyContent.spaceBetween);
}
Widget showBoard() {
@@ -529,7 +532,8 @@
return new Container(
padding: new EdgeDims.all(10.0),
decoration: decoration,
- child: new Row(statusBarWidgets,
+ child: new Row(
+ children: statusBarWidgets,
justifyContent: FlexJustifyContent.spaceBetween));
}
@@ -562,7 +566,8 @@
if (_showSplitView) {
cardCollections.add(new Container(
decoration: style.Box.background,
- child: new Column([_buildFullMiniBoard(), _buildStatusBar()])));
+ child: new Column(
+ children: [_buildFullMiniBoard(), _buildStatusBar()])));
} else {
Widget playArea = new Container(
decoration: new BoxDecoration(backgroundColor: Colors.teal[500]),
@@ -583,7 +588,7 @@
cardCollections.add(new Container(
decoration: style.Box.background,
- child: new BlockBody([_buildStatusBar(), playArea])));
+ child: new BlockBody(children: [_buildStatusBar(), playArea])));
}
List<logic_card.Card> cards = game.cardCollections[p];
@@ -609,9 +614,10 @@
comparator: _compareCards,
width: config.width,
useKeys: true);
- cardCollections.add(new BlockBody([c, _makeDebugButtons()]));
+ cardCollections.add(new BlockBody(children: [c, _makeDebugButtons()]));
- return new Column(cardCollections,
+ return new Column(
+ children: cardCollections,
justifyContent: FlexJustifyContent.spaceBetween);
}
@@ -638,7 +644,7 @@
List<Widget> scores = new List<Widget>();
scores.add(new Flexible(
- child: new Flex([
+ child: new Flex(children: [
new Flexible(
child: new Center(child: new Text("Score:", style: bigStyle)),
flex: 1),
@@ -659,7 +665,7 @@
TextStyle scoreStyle = isMaxOverall ? bigRedStyle : bigStyle;
scores.add(new Flexible(
- child: new Flex([
+ child: new Flex(children: [
new Flexible(
child: new CroupierProfileComponent(
settings: config.croupier.settingsFromPlayerNumber(i)),
@@ -676,8 +682,9 @@
], direction: crossDirection, alignItems: FlexAlignItems.stretch),
flex: 2));
}
- return new Column([
- new Flexible(child: new Flex(scores, direction: mainDirection), flex: 7),
+ return new Column(children: [
+ new Flexible(
+ child: new Flex(children: scores, direction: mainDirection), flex: 7),
new Flexible(child: w, flex: 1),
new Flexible(child: _makeDebugButtons(), flex: 1)
]);
@@ -686,7 +693,7 @@
Widget showDeal() {
return new Container(
decoration: new BoxDecoration(backgroundColor: Colors.pink[500]),
- child: new Column([
+ child: new Column(children: [
new Text('Player ${config.game.playerNumber}'),
new Text('Waiting for Deal...'),
_makeDebugButtons()
@@ -719,9 +726,10 @@
decoration: new BoxDecoration(backgroundColor: bgColor),
padding: new EdgeDims.all(10.0),
width: config.width,
- child: new Row(topCardWidgets,
+ child: new Row(
+ children: topCardWidgets,
justifyContent: FlexJustifyContent.spaceBetween));
- Widget combinedTopArea = new BlockBody([statusBar, topArea]);
+ Widget combinedTopArea = new BlockBody(children: [statusBar, topArea]);
List<logic_card.Card> emptyC;
if (c1.length == 0) {
@@ -745,9 +753,11 @@
altColor: Colors.grey[700],
useKeys: true);
- Widget combinedBottomArea = new BlockBody([handArea, _makeDebugButtons()]);
+ Widget combinedBottomArea =
+ new BlockBody(children: [handArea, _makeDebugButtons()]);
- return new Column(<Widget>[combinedTopArea, combinedBottomArea],
+ return new Column(
+ children: <Widget>[combinedTopArea, combinedBottomArea],
justifyContent: FlexJustifyContent.spaceBetween);
}
@@ -859,10 +869,10 @@
decoration: style.Box.liveNow,
height: config.height,
width: config.width,
- child: new Column([
+ child: new Column(children: [
new Text("Play Hearts as a...", style: style.Text.hugeStyle),
new FlatButton(
- child: new Row([
+ child: new Row(children: [
new Icon(size: IconSize.s48, icon: personIcon),
new Text("Player", style: style.Text.largeStyle)
], justifyContent: FlexJustifyContent.collapse),
@@ -872,7 +882,7 @@
});
}),
new FlatButton(
- child: new Row([
+ child: new Row(children: [
new Icon(size: IconSize.s48, icon: tableIcon),
new Text("Table", style: style.Text.largeStyle)
], justifyContent: FlexJustifyContent.collapse),
@@ -930,14 +940,14 @@
})
];
}
- Widget firstChild =
- new Row(children, justifyContent: FlexJustifyContent.collapse);
+ Widget firstChild = new Row(
+ children: children, justifyContent: FlexJustifyContent.collapse);
return new Container(
decoration: style.Box.liveNow,
height: config.height,
width: config.width,
- child: new Column([
+ child: new Column(children: [
firstChild,
new Flexible(child: _buildArrangeTable(activeID: arrangeID))
], alignItems: FlexAlignItems.center));
@@ -961,7 +971,8 @@
decoration: style.Box.liveNow,
height: config.height,
width: config.width,
- child: new Column(children, alignItems: FlexAlignItems.center));
+ child:
+ new Column(children: children, alignItems: FlexAlignItems.center));
}
Widget _buildFallbackArrangePlayers() {
@@ -976,10 +987,12 @@
int numAtTable = config.croupier.players_found.values
.where((int playerNumber) => playerNumber == 4)
.length;
- return new Column([
+ return new Column(
+ children: [
new Flexible(
flex: 1,
- child: new Row([
+ child: new Row(
+ children: [
_buildEmptySlot(),
_buildSlot(personIcon, 2, activeID, canDragTo),
_buildEmptySlot()
@@ -988,7 +1001,8 @@
alignItems: FlexAlignItems.stretch)),
new Flexible(
flex: 1,
- child: new Row([
+ child: new Row(
+ children: [
_buildSlot(personIcon, 1, activeID, canDragTo),
_buildSlot(tableIcon, 4, activeID, canDragTo,
extra: "x${numAtTable}"),
@@ -998,7 +1012,8 @@
alignItems: FlexAlignItems.stretch)),
new Flexible(
flex: 1,
- child: new Row([
+ child: new Row(
+ children: [
_buildEmptySlot(),
_buildSlot(personIcon, 0, activeID, canDragTo),
_buildEmptySlot()
@@ -1016,7 +1031,8 @@
Widget _buildSlot(String name, int index, int activeID, bool canDragTo,
{String extra: ""}) {
- Widget slotWidget = new Row([
+ Widget slotWidget = new Row(
+ children: [
new Icon(size: IconSize.s48, icon: name),
new Text(extra, style: style.Text.largeStyle)
],
diff --git a/lib/components/main_route.dart b/lib/components/main_route.dart
index 2c4887f..4eb733a 100644
--- a/lib/components/main_route.dart
+++ b/lib/components/main_route.dart
@@ -56,9 +56,9 @@
// TODO(alexfandrianto): Can we do better than this?
Widget _buildSplashScreen() {
- var stack = new Stack([
+ var stack = new Stack(children: [
new AssetImage(name: 'images/splash/background.png', fit: ImageFit.cover),
- new Row([
+ new Row(children: [
new AssetImage(
name: 'images/splash/flutter.png', width: style.Size.splashLogo),
new AssetImage(
@@ -66,7 +66,8 @@
], justifyContent: FlexJustifyContent.center),
new Container(
child: new Row(
- [new Text('Loading Croupier...', style: style.Text.splash)],
+ children:
+ [new Text('Loading Croupier...', style: style.Text.splash)],
alignItems: FlexAlignItems.end,
justifyContent: FlexJustifyContent.center),
padding: style.Spacing.normalPadding)
@@ -76,9 +77,9 @@
Widget _buildDrawer() {
return new Drawer(
- child: new Block(<Widget>[
+ child: new Block(children: <Widget>[
new DrawerHeader(
- child: new BlockBody([
+ child: new BlockBody(children: [
new CroupierProfileComponent(
settings: config.croupier.settings,
width: style.Size.settingsWidth,
@@ -95,7 +96,7 @@
child: new Text('Settings')),
new DrawerItem(
icon: 'action/build',
- child: new Row([
+ child: new Row(children: [
new Text('Debug Mode'),
new Switch(
value: config.croupier.debugMode, onChanged: _handleDebugMode)
diff --git a/lib/components/proto/proto.part.dart b/lib/components/proto/proto.part.dart
index b9fb48f..5f39248 100644
--- a/lib/components/proto/proto.part.dart
+++ b/lib/components/proto/proto.part.dart
@@ -44,7 +44,7 @@
return new Container(
decoration: new BoxDecoration(backgroundColor: Colors.pink[500]),
- child: new Column(cardCollections));
+ child: new Column(children: cardCollections));
}
void _makeGameMoveCallback(logic_card.Card card, List<logic_card.Card> dest) {
@@ -60,11 +60,11 @@
Widget _makeDebugButtons() {
if (config.game.debugMode == false) {
- return new Row([
+ return new Row(children: [
new Flexible(flex: 4, child: _makeButton('Quit', _quitGameCallback))
]);
}
- return new Row([
+ return new Row(children: [
new Text('P${config.game.playerNumber}'),
_makeButton('Switch View', _switchPlayersCallback),
_makeButton('Quit', _quitGameCallback)
diff --git a/lib/components/solitaire/solitaire.part.dart b/lib/components/solitaire/solitaire.part.dart
index 4ede22e..83ad4ef 100644
--- a/lib/components/solitaire/solitaire.part.dart
+++ b/lib/components/solitaire/solitaire.part.dart
@@ -39,7 +39,9 @@
}
return new Container(
- width: config.width, height: config.height, child: new Stack(children));
+ width: config.width,
+ height: config.height,
+ child: new Stack(children: children));
}
void _cheatCallback() {
@@ -58,11 +60,11 @@
Widget _makeDebugButtons() {
if (config.game.debugMode == false) {
- return new Row([
+ return new Row(children: [
new Flexible(flex: 4, child: _makeButton('Quit', _quitGameCallback))
]);
}
- return new Row([
+ return new Row(children: [
new Flexible(flex: 1, child: new Text('P${config.game.playerNumber}')),
new Flexible(flex: 5, child: _makeButton('Cheat', _cheatCallback)),
new Flexible(
@@ -139,9 +141,9 @@
acceptType: DropType.card,
useKeys: true);
}).toList();
- row1.add(new Row(aces));
+ row1.add(new Row(children: aces));
- row1.add(new Row([
+ row1.add(new Row(children: [
new CardCollectionComponent(
game.cardCollections[SolitaireGame.OFFSET_DISCARD],
true,
@@ -190,10 +192,10 @@
useKeys: true));
}
- return new Column([
- new Row(row1, justifyContent: FlexJustifyContent.spaceBetween),
- new Row(row2, justifyContent: FlexJustifyContent.spaceBetween),
- new Row(row3, justifyContent: FlexJustifyContent.spaceBetween),
+ return new Column(children: [
+ new Row(children: row1, justifyContent: FlexJustifyContent.spaceBetween),
+ new Row(children: row2, justifyContent: FlexJustifyContent.spaceBetween),
+ new Row(children: row3, justifyContent: FlexJustifyContent.spaceBetween),
_makeDebugButtons()
]);
}
@@ -203,7 +205,7 @@
return new Container(
decoration: new BoxDecoration(backgroundColor: Colors.pink[500]),
- child: new Column([
+ child: new Column(children: [
new Text('Player ${game.playerNumber}'),
_makeButton("Return to Lobby", _quitGameCallback),
_makeDebugButtons()
@@ -215,7 +217,7 @@
return new Container(
decoration: new BoxDecoration(backgroundColor: Colors.pink[500]),
- child: new Column([
+ child: new Column(children: [
new Text('Player ${game.playerNumber}'),
_makeButton('Deal', game.dealCardsUI),
_makeDebugButtons()
diff --git a/pubspec.lock b/pubspec.lock
index 0be2f9c..6f073aa 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -146,23 +146,23 @@
mojo:
description: mojo
source: hosted
- version: "0.4.8"
+ version: "0.4.12"
mojo_apptest:
description: mojo_apptest
source: hosted
- version: "0.2.12"
+ version: "0.2.16"
mojo_sdk:
description: mojo_sdk
source: hosted
- version: "0.2.7"
+ version: "0.2.11"
mojo_services:
description: mojo_services
source: hosted
- version: "0.4.10"
+ version: "0.4.14"
mojom:
description: mojom
source: hosted
- version: "0.2.12"
+ version: "0.2.16"
mustache4dart:
description: mustache4dart
source: hosted
@@ -208,7 +208,7 @@
shelf:
description: shelf
source: hosted
- version: "0.6.4+3"
+ version: "0.6.5"
shelf_static:
description: shelf_static
source: hosted
@@ -220,11 +220,11 @@
sky_engine:
description: sky_engine
source: hosted
- version: "0.0.75"
+ version: "0.0.89"
sky_services:
description: sky_services
source: hosted
- version: "0.0.75"
+ version: "0.0.89"
source_map_stack_trace:
description: source_map_stack_trace
source: hosted
@@ -241,6 +241,10 @@
description: stack_trace
source: hosted
version: "1.6.0"
+ stream_channel:
+ description: stream_channel
+ source: hosted
+ version: "1.0.1"
string_scanner:
description: string_scanner
source: hosted
@@ -248,7 +252,7 @@
syncbase:
description: syncbase
source: hosted
- version: "0.0.27"
+ version: "0.0.28"
test:
description: test
source: hosted
@@ -264,7 +268,7 @@
v23discovery:
description: v23discovery
source: hosted
- version: "0.0.11"
+ version: "0.0.12"
vector_math:
description: vector_math
source: hosted
diff --git a/shortcut_template b/shortcut_template
index cb90797..37145a1 100644
--- a/shortcut_template
+++ b/shortcut_template
@@ -1,4 +1,4 @@
---map-origin=http://flutter/=https://storage.googleapis.com/mojo/flutter/90ef9fa39c36f4027b82e62262e5c0c43a0466a1/android-arm/
+--map-origin=http://flutter/=https://storage.googleapis.com/mojo/flutter/9ee9721b1b0379da1dae7ed27243da7635d55a3a/android-arm/
--url-mappings=mojo:flutter=http://flutter/flutter.mojo,mojo:media_service=https://mojo3.v.io/media_service.mojo
--map-origin=https://mojo3.v.io=https://storage.googleapis.com/mojo_services/
--debug