From 755befdf84565aabec56e25e331e2cfded83e836 Mon Sep 17 00:00:00 2001 From: Felix Ang Date: Mon, 1 Jan 2018 14:25:26 +0100 Subject: [PATCH 1/2] Check for supporter before displaying loading spinner --- osu.Game/Screens/Select/Leaderboards/Leaderboard.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs index c15a179e8c..6d779d8689 100644 --- a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs +++ b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs @@ -234,16 +234,15 @@ namespace osu.Game.Screens.Select.Leaderboards return; } - PlaceholderState = PlaceholderState.Retrieving; - loading.Show(); - if (Scope != LeaderboardScope.Global && !api.LocalUser.Value.IsSupporter) { - loading.Hide(); PlaceholderState = PlaceholderState.NotSupporter; return; } + PlaceholderState = PlaceholderState.Retrieving; + loading.Show(); + getScoresRequest = new GetScoresRequest(Beatmap, osuGame?.Ruleset.Value ?? Beatmap.Ruleset, Scope); getScoresRequest.Success += r => { From 4f8a830fbf341d0bc9a57376b4f518b6a106dfe4 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 2 Jan 2018 15:30:29 +0900 Subject: [PATCH 2/2] Fix potential race condition with score retrieval --- osu.Game/Screens/Select/Leaderboards/Leaderboard.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs index 6d779d8689..ac47fade48 100644 --- a/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs +++ b/osu.Game/Screens/Select/Leaderboards/Leaderboard.cs @@ -109,6 +109,13 @@ namespace osu.Game.Screens.Select.Leaderboards { if (value == placeholderState) return; + if (value != PlaceholderState.Successful) + { + getScoresRequest?.Cancel(); + getScoresRequest = null; + Scores = null; + } + switch (placeholderState = value) { case PlaceholderState.NetworkFailure: @@ -211,10 +218,6 @@ namespace osu.Game.Screens.Select.Leaderboards private void updateScores() { - getScoresRequest?.Cancel(); - getScoresRequest = null; - Scores = null; - if (Scope == LeaderboardScope.Local) { // TODO: get local scores from wherever here.