diff --git a/osu.Game/Database/RealmBackedStore.cs b/osu.Game/Database/RealmBackedStore.cs
index e37831d9d5..4e58ef773b 100644
--- a/osu.Game/Database/RealmBackedStore.cs
+++ b/osu.Game/Database/RealmBackedStore.cs
@@ -3,15 +3,17 @@
using osu.Framework.Platform;
+#nullable enable
+
namespace osu.Game.Database
{
public abstract class RealmBackedStore
{
- protected readonly Storage Storage;
+ protected readonly Storage? Storage;
protected readonly IRealmFactory ContextFactory;
- protected RealmBackedStore(IRealmFactory contextFactory, Storage storage = null)
+ protected RealmBackedStore(IRealmFactory contextFactory, Storage? storage = null)
{
ContextFactory = contextFactory;
Storage = storage;
diff --git a/osu.Game/Input/RealmKeyBindingStore.cs b/osu.Game/Input/RealmKeyBindingStore.cs
index fccd216e4d..95751306f3 100644
--- a/osu.Game/Input/RealmKeyBindingStore.cs
+++ b/osu.Game/Input/RealmKeyBindingStore.cs
@@ -10,6 +10,8 @@ using osu.Game.Database;
using osu.Game.Input.Bindings;
using osu.Game.Rulesets;
+#nullable enable
+
namespace osu.Game.Input
{
public class RealmKeyBindingStore : RealmBackedStore
@@ -17,19 +19,22 @@ namespace osu.Game.Input
///
/// Fired whenever any key binding change occurs, across all rulesets and types.
///
- public event Action KeyBindingChanged;
+ public event Action? KeyBindingChanged;
- public RealmKeyBindingStore(RealmContextFactory contextFactory, RulesetStore rulesets, Storage storage = null)
+ public RealmKeyBindingStore(RealmContextFactory contextFactory, RulesetStore? rulesets, Storage? storage = null)
: base(contextFactory, storage)
{
- // populate defaults from rulesets.
- using (ContextFactory.GetForWrite())
+ if (rulesets != null)
{
- foreach (RulesetInfo info in rulesets.AvailableRulesets)
+ // populate defaults from rulesets.
+ using (ContextFactory.GetForWrite())
{
- var ruleset = info.CreateInstance();
- foreach (var variant in ruleset.AvailableVariants)
- insertDefaults(ruleset.GetDefaultKeyBindings(variant), info.ID, variant);
+ foreach (RulesetInfo info in rulesets.AvailableRulesets)
+ {
+ var ruleset = info.CreateInstance();
+ foreach (var variant in ruleset.AvailableVariants)
+ insertDefaults(ruleset.GetDefaultKeyBindings(variant), info.ID, variant);
+ }
}
}
}
@@ -87,7 +92,7 @@ namespace osu.Game.Input
public void Update(IHasGuidPrimaryKey keyBinding, Action modification)
{
// the incoming instance could already be a live access object.
- Live realmBinding = keyBinding as Live;
+ Live? realmBinding = keyBinding as Live;
using (var realm = ContextFactory.GetForWrite())
{