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

Add Dot and Star icons

This commit is contained in:
Wolf-Martell Montwé 2024-09-12 12:47:54 +02:00
parent 74653a7bd8
commit f07ba6fced
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
6 changed files with 67 additions and 7 deletions

View File

@ -3,6 +3,7 @@ package app.k9mail.ui.catalog.ui.atom.items
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.grid.LazyGridScope
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@ -24,6 +25,28 @@ fun LazyGridScope.iconItems() {
sectionHeaderItem(
text = "Compose Icons",
)
sectionSubtitleItem(text = "Sizes")
defaultItem {
IconItem(
name = "Small",
imageVector = Icons.Outlined.Info,
modifier = Modifier.size(MainTheme.sizes.iconSmall),
)
}
defaultItem {
IconItem(
name = "Default",
imageVector = Icons.Outlined.Info,
modifier = Modifier.size(MainTheme.sizes.icon),
)
}
defaultItem {
IconItem(
name = "Large",
imageVector = Icons.Outlined.Info,
modifier = Modifier.size(MainTheme.sizes.iconLarge),
)
}
sectionSubtitleItem(text = "Filled")
getIconsFor(Icons.Filled)
sectionSubtitleItem(text = "Outlined")
@ -81,13 +104,13 @@ private fun IconItem(
) {
Column(
modifier = Modifier
.padding(defaultItemPadding())
.then(modifier),
.padding(defaultItemPadding()),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(MainTheme.spacings.default),
) {
Icon(
imageVector = imageVector,
modifier = modifier,
)
TextBodySmall(text = name)
}

View File

@ -4,6 +4,7 @@ import androidx.compose.material.icons.automirrored.outlined.ArrowBack
import androidx.compose.material.icons.filled.Cancel
import androidx.compose.material.icons.filled.CheckCircle
import androidx.compose.material.icons.filled.Outbox
import androidx.compose.material.icons.filled.Star
import androidx.compose.material.icons.filled.VisibilityOff
import androidx.compose.material.icons.outlined.AccountCircle
import androidx.compose.material.icons.outlined.Check
@ -16,16 +17,23 @@ import androidx.compose.material.icons.outlined.Menu
import androidx.compose.material.icons.outlined.Security
import androidx.compose.material.icons.outlined.Visibility
import androidx.compose.ui.graphics.vector.ImageVector
import app.k9mail.core.ui.compose.designsystem.atom.icon.filled.Dot
import androidx.compose.material.icons.Icons as MaterialIcons
// We're using getters so not all icons are loaded into memory as soon as one of the nested objects is accessed.
object Icons {
object Filled {
val Cancel: ImageVector
get() = MaterialIcons.Filled.Cancel
val CheckCircle: ImageVector
get() = MaterialIcons.Filled.CheckCircle
val Cancel: ImageVector
get() = MaterialIcons.Filled.Cancel
val Dot: ImageVector
get() = MaterialIcons.Filled.Dot
val Star: ImageVector
get() = MaterialIcons.Filled.Star
}
object Outlined {

View File

@ -0,0 +1,27 @@
package app.k9mail.core.ui.compose.designsystem.atom.icon.filled
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.materialIcon
import androidx.compose.material.icons.materialPath
import androidx.compose.ui.graphics.vector.ImageVector
@Suppress("MagicNumber")
val Icons.Filled.Dot: ImageVector
get() {
if (instance != null) {
return instance!!
}
instance = materialIcon(name = "Filled.Dot") {
materialPath {
moveTo(12.0f, 6.0f)
curveToRelative(-3.31f, 0.0f, -6.0f, 2.69f, -6.0f, 6.0f)
reflectiveCurveToRelative(2.69f, 6.0f, 6.0f, 6.0f)
reflectiveCurveToRelative(6.0f, -2.69f, 6.0f, -6.0f)
reflectiveCurveToRelative(-2.69f, -6.0f, -6.0f, -6.0f)
close()
}
}
return instance!!
}
private var instance: ImageVector? = null

View File

@ -14,8 +14,9 @@ data class ThemeSizes(
val huge: Dp,
val huger: Dp,
val iconSmall: Dp,
val icon: Dp,
val largeIcon: Dp,
val iconLarge: Dp,
val topBarHeight: Dp,
val bottomBarHeight: Dp,

View File

@ -12,8 +12,9 @@ val defaultThemeSizes = ThemeSizes(
huge = 256.dp,
huger = 384.dp,
iconSmall = 16.dp,
icon = 24.dp,
largeIcon = 32.dp,
iconLarge = 32.dp,
topBarHeight = 64.dp,
bottomBarHeight = 80.dp,

View File

@ -85,7 +85,7 @@ private fun IconWithPermissionStateOverlay(
permissionState: UiPermissionState,
) {
Box {
val iconSize = MainTheme.sizes.largeIcon
val iconSize = MainTheme.sizes.iconLarge
val overlayIconSize = iconSize / 2
val overlayIconOffset = overlayIconSize / 2
val scalingFactor = iconSize / icon.image.defaultHeight