Improve the loading animation and use it in multiple places

- Supersedes https://github.com/ppy/osu/pull/926.
- [ ] Depends on https://github.com/ppy/osu-framework/pull/817.
This commit is contained in:
Dean Herbert
2017-06-12 16:40:53 +09:00
parent 8bd9c112ba
commit e94425f311
8 changed files with 86 additions and 28 deletions

View File

@ -80,8 +80,8 @@ namespace osu.Game.Screens.Select
lookup.Success += res =>
{
if (beatmap != requestedBeatmap)
//the beatmap has been changed since we started the lookup.
return;
//the beatmap has been changed since we started the lookup.
return;
requestedBeatmap.Metrics = res;
Schedule(() => updateMetrics(res));
@ -89,6 +89,7 @@ namespace osu.Game.Screens.Select
lookup.Failure += e => updateMetrics(null);
api.Queue(lookup);
loading.Show();
}
updateMetrics(requestedBeatmap.Metrics, false);
@ -104,6 +105,9 @@ namespace osu.Game.Screens.Select
var hasRatings = metrics?.Ratings.Any() ?? false;
var hasRetriesFails = (metrics?.Retries.Any() ?? false) && metrics.Fails.Any();
if (failOnMissing)
loading.Hide();
if (hasRatings)
{
var ratings = metrics.Ratings.ToList();
@ -320,11 +324,13 @@ namespace osu.Game.Screens.Select
}
},
},
}
},
loading = new LoadingAnimation()
};
}
private APIAccess api;
private readonly LoadingAnimation loading;
[BackgroundDependencyLoader]
private void load(OsuColour colour, APIAccess api)