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
6- import kotlin.time.Clock
77import kotlin.time.ExperimentalTime
8+ import kotlin.time.Instant
89import kotlinx.datetime.TimeZone
910import kotlinx.datetime.toLocalDateTime
1011import net.thunderbird.core.ui.compose.designsystem.organism.message.ActiveMessageItem
@@ -24,12 +25,17 @@ internal fun MessageItemContent(
2425 onFavouriteClick : (Boolean ) -> Unit ,
2526 appearance : MessageListAppearance ,
2627) {
28+ val receivedAt = remember(item.messageDate) {
29+ Instant .fromEpochMilliseconds(item.messageDate)
30+ .toLocalDateTime(TimeZone .currentSystemDefault())
31+ }
32+
2733 when {
2834 isActive -> ActiveMessageItem (
2935 sender = " ${item.displayName} " ,
3036 subject = item.subject ? : " n/a" ,
3137 preview = item.previewText,
32- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
38+ receivedAt = receivedAt ,
3339 avatar = {},
3440 onClick = onClick,
3541 onLongClick = onLongClick,
@@ -38,12 +44,15 @@ internal fun MessageItemContent(
3844 favourite = item.isStarred,
3945 selected = isSelected,
4046 maxPreviewLines = appearance.previewLines,
47+ threadCount = item.threadCount,
48+ hasAttachments = item.hasAttachments,
49+ swapSenderWithSubject = ! appearance.senderAboveSubject,
4150 )
4251 item.isRead -> ReadMessageItem (
4352 sender = " ${item.displayName} " ,
4453 subject = item.subject ? : " n/a" ,
4554 preview = item.previewText,
46- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
55+ receivedAt = receivedAt ,
4756 avatar = {},
4857 onClick = onClick,
4958 onLongClick = onLongClick,
@@ -52,12 +61,15 @@ internal fun MessageItemContent(
5261 favourite = item.isStarred,
5362 selected = isSelected,
5463 maxPreviewLines = appearance.previewLines,
64+ threadCount = item.threadCount,
65+ hasAttachments = item.hasAttachments,
66+ swapSenderWithSubject = ! appearance.senderAboveSubject,
5567 )
5668 else -> UnreadMessageItem (
5769 sender = " ${item.displayName} " ,
5870 subject = item.subject ? : " n/a" ,
5971 preview = item.previewText,
60- receivedAt = Clock . System .now().toLocalDateTime( TimeZone .currentSystemDefault()) ,
72+ receivedAt = receivedAt ,
6173 avatar = {},
6274 onClick = onClick,
6375 onLongClick = onLongClick,
@@ -66,6 +78,9 @@ internal fun MessageItemContent(
6678 favourite = item.isStarred,
6779 selected = isSelected,
6880 maxPreviewLines = appearance.previewLines,
81+ threadCount = item.threadCount,
82+ hasAttachments = item.hasAttachments,
83+ swapSenderWithSubject = ! appearance.senderAboveSubject,
6984 )
7085 }
7186}
0 commit comments