download method
Implementation
Stream<double> download(VoidCallback onDownloadComplete) {
if (_isDownloading) {
_listerners.add(onDownloadComplete);
return _progressController.stream;
} else {
_listerners.add(onDownloadComplete);
_isDownloading = true;
dio = Dio();
dio.download(
downloadLink,
fileAddress,
cancelToken: _cancelToken,
onReceiveProgress: (received, total) {
if (total != -1) {
double percentage = (received / total);
_progressController.sink.add(percentage);
}
},
deleteOnError: true,
)..then((_) {
_isDownloading = false;
_progressController.sink.close();
notifyListeners();
_listerners.clear();
});
return _progressController.stream;
}
}