diff --git a/osu.Game/Screens/Ranking/SoloResultsScreen.cs b/osu.Game/Screens/Ranking/SoloResultsScreen.cs index 2d772e5f09..aeb21b09cb 100644 --- a/osu.Game/Screens/Ranking/SoloResultsScreen.cs +++ b/osu.Game/Screens/Ranking/SoloResultsScreen.cs @@ -41,12 +41,12 @@ namespace osu.Game.Screens.Ranking { Debug.Assert(Score != null); + // sort mode intentionally omitted to default to score - results screen only supports sorting by score, so don't pass any other to avoid confusion var criteria = new LeaderboardCriteria( Score.BeatmapInfo!, Score.Ruleset, leaderboardManager.CurrentCriteria?.Scope ?? BeatmapLeaderboardScope.Global, - leaderboardManager.CurrentCriteria?.ExactMods, - leaderboardManager.CurrentCriteria?.Sorting ?? LeaderboardSortMode.Score + leaderboardManager.CurrentCriteria?.ExactMods ); var requestTaskSource = new TaskCompletionSource(); globalScores.BindValueChanged(_ => diff --git a/osu.Game/Screens/SelectV2/BeatmapDetailsArea.cs b/osu.Game/Screens/SelectV2/BeatmapDetailsArea.cs index 85bbf34837..7a2068b0cf 100644 --- a/osu.Game/Screens/SelectV2/BeatmapDetailsArea.cs +++ b/osu.Game/Screens/SelectV2/BeatmapDetailsArea.cs @@ -97,5 +97,11 @@ namespace osu.Game.Screens.SelectV2 contentContainer.Add(currentContent); currentContent.Show(); } + + public void Refresh() + { + if (currentContent is BeatmapLeaderboardWedge leaderboardWedge) + leaderboardWedge.RefetchScores(); + } } } diff --git a/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs b/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs index 259ce8565b..0b845474dd 100644 --- a/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs +++ b/osu.Game/Screens/SelectV2/BeatmapLeaderboardWedge.cs @@ -189,14 +189,14 @@ namespace osu.Game.Screens.SelectV2 { base.LoadComplete(); - Scope.BindValueChanged(_ => refetchScores()); - Sorting.BindValueChanged(_ => refetchScores()); - FilterBySelectedMods.BindValueChanged(_ => refetchScores()); - beatmap.BindValueChanged(_ => refetchScores()); - ruleset.BindValueChanged(_ => refetchScores()); + Scope.BindValueChanged(_ => RefetchScores()); + Sorting.BindValueChanged(_ => RefetchScores()); + FilterBySelectedMods.BindValueChanged(_ => RefetchScores()); + beatmap.BindValueChanged(_ => RefetchScores()); + ruleset.BindValueChanged(_ => RefetchScores()); mods.BindValueChanged(_ => refetchScoresFromMods()); - refetchScores(); + RefetchScores(); } protected override void PopIn() @@ -212,14 +212,14 @@ namespace osu.Game.Screens.SelectV2 private void refetchScoresFromMods() { if (FilterBySelectedMods.Value) - refetchScores(); + RefetchScores(); } private bool initialFetchComplete; private ScheduledDelegate? refetchOperation; - private void refetchScores() + public void RefetchScores() { SetScores(Array.Empty()); @@ -477,7 +477,7 @@ namespace osu.Game.Screens.SelectV2 case LeaderboardState.NetworkFailure: return new ClickablePlaceholder(LeaderboardStrings.CouldntFetchScores, FontAwesome.Solid.Sync) { - Action = refetchScores + Action = RefetchScores }; case LeaderboardState.NoneSelected: diff --git a/osu.Game/Screens/SelectV2/SongSelect.cs b/osu.Game/Screens/SelectV2/SongSelect.cs index b11254264a..5635fa07fc 100644 --- a/osu.Game/Screens/SelectV2/SongSelect.cs +++ b/osu.Game/Screens/SelectV2/SongSelect.cs @@ -594,6 +594,8 @@ namespace osu.Game.Screens.SelectV2 ensureGlobalBeatmapValid(); + detailsArea.Refresh(); + if (ControlGlobalMusic) { // restart playback on returning to song select, regardless.