diff --git a/osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs b/osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs index 5cf56333bb..25f1a413d6 100644 --- a/osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs +++ b/osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs @@ -1,11 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using Newtonsoft.Json; namespace osu.Game.Online.API.Requests.Responses { - public class APIUpdateStream + public class APIUpdateStream : IEquatable { [JsonProperty("id")] public long Id { get; set; } @@ -21,5 +22,13 @@ public class APIUpdateStream [JsonProperty("latest_build")] public APIChangelogBuild LatestBuild { get; set; } + + public bool Equals(APIUpdateStream other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return Id == other.Id; + } } } diff --git a/osu.Game/Overlays/Changelog/BadgeDisplay.cs b/osu.Game/Overlays/Changelog/BadgeDisplay.cs index e04624cfcb..9b0f152eb0 100644 --- a/osu.Game/Overlays/Changelog/BadgeDisplay.cs +++ b/osu.Game/Overlays/Changelog/BadgeDisplay.cs @@ -64,22 +64,6 @@ public void Populate(List streams) } } - public void SelectNone() - { - Current.Value = null; - - if (badgesContainer != null) - { - foreach (StreamBadge streamBadge in badgesContainer) - { - if (!IsHovered) - streamBadge.Activate(); - else - streamBadge.Deactivate(); - } - } - } - protected override bool OnHover(HoverEvent e) { foreach (StreamBadge streamBadge in badgesContainer.Children) diff --git a/osu.Game/Overlays/ChangelogOverlay.cs b/osu.Game/Overlays/ChangelogOverlay.cs index 71393141bd..17a2441a9e 100644 --- a/osu.Game/Overlays/ChangelogOverlay.cs +++ b/osu.Game/Overlays/ChangelogOverlay.cs @@ -71,7 +71,12 @@ private void load(AudioManager audio, OsuColour colour) header.ListingSelected += ShowListing; // todo: better - badges.Current.ValueChanged += e => ShowBuild(e.NewValue.LatestBuild); + badges.Current.ValueChanged += e => + { + if (e.NewValue?.LatestBuild != null) + ShowBuild(e.NewValue.LatestBuild); + }; + listing.BuildSelected += ShowBuild; content.BuildSelected += ShowBuild; @@ -149,7 +154,7 @@ public void ShowListing() header.ShowListing(); content.Hide(); - badges.SelectNone(); + badges.Current.Value = null; listing.Show(); scroll.ScrollTo(savedScrollPosition); }