diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemResultsScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemResultsScreen.cs
index bba30ec312..e9ba3bdb70 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemResultsScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemResultsScreen.cs
@@ -125,7 +125,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
setPositions(lowerScores, userScore.Position.Value, 1);
}
- return await TransformScores(allScores);
+ return await transformScores(allScores);
}
catch (OperationCanceledException)
{
@@ -190,7 +190,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
setPositions(index, pivot, -1);
}
- return await TransformScores(index.Scores, index);
+ return await transformScores(index.Scores);
}
catch (OperationCanceledException)
{
@@ -203,11 +203,10 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
}
///
- /// Transforms returned into s, ensure the is put into a sane state, and invokes a given success callback.
+ /// Transforms returned into s.
///
/// The s that were retrieved from s.
- /// An optional pivot around which the scores were retrieved.
- protected virtual async Task TransformScores(List scores, MultiplayerScores? pivot = null)
+ private async Task transformScores(List scores)
{
APIBeatmap?[] beatmaps = await beatmapLookupCache.GetBeatmapsAsync(scores.Select(s => s.BeatmapId).Distinct().ToArray());
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemScoreResultsScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemScoreResultsScreen.cs
index f74b30c3f7..7f386cd293 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemScoreResultsScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemScoreResultsScreen.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.Linq;
-using System.Threading.Tasks;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Scoring;
@@ -31,11 +30,10 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
protected override APIRequest CreateScoreRequest() => new ShowPlaylistScoreRequest(RoomId, PlaylistItem.ID, scoreId);
- protected override async Task TransformScores(List scores, MultiplayerScores? pivot = null)
+ protected override void OnScoresAdded(IEnumerable scores)
{
- var scoreInfos = await base.TransformScores(scores, pivot);
- Schedule(() => SelectedScore.Value ??= scoreInfos.SingleOrDefault(s => s.OnlineID == scoreId));
- return scoreInfos;
+ base.OnScoresAdded(scores);
+ SelectedScore.Value ??= scores.SingleOrDefault(s => s.OnlineID == scoreId);
}
}
}
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemUserBestResultsScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemUserBestResultsScreen.cs
index 2e763666a7..faeef93b71 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemUserBestResultsScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistItemUserBestResultsScreen.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using System.Linq;
-using System.Threading.Tasks;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Scoring;
@@ -25,17 +24,12 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
protected override APIRequest CreateScoreRequest() => new ShowPlaylistUserScoreRequest(RoomId, PlaylistItem.ID, userId);
- protected override async Task TransformScores(List scores, MultiplayerScores? pivot = null)
+ protected override void OnScoresAdded(IEnumerable scores)
{
- var scoreInfos = await base.TransformScores(scores, pivot);
+ base.OnScoresAdded(scores);
- Schedule(() =>
- {
- // Prefer selecting the local user's score, or otherwise default to the first visible score.
- SelectedScore.Value ??= scoreInfos.FirstOrDefault(s => s.UserID == userId) ?? scoreInfos.FirstOrDefault();
- });
-
- return scoreInfos;
+ // Prefer selecting the local user's score, or otherwise default to the first visible score.
+ SelectedScore.Value ??= scores.FirstOrDefault(s => s.UserID == userId) ?? scores.FirstOrDefault();
}
}
}
diff --git a/osu.Game/Screens/Ranking/ResultsScreen.cs b/osu.Game/Screens/Ranking/ResultsScreen.cs
index 11e90a06b9..ce86ac0815 100644
--- a/osu.Game/Screens/Ranking/ResultsScreen.cs
+++ b/osu.Game/Screens/Ranking/ResultsScreen.cs
@@ -357,8 +357,18 @@ namespace osu.Game.Screens.Ranking
// This can happen if for example a beatmap that is part of a playlist hasn't been played yet.
VerticalScrollContent.Add(new MessagePlaceholder(LeaderboardStrings.NoRecordsYet));
}
+
+ OnScoresAdded(scores);
});
+ ///
+ /// Invoked after online scores are fetched and added to the list.
+ ///
+ /// The scores that were added.
+ protected virtual void OnScoresAdded(IEnumerable scores)
+ {
+ }
+
public override void OnEntering(ScreenTransitionEvent e)
{
base.OnEntering(e);