mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Loader improvements (#6615)
This commit is contained in:
parent
a33b70ed33
commit
5fb692124c
@ -22,7 +22,9 @@ void main() {
|
||||
return new Column(
|
||||
children: <Widget>[
|
||||
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(
|
||||
child: new Builder(
|
||||
@ -38,21 +40,21 @@ void main() {
|
||||
children.add(new Center(child: new CircularProgressIndicator(value: progressMax > 0 ? progress / progressMax : null)));
|
||||
}
|
||||
return new Block(children: children);
|
||||
}
|
||||
)
|
||||
},
|
||||
),
|
||||
),
|
||||
new Flexible(
|
||||
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) ]
|
||||
)
|
||||
),
|
||||
]
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
)
|
||||
)
|
||||
)
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
connectionTimeout = new Timer(const Duration(seconds: 8), () {
|
||||
setState(() {
|
||||
@ -82,6 +84,17 @@ class LoaderBinding extends WidgetsFlutterBinding {
|
||||
});
|
||||
}
|
||||
);
|
||||
registerStringServiceExtension(
|
||||
name: 'loaderShowExplanation',
|
||||
getter: () => explanation,
|
||||
setter: (String value) {
|
||||
connectionTimeout?.cancel();
|
||||
connectionTimeout = null;
|
||||
setState(() {
|
||||
explanation = value;
|
||||
});
|
||||
}
|
||||
);
|
||||
registerNumericServiceExtension(
|
||||
name: 'loaderSetProgress',
|
||||
getter: () => progress,
|
||||
|
@ -263,6 +263,7 @@ class HotRunner extends ResidentRunner {
|
||||
return 3;
|
||||
}
|
||||
_loaderShowMessage('Connecting...', progress: 0);
|
||||
_loaderShowExplanation('You can use hot reload to update your app on the fly, without restarting it.');
|
||||
bool devfsResult = await _updateDevFS(
|
||||
progressReporter: (int progress, int max) {
|
||||
if (progress % 10 == 0)
|
||||
@ -340,6 +341,10 @@ class HotRunner extends ResidentRunner {
|
||||
}
|
||||
}
|
||||
|
||||
void _loaderShowExplanation(String explanation) {
|
||||
currentView.uiIsolate.flutterLoaderShowExplanation(explanation);
|
||||
}
|
||||
|
||||
DevFS _devFS;
|
||||
|
||||
Future<Uri> _initDevFS() {
|
||||
|
@ -809,6 +809,13 @@ class Isolate extends ServiceObjectOwner {
|
||||
}).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) {
|
||||
// Invoke loaderSetProgress; ignore any returned errors.
|
||||
invokeRpcRaw('ext.flutter.loaderSetProgress', <String, dynamic>{
|
||||
|
Loading…
Reference in New Issue
Block a user