diff --git a/osu.Android.props b/osu.Android.props
index 73ee1d9d10..cba3975209 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -52,6 +52,6 @@
-
+
diff --git a/osu.Game/Screens/Play/ScreenSuspensionHandler.cs b/osu.Game/Screens/Play/ScreenSuspensionHandler.cs
index 8585a5c309..30ca15c311 100644
--- a/osu.Game/Screens/Play/ScreenSuspensionHandler.cs
+++ b/osu.Game/Screens/Play/ScreenSuspensionHandler.cs
@@ -2,7 +2,6 @@
// See the LICENCE file in the repository root for full licence text.
using System;
-using System.Diagnostics;
using JetBrains.Annotations;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
@@ -19,6 +18,8 @@ namespace osu.Game.Screens.Play
private readonly GameplayClockContainer gameplayClockContainer;
private Bindable isPaused;
+ private readonly Bindable disableSuspensionBindable = new Bindable();
+
[Resolved]
private GameHost host { get; set; }
@@ -31,12 +32,14 @@ namespace osu.Game.Screens.Play
{
base.LoadComplete();
- // This is the only usage game-wide of suspension changes.
- // Assert to ensure we don't accidentally forget this in the future.
- Debug.Assert(host.AllowScreenSuspension.Value);
-
isPaused = gameplayClockContainer.IsPaused.GetBoundCopy();
- isPaused.BindValueChanged(paused => host.AllowScreenSuspension.Value = paused.NewValue, true);
+ isPaused.BindValueChanged(paused =>
+ {
+ if (paused.NewValue)
+ host.AllowScreenSuspension.RemoveSource(disableSuspensionBindable);
+ else
+ host.AllowScreenSuspension.AddSource(disableSuspensionBindable);
+ }, true);
}
protected override void Dispose(bool isDisposing)
@@ -44,9 +47,7 @@ namespace osu.Game.Screens.Play
base.Dispose(isDisposing);
isPaused?.UnbindAll();
-
- if (host != null)
- host.AllowScreenSuspension.Value = true;
+ host?.AllowScreenSuspension.RemoveSource(disableSuspensionBindable);
}
}
}
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 931b55222a..292e5b932f 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -29,7 +29,7 @@
-
+
diff --git a/osu.iOS.props b/osu.iOS.props
index 64e9a01a92..36e581a80c 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -70,7 +70,7 @@
-
+
@@ -93,7 +93,7 @@
-
+