TBR SyncSlides: Upgrading to latest flutter, syncbase and
discovery.

Change-Id: I0ff302692cce8b01477fb24d07b8ac212b62e6cd
diff --git a/dart/FLUTTER_VERSION b/dart/FLUTTER_VERSION
index 4142ce8..b01d319 100644
--- a/dart/FLUTTER_VERSION
+++ b/dart/FLUTTER_VERSION
@@ -1 +1 @@
-e1b16729bfe369bdfd2c21027087f7d0181566e8
+b70a53807aca5c74c48298f68fcb6f041fedbe9a
diff --git a/dart/lib/components/askquestion.dart b/dart/lib/components/askquestion.dart
index 24c2fbf..3762a43 100644
--- a/dart/lib/components/askquestion.dart
+++ b/dart/lib/components/askquestion.dart
@@ -27,7 +27,7 @@
 
     // TODO(aghassemi): Switch to multi-line input when support is added.
     // https://github.com/flutter/flutter/issues/627
-    var input = new Input(placeholder: 'Your question',
+    var input = new Input(labelText: 'Your question', autofocus: true,
         onSubmitted: (String questionText) async {
       await appActions.askQuestion(
           deckState.deck.key, _currSlideNum, questionText);
@@ -37,7 +37,7 @@
       Navigator.pop(context);
     });
 
-    var view = new Row([input], alignItems: FlexAlignItems.stretch);
+    var view = new Row(children: [input], alignItems: FlexAlignItems.stretch);
 
     return new Scaffold(
         toolBar: new ToolBar(
diff --git a/dart/lib/components/deckgrid.dart b/dart/lib/components/deckgrid.dart
index 04199f5..1131d3f 100644
--- a/dart/lib/components/deckgrid.dart
+++ b/dart/lib/components/deckgrid.dart
@@ -44,7 +44,7 @@
 
   Widget _buildDrawer(BuildContext context, AppState appState) {
     return new Drawer(
-        child: new Block([
+        child: new Block(children: [
       new DrawerItem(
           icon: 'action/account_circle',
           child: stopWrapping(
@@ -86,7 +86,7 @@
     var resumeLiveBox;
     var presentationState = _appState.decks[deckData.key]?.presentation;
     if (presentationState != null && presentationState.isOwner) {
-      resumeLiveBox = new Row([
+      resumeLiveBox = new Row(children: [
         new Container(
             child: new Text("RESUME PRESENTING", style: style.Text.liveNow),
             decoration: style.Box.liveNow,
@@ -110,7 +110,7 @@
     var thumbnail = new AsyncImage(
         provider: imageProvider.getDeckThumbnailImage(presentationData.deck),
         fit: ImageFit.scaleDown);
-    var liveBox = new Row([
+    var liveBox = new Row(children: [
       new Container(
           child: new Text("LIVE NOW", style: style.Text.liveNow),
           decoration: style.Box.liveNow,
@@ -152,7 +152,7 @@
     }
 
     var titleContainer = new Container(
-        child: new BlockBody(titleChildren),
+        child: new BlockBody(children: titleChildren),
         padding: style.Spacing.normalPadding);
 
     titleContainer = stopWrapping(titleContainer);
@@ -169,8 +169,8 @@
     footer = new Flexible(child: footer, flex: 0);
     var content = new Container(
         child: new Card(
-            child: new Column([image, footer],
-                alignItems: FlexAlignItems.stretch)),
+            child: new Column(
+                children: [image, footer], alignItems: FlexAlignItems.stretch)),
         margin: style.Spacing.normalMargin);
 
     return new InkWell(key: new Key(key), child: content, onTap: onTap);
diff --git a/dart/lib/components/questionlist.dart b/dart/lib/components/questionlist.dart
index 121d779..8182ffb 100644
--- a/dart/lib/components/questionlist.dart
+++ b/dart/lib/components/questionlist.dart
@@ -61,7 +61,7 @@
     List<Widget> questionCards = _presentationState.questions
         .map((model.Question q) => _buildQuestionCard(context, q))
         .toList();
-    return new ScrollableViewport(child: new Block(questionCards));
+    return new ScrollableViewport(child: new Block(children: questionCards));
   }
 
   Widget _buildQuestionCard(BuildContext context, model.Question q) {
@@ -78,10 +78,10 @@
       titleChildren.add(jumpToSlide);
     }
 
-    Widget title = new Column([
+    Widget title = new Column(children: [
       new Text('${q.questioner.name} asked about',
           style: style.Text.subtitleStyle),
-      new Row(titleChildren)
+      new Row(children: titleChildren)
     ], alignItems: FlexAlignItems.start);
 
     Widget thumbnail = new Container(
@@ -90,13 +90,13 @@
             provider:
                 imageProvider.getSlideImage(_deckId, _slides[q.slideNum])));
 
-    Widget titleAndThumbnail = new Row([
+    Widget titleAndThumbnail = new Row(children: [
       new Flexible(child: title, flex: 2),
       new Flexible(child: thumbnail, flex: 1)
     ], alignItems: FlexAlignItems.start);
 
     Widget question = new Container(
-        child: new BlockBody([titleAndThumbnail, new Text(q.text)]),
+        child: new BlockBody(children: [titleAndThumbnail, new Text(q.text)]),
         padding: style.Spacing.normalPadding);
 
     Widget handoff = new GestureDetector(onTap: () async {
@@ -111,11 +111,12 @@
                 top: new BorderSide(color: style.theme.dividerColor))),
         child: new DefaultTextStyle(
             style: new TextStyle(color: style.theme.accentColor),
-            child: new Row([handoff], justifyContent: FlexJustifyContent.end)));
+            child: new Row(
+                children: [handoff], justifyContent: FlexJustifyContent.end)));
 
     return new Card(
         child: new Container(
-            child: new BlockBody([question, actions]),
+            child: new BlockBody(children: [question, actions]),
             margin: style.Spacing.listItemMargin));
   }
 }
diff --git a/dart/lib/components/slidelist.dart b/dart/lib/components/slidelist.dart
index 82758e8..ac09153 100644
--- a/dart/lib/components/slidelist.dart
+++ b/dart/lib/components/slidelist.dart
@@ -138,14 +138,16 @@
       'This is the teaser slide. It should be memorable and descriptive.');
   var titleAndNotes = new Flexible(
       child: new Container(
-          child: new Column([title, notes], alignItems: FlexAlignItems.start),
+          child: new Column(
+              children: [title, notes], alignItems: FlexAlignItems.start),
           padding: style.Spacing.normalPadding));
 
   var card = new Container(
       child: new Container(
           margin: style.Spacing.cardMargin,
           child: new Material(
-              elevation: 2, child: new Row([thumbnail, titleAndNotes]))),
+              elevation: 2,
+              child: new Row(children: [thumbnail, titleAndNotes]))),
       margin: style.Spacing.listItemMargin);
 
   var listItem = new InkWell(
diff --git a/dart/lib/components/slideshow.dart b/dart/lib/components/slideshow.dart
index 921181d..76dc606 100644
--- a/dart/lib/components/slideshow.dart
+++ b/dart/lib/components/slideshow.dart
@@ -82,7 +82,8 @@
     var image = new Flexible(child: _buildImage(context), flex: 5);
     var actions = new Flexible(child: _buildActions(context), flex: 0);
     var notes = new Flexible(child: _buildNotes(), flex: 3);
-    var nav = new Flexible(child: new Row(_buildThumbnailNavs()), flex: 3);
+    var nav =
+        new Flexible(child: new Row(children: _buildThumbnailNavs()), flex: 3);
 
     var items = [image, actions, notes, nav];
 
@@ -91,31 +92,37 @@
       items.add(footer);
     }
 
-    var layout = new Column(items, alignItems: FlexAlignItems.stretch);
+    var layout =
+        new Column(children: items, alignItems: FlexAlignItems.stretch);
 
     return layout;
   }
 
   Widget _buildLandscapeLayout(BuildContext context) {
     var notes = new Flexible(child: _buildNotes(), flex: 5);
-    var nav = new Flexible(child: new Column(_buildThumbnailNavs()), flex: 8);
+    var nav = new Flexible(
+        child: new Column(children: _buildThumbnailNavs()), flex: 8);
 
     var image = new Flexible(child: _buildImage(context), flex: 11);
     var actions = new Flexible(child: _buildActions(context), flex: 0);
 
     var notesAndNavColumn = new Flexible(
-        child: new Column([notes, nav], alignItems: FlexAlignItems.stretch),
+        child: new Column(
+            children: [notes, nav], alignItems: FlexAlignItems.stretch),
         flex: 4);
     var imageAndActionsColumn = new Flexible(
-        child: new Column([image, actions], alignItems: FlexAlignItems.stretch),
+        child: new Column(
+            children: [image, actions], alignItems: FlexAlignItems.stretch),
         flex: 16);
 
-    var layout = new Row([notesAndNavColumn, imageAndActionsColumn],
+    var layout = new Row(
+        children: [notesAndNavColumn, imageAndActionsColumn],
         alignItems: FlexAlignItems.stretch);
 
     var footer = _buildFooter();
     if (footer != null) {
-      layout = new Column([new Flexible(child: layout, flex: 8), footer],
+      layout = new Column(
+          children: [new Flexible(child: layout, flex: 8), footer],
           alignItems: FlexAlignItems.stretch);
     }
 
@@ -149,7 +156,7 @@
 
     var counter = _buildBubbleOverlay(
         '${_currSlideNum + 1} of ${_deckState.slides.length}', 0.5, 0.98);
-    image = new Stack([image, counter]);
+    image = new Stack(children: [image, counter]);
 
     return new ClipRect(child: image);
   }
@@ -187,7 +194,7 @@
     }
 
     var nextPreviousBubble = _buildBubbleOverlay(label, 0.5, 0.05);
-    container = new Stack([container, nextPreviousBubble]);
+    container = new Stack(children: [container, nextPreviousBubble]);
     container = new ClipRect(child: container);
 
     return new Flexible(child: container, flex: 1);
@@ -207,7 +214,7 @@
     _buildActions_followPresentation(left, right);
 
     return new ToolBar(
-        left: new Row(_buildActions_addMargin(left)), right: right);
+        left: new Row(children: _buildActions_addMargin(left)), right: right);
   }
 
   void _buildActions_prev(List<Widget> left, List<Widget> right) {
@@ -392,7 +399,7 @@
                 margin: style.Spacing.footerHorizontalMargin,
                 child: new DefaultTextStyle(
                     style: new TextStyle(color: style.theme.accentColor),
-                    child: new Row(children)))));
+                    child: new Row(children: children)))));
 
     return new Flexible(child: clipper, flex: 1);
   }
diff --git a/dart/lib/components/utils/stop_wrapping.dart b/dart/lib/components/utils/stop_wrapping.dart
index 7b89e5d..68d0e4b 100644
--- a/dart/lib/components/utils/stop_wrapping.dart
+++ b/dart/lib/components/utils/stop_wrapping.dart
@@ -9,6 +9,5 @@
   // overflow: hidden or text-overflow: ellipsis in Flutter yet.
   // This workaround simulates white-space: nowrap and overflow: hidden.
   // See https://github.com/flutter/flutter/issues/417
-  return new Viewport(
-      child: child, scrollDirection: ScrollDirection.horizontal);
+  return new Viewport(child: child, scrollDirection: Axis.horizontal);
 }
diff --git a/dart/lib/main.dart b/dart/lib/main.dart
index 29c09f5..dc642a7 100644
--- a/dart/lib/main.dart
+++ b/dart/lib/main.dart
@@ -53,16 +53,17 @@
     if (!_initialized) {
       return _buildSplashScreen();
     }
-    _navigator = context.ancestorStateOfType(NavigatorState);
+    _navigator =
+        context.ancestorStateOfType(const TypeMatcher<NavigatorState>());
     return new DeckGridPage();
   }
 
   Widget _buildSplashScreen() {
-    var stack = new Stack([
+    var stack = new Stack(children: [
       new AsyncImage(
           provider: imageProvider.splashBackgroundImageProvider,
           fit: ImageFit.cover),
-      new Row([
+      new Row(children: [
         new AsyncImage(
             provider: imageProvider.splashFlutterImageProvider,
             width: style.Size.splashLogo),
@@ -72,7 +73,8 @@
       ], justifyContent: FlexJustifyContent.center),
       new Container(
           child: new Row(
-              [new Text('Loading SyncSlides...', style: style.Text.splash)],
+              children:
+                  [new Text('Loading SyncSlides...', style: style.Text.splash)],
               alignItems: FlexAlignItems.end,
               justifyContent: FlexJustifyContent.center),
           padding: style.Spacing.normalPadding)
diff --git a/dart/pubspec.lock b/dart/pubspec.lock
index 5d48c44..3f442c6 100644
--- a/dart/pubspec.lock
+++ b/dart/pubspec.lock
@@ -12,7 +12,7 @@
   args:
     description: args
     source: hosted
-    version: "0.13.2"
+    version: "0.13.3+1"
   asn1lib:
     description: asn1lib
     source: hosted
@@ -20,7 +20,7 @@
   async:
     description: async
     source: hosted
-    version: "1.5.0"
+    version: "1.8.0"
   barback:
     description: barback
     source: hosted
@@ -46,7 +46,7 @@
   collection:
     description: collection
     source: hosted
-    version: "1.2.0"
+    version: "1.4.0"
   contrast:
     description: contrast
     source: hosted
@@ -92,11 +92,11 @@
   github:
     description: github
     source: hosted
-    version: "2.3.1"
+    version: "2.3.1+1"
   glob:
     description: glob
     source: hosted
-    version: "1.0.5"
+    version: "1.1.0"
   html:
     description: html
     source: hosted
@@ -116,7 +116,7 @@
   intl:
     description: intl
     source: hosted
-    version: "0.12.5"
+    version: "0.12.6"
   logging:
     description: logging
     source: hosted
@@ -136,23 +136,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
@@ -174,7 +174,7 @@
   petitparser:
     description: petitparser
     source: hosted
-    version: "1.5.0"
+    version: "1.5.1"
   plugin:
     description: plugin
     source: hosted
@@ -210,11 +210,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
@@ -230,15 +230,15 @@
   stack_trace:
     description: stack_trace
     source: hosted
-    version: "1.5.0"
+    version: "1.6.0"
   string_scanner:
     description: string_scanner
     source: hosted
-    version: "0.1.4"
+    version: "0.1.4+1"
   syncbase:
     description: syncbase
     source: hosted
-    version: "0.0.27"
+    version: "0.0.28"
   test:
     description: test
     source: hosted
@@ -258,11 +258,11 @@
   v23discovery:
     description: v23discovery
     source: hosted
-    version: "0.0.11"
+    version: "0.0.12"
   vector_math:
     description: vector_math
     source: hosted
-    version: "1.4.4"
+    version: "1.4.6"
   watcher:
     description: watcher
     source: hosted
@@ -278,8 +278,8 @@
   xml:
     description: xml
     source: hosted
-    version: "2.4.0"
+    version: "2.4.1"
   yaml:
     description: yaml
     source: hosted
-    version: "2.1.7"
+    version: "2.1.8"
diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml
index e718cfd..ca27e2c 100644
--- a/dart/pubspec.yaml
+++ b/dart/pubspec.yaml
@@ -5,8 +5,8 @@
     path: "../../../../../flutter/packages/flutter"
   logging: ">=0.11.2 <0.12.0"
   mojo_services: ">=0.4.5 <0.5.0"
-  syncbase: ">=0.0.27 <0.1.0"
-  v23discovery: ">=0.0.11 < 0.1.0"
+  syncbase: ">=0.0.28 <0.1.0"
+  v23discovery: ">=0.0.12 < 0.1.0"
   uuid: ">=0.5.0 <0.6.0"
 dev_dependencies:
   flutter_tools: