1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 22:47:24 +08:00

Extract removal to method

This commit is contained in:
smoogipoo 2021-09-15 17:03:26 +09:00
parent a775915338
commit f54d554d30
3 changed files with 12 additions and 11 deletions

View File

@ -179,11 +179,7 @@ namespace osu.Game.Online.Rooms
if (EndDate.Value != null && DateTimeOffset.Now >= EndDate.Value) if (EndDate.Value != null && DateTimeOffset.Now >= EndDate.Value)
Status.Value = new RoomStatusEnded(); Status.Value = new RoomStatusEnded();
// Todo: This is not the best way/place to do this, but the intention is to display all playlist items when the room has ended, other.RemoveExpiredPlaylistItems();
// and display only the non-expired playlist items while the room is still active. In order to achieve this, all expired items are removed from the source Room.
// More refactoring is required before this can be done locally instead - DrawableRoomPlaylist is currently directly bound to the playlist to display items in the room.
if (!(Status.Value is RoomStatusEnded))
other.Playlist.RemoveAll(i => i.Expired);
if (!Playlist.SequenceEqual(other.Playlist)) if (!Playlist.SequenceEqual(other.Playlist))
{ {
@ -200,6 +196,15 @@ namespace osu.Game.Online.Rooms
Position.Value = other.Position.Value; Position.Value = other.Position.Value;
} }
public void RemoveExpiredPlaylistItems()
{
// Todo: This is not the best way/place to do this, but the intention is to display all playlist items when the room has ended,
// and display only the non-expired playlist items while the room is still active. In order to achieve this, all expired items are removed from the source Room.
// More refactoring is required before this can be done locally instead - DrawableRoomPlaylist is currently directly bound to the playlist to display items in the room.
if (!(Status.Value is RoomStatusEnded))
Playlist.RemoveAll(i => i.Expired);
}
public bool ShouldSerializeRoomID() => false; public bool ShouldSerializeRoomID() => false;
public bool ShouldSerializeHost() => false; public bool ShouldSerializeHost() => false;
public bool ShouldSerializeEndDate() => false; public bool ShouldSerializeEndDate() => false;

View File

@ -58,9 +58,7 @@ namespace osu.Game.Screens.OnlinePlay.Components
foreach (var incoming in result) foreach (var incoming in result)
{ {
// Copy the room to itself to populate some members (such as status and playlist expiry). incoming.RemoveExpiredPlaylistItems();
incoming.CopyFrom(incoming);
RoomManager.AddOrUpdateRoom(incoming); RoomManager.AddOrUpdateRoom(incoming);
} }

View File

@ -39,9 +39,7 @@ namespace osu.Game.Screens.OnlinePlay.Components
pollReq.Success += result => pollReq.Success += result =>
{ {
// Copy the room to itself to populate some members (such as status and playlist expiry). result.RemoveExpiredPlaylistItems();
result.CopyFrom(result);
RoomManager.AddOrUpdateRoom(result); RoomManager.AddOrUpdateRoom(result);
tcs.SetResult(true); tcs.SetResult(true);
}; };