diff --git a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt index aa7ebcd8ad..b908c578a2 100644 --- a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletFragment.kt @@ -278,16 +278,6 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader } serverApiTangem.setArtworkListener(artworkListener) - // request rate info listener -// serverApiCommon.setRateInfoListener { -// if (activity == null || !UtilHelper.isOnline(activity!!)) return@setRateInfoListener -// val rate = it.priceUsd.toFloat() -// ctx.coinData!!.rate = rate -// ctx.coinData!!.rateAlter = rate -// -// Log.i(TAG, "scscscsc222 " + rate) -// } - refresh() startVerify(lastTag) @@ -298,19 +288,11 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader viewModel = ViewModelProviders.of(this).get(LoadedWalletViewModel::class.java) // set rate info to CoinData -// viewModel.getRateInfo(ctx).observe(this, Observer { rate -> -// Log.i(TAG, "scscscsc111 " + rate) -// -// ctx.coinData.rate = rate -// ctx.coinData.rateAlter = rate -// }) - - viewModel.getRateInfo(ctx).observeForever { rate -> - Log.i(TAG, "scscscsc111 $rate") - + viewModel.getRateInfo().observe(this, Observer { rate -> ctx.coinData.rate = rate ctx.coinData.rateAlter = rate - } + }) + viewModel.requestRateInfo(ctx) } override fun onPause() { @@ -673,11 +655,8 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader requestBalanceAndUnspentTransactions() -// requestRateInfo() - if (::viewModel.isInitialized) { - viewModel.getRateInfo(ctx) - Log.i(TAG, "isInitialized") - } + if (::viewModel.isInitialized) + viewModel.requestRateInfo(ctx) if (requestCounter == 0) { // if no connection and no requests posted @@ -739,34 +718,6 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader } } -// private fun requestRateInfo() { -// if (UtilHelper.isOnline(context as Activity)) { -// LOG.i(TAG, "requestRateInfo") -// -// 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" -// else -> { -// throw Exception("Can''t get rate for blockchain " + ctx.blockchainName) -// } -// } -// serverApiCommon.requestRateInfo(cryptoId) -// } else { -// ctx.error = getString(R.string.no_connection) -// updateViews() -// } -// } - private fun startVerify(tag: Tag?) { try { val isoDep = IsoDep.get(tag) diff --git a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletViewModel.kt b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletViewModel.kt index 4385a19100..0894729b9d 100644 --- a/app/src/main/java/com/tangem/ui/fragment/LoadedWalletViewModel.kt +++ b/app/src/main/java/com/tangem/ui/fragment/LoadedWalletViewModel.kt @@ -9,35 +9,20 @@ import com.tangem.wallet.TangemContext class LoadedWalletViewModel : ViewModel() { private var serverApiCommon: ServerApiCommon = ServerApiCommon() - private lateinit var ctx: TangemContext - -// private var rate = MutableLiveData() -// -// fun getRateInfo(ctx: TangemContext): LiveData { -// this.ctx = ctx -// rate = MutableLiveData() -// requestRateInfo() -// return rate -// } - private val rate: MutableLiveData by lazy { MutableLiveData().also { - requestRateInfo() + loadRateInfo() } } - fun getRateInfo(ctx: TangemContext): LiveData { - this.ctx = ctx + fun getRateInfo(): LiveData { return rate } - private fun requestRateInfo() { - serverApiCommon.setRateInfoListener { - val rate = it.priceUsd.toFloat() - this.rate.value = rate - } - // TODO - move requestRateInfo to CoinEngine + fun requestRateInfo(ctx: TangemContext) { + this.ctx = ctx + // TODO - move loadRateInfo to CoinEngine val cryptoId: String = when (ctx.blockchain) { Blockchain.Bitcoin -> "bitcoin" Blockchain.BitcoinTestNet -> "bitcoin" @@ -58,8 +43,10 @@ class LoadedWalletViewModel : ViewModel() { serverApiCommon.requestRateInfo(cryptoId) } - override fun onCleared() { - super.onCleared() -// getRateInfo(ctx).removeObservers() + private fun loadRateInfo() { + serverApiCommon.setRateInfoListener { + val rate = it.priceUsd.toFloat() + this.rate.value = rate + } } } \ No newline at end of file