From 69a01a632b877f0b149ab0beeae0a70b8b481a0e Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 5 Oct 2018 12:28:37 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../loaded_wallet/UpdateWalletInfoTask.java | 2 ++ .../domain/wallet/BalanceValidator.java | 6 ++-- .../com/tangem/domain/wallet/BtcEngine.java | 4 --- .../com/tangem/domain/wallet/TangemCard.java | 2 +- .../presentation/fragment/LoadedWallet.kt | 30 ++++++++++++------- app/src/main/res/layout/fr_loaded_wallet.xml | 6 ++-- 6 files changed, 28 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/tangem/data/network/task/loaded_wallet/UpdateWalletInfoTask.java b/app/src/main/java/com/tangem/data/network/task/loaded_wallet/UpdateWalletInfoTask.java index 742633318e..476c025081 100644 --- a/app/src/main/java/com/tangem/data/network/task/loaded_wallet/UpdateWalletInfoTask.java +++ b/app/src/main/java/com/tangem/data/network/task/loaded_wallet/UpdateWalletInfoTask.java @@ -147,6 +147,7 @@ public class UpdateWalletInfoTask extends ElectrumTask { if (height != -1) { String nodeAddress = engine.getNode(loadedWallet.getCard()); int nodePort = engine.getNodePort(loadedWallet.getCard()); + engine.switchNode(loadedWallet.getCard()); UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort); // loadedWallet.updateTasks.add(updateWalletInfoTask); updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, String.valueOf(height)), ElectrumRequest.getTransaction(mWalletAddress, hash)); @@ -184,6 +185,7 @@ public class UpdateWalletInfoTask extends ElectrumTask { if (height != -1) { String nodeAddress = engine.getNode(loadedWallet.getCard()); int nodePort = engine.getNodePort(loadedWallet.getCard()); + engine.switchNode(loadedWallet.getCard()); UpdateWalletInfoTask updateWalletInfoTask = new UpdateWalletInfoTask(loadedWallet, nodeAddress, nodePort); // loadedWallet.updateTasks.add(updateWalletInfoTask); updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, String.valueOf(height)), ElectrumRequest.getTransaction(mWalletAddress, hash)); diff --git a/app/src/main/java/com/tangem/domain/wallet/BalanceValidator.java b/app/src/main/java/com/tangem/domain/wallet/BalanceValidator.java index 1873773ff5..5ac0a1be59 100644 --- a/app/src/main/java/com/tangem/domain/wallet/BalanceValidator.java +++ b/app/src/main/java/com/tangem/domain/wallet/BalanceValidator.java @@ -42,7 +42,7 @@ public class BalanceValidator { firstLine = "Verification failed"; secondLine = ""; - if (card.getBlockchain() == Blockchain.Bitcoin) { + if (card.getBlockchain() == Blockchain.Bitcoin || card.getBlockchain() == Blockchain.BitcoinTestNet) { if (((card.getOfflineBalance() == null) && !card.isBalanceReceived()) || (!card.isBalanceReceived() && (card.getRemainingSignatures() != card.getMaxSignatures()))) { score = 0; @@ -61,8 +61,8 @@ public class BalanceValidator { if (card.getBalanceUnconfirmed() != 0) { score = 0; - firstLine = "Unguaranted balance"; - secondLine = "Loading in progress. Wait for full confirmation in blockchain. "; + firstLine = "Transaction in progress"; + secondLine = "Wait for full confirmation in blockchain. "; return; } diff --git a/app/src/main/java/com/tangem/domain/wallet/BtcEngine.java b/app/src/main/java/com/tangem/domain/wallet/BtcEngine.java index 4d85840bb1..544b75d49a 100644 --- a/app/src/main/java/com/tangem/domain/wallet/BtcEngine.java +++ b/app/src/main/java/com/tangem/domain/wallet/BtcEngine.java @@ -27,10 +27,6 @@ import java.util.Random; import static com.tangem.util.FormatUtil.stringToBigDecimal; -/** - * Created by Ilia on 15.02.2018. - */ - public class BtcEngine extends CoinEngine { private static String[] getBitcoinServiceHosts() { diff --git a/app/src/main/java/com/tangem/domain/wallet/TangemCard.java b/app/src/main/java/com/tangem/domain/wallet/TangemCard.java index 3a1d23cd89..20afd46516 100644 --- a/app/src/main/java/com/tangem/domain/wallet/TangemCard.java +++ b/app/src/main/java/com/tangem/domain/wallet/TangemCard.java @@ -1376,7 +1376,7 @@ public class TangemCard { return balanceReceived; } - private boolean balanceReceived; + private boolean balanceReceived = false; public void setBalanceReceived(boolean value) { balanceReceived = value; diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt index 6f7c17d892..d4b547cc19 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -261,6 +261,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific if (height != -1) { val nodeAddress = engine.getNode(card) val nodePort = engine.getNodePort(card) + engine.switchNode(card); val updateWalletInfoTask = UpdateWalletInfoTask(this, nodeAddress, nodePort) // loadedWallet.updateTasks.add(updateWalletInfoTask); updateWalletInfoTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.getHeader(mWalletAddress, height.toString()), ElectrumRequest.getTransaction(mWalletAddress, hash)) @@ -277,6 +278,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific // request card verify listener serverApiHelper!!.setCardVerifyAndGetInfoListener { srlLoadedWallet!!.isRefreshing = false + updateViews() val result = it.results!![0] if (result.error != null) { // Log.e(TAG, "Can't verify card: ${result.error}") @@ -318,7 +320,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific card!!.rate = rate card!!.rateAlter = rate srlLoadedWallet!!.isRefreshing = false - + updateViews() // Log.i(TAG, "setRateInfoData $rate") } @@ -370,9 +372,8 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific if (l.compareTo(BigInteger.ZERO) == 0) { card!!.blockchainID = Blockchain.Ethereum.id card!!.addTokenToBlockchainName() - updateViews() srlLoadedWallet!!.isRefreshing = false -// refresh() + updateViews() requestInfura(ServerApiHelper.INFURA_ETH_GET_BALANCE, "") requestInfura(ServerApiHelper.INFURA_ETH_GET_TRANSACTION_COUNT, "") requestInfura(ServerApiHelper.INFURA_ETH_GET_PENDING_COUNT, "") @@ -440,6 +441,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific override fun onInfuraFail(method: String, message: String) { srlLoadedWallet!!.isRefreshing = false + updateViews() } } @@ -762,11 +764,17 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific val engine = CoinEngineFactory.create(card!!.blockchain) - val validator = BalanceValidator() - validator.Check(card, false) - tvBalanceLine1.text = validator.firstLine - tvBalanceLine2.text = validator.getSecondLine(false) - tvBalanceLine1.setTextColor(ContextCompat.getColor(context!!, validator.color)) + if (srlLoadedWallet!!.isRefreshing) { + tvBalanceLine1.setTextColor(getResources().getColor(R.color.primary)) + tvBalanceLine1.text = "Verifying in blockchain..." + tvBalanceLine2.text = "" + } else { + val validator = BalanceValidator() + validator.Check(card, false) + tvBalanceLine1.setTextColor(ContextCompat.getColor(context!!, validator.color)) + tvBalanceLine1.text = validator.firstLine + tvBalanceLine2.text = validator.getSecondLine(false) + } if (engine!!.hasBalanceInfo(card) || card!!.offlineBalance == null) { if (card!!.blockchain == Blockchain.Token) { @@ -808,6 +816,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific card!!.clearInfo() card!!.error = null card!!.message = null + card!!.isBalanceReceived = false val needResendTX = LastSignStorage.getNeedTxSend(card!!.wallet) @@ -921,8 +930,8 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific requestRateInfo("ethereum") } - if (needResendTX) - sendTransaction(LastSignStorage.getTxForSend(card!!.wallet)) + //if (needResendTX) + //sendTransaction(LastSignStorage.getTxForSend(card!!.wallet)) // if (btnExtract.isEnabled) @@ -1018,6 +1027,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } else if (card!!.blockchain == Blockchain.Bitcoin || card!!.blockchain == Blockchain.BitcoinTestNet) { val nodeAddress = engine!!.getNode(card) val nodePort = engine.getNodePort(card) + engine.switchNode(card) val connectTask = UpdateWalletInfoTask(this@LoadedWallet, nodeAddress, nodePort) connectTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.broadcast(card!!.wallet, tx)) diff --git a/app/src/main/res/layout/fr_loaded_wallet.xml b/app/src/main/res/layout/fr_loaded_wallet.xml index fcca94e02e..958d007176 100644 --- a/app/src/main/res/layout/fr_loaded_wallet.xml +++ b/app/src/main/res/layout/fr_loaded_wallet.xml @@ -132,7 +132,7 @@ android:layout_height="wrap_content" android:fontFamily="@font/maaxmedium" android:textAlignment="center" - android:visibility="invisible" /> + android:visibility="visible" /> + android:visibility="visible" /> @@ -238,7 +238,6 @@ android:elevation="2dp" android:fontFamily="@font/maax" android:padding="4dp" - android:text="@string/message" android:textAlignment="center" android:textColor="@color/black" android:textStyle="normal|bold" @@ -256,7 +255,6 @@ android:fontFamily="@font/maax" android:padding="4dp" android:shadowColor="@color/cardview_shadow_start_color" - android:text="@string/error" android:textAlignment="center" android:textColor="@color/white" android:textStyle="bold"