diff --git a/common/ui/src/main/java/com/tangem/common/ui/account/PortfolioSelectRow.kt b/common/ui/src/main/java/com/tangem/common/ui/account/PortfolioSelectRow.kt index 5b0eb6b72f..3c7929265a 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/account/PortfolioSelectRow.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/account/PortfolioSelectRow.kt @@ -108,7 +108,7 @@ fun PortfolioSelectRowV2( modifier = Modifier.padding(end = TangemTheme.dimens2.x3), name = state.name, icon = state.icon, - size = AccountIconSize.RedesignedDefault, + size = AccountIconSize.Default, ) } } else if (state.imageState != null) { diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/account/AccountIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/components/account/AccountIcon.kt index 3a7a35299c..9a45ec707a 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/account/AccountIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/account/AccountIcon.kt @@ -37,8 +37,6 @@ enum class AccountIconSize { Medium, Small, ExtraSmall, - RedesignedDefault, - RedesignExtraSmall, ContactLarge, ContactDefault, } @@ -133,13 +131,11 @@ fun AccountCharIcon(char: Char, color: Color, size: AccountIconSize, modifier: M animationSpec = animation(), ) val textStyle = when (size) { - AccountIconSize.Default -> TangemTheme.typography.h3 + AccountIconSize.Default -> TangemTheme.typography2.headingSemibold28 AccountIconSize.Large -> TangemTheme.typography.h1 AccountIconSize.Medium -> TangemTheme.typography.subtitle1 AccountIconSize.Small -> TangemTheme.typography.subtitle2 - AccountIconSize.ExtraSmall -> TangemTheme.typography.caption1 - AccountIconSize.RedesignedDefault -> TangemTheme.typography2.headingSemibold28 - AccountIconSize.RedesignExtraSmall -> TangemTheme.typography2.captionMedium11 + AccountIconSize.ExtraSmall -> TangemTheme.typography2.captionMedium11 AccountIconSize.ContactLarge -> TangemTheme.typography3.heading.medium AccountIconSize.ContactDefault -> TangemTheme.typography3.body.medium } @@ -174,32 +170,26 @@ private fun AccountIconSize.iconSizeInDp(): Dp = when (this) { AccountIconSize.Medium -> 16.dp AccountIconSize.Small -> 12.dp AccountIconSize.ExtraSmall -> 8.dp - AccountIconSize.RedesignedDefault -> 20.dp - AccountIconSize.RedesignExtraSmall -> 8.dp AccountIconSize.ContactLarge -> 32.dp AccountIconSize.ContactDefault -> 20.dp } fun AccountIconSize.toBoxSize(): Dp = when (this) { - AccountIconSize.Default -> 36.dp + AccountIconSize.Default -> 40.dp AccountIconSize.Large -> 88.dp AccountIconSize.Medium -> 28.dp AccountIconSize.Small -> 20.dp - AccountIconSize.ExtraSmall -> 14.dp - AccountIconSize.RedesignedDefault -> 40.dp - AccountIconSize.RedesignExtraSmall -> 16.dp + AccountIconSize.ExtraSmall -> 16.dp AccountIconSize.ContactLarge -> 80.dp AccountIconSize.ContactDefault -> 40.dp } private fun AccountIconSize.boxShapeSizeInDp(): Dp = when (this) { - AccountIconSize.Default -> 10.dp + AccountIconSize.Default -> 12.dp AccountIconSize.Large -> 24.dp AccountIconSize.Medium -> 8.dp AccountIconSize.Small -> 6.dp - AccountIconSize.ExtraSmall -> 4.dp - AccountIconSize.RedesignedDefault -> 12.dp - AccountIconSize.RedesignExtraSmall -> 6.dp + AccountIconSize.ExtraSmall -> 6.dp AccountIconSize.ContactLarge -> 80.dp AccountIconSize.ContactDefault -> 100.dp } @@ -242,9 +232,7 @@ private fun Sample() { AccountIconSize.Large -> AccountIconSize.Medium AccountIconSize.Medium -> AccountIconSize.Small AccountIconSize.Small -> AccountIconSize.ExtraSmall - AccountIconSize.ExtraSmall -> AccountIconSize.RedesignedDefault - AccountIconSize.RedesignedDefault -> AccountIconSize.RedesignExtraSmall - AccountIconSize.RedesignExtraSmall -> AccountIconSize.ContactLarge + AccountIconSize.ExtraSmall -> AccountIconSize.ContactLarge AccountIconSize.ContactLarge -> AccountIconSize.ContactDefault AccountIconSize.ContactDefault -> AccountIconSize.Default } @@ -264,6 +252,5 @@ private fun Sample() { AccountCharIcon(char = 'M', color = Color.Magenta, size = AccountIconSize.Medium) AccountCharIcon(char = 'S', color = Color.DarkGray, size = AccountIconSize.Small) AccountCharIcon(char = 'E', color = Color.Green, size = AccountIconSize.ExtraSmall) - AccountCharIcon(char = 'D', color = Color.LightGray, size = AccountIconSize.RedesignExtraSmall) } } \ No newline at end of file diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/currency/icon/CurrencyIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/components/currency/icon/CurrencyIcon.kt index 5ba1764345..fa84928ca8 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/currency/icon/CurrencyIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/currency/icon/CurrencyIcon.kt @@ -50,7 +50,7 @@ fun TangemCurrencyIcon(state: CurrencyIconState, modifier: Modifier = Modifier, modifier = iconModifier, shouldShowTopBadge = shouldDisplayNetwork, networkBadgeSize = 14.dp, - networkBadgeBackground = TangemTheme.colors2.surface.level1, + networkBadgeBackground = TangemTheme.colors3.bg.secondary, ) } } @@ -72,7 +72,7 @@ fun CurrencyIcon( modifier: Modifier = Modifier, shouldDisplayNetwork: Boolean = true, networkBadgeSize: Dp = 14.dp, - networkBadgeBackground: Color = TangemTheme.colors.background.primary, + networkBadgeBackground: Color = TangemTheme.colors3.bg.secondary, withFixedSize: Boolean = true, iconSize: Dp = 36.dp, ) { diff --git a/domain/earn/src/main/java/com/tangem/domain/earn/usecase/GetEarnNetworksUseCase.kt b/domain/earn/src/main/java/com/tangem/domain/earn/usecase/GetEarnNetworksUseCase.kt index eb82e7af92..7d69884f2c 100644 --- a/domain/earn/src/main/java/com/tangem/domain/earn/usecase/GetEarnNetworksUseCase.kt +++ b/domain/earn/src/main/java/com/tangem/domain/earn/usecase/GetEarnNetworksUseCase.kt @@ -1,6 +1,5 @@ package com.tangem.domain.earn.usecase -import arrow.core.Either import com.tangem.domain.account.models.AccountList import com.tangem.domain.account.supplier.MultiAccountListSupplier import com.tangem.domain.common.wallets.UserWalletsListRepository @@ -26,7 +25,8 @@ class GetEarnNetworksUseCase( private val userWalletsListRepository: UserWalletsListRepository, ) { - operator fun invoke(): Flow { + /** Emits `null` until the networks are loaded, so callers can tell it apart from a loaded empty list */ + operator fun invoke(): Flow { return combine( earnRepository.observeEarnNetworks(), observeMyNetworkIds(), @@ -35,7 +35,7 @@ class GetEarnNetworksUseCase( earnNetworks.map { network -> network.copy(isAdded = network.networkId in myNetworkIds) } - } ?: Either.Right(emptyList()) + } }.distinctUntilChanged() } diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt index 8491a45703..15f31838e0 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt @@ -535,9 +535,9 @@ private fun AccountRow( AccountRowComposables( icon = { iconModifier -> val iconSize = if (isExpandedState) { - AccountIconSize.RedesignExtraSmall + AccountIconSize.ExtraSmall } else { - AccountIconSize.RedesignedDefault + AccountIconSize.Default } val sizedIcon = when (val icon = tokenRowUM.headIconUM) { is TangemIconUM.Currency -> icon.copy( diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnModel.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnModel.kt index df8a5efe2a..503bbb2abd 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnModel.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnModel.kt @@ -1,7 +1,6 @@ package com.tangem.features.feed.model.earn import androidx.compose.runtime.Stable -import arrow.core.Either import com.arkivanov.decompose.router.slot.SlotNavigation import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.dismiss @@ -68,7 +67,7 @@ internal class EarnModel @Inject constructor( ) : Model() { private val params = paramsContainer.require() - private val earnNetworks = MutableStateFlow(Either.Right(emptyList())) + private val earnNetworks = MutableStateFlow(null) private val earnListConfigProvider = Provider { createEarnTokensListConfig( selectedTypeFilter = stateController.value.earnFilterUM.selectedTypeFilter, @@ -131,10 +130,10 @@ internal class EarnModel @Inject constructor( ) } - private fun EarnFilter.resolveAgainst(networks: EarnNetworks): EarnFilter { + private fun EarnFilter.resolveAgainst(networks: EarnNetworks?): EarnFilter { val specific = earnFilterNetwork as? EarnFilterNetwork.Specific ?: return this if (specific.symbol.isNotEmpty()) return this - val loaded = networks.getOrNull()?.takeIf { it.isNotEmpty() } ?: return this + val loaded = networks?.getOrNull()?.takeIf { it.isNotEmpty() } ?: return this val match = loaded.firstOrNull { it.networkId.equals(specific.id, ignoreCase = true) } return copy( earnFilterNetwork = match?.let { earnNetwork -> @@ -230,7 +229,7 @@ internal class EarnModel @Inject constructor( private fun reloadEarnNetworks() { modelScope.launch(dispatchers.default) { - if (earnNetworks.value.isLeft()) { + if (earnNetworks.value?.isLeft() != false) { fetchEarnNetworks() } } @@ -275,7 +274,7 @@ internal class EarnModel @Inject constructor( isSelected = selectedFilter is EarnFilterNetworkUM.MyNetworks, ), ) - earnNetworks.value.onRight { networks -> + earnNetworks.value?.onRight { networks -> networks.mapTo(this) { network -> EarnFilterNetwork.Specific( id = network.networkId, diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnTokensListConfigFactory.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnTokensListConfigFactory.kt index 68a5a99bfe..887d64d70d 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnTokensListConfigFactory.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/EarnTokensListConfigFactory.kt @@ -9,7 +9,7 @@ import com.tangem.features.feed.ui.earn.state.EarnFilterTypeUM internal fun createEarnTokensListConfig( selectedTypeFilter: EarnFilterTypeUM, selectedNetworkFilter: EarnFilterNetworkUM, - earnNetworks: EarnNetworks, + earnNetworks: EarnNetworks?, isForEarn: Boolean = false, ): EarnTokensListConfig { val type = when (selectedTypeFilter) { @@ -19,8 +19,9 @@ internal fun createEarnTokensListConfig( } val networks = when (selectedNetworkFilter) { is EarnFilterNetworkUM.AllNetworks -> null - is EarnFilterNetworkUM.MyNetworks -> { - earnNetworks.fold( + is EarnFilterNetworkUM.MyNetworks -> when (earnNetworks) { + null -> listOf(NO_ONE_NETWORK) + else -> earnNetworks.fold( ifLeft = { null }, ifRight = { networks -> networks.filter(EarnNetwork::isAdded) diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/state/transformers/EarnFilterSelectedStateTransformer.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/state/transformers/EarnFilterSelectedStateTransformer.kt index 5e8c4ef1c5..bf75c88690 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/state/transformers/EarnFilterSelectedStateTransformer.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/state/transformers/EarnFilterSelectedStateTransformer.kt @@ -6,7 +6,7 @@ import com.tangem.features.feed.ui.earn.state.EarnFilterTypeUM import com.tangem.features.feed.ui.earn.state.EarnUM internal class EarnFilterSelectedStateTransformer( - private val earnNetworks: EarnNetworks, + private val earnNetworks: EarnNetworks?, private val filterType: EarnFilterTypeUM, private val filterNetwork: EarnFilterNetworkUM, ) : EarnUMTransformer { @@ -16,7 +16,7 @@ internal class EarnFilterSelectedStateTransformer( earnFilterUM = prevState.earnFilterUM.copy( selectedTypeFilter = filterType, selectedNetworkFilter = filterNetwork, - isNetworkFilterEnabled = earnNetworks.isRight { networks -> networks.isNotEmpty() }, + isNetworkFilterEnabled = earnNetworks?.isRight { networks -> networks.isNotEmpty() } == true, isTypeFilterEnabled = true, ), ) diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/statemanager/EarnListBatchFlowManager.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/statemanager/EarnListBatchFlowManager.kt index e762de7360..d2f3f8176c 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/statemanager/EarnListBatchFlowManager.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/model/earn/statemanager/EarnListBatchFlowManager.kt @@ -25,7 +25,9 @@ internal class EarnListBatchFlowManager( private val modelScope: CoroutineScope, private val dispatchers: CoroutineDispatcherProvider, ) { - private val actionsFlow = MutableSharedFlow>() + // `replay = 1` because the batch source subscribes asynchronously, so an action emitted before + // that would be dropped silently. + private val actionsFlow = MutableSharedFlow>(replay = 1) private val converter = EarnTokenWithCurrencyToListItemUMConverter( onItemClick = { onItemClick(it, EarnSource.BEST_OPPORTUNITIES_SOURCE) }, ) @@ -38,8 +40,10 @@ internal class EarnListBatchFlowManager( batchSize = DEFAULT_BATCH_SIZE, ) + private val batchState = batchFlow.state.filterNot { it.status is PaginationStatus.None } + val uiItems: StateFlow> = - batchFlow.state + batchState .scan(persistentListOf() to -1) { (accItems, lastProcessedBatchIndex), newState -> if (newState.data.size <= lastProcessedBatchIndex) { val newItems = newState.data @@ -63,7 +67,7 @@ internal class EarnListBatchFlowManager( initialValue = persistentListOf(), ) - val initialLoadingError: StateFlow = batchFlow.state + val initialLoadingError: StateFlow = batchState .map { state -> val status = state.status if (status is PaginationStatus.InitialLoadingError) { @@ -79,7 +83,7 @@ internal class EarnListBatchFlowManager( initialValue = null, ) - val paginationStatus: StateFlow>> = batchFlow.state + val paginationStatus: StateFlow>> = batchState .map { it.status } .distinctUntilChanged() .stateIn( diff --git a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/model/converter/earnOpportunities/ForYouEarnOpportunitiesPotentialRewardsConverter.kt b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/model/converter/earnOpportunities/ForYouEarnOpportunitiesPotentialRewardsConverter.kt index 2af52de079..538641c2a4 100644 --- a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/model/converter/earnOpportunities/ForYouEarnOpportunitiesPotentialRewardsConverter.kt +++ b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/model/converter/earnOpportunities/ForYouEarnOpportunitiesPotentialRewardsConverter.kt @@ -105,7 +105,7 @@ internal class ForYouEarnOpportunitiesPotentialRewardsConverter( return TangemTokenRowUM.Content( id = account.accountId.value, headIconUM = TangemIconUM.Currency( - currencyIconState = AccountIconItemStateConverter(size = AccountIconSize.RedesignedDefault) + currencyIconState = AccountIconItemStateConverter(size = AccountIconSize.Default) .convert(account), ), titleUM = TangemTokenRowUM.TitleUM.Content( diff --git a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/ui/components/ForYouPortfolioTokenList.kt b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/ui/components/ForYouPortfolioTokenList.kt index b3ef98fcd2..4e93ff3085 100644 --- a/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/ui/components/ForYouPortfolioTokenList.kt +++ b/features/for-you/impl/src/main/java/com/tangem/features/foryou/impl/ui/components/ForYouPortfolioTokenList.kt @@ -187,9 +187,9 @@ private fun PortfolioSharedAssetIcon( if (headIcon is TangemIconUM.Currency) { val size = if (isExpandedWrapped) { - AccountIconSize.RedesignExtraSmall + AccountIconSize.ExtraSmall } else { - AccountIconSize.RedesignedDefault + AccountIconSize.Default } val currencyIconState = when (val currencyIconState = headIcon.currencyIconState) { is CurrencyIconState.CryptoPortfolio.Icon -> currencyIconState.copy(size = size) diff --git a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt index 1a2586e555..3f4758552e 100644 --- a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt +++ b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt @@ -53,7 +53,7 @@ import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.haptic.TangemHapticEffect import com.tangem.core.ui.res.LocalHapticManager import com.tangem.core.ui.res.TangemTheme -import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.core.ui.res.TangemThemePreviewRedesign import com.tangem.core.ui.test.ManageTokensScreenTestTags import com.tangem.core.ui.utils.WindowInsetsZero import com.tangem.core.ui.utils.rememberHideKeyboardNestedScrollConnection @@ -78,13 +78,13 @@ internal fun ManageTokensScreen(state: ManageTokensUM, modifier: Modifier = Modi Scaffold( modifier = modifier.nestedScroll(nestedScrollConnection), - containerColor = TangemTheme.colors.background.primary, + containerColor = TangemTheme.colors3.bg.primary, contentWindowInsets = WindowInsetsZero, topBar = { ManageTokensTopBar( modifier = Modifier .statusBarsPadding() - .background(TangemTheme.colors.background.primary), + .background(TangemTheme.colors3.bg.primary), topBar = state.topBar, search = state.search, ) @@ -93,6 +93,7 @@ internal fun ManageTokensScreen(state: ManageTokensUM, modifier: Modifier = Modi Content( modifier = Modifier .padding(innerPadding) + .padding(horizontal = 8.dp) .fillMaxSize(), state = state, ) @@ -245,7 +246,7 @@ fun SearchNothingFoundText(modifier: Modifier = Modifier) { Text( text = stringResourceSafe(R.string.markets_search_token_no_result_title), style = TangemTheme.typography.caption1, - color = TangemTheme.colors.text.tertiary, + color = TangemTheme.colors3.text.tertiary, ) } } @@ -253,10 +254,10 @@ fun SearchNothingFoundText(modifier: Modifier = Modifier) { @Composable fun ProgressIndicator(modifier: Modifier = Modifier) { Box( - modifier = modifier.background(color = TangemTheme.colors.background.primary), + modifier = modifier.background(color = TangemTheme.colors3.bg.primary), contentAlignment = Alignment.Center, ) { - CircularProgressIndicator(color = TangemTheme.colors.icon.informative) + CircularProgressIndicator(color = TangemTheme.colors3.icon.tertiary) } } @@ -339,7 +340,7 @@ private fun BasicCurrencyItem(item: CurrencyItemUM.Basic, isEditable: Boolean, m .rotate(rotation) .size(TangemTheme.dimens.size24), painter = painterResource(id = R.drawable.ic_chevron_24), - tint = TangemTheme.colors.icon.informative, + tint = TangemTheme.colors3.icon.tertiary, contentDescription = null, ) }, @@ -434,7 +435,7 @@ private fun NetworksList( private fun Preview_ManageTokens( @PreviewParameter(PreviewManageTokensComponentProvider::class) component: ManageTokensComponent, ) { - TangemThemePreview { + TangemThemePreviewRedesign { component.Content(Modifier.fillMaxWidth()) } } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsTopBar.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsTopBar.kt index c4a6dee5bd..0a914569f4 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsTopBar.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/TokenDetailsTopBar.kt @@ -178,7 +178,7 @@ private fun TokenDetailsTitle(titleState: TitleState) { AccountIcon( name = titleState.accountName, icon = titleState.accountIconUM, - size = AccountIconSize.RedesignExtraSmall, + size = AccountIconSize.ExtraSmall, ) }, ) diff --git a/features/virtual-accounts/main/impl/src/main/kotlin/com/tangem/features/virtualaccount/main/ui/VirtualAccountMainBlockContent.kt b/features/virtual-accounts/main/impl/src/main/kotlin/com/tangem/features/virtualaccount/main/ui/VirtualAccountMainBlockContent.kt index 418e81bcb9..b57e52990f 100644 --- a/features/virtual-accounts/main/impl/src/main/kotlin/com/tangem/features/virtualaccount/main/ui/VirtualAccountMainBlockContent.kt +++ b/features/virtual-accounts/main/impl/src/main/kotlin/com/tangem/features/virtualaccount/main/ui/VirtualAccountMainBlockContent.kt @@ -91,7 +91,7 @@ private fun VirtualAccountMainContent( AccountIcon( name = TextReference.EMPTY, icon = AccountIconUM.Virtual, - size = AccountIconSize.RedesignedDefault, + size = AccountIconSize.Default, modifier = Modifier .layoutId(TangemRowLayoutId.HEAD) .padding(end = TangemTheme.dimens2.x2), @@ -139,7 +139,7 @@ private fun VirtualAccountStateRow( AccountIcon( name = TextReference.EMPTY, icon = AccountIconUM.Virtual, - size = AccountIconSize.RedesignedDefault, + size = AccountIconSize.Default, modifier = Modifier .layoutId(TangemRowLayoutId.HEAD) .padding(end = TangemTheme.dimens2.x2), diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/managetokens/ui/AddAndManageBottomSheetContent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/managetokens/ui/AddAndManageBottomSheetContent.kt index 2f2a5f3f87..00f0ae3fac 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/managetokens/ui/AddAndManageBottomSheetContent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/managetokens/ui/AddAndManageBottomSheetContent.kt @@ -21,10 +21,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetType -import com.tangem.core.ui.ds.image.TangemIconUM -import com.tangem.core.ui.ds.topbar.TangemTopBar -import com.tangem.core.ui.ds.topbar.TangemTopBarType -import com.tangem.core.ui.ds2.button.TangemButton +import com.tangem.core.ui.ds2.topnavigation.TangemTopNavigation import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.res.TangemTheme @@ -47,19 +44,13 @@ internal fun AddAndManageBottomSheetContent( content = TangemBottomSheetConfigContent.Empty, ), type = TangemBottomSheetType.Modal, - containerColor = TangemTheme.colors2.surface.level2, + containerColor = TangemTheme.colors3.bg.tertiary, title = { - TangemTopBar( + TangemTopNavigation( title = resourceReference(R.string.main_add_and_manage_tokens), - type = TangemTopBarType.BottomSheet, - endContent = { - TangemButton( - iconStart = TangemIconUM.Icon(iconRes = R.drawable.ic_close_24), - onClick = onDismiss, - size = TangemButton.Size.X11, - variant = TangemButton.Variant.Material, - ) - }, + contentAlign = TangemTopNavigation.ContentAlign.Center, + blurBackground = false, + onClose = onDismiss, ) }, content = { @@ -119,8 +110,8 @@ private fun AddAndManageRow( .fillMaxWidth() .clip(RoundedCornerShape(20.dp)) .clickable(onClick = onClick) - .background(TangemTheme.colors2.surface.level3) - .padding(horizontal = 16.dp, vertical = 12.dp), + .background(TangemTheme.colors3.bg.tertiary) + .padding(16.dp), verticalAlignment = Alignment.CenterVertically, ) { Box( @@ -128,12 +119,12 @@ private fun AddAndManageRow( modifier = Modifier .size(40.dp) .clip(CircleShape) - .background(TangemTheme.colors2.graphic.status.accent.copy(alpha = 0.1f)), + .background(TangemTheme.colors3.icon.brand.copy(alpha = 0.1f)), ) { Icon( modifier = Modifier.size(20.dp), imageVector = ImageVector.vectorResource(id = iconRes), - tint = TangemTheme.colors2.markers.iconBlue, + tint = TangemTheme.colors3.icon.brand, contentDescription = null, ) } @@ -156,7 +147,7 @@ private fun AddAndManageRow( SpacerW(8.dp) Icon( imageVector = Icons.ic_chevron_right_24, - tint = TangemTheme.colors2.graphic.neutral.tertiaryConstant, + tint = TangemTheme.colors3.icon.secondary, contentDescription = null, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/model/converter/items/OrganizeAccountItemConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/model/converter/items/OrganizeAccountItemConverter.kt index d2442aa445..bfb13f8320 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/model/converter/items/OrganizeAccountItemConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/model/converter/items/OrganizeAccountItemConverter.kt @@ -24,7 +24,7 @@ internal class OrganizeAccountItemConverter( headerRowUM = TangemHeaderRowUM( id = value.accountId.value, startIconUM = TangemIconUM.Currency( - currencyIconState = AccountIconItemStateConverter(size = AccountIconSize.RedesignExtraSmall) + currencyIconState = AccountIconItemStateConverter(size = AccountIconSize.ExtraSmall) .convert(value.account), ), title = value.account.accountName.toUM().value,