1
0
mirror of https://github.com/ppy/osu synced 2025-03-31 23:58:37 +00:00

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
osu.Game/Screens/Multi/Lounge/Components

View File

@ -74,6 +74,8 @@ namespace osu.Game.Screens.Multi.Lounge.Components
set set
{ {
matchingFilter = value; matchingFilter = value;
if (IsLoaded)
this.FadeTo(MatchingFilter ? 1 : 0, 200); this.FadeTo(MatchingFilter ? 1 : 0, 200);
} }
} }
@ -203,7 +205,11 @@ namespace osu.Game.Screens.Multi.Lounge.Components
protected override void LoadComplete() protected override void LoadComplete()
{ {
base.LoadComplete(); base.LoadComplete();
if (matchingFilter)
this.FadeInFromZero(transition_duration); this.FadeInFromZero(transition_duration);
else
Alpha = 0;
} }
private class RoomName : OsuSpriteText private class RoomName : OsuSpriteText

View File

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