Skip to content

Commit 1674243

Browse files
committed
msglist: Let recipient header overlap date, just like a message
Fixes: #479
1 parent 5b006da commit 1674243

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

lib/model/message_list.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,16 +191,19 @@ mixin _MessageSequence {
191191
if (index == 0 || !haveSameRecipient(messages[index - 1], message)) {
192192
items.add(MessageListRecipientHeaderItem(message));
193193
canShareSender = false;
194-
} else if (!messagesSameDay(messages[index - 1], message)) {
195-
items.add(MessageListDateSeparatorItem(message));
196-
canShareSender = false;
197194
} else {
198195
assert(items.last is MessageListMessageItem);
199196
final prevMessageItem = items.last as MessageListMessageItem;
200197
assert(identical(prevMessageItem.message, messages[index - 1]));
201198
assert(prevMessageItem.isLastInBlock);
202199
prevMessageItem.isLastInBlock = false;
203-
canShareSender = (prevMessageItem.message.senderId == message.senderId);
200+
201+
if (!messagesSameDay(prevMessageItem.message, message)) {
202+
items.add(MessageListDateSeparatorItem(message));
203+
canShareSender = false;
204+
} else {
205+
canShareSender = (prevMessageItem.message.senderId == message.senderId);
206+
}
204207
}
205208
items.add(MessageListMessageItem(message, content,
206209
showSender: !canShareSender, isLastInBlock: true));

test/model/message_list_test.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,13 @@ void checkInvariants(MessageListView model) {
967967
..showSender.equals(
968968
forcedShowSender || model.messages[j].senderId != model.messages[j-1].senderId)
969969
..isLastInBlock.equals(
970-
i == model.items.length || model.items[i] is! MessageListMessageItem);
970+
i == model.items.length || switch (model.items[i]) {
971+
MessageListMessageItem()
972+
|| MessageListDateSeparatorItem() => false,
973+
MessageListRecipientHeaderItem()
974+
|| MessageListHistoryStartItem()
975+
|| MessageListLoadingItem() => true,
976+
});
971977
}
972978
check(model.items).length.equals(i);
973979
}

0 commit comments

Comments
 (0)