Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-28 11:21:24 +05:00
parent 0bfeea6bc6
commit 3a84102e1d
13 changed files with 996 additions and 2 deletions

View file

@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
@ -34,6 +35,8 @@ fun CurrencyIcon(
state: CurrencyIconState,
modifier: Modifier = Modifier,
shouldDisplayNetwork: Boolean = true,
networkBadgeSize: Dp = 14.dp,
networkBadgeBackground: Color = TangemTheme.colors.background.primary,
withFixedSize: Boolean = true,
iconSize: Dp = 36.dp,
) {
@ -64,6 +67,8 @@ fun CurrencyIcon(
icon = state,
modifier = iconModifier,
shouldShowTopBadge = shouldDisplayNetwork,
networkBadgeSize = networkBadgeSize,
networkBadgeBackground = networkBadgeBackground,
)
}
}
@ -111,6 +116,8 @@ private fun EmptyIcon(@DrawableRes resId: Int, modifier: Modifier = Modifier) {
private fun BoxScope.ContentIconContainer(
icon: CurrencyIconState,
shouldShowTopBadge: Boolean,
networkBadgeSize: Dp,
networkBadgeBackground: Color,
modifier: Modifier = Modifier,
) {
val networkBadgeOffset = TangemTheme.dimens.spacing4
@ -131,8 +138,10 @@ private fun BoxScope.ContentIconContainer(
.offset(x = networkBadgeOffset, y = -networkBadgeOffset)
.align(Alignment.TopEnd),
iconResId = requireNotNull(icon.topBadgeIconResId),
size = networkBadgeSize,
alpha = alpha,
colorFilter = colorFilter,
background = networkBadgeBackground,
)
}

View file

@ -12,6 +12,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Dp
import com.tangem.core.ui.res.TangemTheme
@Composable
@ -21,10 +22,12 @@ fun CurrencyIconTopBadge(
colorFilter: ColorFilter?,
modifier: Modifier = Modifier,
background: Color = TangemTheme.colors.background.primary,
size: Dp = TangemTheme.dimens.size14,
) {
val innerSpacing = TangemTheme.dimens.spacing2
Box(
modifier = modifier
.size(TangemTheme.dimens.size18)
.size(size + innerSpacing * 2)
.background(
color = background,
shape = CircleShape,
@ -32,7 +35,7 @@ fun CurrencyIconTopBadge(
) {
Image(
modifier = Modifier
.padding(all = TangemTheme.dimens.spacing2)
.padding(all = innerSpacing)
.matchParentSize(),
painter = painterResource(id = iconResId),
colorFilter = colorFilter,