Skip to content

Commit 87bbaeb

Browse files
committed
feat(message-list): wire MessageListAppearance
1 parent 8b4163e commit 87bbaeb

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

legacy/ui/legacy/src/debug/kotlin/com/fsck/k9/ui/messagelist/item/MessageItemContentPreview.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ package com.fsck.k9.ui.messagelist.item
33
import androidx.compose.runtime.Composable
44
import androidx.compose.ui.tooling.preview.PreviewLightDark
55
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemesLightDark
6+
import com.fsck.k9.FontSizes
7+
import com.fsck.k9.UiDensity
68
import com.fsck.k9.mail.AuthType
79
import com.fsck.k9.mail.ConnectionSecurity
810
import com.fsck.k9.mail.ServerSettings
11+
import com.fsck.k9.ui.messagelist.MessageListAppearance
912
import com.fsck.k9.ui.messagelist.MessageListItem
1013
import net.thunderbird.core.android.account.LegacyAccount
1114
import net.thunderbird.feature.account.AccountIdFactory
@@ -25,6 +28,7 @@ internal fun MessageItemContentPreview() {
2528
onLongClick = {},
2629
onAvatarClick = {},
2730
onFavouriteClick = {},
31+
appearance = fakeMessageListAppearance,
2832
)
2933
}
3034
}
@@ -80,3 +84,15 @@ private val fakeMessageListItem = MessageListItem(
8084
databaseId = 1L,
8185
threadRoot = 1L,
8286
)
87+
88+
private val fakeMessageListAppearance = MessageListAppearance(
89+
fontSizes = FontSizes(),
90+
previewLines = 2,
91+
stars = true,
92+
senderAboveSubject = false,
93+
showContactPicture = true,
94+
showingThreadedList = false,
95+
backGroundAsReadIndicator = false,
96+
showAccountIndicator = true,
97+
density = UiDensity.Default,
98+
)

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ class MessageListAdapter internal constructor(
295295
onLongClick = { listItemListener.onToggleMessageSelection(it) },
296296
onFavouriteClick = { listItemListener.onToggleMessageFlag(it) },
297297
onAvatarClick = { listItemListener.onToggleMessageSelection(it) },
298+
appearance = appearance,
298299
)
299300

300301
override fun onBindViewHolder(holder: MessageListViewHolder, position: Int) {

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/ComposableMessageViewHolder.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.fsck.k9.ui.messagelist.item
22

33
import android.content.Context
44
import androidx.compose.ui.platform.ComposeView
5+
import com.fsck.k9.ui.messagelist.MessageListAppearance
56
import com.fsck.k9.ui.messagelist.MessageListItem
67
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider
78

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

2022
var uniqueId: Long = -1L
@@ -32,6 +34,7 @@ class ComposableMessageViewHolder(
3234
onLongClick = { onLongClick(item) },
3335
onAvatarClick = { onAvatarClick(item) },
3436
onFavouriteClick = { onFavouriteClick(item) },
37+
appearance = appearance,
3538
)
3639
}
3740
}
@@ -46,6 +49,7 @@ class ComposableMessageViewHolder(
4649
onLongClick: (MessageListItem) -> Unit,
4750
onFavouriteClick: (MessageListItem) -> Unit,
4851
onAvatarClick: (MessageListItem) -> Unit,
52+
appearance: MessageListAppearance,
4953
): ComposableMessageViewHolder {
5054
val composeView = ComposeView(context)
5155

@@ -56,6 +60,7 @@ class ComposableMessageViewHolder(
5660
onLongClick = onLongClick,
5761
onAvatarClick = onAvatarClick,
5862
onFavouriteClick = onFavouriteClick,
63+
appearance = appearance,
5964
)
6065

6166
composeView.tag = holder

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/item/MessageItemContent.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.fsck.k9.ui.messagelist.item
22

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

14+
@Suppress("LongParameterList")
1315
@OptIn(ExperimentalTime::class)
1416
@Composable
1517
internal fun MessageItemContent(
@@ -20,6 +22,7 @@ internal fun MessageItemContent(
2022
onLongClick: () -> Unit,
2123
onAvatarClick: () -> Unit,
2224
onFavouriteClick: (Boolean) -> Unit,
25+
appearance: MessageListAppearance,
2326
) {
2427
when {
2528
isActive -> ActiveMessageItem(
@@ -34,6 +37,7 @@ internal fun MessageItemContent(
3437
onFavouriteChange = onFavouriteClick,
3538
favourite = item.isStarred,
3639
selected = isSelected,
40+
maxPreviewLines = appearance.previewLines
3741
)
3842
item.isRead -> ReadMessageItem(
3943
sender = "${item.displayName}",
@@ -47,6 +51,7 @@ internal fun MessageItemContent(
4751
onFavouriteChange = onFavouriteClick,
4852
favourite = item.isStarred,
4953
selected = isSelected,
54+
maxPreviewLines = appearance.previewLines
5055
)
5156
else -> UnreadMessageItem(
5257
sender = "${item.displayName}",
@@ -60,6 +65,7 @@ internal fun MessageItemContent(
6065
onFavouriteChange = onFavouriteClick,
6166
favourite = item.isStarred,
6267
selected = isSelected,
68+
maxPreviewLines = appearance.previewLines
6369
)
6470
}
6571
}

0 commit comments

Comments
 (0)