Updated on 2026-08-14

This commit is contained in:
Tangem 2019-06-10 16:02:47 +03:00
parent fbed37fe24
commit 7fa19e7bb2
2 changed files with 16 additions and 30 deletions

View file

@ -92,7 +92,7 @@ public class ServerApiCommon {
}
public void requestRateInfo(String cryptoId) {
CoinmarketApi coinmarketApi = App.getNetworkComponent().getRetrofitCoinmarketcap().create(CoinmarketApi.class);
CoinmarketApi coinmarketApi = App.Companion.getNetworkComponent().getRetrofitCoinmarketcap().create(CoinmarketApi.class);
Call<RateInfoResponse> call = coinmarketApi.getRateInfo(1, cryptoId);
@ -100,17 +100,17 @@ public class ServerApiCommon {
@Override
public void onResponse(@NonNull Call<RateInfoResponse> call, @NonNull Response<RateInfoResponse> response) {
if (response.code() == 200) {
rateInfoDataListener.onSuccess(response.body());
rateInfoListener.onSuccess(response.body());
Log.i(TAG, "coinmarketcap onResponse " + response.code());
} else {
rateInfoDataListener.onFail("Rate info error:" + String.valueOf(response.code()));
rateInfoListener.onFail("Rate info error:" + String.valueOf(response.code()));
Log.e(TAG, "coinmarketcap onResponse " + response.code());
}
}
@Override
public void onFailure(@NonNull Call<RateInfoResponse> call, @NonNull Throwable t) {
rateInfoDataListener.onFail(String.valueOf(t.getMessage()));
rateInfoListener.onFail(String.valueOf(t.getMessage()));
Log.e(TAG, "coinmarketcap onFailure " + t.getMessage());
}
});

View file

@ -5,6 +5,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.tangem.data.Blockchain
import com.tangem.data.network.ServerApiCommon
import com.tangem.data.network.ServerApiCommon.RateInfoListener
import com.tangem.data.network.model.RateInfoResponse
import com.tangem.wallet.TangemContext
class LoadedWalletViewModel : ViewModel() {
@ -23,34 +25,18 @@ class LoadedWalletViewModel : ViewModel() {
fun requestRateInfo(ctx: TangemContext) {
this.ctx = ctx
// TODO - move loadRateInfo to CoinEngine
val cryptoId: String = when (ctx.blockchain) {
Blockchain.Bitcoin -> "bitcoin"
Blockchain.BitcoinTestNet -> "bitcoin"
Blockchain.Ethereum -> "ethereum"
Blockchain.EthereumTestNet -> "ethereum"
Blockchain.Token -> "ethereum"
Blockchain.NftToken -> "ethereum"
Blockchain.BitcoinCash -> "bitcoin-cash"
Blockchain.Litecoin -> "litecoin"
Blockchain.Rootstock -> "bitcoin"
Blockchain.RootstockToken -> "bitcoin"
Blockchain.Cardano -> "cardano"
Blockchain.Ripple -> "ripple"
Blockchain.Binance -> "binance-coin"
Blockchain.BinanceTestNet -> "binance-coin"
Blockchain.Matic -> "bitcoin"
Blockchain.MaticTestNet -> "bitcoin"
else -> {
throw Exception("Can''t get rate for blockchain " + ctx.blockchainName)
}
}
serverApiCommon.requestRateInfo(cryptoId)
serverApiCommon.requestRateInfo(ctx.blockchain.currency)
}
private fun loadRateInfo() {
serverApiCommon.setRateInfoListener {
val rate = it.priceUsd.toFloat()
this.rate.value = rate
}
serverApiCommon.setRateInfoListener(object: RateInfoListener{
override fun onSuccess(rateInfoResponse: RateInfoResponse?) {
rate.value = rateInfoResponse!!.data!!.quote!!.usd!!.price
}
override fun onFail(message: String?) {
ctx.error = message
}
})
}
}