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(
|
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() {
|
|||||||
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 {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
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 {
|
|||||||
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 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 {
|
|||||||
}).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>{
|
||||||
|
Loading…
Reference in New Issue
Block a user