Updated on 2026-08-14
This commit is contained in:
commit
8bba8e1afa
825 changed files with 9837 additions and 22210 deletions
|
|
@ -5,13 +5,13 @@ import androidx.compose.foundation.background
|
|||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.material.ButtonColors
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import com.tangem.core.ui.R
|
||||
import com.tangem.core.ui.components.buttons.common.*
|
||||
import com.tangem.core.ui.components.buttons.common.TangemButtonsDefaults
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
|
||||
// region TextButton
|
||||
|
|
@ -19,7 +19,13 @@ import com.tangem.core.ui.res.TangemTheme
|
|||
* [Show in Figma](https://www.figma.com/file/14ISV23YB1yVW1uNVwqrKv/Android?node-id=97%3A103&t=TmfD6UBHPg9uYfev-4)
|
||||
* */
|
||||
@Composable
|
||||
fun TextButton(text: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true) {
|
||||
fun TextButton(
|
||||
text: String,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
colors: ButtonColors = TangemButtonsDefaults.defaultTextButtonColors,
|
||||
enabled: Boolean = true,
|
||||
) {
|
||||
TangemButton(
|
||||
modifier = modifier,
|
||||
text = text,
|
||||
|
|
@ -27,7 +33,7 @@ fun TextButton(text: String, onClick: () -> Unit, modifier: Modifier = Modifier,
|
|||
onClick = onClick,
|
||||
enabled = enabled,
|
||||
showProgress = false,
|
||||
colors = TangemButtonsDefaults.defaultTextButtonColors,
|
||||
colors = colors,
|
||||
size = TangemButtonSize.Text,
|
||||
)
|
||||
}
|
||||
|
|
@ -41,6 +47,7 @@ fun TextButtonIconStart(
|
|||
@DrawableRes iconResId: Int,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
colors: ButtonColors = TangemButtonsDefaults.defaultTextButtonColors,
|
||||
enabled: Boolean = true,
|
||||
) {
|
||||
TangemButton(
|
||||
|
|
@ -50,7 +57,7 @@ fun TextButtonIconStart(
|
|||
onClick = onClick,
|
||||
enabled = enabled,
|
||||
showProgress = false,
|
||||
colors = TangemButtonsDefaults.defaultTextButtonColors,
|
||||
colors = colors,
|
||||
size = TangemButtonSize.Text,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
|
|||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.itemsIndexed
|
||||
import androidx.compose.material.RadioButton
|
||||
import androidx.compose.material.RadioButtonDefaults
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.remember
|
||||
|
|
@ -24,6 +22,8 @@ import androidx.compose.ui.window.Dialog
|
|||
import androidx.compose.ui.window.DialogProperties
|
||||
import com.tangem.core.ui.R
|
||||
import com.tangem.core.ui.components.SelctorDialogParamsProvider.SelectorDialogParams
|
||||
import com.tangem.core.ui.components.buttons.common.TangemButtonsDefaults
|
||||
import com.tangem.core.ui.components.fields.SimpleDialogTextField
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
|
@ -118,6 +118,34 @@ fun TextInputDialog(
|
|||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TextInputDialog(
|
||||
fieldValue: String,
|
||||
confirmButton: DialogButton,
|
||||
onDismissDialog: () -> Unit,
|
||||
onValueChange: (String) -> Unit,
|
||||
textFieldParams: AdditionalTextInputDialogParams,
|
||||
title: String? = null,
|
||||
dismissButton: DialogButton? = null,
|
||||
isDismissable: Boolean = true,
|
||||
) {
|
||||
TangemDialog(
|
||||
type = DialogType.SimpleTextInput(
|
||||
value = fieldValue,
|
||||
onValueChange = onValueChange,
|
||||
params = textFieldParams,
|
||||
),
|
||||
confirmButton = confirmButton,
|
||||
onDismissDialog = onDismissDialog,
|
||||
title = title,
|
||||
dismissButton = dismissButton,
|
||||
properties = DialogProperties(
|
||||
dismissOnBackPress = isDismissable,
|
||||
dismissOnClickOutside = isDismissable,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SelectorDialog(
|
||||
selectedItemIndex: Int,
|
||||
|
|
@ -164,6 +192,7 @@ data class AdditionalTextInputDialogParams(
|
|||
val caption: String? = null,
|
||||
val enabled: Boolean = true,
|
||||
val isError: Boolean = false,
|
||||
val errorText: String? = null,
|
||||
)
|
||||
|
||||
// region Defaults
|
||||
|
|
@ -194,6 +223,7 @@ private fun TangemDialog(
|
|||
style = when (type) {
|
||||
is DialogType.Message -> TangemTheme.typography.h2
|
||||
is DialogType.TextInput -> TangemTheme.typography.h3
|
||||
is DialogType.SimpleTextInput -> TangemTheme.typography.h3
|
||||
is DialogType.Selector -> TangemTheme.typography.h2
|
||||
},
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
|
|
@ -231,6 +261,16 @@ private fun DialogContent(type: DialogType, modifier: Modifier = Modifier) {
|
|||
color = TangemTheme.colors.text.secondary,
|
||||
)
|
||||
}
|
||||
is DialogType.SimpleTextInput -> {
|
||||
SimpleDialogTextField(
|
||||
value = type.value,
|
||||
onValueChange = type.onValueChange,
|
||||
isError = type.params.isError,
|
||||
errorText = type.params.errorText,
|
||||
isEnabled = type.params.enabled,
|
||||
placeholder = type.params.placeholder,
|
||||
)
|
||||
}
|
||||
is DialogType.TextInput -> {
|
||||
OutlineTextField(
|
||||
modifier = Modifier
|
||||
|
|
@ -305,6 +345,7 @@ private fun DialogButton(
|
|||
text = text,
|
||||
enabled = enabled,
|
||||
onClick = onClick,
|
||||
colors = TangemButtonsDefaults.positiveButtonColors,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -371,6 +412,12 @@ private sealed class DialogType {
|
|||
val params: AdditionalTextInputDialogParams = AdditionalTextInputDialogParams(),
|
||||
) : DialogType()
|
||||
|
||||
data class SimpleTextInput(
|
||||
val value: String,
|
||||
val onValueChange: (String) -> Unit,
|
||||
val params: AdditionalTextInputDialogParams = AdditionalTextInputDialogParams(),
|
||||
) : DialogType()
|
||||
|
||||
data class Selector(
|
||||
val selectedItemIndex: Int,
|
||||
val items: ImmutableList<String>,
|
||||
|
|
|
|||
|
|
@ -2,40 +2,18 @@
|
|||
|
||||
package com.tangem.core.ui.components
|
||||
|
||||
import androidx.annotation.DimenRes
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@Composable
|
||||
fun VerticalSpacer(@DimenRes spaceResId: Int) {
|
||||
Spacer(modifier = Modifier.height(dimensionResource(id = spaceResId)))
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun HorizontalSpacer(@DimenRes spaceResId: Int) {
|
||||
Spacer(modifier = Modifier.width(dimensionResource(id = spaceResId)))
|
||||
}
|
||||
|
||||
// region Horizontal
|
||||
@Composable
|
||||
fun SpacerH(height: Dp, modifier: Modifier = Modifier) {
|
||||
Spacer(modifier = modifier.height(height))
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerH2(modifier: Modifier = Modifier) {
|
||||
SpacerH(2.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerH4(modifier: Modifier = Modifier) {
|
||||
SpacerH(4.dp, modifier)
|
||||
|
|
@ -76,11 +54,6 @@ fun SpacerH32(modifier: Modifier = Modifier) {
|
|||
SpacerH(32.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerH50(modifier: Modifier = Modifier) {
|
||||
SpacerH(50.dp, modifier)
|
||||
}
|
||||
|
||||
// TODO: Refactor with context receivers
|
||||
@Composable
|
||||
fun ColumnScope.SpacerHMax(modifier: Modifier = Modifier) {
|
||||
|
|
@ -146,36 +119,4 @@ fun SpacerW32(modifier: Modifier = Modifier) {
|
|||
fun RowScope.SpacerWMax(modifier: Modifier = Modifier) {
|
||||
Spacer(modifier = modifier.weight(1f))
|
||||
}
|
||||
// endregion Vertical
|
||||
|
||||
// region Size
|
||||
@Composable
|
||||
fun SpacerS(size: Dp, modifier: Modifier = Modifier) {
|
||||
Spacer(modifier = modifier.size(size))
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerS4(modifier: Modifier = Modifier) {
|
||||
SpacerS(4.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerS8(modifier: Modifier = Modifier) {
|
||||
SpacerS(8.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerS16(modifier: Modifier = Modifier) {
|
||||
SpacerS(16.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerS24(modifier: Modifier = Modifier) {
|
||||
SpacerS(24.dp, modifier)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SpacerS32(modifier: Modifier = Modifier) {
|
||||
SpacerS(32.dp, modifier)
|
||||
}
|
||||
// endregion Size
|
||||
// endregion Vertical
|
||||
|
|
@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
|
|||
@Composable
|
||||
inline fun <reified T : TangemBottomSheetConfigContent> TangemBottomSheet(
|
||||
config: TangemBottomSheetConfig,
|
||||
contentColor: Color = TangemTheme.colors.background.primary,
|
||||
containerColor: Color = TangemTheme.colors.background.primary,
|
||||
crossinline content: @Composable ColumnScope.(T) -> Unit,
|
||||
) {
|
||||
var isVisible by remember { mutableStateOf(value = config.isShow) }
|
||||
|
|
@ -31,9 +31,9 @@ inline fun <reified T : TangemBottomSheetConfigContent> TangemBottomSheet(
|
|||
ModalBottomSheet(
|
||||
onDismissRequest = config.onDismissRequest,
|
||||
sheetState = sheetState,
|
||||
containerColor = contentColor,
|
||||
containerColor = containerColor,
|
||||
shape = TangemTheme.shapes.bottomSheetLarge,
|
||||
dragHandle = { TangemBottomSheetDraggableHeader(contentColor) },
|
||||
dragHandle = { TangemBottomSheetDraggableHeader(color = containerColor) },
|
||||
) {
|
||||
content(config.content)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,4 +66,14 @@ internal object TangemButtonsDefaults {
|
|||
disabledBackgroundColor = Color.Transparent,
|
||||
disabledContentColor = TangemTheme.colors.text.disabled,
|
||||
)
|
||||
|
||||
val positiveButtonColors: ButtonColors
|
||||
@Composable
|
||||
@ReadOnlyComposable
|
||||
get() = TangemButtonColors(
|
||||
backgroundColor = Color.Transparent,
|
||||
contentColor = TangemTheme.colors.text.accent,
|
||||
disabledBackgroundColor = Color.Transparent,
|
||||
disabledContentColor = TangemTheme.colors.text.disabled,
|
||||
)
|
||||
}
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.tangem.core.ui.components.currency.tokenicon.converter
|
||||
|
||||
import com.tangem.common.Converter
|
||||
import com.tangem.core.ui.components.currency.tokenicon.TokenIconState
|
||||
import com.tangem.core.ui.extensions.getTintForTokenIcon
|
||||
import com.tangem.core.ui.extensions.networkIconResId
|
||||
import com.tangem.core.ui.extensions.tryGetBackgroundForTokenIcon
|
||||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
/**
|
||||
* Converts [CryptoCurrencyStatus] to [TokenIconState]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
package com.tangem.core.ui.components.fields
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.fadeIn
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.text.BasicTextField
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.drawBehind
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
|
||||
/**
|
||||
* A simple input field for a basic dialog with input
|
||||
*
|
||||
* [Show in Figma] (https://www.figma.com/file/14ISV23YB1yVW1uNVwqrKv/Android?type=design&node-id=48%3A30&mode=design
|
||||
* &t=OsU3Nqsm9d8WDNuv-1)
|
||||
*/
|
||||
@Composable
|
||||
fun SimpleDialogTextField(
|
||||
value: String,
|
||||
onValueChange: (String) -> Unit,
|
||||
isError: Boolean = false,
|
||||
errorText: String? = null,
|
||||
isEnabled: Boolean = true,
|
||||
placeholder: String? = null,
|
||||
) {
|
||||
val strokeColor = if (isError) {
|
||||
TangemTheme.colors.icon.warning
|
||||
} else {
|
||||
TangemTheme.colors.stroke.primary
|
||||
}
|
||||
Column {
|
||||
BasicTextField(
|
||||
value = value,
|
||||
onValueChange = onValueChange,
|
||||
textStyle = TangemTheme.typography.body1,
|
||||
cursorBrush = SolidColor(TangemTheme.colors.text.primary1),
|
||||
singleLine = true,
|
||||
readOnly = !isEnabled,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = TangemTheme.dimens.spacing24)
|
||||
.drawBehind {
|
||||
val strokeWidth = 2f
|
||||
val y = size.height - strokeWidth / 2
|
||||
drawLine(
|
||||
strokeColor,
|
||||
Offset(0f, y),
|
||||
Offset(size.width, y),
|
||||
strokeWidth,
|
||||
)
|
||||
},
|
||||
decorationBox = { textValue ->
|
||||
Box {
|
||||
this@Column.AnimatedVisibility(
|
||||
visible = value.isBlank() && placeholder != null,
|
||||
enter = fadeIn(),
|
||||
exit = fadeOut(),
|
||||
) {
|
||||
if (value.isBlank() && placeholder != null) {
|
||||
Text(
|
||||
text = placeholder,
|
||||
style = TangemTheme.typography.body1,
|
||||
color = TangemTheme.colors.text.disabled,
|
||||
)
|
||||
}
|
||||
}
|
||||
textValue()
|
||||
}
|
||||
},
|
||||
)
|
||||
AnimatedVisibility(
|
||||
visible = errorText != null,
|
||||
enter = fadeIn(),
|
||||
exit = fadeOut(),
|
||||
) {
|
||||
if (errorText != null) {
|
||||
Text(
|
||||
text = errorText,
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.warning,
|
||||
modifier = Modifier
|
||||
.padding(
|
||||
horizontal = TangemTheme.dimens.spacing24,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
package com.tangem.core.ui.components.inputrow
|
||||
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment.Companion.CenterVertically
|
||||
|
|
@ -48,6 +50,7 @@ fun InputRowRecipient(
|
|||
error: TextReference? = null,
|
||||
isError: Boolean = false,
|
||||
showDivider: Boolean = false,
|
||||
isLoading: Boolean = false,
|
||||
) {
|
||||
val (titleText, color) = if (isError && error != null) {
|
||||
error to TangemTheme.colors.text.warning
|
||||
|
|
@ -63,23 +66,36 @@ fun InputRowRecipient(
|
|||
.fillMaxWidth()
|
||||
.padding(TangemTheme.dimens.spacing12),
|
||||
) {
|
||||
Text(
|
||||
text = titleText.resolveReference(),
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = color,
|
||||
)
|
||||
AnimatedContent(targetState = titleText, label = "Title Change") {
|
||||
Text(
|
||||
text = it.resolveReference(),
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = color,
|
||||
)
|
||||
}
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.padding(top = TangemTheme.dimens.spacing8),
|
||||
) {
|
||||
IdentIcon(
|
||||
address = value,
|
||||
AnimatedContent(
|
||||
targetState = isLoading,
|
||||
label = "Indicator Show Change",
|
||||
modifier = Modifier
|
||||
.align(CenterVertically)
|
||||
.clip(RoundedCornerShape(TangemTheme.dimens.radius18))
|
||||
.size(TangemTheme.dimens.size36)
|
||||
.background(TangemTheme.colors.background.tertiary),
|
||||
)
|
||||
) { showIndicator ->
|
||||
if (showIndicator) {
|
||||
CircularProgressIndicator(
|
||||
color = TangemTheme.colors.icon.informative,
|
||||
modifier = Modifier
|
||||
.padding(TangemTheme.dimens.spacing8),
|
||||
)
|
||||
} else {
|
||||
IdentIcon(address = value)
|
||||
}
|
||||
}
|
||||
SimpleTextField(
|
||||
value = value,
|
||||
placeholder = placeholder,
|
||||
|
|
@ -115,6 +131,7 @@ private fun InputRowRecipientPreview_Light(
|
|||
placeholder = TextReference.Res(R.string.send_optional_field),
|
||||
error = TextReference.Str("Error"),
|
||||
isError = value.isError,
|
||||
isLoading = value.isLoading,
|
||||
showDivider = true,
|
||||
onValueChange = {},
|
||||
onPasteClick = {},
|
||||
|
|
@ -134,6 +151,7 @@ private fun InputRowRecipientPreview_Dark(
|
|||
title = TextReference.Res(R.string.send_recipient),
|
||||
placeholder = TextReference.Res(R.string.send_optional_field),
|
||||
error = TextReference.Str("Error"),
|
||||
isLoading = value.isLoading,
|
||||
isError = value.isError,
|
||||
showDivider = true,
|
||||
onValueChange = {},
|
||||
|
|
@ -146,6 +164,7 @@ private fun InputRowRecipientPreview_Dark(
|
|||
private data class InputRowRecipientPreviewData(
|
||||
val value: String,
|
||||
val isError: Boolean,
|
||||
val isLoading: Boolean = false,
|
||||
)
|
||||
|
||||
private class InputRowRecipientPreviewDataProvider : PreviewParameterProvider<InputRowRecipientPreviewData> {
|
||||
|
|
@ -161,6 +180,7 @@ private class InputRowRecipientPreviewDataProvider : PreviewParameterProvider<In
|
|||
),
|
||||
InputRowRecipientPreviewData(
|
||||
value = "0x391316d97a07027a0702c8A002c8A0C25d8470",
|
||||
isLoading = true,
|
||||
isError = true,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -50,6 +50,53 @@ fun getActiveIconRes(blockchainId: String): Int {
|
|||
}
|
||||
}
|
||||
|
||||
@Suppress("ComplexMethod")
|
||||
@DrawableRes
|
||||
fun getActiveIconResByNetworkId(networkId: String): Int {
|
||||
return when (networkId) {
|
||||
"arbitrum-one", "arbitrum-one/test" -> R.drawable.img_arbitrum_22
|
||||
"avalanche", "avalanche-2", "avalanche/test", "avalanche-2/test" -> R.drawable.img_avalanche_22
|
||||
"binance-smart-chain", "binance-smart-chain/test", "binancecoin", "binancecoin/test" -> R.drawable.img_bsc_22
|
||||
"bitcoin", "bitcoin/test" -> R.drawable.img_btc_22
|
||||
"bitcoin-cash", "bitcoin-cash/test" -> R.drawable.img_btc_cash_22
|
||||
"litecoin", "litecoin/test" -> R.drawable.img_litecoin_22
|
||||
"ethereum", "ethereum/test" -> R.drawable.img_eth_22
|
||||
"ethereum-classic", "ethereum-classic/test" -> R.drawable.img_eth_classic_22
|
||||
"rootstock" -> R.drawable.img_rsk_22
|
||||
"cardano", "cardano/test" -> R.drawable.img_cardano_22
|
||||
"tezos" -> R.drawable.img_tezos_22
|
||||
"xrp", "ripple" -> R.drawable.img_xrp_22
|
||||
"stellar", "stellar/test" -> R.drawable.img_stellar_22
|
||||
"polygon-pos", "polygon-pos/test" -> R.drawable.img_polygon_22
|
||||
"solana", "solana/test" -> R.drawable.img_solana_22
|
||||
"fantom", "fantom/test" -> R.drawable.img_fantom_22
|
||||
"dogecoin" -> R.drawable.img_dogecoin_22
|
||||
"tron", "tron/test" -> R.drawable.img_tron_22
|
||||
"xdai" -> R.drawable.img_gnosis_22
|
||||
"ethereum-pow-iou", "ethereum-pow-iou/test" -> R.drawable.img_eth_pow_22
|
||||
"ethereumfair" -> R.drawable.img_eth_fair_22
|
||||
"polkadot", "polkadot/test" -> R.drawable.img_polkadot_22
|
||||
"kusama" -> R.drawable.img_kusama_22
|
||||
"optimistic-ethereum", "optimistic-ethereum/test" -> R.drawable.img_optimism_22
|
||||
"dash" -> R.drawable.img_dash_22
|
||||
"kaspa" -> R.drawable.img_kaspa_22
|
||||
"the-open-network", "the-open-network/test" -> R.drawable.img_ton_22
|
||||
"kava", "kava/test" -> R.drawable.img_kava_22
|
||||
"ravencoin", "ravencoin/test" -> R.drawable.img_ravencoin_22
|
||||
"cosmos", "cosmos/test" -> R.drawable.img_cosmos_22
|
||||
"terra", "terra-luna" -> R.drawable.img_terra_22
|
||||
"terra-2", "terra-luna-2" -> R.drawable.img_terra2_22
|
||||
"cronos" -> R.drawable.img_cronos_22
|
||||
"telos", "telos/test" -> R.drawable.img_telos_22
|
||||
"aleph-zero", "aleph-zero/test" -> R.drawable.img_azero_22
|
||||
"octaspace", "octaspace/test" -> R.drawable.img_octaspace_22
|
||||
"chia", "chia/test" -> R.drawable.img_chia_22
|
||||
"near-protocol", "near-protocol/test" -> R.drawable.img_near_22
|
||||
"decimal", "decimal/test" -> R.drawable.img_decimal_22
|
||||
else -> R.drawable.ic_alert_24
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("ComplexMethod")
|
||||
@DrawableRes
|
||||
fun getActiveIconResByCoinId(coinId: String): Int {
|
||||
|
|
@ -139,4 +186,51 @@ fun getGreyedOutIconRes(blockchainId: String): Int {
|
|||
"decimal", "decimal/test" -> R.drawable.ic_decimal_22
|
||||
else -> R.drawable.ic_alert_24
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("ComplexMethod")
|
||||
@DrawableRes
|
||||
fun getGreyedOutIconResByNetworkId(networkId: String): Int {
|
||||
return when (networkId) {
|
||||
"arbitrum-one", "arbitrum-one/test" -> R.drawable.ic_arbitrum_22
|
||||
"avalanche", "avalanche-2", "avalanche/test", "avalanche-2/test" -> R.drawable.ic_avalanche_22
|
||||
"binance-smart-chain", "binance-smart-chain/test", "binancecoin", "binancecoin/test" -> R.drawable.ic_bsc_16
|
||||
"bitcoin", "bitcoin/test" -> R.drawable.ic_bitcoin_16
|
||||
"bitcoin-cash", "bitcoin-cash/test" -> R.drawable.ic_bitcoin_cash_16
|
||||
"litecoin", "litecoin/test" -> R.drawable.ic_litecoin_22
|
||||
"ethereum", "ethereum/test" -> R.drawable.ic_eth_16
|
||||
"ethereum-classic", "ethereum-classic/test" -> R.drawable.ic_eth_16
|
||||
"rootstock" -> R.drawable.ic_rsk_16
|
||||
"cardano", "cardano/test" -> R.drawable.ic_cardano_16
|
||||
"tezos" -> R.drawable.ic_tezos_16
|
||||
"xrp", "ripple" -> R.drawable.ic_xrp_22
|
||||
"stellar", "stellar/test" -> R.drawable.ic_stellar_16
|
||||
"polygon-pos", "polygon-pos/test" -> R.drawable.ic_polygon_16
|
||||
"solana", "solana/test" -> R.drawable.ic_solana_16
|
||||
"fantom", "fantom/test" -> R.drawable.ic_fantom_22
|
||||
"dogecoin" -> R.drawable.ic_dogecoin_16
|
||||
"tron", "tron/test" -> R.drawable.ic_tron_22
|
||||
"xdai" -> R.drawable.ic_gnosis_22
|
||||
"ethereum-pow-iou", "ethereum-pow-iou/test" -> R.drawable.ic_ethereumpow_22
|
||||
"ethereumfair" -> R.drawable.ic_ethereumfair_22
|
||||
"polkadot", "polkadot/test" -> R.drawable.ic_polkadot_16
|
||||
"kusama" -> R.drawable.ic_kusama_16
|
||||
"optimistic-ethereum", "optimistic-ethereum/test" -> R.drawable.ic_optimism_22
|
||||
"dash" -> R.drawable.ic_dash_22
|
||||
"kaspa" -> R.drawable.ic_kaspa_22
|
||||
"the-open-network", "the-open-network/test" -> R.drawable.ic_ton_22
|
||||
"kava", "kava/test" -> R.drawable.ic_kava_22
|
||||
"ravencoin", "ravencoin/test" -> R.drawable.ic_ravencoin_22
|
||||
"cosmos", "cosmos/test" -> R.drawable.ic_cosmos_22
|
||||
"terra", "terra-luna" -> R.drawable.ic_terra_22
|
||||
"terra-2", "terra-luna-2" -> R.drawable.ic_terra2_22
|
||||
"cronos" -> R.drawable.ic_cronos_22
|
||||
"telos", "telos/test" -> R.drawable.ic_telos_22
|
||||
"aleph-zero", "aleph-zero/test" -> R.drawable.ic_azero_22
|
||||
"octaspace", "octaspace/test" -> R.drawable.ic_octaspace_22
|
||||
"chia", "chia/test" -> R.drawable.ic_chia_22
|
||||
"near-protocol", "near-protocol/test" -> R.drawable.ic_near_22
|
||||
"decimal", "decimal/test" -> R.drawable.ic_decimal_22
|
||||
else -> R.drawable.ic_alert_24
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
package com.tangem.core.ui.utils
|
||||
|
||||
import android.os.SystemClock
|
||||
import android.view.View
|
||||
|
||||
/**
|
||||
* Implementation of click listener for preventing multiple click events
|
||||
*
|
||||
* @property action action that called when a view has been clicked
|
||||
*/
|
||||
class OneTouchClickListener(private val action: () -> Unit) : View.OnClickListener {
|
||||
|
||||
private var lastClickTimeMs: Long = 0L
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
if (SystemClock.elapsedRealtime() - lastClickTimeMs > CLICK_DELAY_MS) {
|
||||
lastClickTimeMs = SystemClock.elapsedRealtime()
|
||||
action()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val CLICK_DELAY_MS = 500L
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.2 KiB |
|
|
@ -1,27 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<group>
|
||||
<clip-path android:pathData="M0,0h24v24h-24z" />
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M12,7m-1.25,0a1.25,1.25 0,1 1,2.5 0a1.25,1.25 0,1 1,-2.5 0" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M14.5,9.5C15.881,8.119 15.881,5.881 14.5,4.5M9.5,9.5C8.119,8.119 8.119,5.881 9.5,4.5"
|
||||
android:strokeWidth="2"
|
||||
android:strokeColor="#000000" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M17,12C19.761,9.239 19.761,4.761 17,2M7,12C4.239,9.239 4.239,4.761 7,2"
|
||||
android:strokeWidth="2"
|
||||
android:strokeColor="#000000" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M12.485,12.121L22.577,22.213A1,1 51.198,0 1,22.577 23.627L17.627,28.577A1,1 128.802,0 1,16.213 28.577L6.121,18.485A1,1 0,0 1,6.121 17.071L11.071,12.121A1,1 77.649,0 1,12.485 12.121z"
|
||||
android:strokeWidth="2"
|
||||
android:strokeColor="#000000" />
|
||||
</group>
|
||||
</vector>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M6,19C6,19.53 6.211,20.039 6.586,20.414C6.961,20.789 7.47,21 8,21H16C16.53,21 17.039,20.789 17.414,20.414C17.789,20.039 18,19.53 18,19V7H6V19ZM8,9H16V19H8V9ZM15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z"
|
||||
android:fillColor="#000000"/>
|
||||
</vector>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
File diff suppressed because one or more lines are too long
|
|
@ -10,157 +10,154 @@
|
|||
<path
|
||||
android:fillColor="#F6F5FF"
|
||||
android:pathData="M11,22C17.075,22 22,17.075 22,11C22,4.925 17.075,0 11,0C4.925,0 0,4.925 0,11C0,17.075 4.925,22 11,22Z" />
|
||||
<group>
|
||||
<clip-path android:pathData="M11,3.85L11,3.85A4.4,4.4 0,0 1,15.4 8.25L15.4,13.75A4.4,4.4 0,0 1,11 18.15L11,18.15A4.4,4.4 0,0 1,6.6 13.75L6.6,8.25A4.4,4.4 0,0 1,11 3.85z" />
|
||||
<path android:pathData="M10.998,3.85L10.902,4.176V13.629L10.998,13.725L15.397,11.131L10.998,3.85Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="13.5"
|
||||
android:endY="12.5"
|
||||
android:startX="11.5"
|
||||
android:startY="6.5"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFE1F0F3"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FFB3DBF5"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M10.998,3.85L6.6,11.131L10.998,13.725V9.136V3.85Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="6.5"
|
||||
android:endY="11"
|
||||
android:startX="10.75"
|
||||
android:startY="4"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFE1F0F3"
|
||||
android:offset="0.161" />
|
||||
<item
|
||||
android:color="#FFA795F2"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#C6C7FA"
|
||||
android:pathData="M10.998,14.556L10.944,14.622V17.989L10.998,18.147L15.4,11.963L10.998,14.556Z" />
|
||||
<path
|
||||
android:fillColor="#6E89D5"
|
||||
android:pathData="M10.998,18.147V14.556L6.6,11.963L10.998,18.147Z" />
|
||||
<path
|
||||
android:fillColor="#F2F6F4"
|
||||
android:pathData="M10.998,13.725L15.397,11.131L10.998,9.137V13.725Z" />
|
||||
<path android:pathData="M6.6,11.131L10.998,13.725V9.137L6.6,11.131Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="9"
|
||||
android:endY="12.5"
|
||||
android:startX="11"
|
||||
android:startY="9"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFDDE1F9"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FFD7D1FA"
|
||||
android:offset="0.993" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#B2B6E9"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M7.966,8.88C8.032,8.861 8.101,8.899 8.12,8.966L9.039,12.18L10.805,9.09C10.891,8.939 11.109,8.939 11.195,9.09L12.961,12.18L13.88,8.966C13.899,8.899 13.968,8.861 14.034,8.88C14.101,8.899 14.139,8.968 14.12,9.034L13.185,12.306C13.131,12.498 12.873,12.529 12.774,12.356L11,9.252L9.226,12.356C9.128,12.529 8.869,12.498 8.815,12.306L7.88,9.034C7.861,8.968 7.899,8.899 7.966,8.88Z" />
|
||||
<path android:pathData="M11.75,9.1C11.75,9.514 11.414,9.85 11,9.85C10.586,9.85 10.25,9.514 10.25,9.1C10.25,8.686 10.586,8.35 11,8.35C11.414,8.35 11.75,8.686 11.75,9.1Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="11"
|
||||
android:endY="9.85"
|
||||
android:startX="11"
|
||||
android:startY="8.35"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M8.6,8.75C8.6,9.164 8.264,9.5 7.85,9.5C7.435,9.5 7.1,9.164 7.1,8.75C7.1,8.336 7.435,8 7.85,8C8.264,8 8.6,8.336 8.6,8.75Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="7.85"
|
||||
android:endY="9.5"
|
||||
android:startX="7.85"
|
||||
android:startY="8"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M14.899,8.75C14.899,9.164 14.564,9.5 14.149,9.5C13.735,9.5 13.399,9.164 13.399,8.75C13.399,8.336 13.735,8 14.149,8C14.564,8 14.899,8.336 14.899,8.75Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="14.149"
|
||||
android:endY="9.5"
|
||||
android:startX="14.149"
|
||||
android:startY="8"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M13.6,12.35C13.6,12.764 13.264,13.1 12.85,13.1C12.435,13.1 12.1,12.764 12.1,12.35C12.1,11.936 12.435,11.6 12.85,11.6C13.264,11.6 13.6,11.936 13.6,12.35Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="12.85"
|
||||
android:endY="13.1"
|
||||
android:startX="12.85"
|
||||
android:startY="11.6"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M9.899,12.35C9.899,12.764 9.564,13.1 9.149,13.1C8.735,13.1 8.399,12.764 8.399,12.35C8.399,11.936 8.735,11.6 9.149,11.6C9.564,11.6 9.899,11.936 9.899,12.35Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="9.149"
|
||||
android:endY="13.1"
|
||||
android:startX="9.149"
|
||||
android:startY="11.6"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</group>
|
||||
<path android:pathData="M10.998,3.85L10.902,4.176V13.629L10.998,13.725L15.397,11.131L10.998,3.85Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="13.5"
|
||||
android:endY="12.5"
|
||||
android:startX="11.5"
|
||||
android:startY="6.5"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFE1F0F3"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FFB3DBF5"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M10.998,3.85L6.6,11.131L10.998,13.725V9.136V3.85Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="6.5"
|
||||
android:endY="11"
|
||||
android:startX="10.75"
|
||||
android:startY="4"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFE1F0F3"
|
||||
android:offset="0.161" />
|
||||
<item
|
||||
android:color="#FFA795F2"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#C6C7FA"
|
||||
android:pathData="M10.998,14.556L10.944,14.622V17.989L10.998,18.147L15.4,11.963L10.998,14.556Z" />
|
||||
<path
|
||||
android:fillColor="#6E89D5"
|
||||
android:pathData="M10.998,18.147V14.556L6.6,11.963L10.998,18.147Z" />
|
||||
<path
|
||||
android:fillColor="#F2F6F4"
|
||||
android:pathData="M10.998,13.725L15.397,11.131L10.998,9.137V13.725Z" />
|
||||
<path android:pathData="M6.6,11.131L10.998,13.725V9.137L6.6,11.131Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="9"
|
||||
android:endY="12.5"
|
||||
android:startX="11"
|
||||
android:startY="9"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFDDE1F9"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FFD7D1FA"
|
||||
android:offset="0.993" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#B2B6E9"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M7.966,8.88C8.032,8.861 8.101,8.899 8.12,8.966L9.039,12.18L10.805,9.09C10.891,8.939 11.109,8.939 11.195,9.09L12.961,12.18L13.88,8.966C13.899,8.899 13.968,8.861 14.034,8.88C14.101,8.899 14.139,8.968 14.12,9.034L13.185,12.306C13.131,12.498 12.873,12.529 12.774,12.356L11,9.252L9.226,12.356C9.128,12.529 8.869,12.498 8.815,12.306L7.88,9.034C7.861,8.968 7.899,8.899 7.966,8.88Z" />
|
||||
<path android:pathData="M11.75,9.1C11.75,9.514 11.414,9.85 11,9.85C10.586,9.85 10.25,9.514 10.25,9.1C10.25,8.686 10.586,8.35 11,8.35C11.414,8.35 11.75,8.686 11.75,9.1Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="11"
|
||||
android:endY="9.85"
|
||||
android:startX="11"
|
||||
android:startY="8.35"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M8.6,8.75C8.6,9.164 8.264,9.5 7.85,9.5C7.435,9.5 7.1,9.164 7.1,8.75C7.1,8.336 7.435,8 7.85,8C8.264,8 8.6,8.336 8.6,8.75Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="7.85"
|
||||
android:endY="9.5"
|
||||
android:startX="7.85"
|
||||
android:startY="8"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M14.899,8.75C14.899,9.164 14.564,9.5 14.149,9.5C13.735,9.5 13.399,9.164 13.399,8.75C13.399,8.336 13.735,8 14.149,8C14.564,8 14.899,8.336 14.899,8.75Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="14.149"
|
||||
android:endY="9.5"
|
||||
android:startX="14.149"
|
||||
android:startY="8"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M13.6,12.35C13.6,12.764 13.264,13.1 12.85,13.1C12.435,13.1 12.1,12.764 12.1,12.35C12.1,11.936 12.435,11.6 12.85,11.6C13.264,11.6 13.6,11.936 13.6,12.35Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="12.85"
|
||||
android:endY="13.1"
|
||||
android:startX="12.85"
|
||||
android:startY="11.6"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path android:pathData="M9.899,12.35C9.899,12.764 9.564,13.1 9.149,13.1C8.735,13.1 8.399,12.764 8.399,12.35C8.399,11.936 8.735,11.6 9.149,11.6C9.564,11.6 9.899,11.936 9.899,12.35Z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="9.149"
|
||||
android:endY="13.1"
|
||||
android:startX="9.149"
|
||||
android:startY="11.6"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FFC4C9F4"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF859ADC"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</group>
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -3,19 +3,19 @@
|
|||
android:height="22dp"
|
||||
android:viewportWidth="22"
|
||||
android:viewportHeight="22">
|
||||
<path
|
||||
android:fillColor="#384182"
|
||||
android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z" />
|
||||
<group>
|
||||
<clip-path android:pathData="M7,4h8.483v14h-8.483z" />
|
||||
<clip-path android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z" />
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M10.678,15.359L7,18L9.335,7.256L10.678,15.359ZM10.752,15.335L12.992,15.364L9.421,7.298L10.752,15.335ZM13.203,15.157L14.917,8.802L14.269,8.008L13.203,15.157ZM12.376,5.194L9.554,7.095L13.678,5.76L12.376,5.194ZM12.021,5.194L10.269,5.252L10.012,5.983L12.021,5.194Z" />
|
||||
android:pathData="M11,0L11,0A11,11 0,0 1,22 11L22,11A11,11 0,0 1,11 22L11,22A11,11 0,0 1,0 11L0,11A11,11 0,0 1,11 0z"
|
||||
android:fillColor="#384182" />
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M14.145,7.764L9.628,7.145L13.698,5.864L14.145,7.764ZM13.074,5.376L13.322,4.702L12.021,4.136L13.074,5.376ZM13.45,4.636L13.744,5.694L15.479,5.236L13.45,4.636Z" />
|
||||
android:pathData="M10.678,15.359L7,18L9.335,7.256L10.678,15.359ZM10.752,15.335L12.992,15.364L9.421,7.298L10.752,15.335ZM13.203,15.157L14.917,8.802L14.269,8.008L13.203,15.157ZM12.376,5.194L9.554,7.095L13.678,5.76L12.376,5.194ZM12.021,5.194L10.269,5.252L10.012,5.983L12.021,5.194Z"
|
||||
android:fillColor="#ffffff" />
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M13.091,15.322L9.471,7.223L14.19,7.884L13.091,15.322ZM12.24,5.194L10.008,6.066L9.471,7.058L12.24,5.194ZM10.855,4.533L10.297,5.149L12.149,5.103L10.855,4.533ZM11.831,4.054L10.946,4.463L12.963,5.351L11.831,4.054ZM12.839,4H11.888L13.359,4.57L12.839,4ZM13.388,4.756L13.161,5.434L13.616,5.653L13.388,4.756Z" />
|
||||
android:pathData="M14.145,7.764L9.628,7.145L13.698,5.864L14.145,7.764ZM13.074,5.376L13.322,4.702L12.021,4.136L13.074,5.376ZM13.45,4.636L13.744,5.694L15.479,5.236L13.45,4.636Z"
|
||||
android:fillColor="#ffffff" />
|
||||
<path
|
||||
android:pathData="M13.091,15.322L9.471,7.223L14.19,7.884L13.091,15.322ZM12.24,5.194L10.008,6.066L9.471,7.058L12.24,5.194ZM10.855,4.533L10.297,5.149L12.149,5.103L10.855,4.533ZM11.831,4.054L10.946,4.463L12.963,5.351L11.831,4.054ZM12.839,4H11.888L13.359,4.57L12.839,4ZM13.388,4.756L13.161,5.434L13.616,5.653L13.388,4.756Z"
|
||||
android:fillColor="#ffffff" />
|
||||
</group>
|
||||
</vector>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue