Fix loading spinner not disappearing on empty channels

This commit is contained in:
Dean Herbert
2018-09-26 19:15:02 +09:00
parent 2436ee589d
commit 1fd2782dd4
2 changed files with 14 additions and 7 deletions

View File

@ -24,6 +24,9 @@ namespace osu.Game.Online.Chat
[JsonProperty(@"channel_id")]
public int Id;
[JsonProperty(@"last_message_id")]
public long? LastMessageId;
public readonly SortedList<Message> Messages = new SortedList<Message>(Comparer<Message>.Default);
private readonly List<LocalEchoMessage> pendingMessages = new List<LocalEchoMessage>();
@ -51,11 +54,18 @@ namespace osu.Game.Online.Chat
NewMessagesArrived?.Invoke(new[] { message });
}
public bool MessagesLoaded { get; private set; }
public void AddNewMessages(params Message[] messages)
{
messages = messages.Except(Messages).ToArray();
Messages.AddRange(messages);
MessagesLoaded = true;
var maxMessageId = messages.Max(m => m.Id);
if (maxMessageId > LastMessageId)
LastMessageId = maxMessageId;
purgeOldMessages();