diff --git a/data/account/src/main/kotlin/com/tangem/data/account/repository/DefaultAccountsExpandedRepository.kt b/data/account/src/main/kotlin/com/tangem/data/account/repository/DefaultAccountsExpandedRepository.kt index 6fab883946..e5232c0dc9 100644 --- a/data/account/src/main/kotlin/com/tangem/data/account/repository/DefaultAccountsExpandedRepository.kt +++ b/data/account/src/main/kotlin/com/tangem/data/account/repository/DefaultAccountsExpandedRepository.kt @@ -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 diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt index bd17a27eae..a1384944b8 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/AssociateNetworksDelegate.kt @@ -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( diff --git a/domain/account/src/main/java/com/tangem/domain/account/repository/AccountsExpandedRepository.kt b/domain/account/src/main/java/com/tangem/domain/account/repository/AccountsExpandedRepository.kt index 79e58ae8c3..d493fc48c5 100644 --- a/domain/account/src/main/java/com/tangem/domain/account/repository/AccountsExpandedRepository.kt +++ b/domain/account/src/main/java/com/tangem/domain/account/repository/AccountsExpandedRepository.kt @@ -10,5 +10,6 @@ interface AccountsExpandedRepository { val expandedAccounts: Flow>> suspend fun syncStore(walletId: UserWalletId, existAccounts: Set) + suspend fun clearStore() suspend fun update(accountState: AccountExpandedState) } \ No newline at end of file diff --git a/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/ui/WalletSettingsScreen.kt b/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/ui/WalletSettingsScreen.kt index 6590758780..e3efc898cd 100644 --- a/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/ui/WalletSettingsScreen.kt +++ b/features/wallet-settings/impl/src/main/kotlin/com/tangem/feature/walletsettings/ui/WalletSettingsScreen.kt @@ -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, ) } } 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 e0f0d2f4bf..59095ad0df 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 @@ -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 }