From a71a0e9a65f751105399744e34f5f5e57c8c49aa Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 17 Feb 2026 10:51:15 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../account/createedit/ui/AccountCreateEditContent.kt | 6 +++++- .../features/onramp/tokenlist/ui/OnrampTokenList.kt | 2 +- .../com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt | 2 +- .../presentation/account/ExpandedAccountsHolder.kt | 9 +++++++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/features/account/impl/src/main/java/com/tangem/features/account/createedit/ui/AccountCreateEditContent.kt b/features/account/impl/src/main/java/com/tangem/features/account/createedit/ui/AccountCreateEditContent.kt index 5d48231c07..792db8d675 100644 --- a/features/account/impl/src/main/java/com/tangem/features/account/createedit/ui/AccountCreateEditContent.kt +++ b/features/account/impl/src/main/java/com/tangem/features/account/createedit/ui/AccountCreateEditContent.kt @@ -18,6 +18,7 @@ import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.vectorResource @@ -39,6 +40,7 @@ import com.tangem.core.ui.components.fields.AutoSizeTextField import com.tangem.core.ui.extensions.* import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.core.ui.utils.rememberHideKeyboardNestedScrollConnection import com.tangem.domain.models.account.CryptoPortfolioIcon import com.tangem.features.account.createedit.entity.AccountCreateEditUM import com.tangem.features.account.createedit.entity.AccountCreateEditUM.Account @@ -53,11 +55,12 @@ internal fun AccountCreateEditContent( ) { val keyboardController = LocalSoftwareKeyboardController.current val focusManager = LocalFocusManager.current + val nestedScrollConnection = rememberHideKeyboardNestedScrollConnection() + Column( modifier = modifier .background(color = TangemTheme.colors.background.secondary) .fillMaxSize() - .imePadding() .systemBarsPadding(), horizontalAlignment = Alignment.CenterHorizontally, ) { @@ -65,6 +68,7 @@ internal fun AccountCreateEditContent( Column( modifier = Modifier + .nestedScroll(nestedScrollConnection) .verticalScroll(rememberScrollState()) .padding(horizontal = 16.dp) .weight(1f), diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt index d92870b44f..e878df7dbd 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/tokenlist/ui/OnrampTokenList.kt @@ -213,7 +213,7 @@ internal fun LazyListScope.portfolioTokensList(portfolio: TokensListItemUM.Portf portfolioItem( portfolio = portfolio, - modifier = Modifier.padding(top = 8.dp), + modifier = Modifier, isBalanceHidden = isBalanceHidden, ) if (!isExpanded) return diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index a6ddf89de1..2a21dd13ec 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -322,7 +322,7 @@ internal fun LazyListScope.portfolioTokensList(portfolio: TokensListItemUM.Portf portfolioItem( portfolio = portfolio, - modifier = Modifier.padding(top = 8.dp), + modifier = Modifier, isBalanceHidden = isBalanceHidden, ) if (!isExpanded) return diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/account/ExpandedAccountsHolder.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/account/ExpandedAccountsHolder.kt index 59095ad0df..b1c48cff7e 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/account/ExpandedAccountsHolder.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/account/ExpandedAccountsHolder.kt @@ -10,7 +10,9 @@ import com.tangem.domain.models.account.AccountId import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.UserWalletId import com.tangem.utils.coroutines.CoroutineDispatcherProvider +import kotlinx.coroutines.Job import kotlinx.coroutines.channels.BufferOverflow +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch import javax.inject.Inject @@ -43,10 +45,13 @@ internal class ExpandedAccountsHolder @Inject constructor( .toSet() // main state holder val expandedAccounts = MutableStateFlow(initExpandedState) + var debounceJob: Job? = null actionChannel .filter { (accountId, _) -> accountId.userWalletId == walletId } + .filter { debounceJob?.isActive != true } .onEach { (accountId, isExpand) -> + debounceJob = launch { delay(DEBOUNCE_MILLIS) } val newState = AccountExpandedState(accountId, isExpand) launch { accountsExpandedRepository.update(newState) } if (isExpand) { @@ -100,4 +105,8 @@ internal class ExpandedAccountsHolder @Inject constructor( } private fun walletAccounts(walletId: UserWalletId): Flow = singleAccountListSupplier(walletId) + + companion object { + private const val DEBOUNCE_MILLIS = 200L + } } \ No newline at end of file