diff --git a/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt b/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt index afaa878..9717885 100644 --- a/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt +++ b/android/app/src/main/java/ru/daemonlord/messenger/ui/chat/ChatScreen.kt @@ -675,7 +675,7 @@ fun ChatScreen( items = timelineItems, key = { item -> when (item) { - is ChatTimelineItem.DayHeader -> "day:${item.dateKey}" + is ChatTimelineItem.DayHeader -> "day:${item.headerId}" is ChatTimelineItem.MessageEntry -> "msg:${item.message.id}" } }, @@ -2047,6 +2047,7 @@ private fun FileAttachmentRow( private sealed interface ChatTimelineItem { data class DayHeader( + val headerId: String, val dateKey: String, val label: String, ) : ChatTimelineItem @@ -2090,10 +2091,13 @@ private fun buildChatTimelineItems(messages: List): List() var previousDate: LocalDate? = null + var dayHeaderCounter = 0 messages.forEach { message -> val date = parseMessageLocalDate(message.createdAt) if (date != null && date != previousDate) { + dayHeaderCounter += 1 items += ChatTimelineItem.DayHeader( + headerId = "${date}_$dayHeaderCounter", dateKey = date.toString(), label = formatDateSeparatorLabel(date), )