Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-27 21:52:32 +07:00
parent a54b701503
commit 30b52bc194
5 changed files with 14 additions and 6 deletions

View file

@ -40,6 +40,10 @@ internal class DefaultAccountsExpandedRepository(
}
}
override suspend fun clearStore() {
store.updateData { emptyMap() }
}
override suspend fun update(accountState: AccountExpandedState) {
store.updateData { map ->
val walletId = accountState.accountId.userWalletId

View file

@ -64,7 +64,7 @@ internal class AssociateNetworksDelegate(
}
}
@Suppress("ComplexCondition")
@Suppress("CyclomaticComplexMethod")
private suspend fun mapNetworksForPortfolio(
wallet: UserWallet,
account: Account?,
@ -112,7 +112,9 @@ internal class AssociateNetworksDelegate(
if (unknownRequired.isNotEmpty()) {
throw WcPairError.UnsupportedBlockchains(unknownRequired, sessionProposal.name)
}
if (unknownOptional.isNotEmpty() && required.isEmpty() && available.isEmpty() && missingRequired.isEmpty()) {
val isUnknownOptional = unknownOptional.isNotEmpty() && required.isEmpty() &&
available.isEmpty() && missingRequired.isEmpty() && notAdded.isEmpty()
if (isUnknownOptional) {
throw WcPairError.UnsupportedBlockchains(unknownOptional, sessionProposal.name)
}
return ProposalNetwork(

View file

@ -10,5 +10,6 @@ interface AccountsExpandedRepository {
val expandedAccounts: Flow<Map<UserWalletId, Set<AccountExpandedState>>>
suspend fun syncStore(walletId: UserWalletId, existAccounts: Set<AccountId>)
suspend fun clearStore()
suspend fun update(accountState: AccountExpandedState)
}

View file

@ -398,8 +398,6 @@ private fun AccountsFooter(model: WalletSettingsAccountsUM.Footer, modifier: Mod
text = model.description.resolveReference(),
color = TangemTheme.colors.text.tertiary,
style = TangemTheme.typography.caption2,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}

View file

@ -58,11 +58,14 @@ internal class ExpandedAccountsHolder @Inject constructor(
.launchIn(this)
walletAccounts(walletId).onEach { accountList ->
if (!isAccountsModeEnabledUseCase.invokeSync()) {
accountsExpandedRepository.clearStore()
expandedAccounts.update { setOf() }
return@onEach
}
val idsSet = accountList.accounts.mapTo(mutableSetOf()) { it.accountId }
accountsExpandedRepository.syncStore(walletId, idsSet)
if (!isAccountsMode.value) return@onEach
val isSingleAccount = accountList.accounts.size == 1
val storedMainAccountState = storedState.value
.find { it.accountId == accountList.mainAccount.accountId }