diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
index 1f27a831ca..0f589a8b35 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
@@ -75,10 +75,10 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
loadingLayer.Hide();
}
- protected override void SelectItem(PlaylistItem item)
+ protected override bool SelectItem(PlaylistItem item)
{
if (operationInProgress.Value)
- return;
+ return false;
// If the client is already in a room, update via the client.
// Otherwise, update the playlist directly in preparation for it to be submitted to the API on match creation.
@@ -124,6 +124,8 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
Playlist.Add(item);
this.Exit();
}
+
+ return true;
}
protected override BeatmapDetailArea CreateBeatmapDetailArea() => new PlayBeatmapDetailArea();
diff --git a/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs b/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
index 1552811c74..f26480909e 100644
--- a/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
@@ -118,8 +118,6 @@ namespace osu.Game.Screens.OnlinePlay
protected sealed override bool OnStart()
{
- itemSelected = true;
-
var item = new PlaylistItem(Beatmap.Value.BeatmapInfo)
{
RulesetID = Ruleset.Value.OnlineID,
@@ -127,15 +125,21 @@ namespace osu.Game.Screens.OnlinePlay
AllowedMods = FreeMods.Value.Select(m => new APIMod(m)).ToArray()
};
- SelectItem(item);
- return true;
+ if (SelectItem(item))
+ {
+ itemSelected = true;
+ return true;
+ }
+
+ return false;
}
///
/// Invoked when the user has requested a selection of a beatmap.
///
/// The resultant . This item has not yet been added to the 's.
- protected abstract void SelectItem(PlaylistItem item);
+ /// true if a selection occurred.
+ protected abstract bool SelectItem(PlaylistItem item);
public override bool OnBackButton()
{
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
index 65a27a9261..73765fc661 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
@@ -24,7 +24,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
CreateNewItem = createNewItem
};
- protected override void SelectItem(PlaylistItem item)
+ protected override bool SelectItem(PlaylistItem item)
{
switch (Playlist.Count)
{
@@ -39,6 +39,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
}
this.Exit();
+ return true;
}
private void createNewItem()