diff --git a/osu.Game/Online/Chat/Channel.cs b/osu.Game/Online/Chat/Channel.cs index 2925c3ccb4..bffd98ee2c 100644 --- a/osu.Game/Online/Chat/Channel.cs +++ b/osu.Game/Online/Chat/Channel.cs @@ -23,9 +23,9 @@ namespace osu.Game.Online.Chat [JsonProperty(@"channel_id")] public int Id; - public readonly SortedList Messages = new SortedList((m1, m2) => m1.Id.CompareTo(m2.Id)); + public bool Joined; - //internal bool Joined; + public readonly SortedList Messages = new SortedList((m1, m2) => m1.Id.CompareTo(m2.Id)); public bool ReadOnly => Name != "#lazer"; diff --git a/osu.Game/Overlays/Chat/ChannelListItem.cs b/osu.Game/Overlays/Chat/ChannelListItem.cs index 56a0e74c35..ba1c890747 100644 --- a/osu.Game/Overlays/Chat/ChannelListItem.cs +++ b/osu.Game/Overlays/Chat/ChannelListItem.cs @@ -21,25 +21,28 @@ namespace osu.Game.Overlays.Chat private const float transition_duration = 100; private readonly OsuSpriteText topic; + private readonly OsuSpriteText name; private readonly TextAwesome joinedCheckmark; private Color4? joinedColour; private Color4? topicColour; - private bool joined; - public bool Joined + private Channel channel; + public Channel Channel { - get { return joined; } + get { return channel; } set { - if (value == joined) return; - joined = value; + if (value == channel) return; + channel = value; + name.Text = Channel.ToString(); + topic.Text = Channel.Topic; updateColour(); } } - public ChannelListItem(Channel channel) + public ChannelListItem() { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; @@ -74,9 +77,8 @@ namespace osu.Game.Overlays.Chat AutoSizeAxes = Axes.Y, Children = new[] { - new OsuSpriteText + name = new OsuSpriteText { - Text = channel.ToString(), TextSize = text_size, Font = @"Exo2.0-Bold", }, @@ -91,7 +93,6 @@ namespace osu.Game.Overlays.Chat { topic = new OsuSpriteText { - Text = channel.Topic, TextSize = text_size, Font = @"Exo2.0-SemiBold", Alpha = 0.8f, @@ -136,10 +137,10 @@ namespace osu.Game.Overlays.Chat private void updateColour() { - joinedCheckmark.FadeTo(joined ? 1f : 0f, transition_duration); - topic.FadeTo(joined ? 0.8f : 1f, transition_duration); - topic.FadeColour(joined ? Color4.White : topicColour ?? Color4.White, transition_duration); - FadeColour(joined ? joinedColour ?? Color4.White : Color4.White, transition_duration); + joinedCheckmark.FadeTo(Channel.Joined ? 1f : 0f, transition_duration); + topic.FadeTo(Channel.Joined ? 0.8f : 1f, transition_duration); + topic.FadeColour(Channel.Joined ? Color4.White : topicColour ?? Color4.White, transition_duration); + FadeColour(Channel.Joined ? joinedColour ?? Color4.White : Color4.White, transition_duration); } } } diff --git a/osu.Game/Overlays/Chat/ChannelSection.cs b/osu.Game/Overlays/Chat/ChannelSection.cs index cbb197e84c..af61f67c99 100644 --- a/osu.Game/Overlays/Chat/ChannelSection.cs +++ b/osu.Game/Overlays/Chat/ChannelSection.cs @@ -28,7 +28,7 @@ namespace osu.Game.Overlays.Chat { set { - items.Children = value.Select(c => new ChannelListItem(c)); + items.Children = value.Select(c => new ChannelListItem { Channel = c }); } }