diff --git a/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/utils/WalletDataOperations.kt b/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/utils/WalletDataOperations.kt index 2d1ab24a3b..55d0faa5d2 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/utils/WalletDataOperations.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/utils/WalletDataOperations.kt @@ -213,9 +213,7 @@ internal fun List.updateSelectedAddress( } } -internal fun WalletDataModel.updateSelectedAddress( - addressType: AddressType, -): WalletDataModel { +internal fun WalletDataModel.updateSelectedAddress(addressType: AddressType): WalletDataModel { val addresses = walletAddresses ?: return this val selectedAddress = addresses.list .firstOrNull { it.type == addressType } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt index b66b7d3038..76a46b5ebc 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SingleWalletView.kt @@ -35,6 +35,11 @@ import com.tangem.wallet.databinding.FragmentWalletBinding class SingleWalletView : WalletView() { private lateinit var pendingTransactionAdapter: PendingTransactionsAdapter + + // FIXME: Move to model watcher + private var watchedPrimaryWalletForAddressCard: WalletDataModel? = null + private var watchedPrimaryWalletForBalance: WalletDataModel? = null + override fun changeWalletView(fragment: WalletFragment, binding: FragmentWalletBinding) { setFragment(fragment, binding) onViewCreated() @@ -88,11 +93,9 @@ class SingleWalletView : WalletView() { binding?.rvPendingTransaction?.show(knownTransactions.isNotEmpty()) } - // FIXME: Move to model watcher - private var watchedPrimaryWallet: WalletDataModel? = null private fun setupBalance(state: WalletState, primaryWallet: WalletDataModel) { - if (watchedPrimaryWallet == primaryWallet) return - watchedPrimaryWallet = primaryWallet + if (watchedPrimaryWalletForBalance == primaryWallet) return + watchedPrimaryWalletForBalance = primaryWallet val fragment = fragment ?: return binding?.apply { @@ -183,12 +186,10 @@ class SingleWalletView : WalletView() { } } - // FIXME: Move to model watcher - private var watchedPrimaryWallet: WalletDataModel? = null private fun setupAddressCard(state: WalletState, binding: FragmentWalletBinding) = with(binding.lAddress) { val primaryWallet = state.primaryWalletData - if (primaryWallet == watchedPrimaryWallet) return@with - watchedPrimaryWallet = primaryWallet + if (primaryWallet == watchedPrimaryWalletForAddressCard) return@with + watchedPrimaryWalletForAddressCard = primaryWallet if (primaryWallet?.walletAddresses != null && primaryWallet.currency is Currency.Blockchain) { binding.lAddress.root.show()