Loading legacy/ui/legacy/src/debug/kotlin/com/fsck/k9/ui/messagelist/item/MessageItemContentPreview.kt +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,10 @@ internal fun MessageItemContentPreview() { item = fakeMessageListItem, isActive = true, isSelected = false, onClick = {}, onLongClick = {}, onAvatarClick = {}, onFavouriteClick = {}, ) } } Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt +4 −0 Original line number Diff line number Diff line Loading @@ -291,6 +291,10 @@ class MessageListAdapter internal constructor( ComposableMessageViewHolder.create( context = parent.context, themeProvider = themeProvider, onClick = { listItemListener.onMessageClicked(it) }, onLongClick = { listItemListener.onToggleMessageSelection(it) }, onFavouriteClick = { listItemListener.onToggleMessageFlag(it) }, onAvatarClick = { listItemListener.onToggleMessageSelection(it) }, ) override fun onBindViewHolder(holder: MessageListViewHolder, position: Int) { Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/ComposableMessageViewHolder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,10 @@ import net.thunderbird.core.ui.theme.api.FeatureThemeProvider class ComposableMessageViewHolder( private val composeView: ComposeView, private val themeProvider: FeatureThemeProvider, private val onClick: (MessageListItem) -> Unit, private val onLongClick: (MessageListItem) -> Unit, private val onAvatarClick: (MessageListItem) -> Unit, private val onFavouriteClick: (MessageListItem) -> Unit, ) : MessageListViewHolder(composeView) { var uniqueId: Long = -1L Loading @@ -24,6 +28,10 @@ class ComposableMessageViewHolder( item = item, isActive = isActive, isSelected = isSelected, onClick = { onClick(item) }, onLongClick = { onLongClick(item) }, onAvatarClick = { onAvatarClick(item) }, onFavouriteClick = { onFavouriteClick(item) }, ) } } Loading @@ -34,12 +42,20 @@ class ComposableMessageViewHolder( fun create( context: Context, themeProvider: FeatureThemeProvider, onClick: (MessageListItem) -> Unit, onLongClick: (MessageListItem) -> Unit, onFavouriteClick: (MessageListItem) -> Unit, onAvatarClick: (MessageListItem) -> Unit, ): ComposableMessageViewHolder { val composeView = ComposeView(context) val holder = ComposableMessageViewHolder( composeView = composeView, themeProvider = themeProvider, onClick = onClick, onLongClick = onLongClick, onAvatarClick = onAvatarClick, onFavouriteClick = onFavouriteClick, ) composeView.tag = holder Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/MessageItemContent.kt +28 −13 Original line number Diff line number Diff line package com.fsck.k9.ui.messagelist.item import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import app.k9mail.core.ui.compose.designsystem.atom.text.TextBodyMedium import app.k9mail.core.ui.compose.theme2.MainTheme import com.fsck.k9.ui.messagelist.MessageListItem import kotlin.time.Clock import kotlin.time.ExperimentalTime import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime import net.thunderbird.core.ui.compose.designsystem.organism.message.UnreadMessageItem @OptIn(ExperimentalTime::class) @Composable internal fun MessageItemContent(item: MessageListItem, isActive: Boolean, isSelected: Boolean) { Column( modifier = Modifier .padding(MainTheme.spacings.default), internal fun MessageItemContent( item: MessageListItem, isActive: Boolean, isSelected: Boolean, onClick: () -> Unit, onLongClick: () -> Unit, onAvatarClick: () -> Unit, onFavouriteClick: (Boolean) -> Unit, ) { TextBodyMedium(text = "UniqueId: ${item.uniqueId}") TextBodyMedium(text = "Active: $isActive, Selected: $isSelected") } UnreadMessageItem( sender = "${item.displayName}", subject = item.subject ?: "n/a", preview = item.previewText, receivedAt = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()), avatar = {}, onClick = onClick, onLongClick = onLongClick, onLeadingClick = onAvatarClick, onFavouriteChange = onFavouriteClick, favourite = item.isStarred, selected = isSelected, ) } Loading
legacy/ui/legacy/src/debug/kotlin/com/fsck/k9/ui/messagelist/item/MessageItemContentPreview.kt +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,10 @@ internal fun MessageItemContentPreview() { item = fakeMessageListItem, isActive = true, isSelected = false, onClick = {}, onLongClick = {}, onAvatarClick = {}, onFavouriteClick = {}, ) } } Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt +4 −0 Original line number Diff line number Diff line Loading @@ -291,6 +291,10 @@ class MessageListAdapter internal constructor( ComposableMessageViewHolder.create( context = parent.context, themeProvider = themeProvider, onClick = { listItemListener.onMessageClicked(it) }, onLongClick = { listItemListener.onToggleMessageSelection(it) }, onFavouriteClick = { listItemListener.onToggleMessageFlag(it) }, onAvatarClick = { listItemListener.onToggleMessageSelection(it) }, ) override fun onBindViewHolder(holder: MessageListViewHolder, position: Int) { Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/ComposableMessageViewHolder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,10 @@ import net.thunderbird.core.ui.theme.api.FeatureThemeProvider class ComposableMessageViewHolder( private val composeView: ComposeView, private val themeProvider: FeatureThemeProvider, private val onClick: (MessageListItem) -> Unit, private val onLongClick: (MessageListItem) -> Unit, private val onAvatarClick: (MessageListItem) -> Unit, private val onFavouriteClick: (MessageListItem) -> Unit, ) : MessageListViewHolder(composeView) { var uniqueId: Long = -1L Loading @@ -24,6 +28,10 @@ class ComposableMessageViewHolder( item = item, isActive = isActive, isSelected = isSelected, onClick = { onClick(item) }, onLongClick = { onLongClick(item) }, onAvatarClick = { onAvatarClick(item) }, onFavouriteClick = { onFavouriteClick(item) }, ) } } Loading @@ -34,12 +42,20 @@ class ComposableMessageViewHolder( fun create( context: Context, themeProvider: FeatureThemeProvider, onClick: (MessageListItem) -> Unit, onLongClick: (MessageListItem) -> Unit, onFavouriteClick: (MessageListItem) -> Unit, onAvatarClick: (MessageListItem) -> Unit, ): ComposableMessageViewHolder { val composeView = ComposeView(context) val holder = ComposableMessageViewHolder( composeView = composeView, themeProvider = themeProvider, onClick = onClick, onLongClick = onLongClick, onAvatarClick = onAvatarClick, onFavouriteClick = onFavouriteClick, ) composeView.tag = holder Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/MessageItemContent.kt +28 −13 Original line number Diff line number Diff line package com.fsck.k9.ui.messagelist.item import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import app.k9mail.core.ui.compose.designsystem.atom.text.TextBodyMedium import app.k9mail.core.ui.compose.theme2.MainTheme import com.fsck.k9.ui.messagelist.MessageListItem import kotlin.time.Clock import kotlin.time.ExperimentalTime import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime import net.thunderbird.core.ui.compose.designsystem.organism.message.UnreadMessageItem @OptIn(ExperimentalTime::class) @Composable internal fun MessageItemContent(item: MessageListItem, isActive: Boolean, isSelected: Boolean) { Column( modifier = Modifier .padding(MainTheme.spacings.default), internal fun MessageItemContent( item: MessageListItem, isActive: Boolean, isSelected: Boolean, onClick: () -> Unit, onLongClick: () -> Unit, onAvatarClick: () -> Unit, onFavouriteClick: (Boolean) -> Unit, ) { TextBodyMedium(text = "UniqueId: ${item.uniqueId}") TextBodyMedium(text = "Active: $isActive, Selected: $isSelected") } UnreadMessageItem( sender = "${item.displayName}", subject = item.subject ?: "n/a", preview = item.previewText, receivedAt = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()), avatar = {}, onClick = onClick, onLongClick = onLongClick, onLeadingClick = onAvatarClick, onFavouriteChange = onFavouriteClick, favourite = item.isStarred, selected = isSelected, ) }