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

@ -12,6 +12,7 @@ using System;
using osu.Framework.Allocation;
using osu.Framework.Threading;
using osu.Game.Database;
using osu.Game.Graphics.UserInterface;
using osu.Game.Rulesets.Scoring;
using osu.Game.Online.API;
using osu.Game.Online.API.Requests;
@ -25,6 +26,8 @@ namespace osu.Game.Screens.Select.Leaderboards
public Action<Score> ScoreSelected;
private LoadingAnimation loading;
private IEnumerable<Score> scores;
public IEnumerable<Score> Scores
{
@ -86,6 +89,7 @@ namespace osu.Game.Screens.Select.Leaderboards
},
},
},
loading = new LoadingAnimation()
};
}
@ -117,6 +121,7 @@ namespace osu.Game.Screens.Select.Leaderboards
}
private GetScoresRequest getScoresRequest;
private void updateScores()
{
if (!IsLoaded) return;
@ -126,8 +131,14 @@ namespace osu.Game.Screens.Select.Leaderboards
if (api == null || Beatmap == null) return;
loading.Show();
getScoresRequest = new GetScoresRequest(Beatmap);
getScoresRequest.Success += r => Scores = r.Scores;
getScoresRequest.Success += r =>
{
Scores = r.Scores;
loading.Hide();
};
api.Queue(getScoresRequest);
}