0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-19 19:52:14 +02:00

Add AccountIndicator

This commit is contained in:
Wolf-Martell Montwé 2024-09-10 19:07:57 +02:00
parent e06f57fd5c
commit e4ba6a2562
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
3 changed files with 76 additions and 1 deletions

View File

@ -113,4 +113,4 @@ private fun ColorScheme.toDynamicThemeColorScheme(
)
}
private fun Color.toHarmonizedColor(target: Color) = Color(MaterialColors.harmonize(toArgb(), target.toArgb()))
fun Color.toHarmonizedColor(target: Color) = Color(MaterialColors.harmonize(toArgb(), target.toArgb()))

View File

@ -0,0 +1,43 @@
package app.k9mail.feature.navigation.drawer.ui.account
import androidx.compose.foundation.layout.height
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.tooling.preview.Preview
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes
import app.k9mail.core.ui.compose.theme2.MainTheme
@Composable
@Preview(showBackground = true)
internal fun AccountIndicatorPreview() {
PreviewWithThemes {
AccountIndicator(
accountColor = 0,
modifier = Modifier.height(MainTheme.spacings.double),
)
}
}
@Composable
@Preview(showBackground = true)
internal fun AccountIndicatorPreviewWithYellowAccountColor() {
PreviewWithThemes {
AccountIndicator(
accountColor = Color.Yellow.toArgb(),
modifier = Modifier.height(MainTheme.spacings.double),
)
}
}
@Composable
@Preview(showBackground = true)
internal fun AccountIndicatorPreviewWithGrayAccountColor() {
PreviewWithThemes {
AccountIndicator(
accountColor = Color.Gray.toArgb(),
modifier = Modifier.height(MainTheme.spacings.double),
)
}
}

View File

@ -0,0 +1,32 @@
package app.k9mail.feature.navigation.drawer.ui.account
import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import app.k9mail.core.ui.compose.designsystem.atom.Surface
import app.k9mail.core.ui.compose.theme2.MainTheme
import app.k9mail.core.ui.compose.theme2.toHarmonizedColor
@Composable
fun AccountIndicator(
accountColor: Int,
modifier: Modifier = Modifier,
) {
val color = if (accountColor == 0) {
MainTheme.colors.primary
} else {
Color(accountColor).toHarmonizedColor(MainTheme.colors.surface)
}
Surface(
modifier = modifier
.width(MainTheme.spacings.half)
.defaultMinSize(
minHeight = MainTheme.spacings.default,
),
color = color,
shape = MainTheme.shapes.medium,
) {}
}