mirror of https://github.com/ppy/osu
Fix download tracking components getting stuck on import failures
This commit is contained in:
parent
50a1f06ad9
commit
cf3ed42bfc
|
@ -108,7 +108,7 @@ public Task Import(params string[] paths)
|
|||
return Import(notification, paths);
|
||||
}
|
||||
|
||||
protected async Task Import(ProgressNotification notification, params string[] paths)
|
||||
protected async Task<IEnumerable<TModel>> Import(ProgressNotification notification, params string[] paths)
|
||||
{
|
||||
notification.Progress = 0;
|
||||
notification.Text = $"{HumanisedModelName.Humanize(LetterCasing.Title)} import is initialising...";
|
||||
|
@ -168,6 +168,8 @@ await Task.WhenAll(paths.Select(async path =>
|
|||
|
||||
notification.State = ProgressNotificationState.Completed;
|
||||
}
|
||||
|
||||
return imported;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -76,7 +76,12 @@ public bool Download(TModel model, bool minimiseDownloadSize = false)
|
|||
Task.Factory.StartNew(async () =>
|
||||
{
|
||||
// This gets scheduled back to the update thread, but we want the import to run in the background.
|
||||
await Import(notification, filename);
|
||||
var imported = await Import(notification, filename);
|
||||
|
||||
// for now a failed import will be marked as a failed download for simplicity.
|
||||
if (!imported.Any())
|
||||
DownloadFailed?.Invoke(request);
|
||||
|
||||
currentDownloads.Remove(request);
|
||||
}, TaskCreationOptions.LongRunning);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue