private void AddMessages(IList <TLMessageBase> messages) { var isNewRow = false; var row = Items.LastOrDefault(); if (row == null || row.IsFull()) { row = new MessagesRow(); isNewRow = true; } for (var i = 0; i < messages.Count; i++) { var message = messages[i] as TLMessage; if (message == null) { continue; } if (message.HasTTL()) { continue; } if (message.Media is TLMessageMediaPhoto || message.IsVideo()) { _items.Add(message); if (!row.AddMessage(message)) { if (isNewRow) { AddToTimeKeyCollection(row); Items.Add(row); } row = new MessagesRow(); isNewRow = true; row.AddMessage(message); } } } if (isNewRow && !row.IsEmpty()) { AddToTimeKeyCollection(row); Items.Add(row); } }