getProgress method

Stream<UploadProgressData> getProgress(
  1. String uploadId
)

Implementation

Stream<UploadProgressData> getProgress(String uploadId) {
  _controllers.putIfAbsent(
      uploadId, () => StreamController<UploadProgressData>.broadcast());

  _service.getUploadProgress(uploadId).listen((p) {
    _controllers[uploadId]?.add(p);
    if (p.progress >= 1.0) {
      Future.delayed(const Duration(seconds: 2), () {
        _controllers[uploadId]?.close();
        _controllers.remove(uploadId);
      });
    }
  });

  return _controllers[uploadId]!.stream;
}