watchUploadProgress method

Stream<double> watchUploadProgress(
  1. String mediaId
)

Stream upload progress (0.0 → 1.0) for a media item.

Returns 1.0 when CloudMediaStatus.synced. Reads metadata['progress'] while CloudMediaStatus.syncing.

watcher.watchUploadProgress(id).listen((progress) {
  print('${(progress * 100).toStringAsFixed(0)}%');
});

Implementation

Stream<double> watchUploadProgress(String mediaId) {
  return CloudMedia.watch(mediaId).map((item) {
    if (item.status == CloudMediaStatus.synced) return 1.0;
    if (item.status == CloudMediaStatus.syncing) {
      return (item.metadata['progress'] as num?)?.toDouble() ?? 0.0;
    }
    return 0.0;
  });
}