diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index fdc8d94352..00b967c243 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -90,7 +90,7 @@ namespace osu.Game
protected BackButton BackButton;
- protected SettingsPanel Settings;
+ protected SettingsOverlay Settings;
private VolumeOverlay volume;
private OsuLogo osuLogo;
@@ -609,6 +609,9 @@ namespace osu.Game
loadComponentSingleFile(screenshotManager, Add);
+ // dependency on notification overlay
+ loadComponentSingleFile(CreateUpdateManager(), Add, true);
+
// overlay elements
loadComponentSingleFile(beatmapListing = new BeatmapListingOverlay(), overlayContent.Add, true);
loadComponentSingleFile(dashboard = new DashboardOverlay(), overlayContent.Add, true);
@@ -641,7 +644,6 @@ namespace osu.Game
chatOverlay.State.ValueChanged += state => channelManager.HighPollRate.Value = state.NewValue == Visibility.Visible;
Add(externalLinkOpener = new ExternalLinkOpener());
- Add(CreateUpdateManager()); // dependency on notification overlay
// side overlays which cancel each other.
var singleDisplaySideOverlays = new OverlayContainer[] { Settings, notifications };
@@ -765,11 +767,17 @@ namespace osu.Game
private Task asyncLoadStream;
+ ///
+ /// Schedules loading the provided in a single file.
+ ///
+ /// The component to load.
+ /// The method to invoke for adding the component.
+ /// Whether to cache the component as type into the game dependencies before any scheduling.
private T loadComponentSingleFile(T d, Action add, bool cache = false)
where T : Drawable
{
if (cache)
- dependencies.Cache(d);
+ dependencies.CacheAs(d);
if (d is OverlayContainer overlay)
overlays.Add(overlay);
diff --git a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
index 71deeee693..233a382b54 100644
--- a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
@@ -11,13 +11,10 @@ namespace osu.Game.Overlays.Settings.Sections.General
{
public class UpdateSettings : SettingsSubsection
{
- [Resolved(CanBeNull = true)]
- private UpdateManager updateManager { get; set; }
-
protected override string Header => "Updates";
[BackgroundDependencyLoader]
- private void load(Storage storage, OsuConfigManager config, OsuGameBase game)
+ private void load(Storage storage, OsuConfigManager config, OsuGameBase game, UpdateManager updateManager)
{
Add(new SettingsEnumDropdown
{
@@ -28,7 +25,7 @@ namespace osu.Game.Overlays.Settings.Sections.General
Add(new SettingsButton
{
Text = "Check for updates",
- Action = () => updateManager?.CheckForUpdate(),
+ Action = () => updateManager.CheckForUpdate(),
Enabled = { Value = game.IsDeployedBuild }
});
diff --git a/osu.Game/Updater/SimpleUpdateManager.cs b/osu.Game/Updater/SimpleUpdateManager.cs
index 41248ed796..234fe8be8b 100644
--- a/osu.Game/Updater/SimpleUpdateManager.cs
+++ b/osu.Game/Updater/SimpleUpdateManager.cs
@@ -33,7 +33,7 @@ namespace osu.Game.Updater
CheckForUpdate();
}
- public override void CheckForUpdate() => Schedule(() => Task.Run(checkForUpdateAsync));
+ public override void CheckForUpdate() => Schedule(() => Task.Run(() => checkForUpdateAsync()));
private async void checkForUpdateAsync()
{