Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 510a8553 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

feat(message-list): wire MessageListAppearance

parent 6a7cb9ed
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -3,9 +3,12 @@ package com.fsck.k9.ui.messagelist.item
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.PreviewLightDark
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemesLightDark
import com.fsck.k9.FontSizes
import com.fsck.k9.UiDensity
import com.fsck.k9.mail.AuthType
import com.fsck.k9.mail.ConnectionSecurity
import com.fsck.k9.mail.ServerSettings
import com.fsck.k9.ui.messagelist.MessageListAppearance
import com.fsck.k9.ui.messagelist.MessageListItem
import net.thunderbird.core.android.account.Identity
import net.thunderbird.core.android.account.LegacyAccount
@@ -26,6 +29,7 @@ internal fun MessageItemContentPreview() {
            onLongClick = {},
            onAvatarClick = {},
            onFavouriteClick = {},
            appearance = fakeMessageListAppearance,
        )
    }
}
@@ -81,3 +85,15 @@ private val fakeMessageListItem = MessageListItem(
    databaseId = 1L,
    threadRoot = 1L,
)

private val fakeMessageListAppearance = MessageListAppearance(
    fontSizes = FontSizes(),
    previewLines = 2,
    stars = true,
    senderAboveSubject = false,
    showContactPicture = true,
    showingThreadedList = false,
    backGroundAsReadIndicator = false,
    showAccountIndicator = true,
    density = UiDensity.Default,
)
+1 −0
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ class MessageListAdapter internal constructor(
            onLongClick = { listItemListener.onToggleMessageSelection(it) },
            onFavouriteClick = { listItemListener.onToggleMessageFlag(it) },
            onAvatarClick = { listItemListener.onToggleMessageSelection(it) },
            appearance = appearance,
        )

    override fun onBindViewHolder(holder: MessageListViewHolder, position: Int) {
+5 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package com.fsck.k9.ui.messagelist.item

import android.content.Context
import androidx.compose.ui.platform.ComposeView
import com.fsck.k9.ui.messagelist.MessageListAppearance
import com.fsck.k9.ui.messagelist.MessageListItem
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider

@@ -15,6 +16,7 @@ class ComposableMessageViewHolder(
    private val onLongClick: (MessageListItem) -> Unit,
    private val onAvatarClick: (MessageListItem) -> Unit,
    private val onFavouriteClick: (MessageListItem) -> Unit,
    private val appearance: MessageListAppearance,
) : MessageListViewHolder(composeView) {

    var uniqueId: Long = -1L
@@ -32,6 +34,7 @@ class ComposableMessageViewHolder(
                    onLongClick = { onLongClick(item) },
                    onAvatarClick = { onAvatarClick(item) },
                    onFavouriteClick = { onFavouriteClick(item) },
                    appearance = appearance,
                )
            }
        }
@@ -46,6 +49,7 @@ class ComposableMessageViewHolder(
            onLongClick: (MessageListItem) -> Unit,
            onFavouriteClick: (MessageListItem) -> Unit,
            onAvatarClick: (MessageListItem) -> Unit,
            appearance: MessageListAppearance,
        ): ComposableMessageViewHolder {
            val composeView = ComposeView(context)

@@ -56,6 +60,7 @@ class ComposableMessageViewHolder(
                onLongClick = onLongClick,
                onAvatarClick = onAvatarClick,
                onFavouriteClick = onFavouriteClick,
                appearance = appearance,
            )

            composeView.tag = holder
+6 −0
Original line number Diff line number Diff line
package com.fsck.k9.ui.messagelist.item

import androidx.compose.runtime.Composable
import com.fsck.k9.ui.messagelist.MessageListAppearance
import com.fsck.k9.ui.messagelist.MessageListItem
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@@ -10,6 +11,7 @@ import net.thunderbird.core.ui.compose.designsystem.organism.message.ActiveMessa
import net.thunderbird.core.ui.compose.designsystem.organism.message.ReadMessageItem
import net.thunderbird.core.ui.compose.designsystem.organism.message.UnreadMessageItem

@Suppress("LongParameterList")
@OptIn(ExperimentalTime::class)
@Composable
internal fun MessageItemContent(
@@ -20,6 +22,7 @@ internal fun MessageItemContent(
    onLongClick: () -> Unit,
    onAvatarClick: () -> Unit,
    onFavouriteClick: (Boolean) -> Unit,
    appearance: MessageListAppearance,
) {
    when {
        isActive -> ActiveMessageItem(
@@ -34,6 +37,7 @@ internal fun MessageItemContent(
            onFavouriteChange = onFavouriteClick,
            favourite = item.isStarred,
            selected = isSelected,
            maxPreviewLines = appearance.previewLines,
        )
        item.isRead -> ReadMessageItem(
            sender = "${item.displayName}",
@@ -47,6 +51,7 @@ internal fun MessageItemContent(
            onFavouriteChange = onFavouriteClick,
            favourite = item.isStarred,
            selected = isSelected,
            maxPreviewLines = appearance.previewLines,
        )
        else -> UnreadMessageItem(
            sender = "${item.displayName}",
@@ -60,6 +65,7 @@ internal fun MessageItemContent(
            onFavouriteChange = onFavouriteClick,
            favourite = item.isStarred,
            selected = isSelected,
            maxPreviewLines = appearance.previewLines,
        )
    }
}