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

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

Change FolderListItem and FolderList to use FolderNameFormatter to retrieve the display name

parent f0e4f644
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
package app.k9mail.feature.navigation.drawer.ui.folder

import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import app.k9mail.core.mail.folder.api.FolderType
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes
import app.k9mail.feature.navigation.drawer.ui.FakeData.DISPLAY_FOLDER
import app.k9mail.feature.navigation.drawer.ui.FakeData.UNIFIED_FOLDER
import app.k9mail.legacy.ui.folder.FolderNameFormatter

@Composable
@Preview(showBackground = true)
@@ -16,6 +18,7 @@ internal fun FolderListItemPreview() {
            selected = false,
            showStarredCount = false,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
@@ -29,6 +32,7 @@ internal fun FolderListItemSelectedPreview() {
            selected = true,
            showStarredCount = false,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
@@ -42,6 +46,7 @@ internal fun FolderListItemWithStarredPreview() {
            selected = false,
            showStarredCount = true,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
@@ -55,6 +60,7 @@ internal fun FolderListItemWithStarredSelectedPreview() {
            selected = true,
            showStarredCount = true,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
@@ -72,6 +78,7 @@ internal fun FolderListItemWithInboxFolderPreview() {
            selected = false,
            showStarredCount = true,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
@@ -85,6 +92,7 @@ internal fun FolderListItemWithUnifiedFolderPreview() {
            selected = false,
            showStarredCount = false,
            onClick = {},
            folderNameFormatter = FolderNameFormatter(LocalContext.current.resources),
        )
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -6,11 +6,14 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import app.k9mail.core.ui.compose.designsystem.atom.DividerHorizontal
import app.k9mail.core.ui.compose.theme2.MainTheme
import app.k9mail.feature.navigation.drawer.domain.entity.DisplayFolder
import app.k9mail.feature.navigation.drawer.domain.entity.DisplayUnifiedFolder
import app.k9mail.legacy.ui.folder.FolderNameFormatter
import kotlinx.collections.immutable.ImmutableList

@Composable
@@ -21,6 +24,9 @@ fun FolderList(
    showStarredCount: Boolean,
    modifier: Modifier = Modifier,
) {
    val resources = LocalContext.current.resources
    val folderNameFormatter = remember { FolderNameFormatter(resources) }

    LazyColumn(
        modifier = modifier
            .fillMaxWidth(),
@@ -35,6 +41,7 @@ fun FolderList(
                selected = folder == selectedFolder,
                showStarredCount = showStarredCount,
                onClick = onFolderClick,
                folderNameFormatter = folderNameFormatter,
            )
            if (folder is DisplayUnifiedFolder) {
                DividerHorizontal(
+11 −6
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccountFolder
import app.k9mail.feature.navigation.drawer.domain.entity.DisplayFolder
import app.k9mail.feature.navigation.drawer.domain.entity.DisplayUnifiedFolder
import app.k9mail.feature.navigation.drawer.domain.entity.DisplayUnifiedFolderType
import app.k9mail.legacy.ui.folder.FolderNameFormatter

@Composable
fun FolderListItem(
@@ -20,10 +21,11 @@ fun FolderListItem(
    selected: Boolean,
    onClick: (DisplayFolder) -> Unit,
    showStarredCount: Boolean,
    folderNameFormatter: FolderNameFormatter,
    modifier: Modifier = Modifier,
) {
    NavigationDrawerItem(
        label = mapFolderName(displayFolder),
        label = mapFolderName(displayFolder, folderNameFormatter),
        selected = selected,
        onClick = { onClick(displayFolder) },
        modifier = modifier,
@@ -43,11 +45,14 @@ fun FolderListItem(
}

@Composable
private fun mapFolderName(folder: DisplayFolder): String {
    return when (folder) {
        is DisplayAccountFolder -> folder.folder.name
        is DisplayUnifiedFolder -> mapUnifiedFolderName(folder)
        else -> throw IllegalArgumentException("Unknown display folder type: $folder")
private fun mapFolderName(
    displayFolder: DisplayFolder,
    folderNameFormatter: FolderNameFormatter,
): String {
    return when (displayFolder) {
        is DisplayAccountFolder -> folderNameFormatter.displayName(displayFolder.folder)
        is DisplayUnifiedFolder -> mapUnifiedFolderName(displayFolder)
        else -> throw IllegalArgumentException("Unknown display folder: $displayFolder")
    }
}