Implemented "cancel download" button.
Requires PR #165 to be merged in quickemu.
This commit is contained in:
parent
035efc5e32
commit
b537c74b21
|
@ -33,6 +33,7 @@ class _DownloaderState extends State<Downloader> {
|
||||||
late final Stream<double> _progressStream;
|
late final Stream<double> _progressStream;
|
||||||
bool _downloadFinished = false;
|
bool _downloadFinished = false;
|
||||||
var controller = StreamController<double>();
|
var controller = StreamController<double>();
|
||||||
|
Process? _process;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
@ -83,6 +84,10 @@ class _DownloaderState extends State<Downloader> {
|
||||||
_downloadFinished = true;
|
_downloadFinished = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setState(() {
|
||||||
|
_process = process;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
return controller.stream;
|
return controller.stream;
|
||||||
}
|
}
|
||||||
|
@ -125,6 +130,9 @@ class _DownloaderState extends State<Downloader> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
CancelDismissButton(
|
CancelDismissButton(
|
||||||
|
onCancel: () {
|
||||||
|
_process?.kill();
|
||||||
|
},
|
||||||
downloadFinished: _downloadFinished,
|
downloadFinished: _downloadFinished,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -4,9 +4,11 @@ class CancelDismissButton extends StatelessWidget {
|
||||||
const CancelDismissButton({
|
const CancelDismissButton({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.downloadFinished,
|
required this.downloadFinished,
|
||||||
|
required this.onCancel,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final bool downloadFinished;
|
final bool downloadFinished;
|
||||||
|
final VoidCallback onCancel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -17,7 +19,7 @@ class CancelDismissButton extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
ElevatedButton(
|
ElevatedButton(
|
||||||
onPressed: !downloadFinished
|
onPressed: !downloadFinished
|
||||||
? null
|
? onCancel
|
||||||
: () {
|
: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue