Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-13 14:21:40 +07:00
parent f69235c0d7
commit f3e7d4b0f6
2 changed files with 6 additions and 11 deletions

View file

@ -200,7 +200,7 @@ internal class WalletSettingsModel @Inject constructor(
isUpgradeNotificationEnabled: Boolean,
accountList: List<WalletSettingsAccountsUM>,
): PersistentList<WalletSettingsItemUM> {
val isAccountsFeatureEnabled = accountsFeatureToggles.isFeatureEnabled
val isAccountsFeatureEnabled = accountItemsDelegate.isAccountsSupported(userWallet)
val isMultiCurrency = when (userWallet) {
is UserWallet.Cold -> userWallet.isMultiCurrency
is UserWallet.Hot -> true

View file

@ -16,7 +16,6 @@ import com.tangem.domain.account.featuretoggle.AccountsFeatureToggles
import com.tangem.domain.account.models.AccountList
import com.tangem.domain.account.models.AccountStatusList
import com.tangem.domain.account.status.supplier.SingleAccountStatusListSupplier
import com.tangem.domain.account.usecase.IsAccountsModeEnabledUseCase
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase
@ -45,7 +44,6 @@ internal class AccountItemsDelegate @Inject constructor(
private val singleAccountStatusListSupplier: SingleAccountStatusListSupplier,
private val getBalanceHidingSettingsUseCase: GetBalanceHidingSettingsUseCase,
private val getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase,
private val isAccountsModeEnabledUseCase: IsAccountsModeEnabledUseCase,
private val accountListSortingSaver: AccountListSortingSaver,
private val accountsFeatureToggles: AccountsFeatureToggles,
private val analyticsEventHandler: AnalyticsEventHandler,
@ -53,15 +51,16 @@ internal class AccountItemsDelegate @Inject constructor(
private val userWalletId = paramsContainer.require<WalletSettingsComponent.Params>().userWalletId
fun isAccountsSupported(wallet: UserWallet) = accountsFeatureToggles.isFeatureEnabled && wallet.isAccountsSupported
fun loadAccount(wallet: UserWallet): Flow<List<WalletSettingsAccountsUM>> {
if (!accountsFeatureToggles.isFeatureEnabled || !wallet.isAccountsSupported) return flowOf(emptyList())
if (!isAccountsSupported(wallet)) return flowOf(emptyList())
return combine(
flow = singleAccountStatusListSupplier(userWalletId),
flow2 = getSelectedAppCurrencyUseCase.invokeOrDefault(),
flow3 = getBalanceHidingSettingsUseCase.isBalanceHidden(),
flow4 = isAccountsModeEnabledUseCase(),
flow5 = accountListSortingSaver.accountsOrderFlow,
flow4 = accountListSortingSaver.accountsOrderFlow,
transform = ::buildUiList,
)
}
@ -70,7 +69,6 @@ internal class AccountItemsDelegate @Inject constructor(
accountStatusList: AccountStatusList,
appCurrency: AppCurrency,
isBalanceHidden: Boolean,
isAccountsMode: Boolean,
accountsOrder: List<AccountId>?,
): List<WalletSettingsAccountsUM> = buildList {
fun AccountStatus.CryptoPortfolio.mapCryptoPortfolio(): WalletSettingsAccountsUM {
@ -98,10 +96,7 @@ internal class AccountItemsDelegate @Inject constructor(
)
add(header)
if (isAccountsMode) {
addAll(accounts.map(::mapAccount).applySortingOrder(order = accountsOrder))
}
addAll(accounts.map(::mapAccount).applySortingOrder(order = accountsOrder))
val isAddAccountEnabled = accounts.size < AccountList.MAX_ACCOUNTS_COUNT
val shouldShowDescription = accounts.size > 1