Refactor / cleanup debouncing

This commit is contained in:
smoogipoo
2019-11-21 11:05:18 +09:00
parent 10287eb66d
commit 0cbe29dbec
3 changed files with 14 additions and 28 deletions

View File

@ -9,7 +9,6 @@ using osu.Framework.Bindables;
using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Threading;
using osu.Game.Graphics.UserInterface;
using osu.Game.Online.Multiplayer;
using osuTK;
@ -63,10 +62,7 @@ namespace osu.Game.Screens.Multi.Lounge.Components
protected override void LoadComplete()
{
filter?.BindValueChanged(f => scheduleFilter());
if (filter != null)
Filter(filter.Value);
filter?.BindValueChanged(f => Filter(f.NewValue), true);
}
public void Filter(FilterCriteria criteria)
@ -93,23 +89,13 @@ namespace osu.Game.Screens.Multi.Lounge.Components
});
}
private ScheduledDelegate scheduledFilter;
private void scheduleFilter()
{
if (filter == null)
return;
scheduledFilter?.Cancel();
scheduledFilter = Scheduler.AddDelayed(() => Filter(filter.Value), 200);
}
private void addRooms(IEnumerable<Room> rooms)
{
foreach (var r in rooms)
roomFlow.Add(new DrawableRoom(r) { Action = () => selectRoom(r) });
filter?.TriggerChange();
if (filter != null)
Filter(filter.Value);
}
private void removeRooms(IEnumerable<Room> rooms)