Commit 5fb69212 authored by Ian Hickson's avatar Ian Hickson Committed by GitHub

Loader improvements (#6615)

parent a33b70ed
...@@ -22,7 +22,9 @@ void main() { ...@@ -22,7 +22,9 @@ void main() {
return new Column( return new Column(
children: <Widget>[ children: <Widget>[
new Flexible( new Flexible(
child: new Container() // TODO(ianh): replace this with our logo in a Center box child: new Center(
child: new FlutterLogo(size: 100.0),
),
), ),
new Flexible( new Flexible(
child: new Builder( child: new Builder(
...@@ -38,21 +40,21 @@ void main() { ...@@ -38,21 +40,21 @@ void main() {
children.add(new Center(child: new CircularProgressIndicator(value: progressMax > 0 ? progress / progressMax : null))); children.add(new Center(child: new CircularProgressIndicator(value: progressMax > 0 ? progress / progressMax : null)));
} }
return new Block(children: children); return new Block(children: children);
} },
) ),
), ),
new Flexible( new Flexible(
child: new Block( child: new Block(
padding: new EdgeInsets.symmetric(horizontal: 16.0), padding: new EdgeInsets.symmetric(horizontal: 24.0),
children: <Widget>[ new Text(explanation, textAlign: TextAlign.center) ] children: <Widget>[ new Text(explanation, textAlign: TextAlign.center) ]
) ),
), ),
] ],
); );
} },
) ),
) ),
) ),
); );
connectionTimeout = new Timer(const Duration(seconds: 8), () { connectionTimeout = new Timer(const Duration(seconds: 8), () {
setState(() { setState(() {
...@@ -82,6 +84,17 @@ class LoaderBinding extends WidgetsFlutterBinding { ...@@ -82,6 +84,17 @@ class LoaderBinding extends WidgetsFlutterBinding {
}); });
} }
); );
registerStringServiceExtension(
name: 'loaderShowExplanation',
getter: () => explanation,
setter: (String value) {
connectionTimeout?.cancel();
connectionTimeout = null;
setState(() {
explanation = value;
});
}
);
registerNumericServiceExtension( registerNumericServiceExtension(
name: 'loaderSetProgress', name: 'loaderSetProgress',
getter: () => progress, getter: () => progress,
......
...@@ -263,6 +263,7 @@ class HotRunner extends ResidentRunner { ...@@ -263,6 +263,7 @@ class HotRunner extends ResidentRunner {
return 3; return 3;
} }
_loaderShowMessage('Connecting...', progress: 0); _loaderShowMessage('Connecting...', progress: 0);
_loaderShowExplanation('You can use hot reload to update your app on the fly, without restarting it.');
bool devfsResult = await _updateDevFS( bool devfsResult = await _updateDevFS(
progressReporter: (int progress, int max) { progressReporter: (int progress, int max) {
if (progress % 10 == 0) if (progress % 10 == 0)
...@@ -340,6 +341,10 @@ class HotRunner extends ResidentRunner { ...@@ -340,6 +341,10 @@ class HotRunner extends ResidentRunner {
} }
} }
void _loaderShowExplanation(String explanation) {
currentView.uiIsolate.flutterLoaderShowExplanation(explanation);
}
DevFS _devFS; DevFS _devFS;
Future<Uri> _initDevFS() { Future<Uri> _initDevFS() {
......
...@@ -809,6 +809,13 @@ class Isolate extends ServiceObjectOwner { ...@@ -809,6 +809,13 @@ class Isolate extends ServiceObjectOwner {
}).catchError((dynamic error) => null); }).catchError((dynamic error) => null);
} }
void flutterLoaderShowExplanation(String explanation) {
// Invoke loaderShowExplanation; ignore any returned errors.
invokeRpcRaw('ext.flutter.loaderShowExplanation', <String, dynamic> {
'value': explanation
}).catchError((dynamic error) => null);
}
void flutterLoaderSetProgress(double progress) { void flutterLoaderSetProgress(double progress) {
// Invoke loaderSetProgress; ignore any returned errors. // Invoke loaderSetProgress; ignore any returned errors.
invokeRpcRaw('ext.flutter.loaderSetProgress', <String, dynamic>{ invokeRpcRaw('ext.flutter.loaderSetProgress', <String, dynamic>{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment