diff --git a/app/src/main/java/com/tangem/tap/domain/RatesRepository.kt b/app/src/main/java/com/tangem/tap/domain/RatesRepository.kt index 51252c819c..8b4136e90f 100644 --- a/app/src/main/java/com/tangem/tap/domain/RatesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/RatesRepository.kt @@ -20,21 +20,18 @@ class RatesRepository { val throttledResult = coinsList.filter { throttler.isStillThrottled(it) }.map { Pair(it, throttler.geValue(it)) } - if (throttledResult.isNotEmpty()) { - return handleFiatRatesResult(throttledResult.toMap()) - } val currenciesToUpdate = coinsList.filter { !throttler.isStillThrottled(it) } val coinIds = currenciesToUpdate.mapNotNull { it.coinId }.distinct() - if (coinIds.isEmpty()) return EMPTY_RESULT + if (coinIds.isEmpty()) return handleFiatRatesResult(throttledResult.toMap()) return when (val result = tangemTechService.rates(currencyId, coinIds)) { is Result.Success -> { val ratesResultList: Map> = result.data.rates.mapValues { Result.Success(it.value.toBigDecimal()) } - val updatedCurrencies = mutableMapOf?>() - currenciesToUpdate.forEach { currency -> + val updatedCurrencies = throttledResult.toMap().toMutableMap() + coinsList.forEach { currency -> ratesResultList[currency.coinId]?.let { updatedCurrencies[currency] = it throttler.updateThrottlingTo(currency) @@ -65,13 +62,6 @@ class RatesRepository { fun clear() { throttler.clear() } - - companion object { - val EMPTY_RESULT = Result.Success(Pair( - mutableMapOf(), - mutableMapOf() - )) - } } typealias RatesResult = Pair, MutableMap> diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt index 281d4b3938..f43965d8f9 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt @@ -149,14 +149,16 @@ class WalletDetailsFragment : Fragment(R.layout.fragment_wallet_details), binding.srlWalletDetails.setOnRefreshListener { if (selectedWallet.currencyData.status != BalanceStatus.Loading) { - store.dispatch(WalletAction.LoadWallet( - blockchain = BlockchainNetwork( - selectedWallet.currency.blockchain, - selectedWallet.currency.derivationPath, - emptyList() - ) - ) + store.dispatch( + WalletAction.LoadWallet( + blockchain = BlockchainNetwork( + selectedWallet.currency.blockchain, + selectedWallet.currency.derivationPath, + emptyList(), + ), + ), ) + store.dispatch(WalletAction.LoadFiatRate(coinsList = listOf(selectedWallet.currency))) } } diff --git a/dependencies.gradle b/dependencies.gradle index 2376dbe286..02d685f18f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,7 +3,7 @@ ext.versions = [ build_gradle : '7.1.3', tangem_card_sdk : 'develop-165', // tangem_card_sdk : '0.0.1', - tangem_blockchain_sdk: 'develop-135', + tangem_blockchain_sdk: 'develop-139', // tangem_blockchain_sdk: '0.0.1', ]