watchUploadProgress method
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;
});
}