Fix filtering breaking on secondary filters

This commit is contained in:
smoogipoo 2019-11-15 17:49:02 +09:00
parent f0b7b2e1c4
commit 1b4bcb81c8
2 changed files with 10 additions and 8 deletions

View File

@ -74,7 +74,9 @@ public bool MatchingFilter
set
{
matchingFilter = value;
this.FadeTo(MatchingFilter ? 1 : 0, 200);
if (IsLoaded)
this.FadeTo(MatchingFilter ? 1 : 0, 200);
}
}
@ -203,7 +205,11 @@ protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnl
protected override void LoadComplete()
{
base.LoadComplete();
this.FadeInFromZero(transition_duration);
if (matchingFilter)
this.FadeInFromZero(transition_duration);
else
Alpha = 0;
}
private class RoomName : OsuSpriteText

View File

@ -65,8 +65,6 @@ protected override void LoadComplete()
filter?.BindValueChanged(f => Filter(f.NewValue), true);
}
private FilterCriteria currentFilter;
public void Filter(FilterCriteria criteria)
{
roomFlow.Children.ForEach(r =>
@ -82,15 +80,13 @@ public void Filter(FilterCriteria criteria)
{
default:
case SecondaryFilter.Public:
r.MatchingFilter = r.Room.Availability.Value == RoomAvailability.Public;
matchingFilter &= r.Room.Availability.Value == RoomAvailability.Public;
break;
}
r.MatchingFilter = matchingFilter;
}
});
currentFilter = criteria;
}
private void addRooms(IEnumerable<Room> rooms)
@ -98,7 +94,7 @@ private void addRooms(IEnumerable<Room> rooms)
foreach (var r in rooms)
roomFlow.Add(new DrawableRoom(r) { Action = () => selectRoom(r) });
Filter(currentFilter);
filter?.TriggerChange();
}
private void removeRooms(IEnumerable<Room> rooms)