download method

Stream<double> download(
  1. VoidCallback onDownloadComplete
)

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;
  }
}