diff --git a/osu.Game/Screens/SelectV2/BeatmapCarousel.cs b/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
index f9552767a7..b67641dc96 100644
--- a/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
+++ b/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
@@ -52,9 +52,6 @@ namespace osu.Game.Screens.SelectV2
private readonly BeatmapCarouselFilterMatching matching;
private readonly BeatmapCarouselFilterGrouping grouping;
- [Resolved]
- private RealmAccess realm { get; set; } = null!;
-
///
/// Total number of beatmap difficulties displayed with the filter.
///
@@ -102,17 +99,18 @@ namespace osu.Game.Screens.SelectV2
{
matching = new BeatmapCarouselFilterMatching(() => Criteria!),
new BeatmapCarouselFilterSorting(() => Criteria!),
- grouping = new BeatmapCarouselFilterGrouping(() => Criteria!, () => realm.Run(r => r.All().AsEnumerable().Detach())),
+ grouping = new BeatmapCarouselFilterGrouping(() => Criteria!, () => detachedCollections())
};
AddInternal(loading = new LoadingLayer());
}
[BackgroundDependencyLoader]
- private void load(BeatmapStore beatmapStore, AudioManager audio, OsuConfigManager config, CancellationToken? cancellationToken)
+ private void load(BeatmapStore beatmapStore, RealmAccess realm, AudioManager audio, OsuConfigManager config, CancellationToken? cancellationToken)
{
setupPools();
detachedBeatmaps = beatmapStore.GetBeatmapSets(cancellationToken);
+ detachedCollections = () => realm.Run(r => r.All().AsEnumerable().Detach());
loadSamples(audio);
config.BindWith(OsuSetting.RandomSelectAlgorithm, randomAlgorithm);
@@ -700,6 +698,8 @@ namespace osu.Game.Screens.SelectV2
private Sample? spinSample;
private Sample? randomSelectSample;
+ private Func> detachedCollections = null!;
+
public bool NextRandom()
{
var carouselItems = GetCarouselItems();