updateTaskByUrl method
Implementation
void updateTaskByUrl(String url, DownloadStatus status) {
final task = findTaskByUrl(url);
if (task != null) {
task.status = status;
if (status == DownloadStatus.DOWNLOADING) {
if (downloadingTasks.length > _poolSize) {
DownloadTask lowest = downloadingTasks
.where((e) => e.url != url)
.reduce((a, b) => a.priority < b.priority ? a : b);
lowest.status = DownloadStatus.PAUSED;
}
_download(task);
} else if (status == DownloadStatus.COMPLETED ||
status == DownloadStatus.FAILED ||
status == DownloadStatus.CANCELLED) {
_taskList.removeWhere((task) => task.url == url);
_notifyTask(task);
}
}
}