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();