11package com.fsck.k9.ui.messagelist.item
22
33import androidx.compose.runtime.Composable
4+ import androidx.compose.runtime.remember
45import com.fsck.k9.ui.messagelist.MessageListAppearance
56import com.fsck.k9.ui.messagelist.MessageListItem
67import kotlin.time.Clock
78import kotlin.time.ExperimentalTime
9+ import kotlin.time.Instant
810import kotlinx.datetime.TimeZone
911import kotlinx.datetime.toLocalDateTime
1012import net.thunderbird.core.ui.compose.designsystem.organism.message.ActiveMessageItem
@@ -24,12 +26,17 @@ internal fun MessageItemContent(
2426 onFavouriteClick : (Boolean ) -> Unit ,
2527 appearance : MessageListAppearance ,
2628) {
29+ val receivedAt = remember(item.messageDate) {
30+ Instant .fromEpochMilliseconds(item.messageDate)
31+ .toLocalDateTime(TimeZone .currentSystemDefault())
32+ }
33+
2734 when {
2835 isActive -> ActiveMessageItem (
2936 sender = " ${item.displayName} " ,
3037 subject = item.subject ? : " n/a" ,
3138 preview = item.previewText,
32- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
39+ receivedAt = receivedAt ,
3340 avatar = {},
3441 onClick = onClick,
3542 onLongClick = onLongClick,
@@ -38,12 +45,15 @@ internal fun MessageItemContent(
3845 favourite = item.isStarred,
3946 selected = isSelected,
4047 maxPreviewLines = appearance.previewLines,
48+ threadCount = item.threadCount,
49+ hasAttachments = item.hasAttachments,
50+ swapSenderWithSubject = ! appearance.senderAboveSubject,
4151 )
4252 item.isRead -> ReadMessageItem (
4353 sender = " ${item.displayName} " ,
4454 subject = item.subject ? : " n/a" ,
4555 preview = item.previewText,
46- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
56+ receivedAt = receivedAt ,
4757 avatar = {},
4858 onClick = onClick,
4959 onLongClick = onLongClick,
@@ -52,12 +62,15 @@ internal fun MessageItemContent(
5262 favourite = item.isStarred,
5363 selected = isSelected,
5464 maxPreviewLines = appearance.previewLines,
65+ threadCount = item.threadCount,
66+ hasAttachments = item.hasAttachments,
67+ swapSenderWithSubject = ! appearance.senderAboveSubject,
5568 )
5669 else -> UnreadMessageItem (
5770 sender = " ${item.displayName} " ,
5871 subject = item.subject ? : " n/a" ,
5972 preview = item.previewText,
60- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
73+ receivedAt = receivedAt ,
6174 avatar = {},
6275 onClick = onClick,
6376 onLongClick = onLongClick,
@@ -66,6 +79,9 @@ internal fun MessageItemContent(
6679 favourite = item.isStarred,
6780 selected = isSelected,
6881 maxPreviewLines = appearance.previewLines,
82+ threadCount = item.threadCount,
83+ hasAttachments = item.hasAttachments,
84+ swapSenderWithSubject = ! appearance.senderAboveSubject,
6985 )
7086 }
7187}
0 commit comments