From 1f0ed3a95e059d16d60d9eedbec4299121f15449 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 10 Oct 2023 00:26:08 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../presentation/common/WalletPreviewData.kt | 2 +- .../common/component/TokenItem.kt | 2 +- .../organizetokens/OrganizeTokensScreen.kt | 4 +-- .../OrganizeTokensStateHolder.kt | 2 +- ...alletTxHistoryTransactionStateConverter.kt | 2 -- .../presentation/wallet/ui/WalletScreen.kt | 29 +++++++++++-------- .../wallet/ui/components/WalletsList.kt | 6 ++-- .../wallet/ui/components/common/WalletCard.kt | 8 ++--- .../multicurrency/MultiCurrencyContent.kt | 4 +-- .../multicurrency/MultiCurrencyContentItem.kt | 4 +-- 10 files changed, 33 insertions(+), 30 deletions(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt index 841863194b..e493ed29f4 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt @@ -275,7 +275,7 @@ internal object WalletPreviewData { onCancelClick = {}, ), scrollListToTop = consumedEvent(), - isBalanceHidden = true + isBalanceHidden = true, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/component/TokenItem.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/component/TokenItem.kt index ea5364d1a4..9e0ea7e0cd 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/component/TokenItem.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/component/TokenItem.kt @@ -33,9 +33,9 @@ private enum class LayoutId { @Composable internal fun TokenItem( state: TokenItemState, + isBalanceHidden: Boolean, modifier: Modifier = Modifier, reorderableTokenListState: ReorderableLazyListState? = null, - isBalanceHidden: Boolean ) { CustomContainer( state = state, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt index 6a0c471a92..3b1ec1dd46 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensScreen.kt @@ -83,8 +83,8 @@ private fun TokenList( listState: LazyListState, state: OrganizeTokensListState, dndConfig: OrganizeTokensState.DragAndDropConfig, - modifier: Modifier = Modifier, isBalanceHidden: Boolean, + modifier: Modifier = Modifier, ) { Box(modifier = modifier) { val onDragEnd: (Int, Int) -> Unit = remember { @@ -167,7 +167,7 @@ private fun LazyItemScope.DraggableItem( modifier = itemModifier, state = item.tokenItemState, reorderableTokenListState = reorderableState, - isBalanceHidden = isBalanceHidden + isBalanceHidden = isBalanceHidden, ) // Should be presented in the list but remain invisible is DraggableItem.Placeholder -> Box(modifier = Modifier.fillMaxWidth()) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensStateHolder.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensStateHolder.kt index 18a2625bab..e435b21b5e 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensStateHolder.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/organizetokens/OrganizeTokensStateHolder.kt @@ -109,7 +109,7 @@ internal class OrganizeTokensStateHolder( canDragItemOver = dragAndDropIntents::canDragItemOver, ), scrollListToTop = consumedEvent(), - isBalanceHidden = true + isBalanceHidden = true, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/txhistory/WalletTxHistoryTransactionStateConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/txhistory/WalletTxHistoryTransactionStateConverter.kt index 5c953517fe..ece331befc 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/txhistory/WalletTxHistoryTransactionStateConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/txhistory/WalletTxHistoryTransactionStateConverter.kt @@ -1,7 +1,5 @@ package com.tangem.feature.wallet.presentation.wallet.state.factory.txhistory -import com.tangem.common.Provider -import com.tangem.common.Strings import com.tangem.core.ui.components.transactions.state.TransactionState import com.tangem.core.ui.extensions.TextReference import com.tangem.domain.txhistory.models.TxHistoryItem diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt index fe7215f347..76dc0bac3d 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/WalletScreen.kt @@ -3,6 +3,7 @@ package com.tangem.feature.wallet.presentation.wallet.ui import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.ExperimentalMaterialApi @@ -153,18 +154,7 @@ private fun WalletContent( modifier = movableItemModifier, ) - if (state is WalletMultiCurrencyState) { - val contentTokenListState = state.tokensListState as? WalletTokensListState.ContentState - val organizeTokensButton = contentTokenListState?.organizeTokensButton - - if (organizeTokensButton is OrganizeTokensButtonState.Visible) { - organizeTokensButton( - modifier = itemModifier, - isEnabled = organizeTokensButton.isEnabled, - onClick = organizeTokensButton.onClick, - ) - } - } + organizeTokens(state = state, itemModifier = itemModifier) } } } @@ -179,6 +169,21 @@ private fun WalletContent( ) } +internal fun LazyListScope.organizeTokens(state: WalletState.ContentState, itemModifier: Modifier) { + if (state is WalletMultiCurrencyState) { + val contentTokenListState = state.tokensListState as? WalletTokensListState.ContentState + val organizeTokensButton = contentTokenListState?.organizeTokensButton + + if (organizeTokensButton is OrganizeTokensButtonState.Visible) { + organizeTokensButton( + modifier = itemModifier, + isEnabled = organizeTokensButton.isEnabled, + onClick = organizeTokensButton.onClick, + ) + } + } +} + @OptIn(ExperimentalMaterialApi::class) @Composable private fun UpdatableContainer( diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt index 431197b952..7caf718821 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/WalletsList.kt @@ -57,10 +57,10 @@ internal fun WalletsList(config: WalletsListConfig, lazyListState: LazyListState ) { state -> WalletCard( state = state, + isBalanceHidden = isBalanceHidden, modifier = Modifier .animateItemPlacement() .width(itemWidth), - isBalanceHidden = isBalanceHidden ) } } @@ -102,7 +102,7 @@ private fun Preview_WalletsList_LightTheme() { WalletsList( config = WalletPreviewData.walletListConfig, lazyListState = rememberLazyListState(), - isBalanceHidden = false + isBalanceHidden = false, ) } } @@ -114,7 +114,7 @@ private fun Preview_WalletsList_DarkTheme() { WalletsList( config = WalletPreviewData.walletListConfig, lazyListState = rememberLazyListState(), - isBalanceHidden = false + isBalanceHidden = false, ) } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt index def0b40b40..910308e35f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/common/WalletCard.kt @@ -57,7 +57,7 @@ private const val HALF_OF_ITEM_WIDTH = 0.5 [REDACTED_AUTHOR] */ @Composable -internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, isBalanceHidden: Boolean) { +internal fun WalletCard(state: WalletCardState, isBalanceHidden: Boolean, modifier: Modifier = Modifier) { @Suppress("DestructuringDeclarationWithTooManyEntries") CardContainer( name = state.title, @@ -82,6 +82,7 @@ internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, i var balanceWidth by remember { mutableStateOf(value = Int.MIN_VALUE) } Balance( state = state, + isBalanceHidden = isBalanceHidden, modifier = Modifier .onSizeChanged { balanceWidth = it.width } .padding(vertical = TangemTheme.dimens.spacing8) @@ -90,7 +91,6 @@ internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, i top.linkTo(anchor = titleRef.bottom) bottom.linkTo(anchor = additionalTextRef.top) }, - isBalanceHidden = isBalanceHidden ) AdditionalInfo( @@ -275,7 +275,7 @@ private fun TitleText(text: String, modifier: Modifier = Modifier) { @OptIn(ExperimentalAnimationApi::class) @Composable -private fun Balance(state: WalletCardState, modifier: Modifier = Modifier, isBalanceHidden: Boolean) { +private fun Balance(state: WalletCardState, isBalanceHidden: Boolean, modifier: Modifier = Modifier) { AnimatedContent( targetState = state, label = "Update the balance", @@ -298,7 +298,7 @@ private fun Balance(state: WalletCardState, modifier: Modifier = Modifier, isBal ) } is WalletCardState.Error -> NonContentBalanceText( - text = if (isBalanceHidden) WalletCardState.HIDDEN_BALANCE_TEXT else WalletCardState.EMPTY_BALANCE_TEXT + text = if (isBalanceHidden) WalletCardState.HIDDEN_BALANCE_TEXT else WalletCardState.EMPTY_BALANCE_TEXT, ) is WalletCardState.Loading -> { RectangleShimmer(modifier = Modifier.nonContentBalanceSize(TangemTheme.dimens)) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContent.kt index fe9967104d..955e19c87d 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContent.kt @@ -38,8 +38,8 @@ internal fun LazyListScope.tokensListItems( when (state) { is WalletTokensListState.ContentState -> contentItems( items = state.items, + isBalanceHidden = isBalanceHidden, modifier = modifier, - isBalanceHidden = isBalanceHidden ) WalletTokensListState.Empty -> nonContentItem(modifier = modifier) } @@ -57,11 +57,11 @@ private fun LazyListScope.contentItems( itemContent = { index, item -> MultiCurrencyContentItem( state = item, + isBalanceHidden = isBalanceHidden, modifier = modifier.roundedShapeItemDecoration( currentIndex = index, lastIndex = items.lastIndex, ), - isBalanceHidden = isBalanceHidden ) }, ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContentItem.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContentItem.kt index e923d38147..9678a22d13 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContentItem.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/ui/components/multicurrency/MultiCurrencyContentItem.kt @@ -18,15 +18,15 @@ import com.tangem.feature.wallet.presentation.wallet.state.components.WalletToke @Composable internal fun MultiCurrencyContentItem( state: WalletTokensListState.TokensListItemState, - modifier: Modifier = Modifier, isBalanceHidden: Boolean, + modifier: Modifier = Modifier, ) { when (state) { is WalletTokensListState.TokensListItemState.NetworkGroupTitle -> { NetworkGroupItem(networkName = state.name.resolveReference(), modifier = modifier) } is WalletTokensListState.TokensListItemState.Token -> { - TokenItem(state = state.state, modifier = modifier, isBalanceHidden = isBalanceHidden) + TokenItem(state = state.state, isBalanceHidden = isBalanceHidden, modifier = modifier) } } } \ No newline at end of file