From 47b75d049b5e0dce61c40a74bafc7d13efaac183 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 18 Oct 2018 17:26:34 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/data/network/ServerApiHelper.java | 14 +- .../data/network/ServerApiHelperElectrum.java | 16 +- .../activity/ConfirmPaymentActivity.kt | 8 +- .../activity/SendTransactionActivity.kt | 8 +- .../dialog/WaitSecurityDelayDialog.java | 14 +- .../presentation/fragment/LoadedWallet.kt | 175 ++++++++---------- 6 files changed, 104 insertions(+), 131 deletions(-) diff --git a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java index 9f3535ba18..520466bc11 100644 --- a/app/src/main/java/com/tangem/data/network/ServerApiHelper.java +++ b/app/src/main/java/com/tangem/data/network/ServerApiHelper.java @@ -102,8 +102,8 @@ public class ServerApiHelper { private InfuraBodyListener infuraBodyListener; public interface InfuraBodyListener { - void onInfuraSuccess(String method, InfuraResponse infuraResponse); - void onInfuraFail(String method, String message); + void onSuccess(String method, InfuraResponse infuraResponse); + void onFail(String method, String message); } public void setInfuraResponse(InfuraBodyListener listener) { @@ -144,17 +144,17 @@ public class ServerApiHelper { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { if (response.code() == 200) { - infuraBodyListener.onInfuraSuccess(method, response.body()); + infuraBodyListener.onSuccess(method, response.body()); Log.i(TAG, "infura " + method + " onResponse " + response.code()); } else { - infuraBodyListener.onInfuraFail(method, String.valueOf(response.code())); + infuraBodyListener.onFail(method, String.valueOf(response.code())); Log.e(TAG, "infura " + method + " onResponse " + response.code()); } } @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - infuraBodyListener.onInfuraFail(method, String.valueOf(t.getMessage())); + infuraBodyListener.onFail(method, String.valueOf(t.getMessage())); Log.e(TAG, "infura " + method + " onFailure " + t.getMessage()); } }); @@ -255,7 +255,7 @@ public class ServerApiHelper { private RateInfoDataListener rateInfoDataListener; public interface RateInfoDataListener { - void onRateInfoDataData(RateInfoResponse rateInfoResponse); + void onSuccess(RateInfoResponse rateInfoResponse); } public void setRateInfoData(RateInfoDataListener listener) { @@ -273,7 +273,7 @@ public class ServerApiHelper { if (!rateInfoModelList.isEmpty()) { for (RateInfoResponse rateInfoMode : rateInfoModelList) { if (rateInfoMode.getId().equals(cryptoId)) { - rateInfoDataListener.onRateInfoDataData(rateInfoMode); + rateInfoDataListener.onSuccess(rateInfoMode); Log.i(TAG, "rateInfoData " + cryptoId + " onResponse " + "200"); } } diff --git a/app/src/main/java/com/tangem/data/network/ServerApiHelperElectrum.java b/app/src/main/java/com/tangem/data/network/ServerApiHelperElectrum.java index 68493e5ad8..f5dac594f2 100644 --- a/app/src/main/java/com/tangem/data/network/ServerApiHelperElectrum.java +++ b/app/src/main/java/com/tangem/data/network/ServerApiHelperElectrum.java @@ -9,7 +9,6 @@ import com.tangem.domain.wallet.Blockchain; import com.tangem.domain.wallet.TangemCard; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; @@ -18,7 +17,6 @@ import java.net.ConnectException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; -import java.net.SocketException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -42,9 +40,8 @@ public class ServerApiHelperElectrum { private ElectrumRequestDataListener electrumRequestDataListener; public interface ElectrumRequestDataListener { - void onElectrumSuccess(ElectrumRequest electrumRequest); - - void onElectrumFail(String method); + void onSuccess(ElectrumRequest electrumRequest); + void onFail(String method); } public void setElectrumRequestData(ElectrumRequestDataListener listener) { @@ -75,16 +72,17 @@ public class ServerApiHelperElectrum { @Override public void onNext(ElectrumRequest v) { if (electrumRequest.answerData != null) { - electrumRequestDataListener.onElectrumSuccess(electrumRequest); + electrumRequestDataListener.onSuccess(electrumRequest); // Log.i(TAG, "electrumRequestData " + electrumRequest.getMethod() + " onNext != null"); } else { -// electrumRequestDataListener.onElectrumFail(electrumRequest.getMethod()); + electrumRequestDataListener.onFail(electrumRequest.getMethod()); Log.e(TAG, "electrumRequestData " + electrumRequest.getMethod() + " onNext == null"); } } @Override public void onError(Throwable e) { + electrumRequestDataListener.onFail(electrumRequest.getMethod()); Log.e(TAG, "electrumRequestData " + electrumRequest.getMethod() + " onError " + e.getMessage()); } @@ -114,7 +112,7 @@ public class ServerApiHelperElectrum { try { Socket socket = App.getComponent().getSocket(); - socket.connect(new InetSocketAddress(InetAddress.getByName(host), port)); + socket.connect(new InetSocketAddress(InetAddress.getByName(host), port)); Log.i(TAG, host + " " + port); try { OutputStream os = socket.getOutputStream(); @@ -145,7 +143,7 @@ public class ServerApiHelperElectrum { } } catch (Exception e) { e.printStackTrace(); - electrumRequestDataListener.onElectrumFail(electrumRequest.getMethod()); + electrumRequestDataListener.onFail(electrumRequest.getMethod()); Log.e(TAG, "electrumRequestData " + electrumRequest.getMethod() + " Exception " + e.getMessage()); } return result; diff --git a/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt b/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt index 3fddfb953e..a26e9e2c01 100644 --- a/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt @@ -214,7 +214,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { // request electrum listener val electrumBodyListener: ServerApiHelperElectrum.ElectrumRequestDataListener = object : ServerApiHelperElectrum.ElectrumRequestDataListener { - override fun onElectrumSuccess(electrumRequest: ElectrumRequest?) { + override fun onSuccess(electrumRequest: ElectrumRequest?) { if (electrumRequest!!.isMethod(ElectrumRequest.METHOD_GetBalance)) { try { etFee!!.setText("--") @@ -236,7 +236,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { } } - override fun onElectrumFail(message: String?) { + override fun onFail(message: String?) { } @@ -294,7 +294,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { // request eth gasPrice listener val infuraBodyListener: ServerApiHelper.InfuraBodyListener = object : ServerApiHelper.InfuraBodyListener { - override fun onInfuraSuccess(method: String, infuraResponse: InfuraResponse) { + override fun onSuccess(method: String, infuraResponse: InfuraResponse) { when (method) { ServerApiHelper.INFURA_ETH_GAS_PRICE -> { var gasPrice = infuraResponse.result @@ -323,7 +323,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { } } - override fun onInfuraFail(method: String, message: String) { + override fun onFail(method: String, message: String) { when (method) { ServerApiHelper.INFURA_ETH_GAS_PRICE -> { finishWithError(Activity.RESULT_CANCELED, getString(R.string.cannot_obtain_data_from_blockchain)) diff --git a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt index 2775a0d814..284f0a7d82 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/SendTransactionActivity.kt @@ -63,7 +63,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { // request electrum listener val electrumBodyListener: ServerApiHelperElectrum.ElectrumRequestDataListener = object : ServerApiHelperElectrum.ElectrumRequestDataListener { - override fun onElectrumSuccess(electrumRequest: ElectrumRequest?) { + override fun onSuccess(electrumRequest: ElectrumRequest?) { if (electrumRequest!!.isMethod(ElectrumRequest.METHOD_SendTransaction)) { try { var hashTX = electrumRequest.resultString @@ -85,7 +85,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { } } - override fun onElectrumFail(message: String?) { + override fun onFail(message: String?) { finishWithError(message!!) } } @@ -94,7 +94,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { // request eth sendRawTransaction val infuraBodyListener: ServerApiHelper.InfuraBodyListener = object : ServerApiHelper.InfuraBodyListener { - override fun onInfuraSuccess(method: String, infuraResponse: InfuraResponse) { + override fun onSuccess(method: String, infuraResponse: InfuraResponse) { when (method) { ServerApiHelper.INFURA_ETH_SEND_RAW_TRANSACTION -> { try { @@ -124,7 +124,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { } } - override fun onInfuraFail(method: String, message: String) { + override fun onFail(method: String, message: String) { when (method) { ServerApiHelper.INFURA_ETH_SEND_RAW_TRANSACTION -> { finishWithError(message) diff --git a/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java b/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java index 333b46c0f0..e80ccee827 100644 --- a/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java +++ b/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java @@ -138,13 +138,13 @@ public class WaitSecurityDelayDialog extends DialogFragment { timerToShowDelayDialog = null; } - if (msec == 0) { - if (instance != null) { - instance.dismiss(); - instance = null; - } - return; - } +// if (msec == 0) { +// if (instance != null) { +// instance.dismiss(); +// instance = null; +// } +// return; +// } if (instance == null) { if (msec > MinRemainingDelayToShowDialog) { instance = new WaitSecurityDelayDialog(); 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 9ae2ad1145..a14b0e9c0e 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -217,10 +217,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific // request electrum listener val electrumBodyListener: ServerApiHelperElectrum.ElectrumRequestDataListener = object : ServerApiHelperElectrum.ElectrumRequestDataListener { - override fun onElectrumSuccess(electrumRequest: ElectrumRequest?) { - requestCounter-- - if (requestCounter == 0) srl?.isRefreshing = false - + override fun onSuccess(electrumRequest: ElectrumRequest?) { if (electrumRequest!!.isMethod(ElectrumRequest.METHOD_GetBalance)) { try { val walletAddress = electrumRequest.params.getString(0) @@ -287,93 +284,18 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } - if (requestCounter == 0) - updateViews() + counterMinus() } - override fun onElectrumFail(method: String?) { - requestCounter-- - if (requestCounter == 0) { - srl!!.isRefreshing = false - updateViews() - } + override fun onFail(method: String?) { + } } - serverApiHelperElectrum.setElectrumRequestData(electrumBodyListener) - // request card verify and get info listener - val cardVerifyAndGetInfoListener: ServerApiHelper.CardVerifyAndGetInfoListener = object : ServerApiHelper.CardVerifyAndGetInfoListener { - override fun onSuccess(cardVerifyAndGetArtworkResponse: CardVerifyAndGetInfo.Response?) { - requestCounter-- - if (requestCounter == 0) srl!!.isRefreshing = false - - val result = cardVerifyAndGetArtworkResponse?.results!![0] - if (result.error != null) { - card!!.isOnlineVerified = false - return - } - card!!.isOnlineVerified = result.passed - - if (requestCounter == 0) updateViews() - - if (!result.passed) return - - if (localStorage.checkBatchInfoChanged(card!!, result)) { - Log.w(TAG, "Batch ${result.batch} info changed to '$result'") - ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!)) - localStorage.applySubstitution(card!!) - if (card!!.blockchain == Blockchain.Token || card!!.blockchain == Blockchain.Ethereum) { - card!!.setBlockchainIDFromCard(Blockchain.Ethereum.id) - } - refresh() - } - if (result.artwork != null && localStorage.checkNeedUpdateArtwork(result.artwork)) { - Log.w(TAG, "Artwork '${result.artwork!!.id}' updated, need download") - serverApiHelper.requestArtwork(result.artwork!!.id, result.artwork!!.getUpdateDate(), card!!) - updateViews() - } -// Log.i(TAG, "setCardVerify " + it.results!![0].passed) - } - - override fun onFail(message: String?) { - requestCounter-- - if (requestCounter == 0) - srl!!.isRefreshing = false - } - } - serverApiHelper.setCardVerifyAndGetInfoListener(cardVerifyAndGetInfoListener) - - // request artwork listener - val artworkListener: ServerApiHelper.ArtworkListener = object : ServerApiHelper.ArtworkListener { - override fun onSuccess(artworkId: String?, inputStream: InputStream?, updateDate: Date?) { - localStorage.updateArtwork(artworkId!!, inputStream!!, updateDate!!) - ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!)) - Log.w(TAG, "Artwork '$artworkId' downloaded") - } - - override fun onFail(message: String?) { - - } - } - serverApiHelper.setArtworkListener(artworkListener) - - // request rate info listener - serverApiHelper.setRateInfoData { - requestCounter-- - val rate = it.priceUsd.toFloat() - card!!.rate = rate - card!!.rateAlter = rate - - if (requestCounter == 0) { - srl!!.isRefreshing = false - updateViews() - } - } - - // request eth get balance, eth get transaction count, eth call, eth sendRawTransaction listener + // request infura listener val infuraBodyListener: ServerApiHelper.InfuraBodyListener = object : ServerApiHelper.InfuraBodyListener { - override fun onInfuraSuccess(method: String, infuraResponse: InfuraResponse) { + override fun onSuccess(method: String, infuraResponse: InfuraResponse) { when (method) { ServerApiHelper.INFURA_ETH_GET_BALANCE -> { var balanceCap = infuraResponse.result @@ -389,7 +311,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific card!!.decimalBalance = l.toString(10) card!!.decimalBalanceAlter = l.toString(10) - Log.i("$TAG eth_get_balance", balanceCap) +// Log.i("$TAG eth_get_balance", balanceCap) } ServerApiHelper.INFURA_ETH_GET_TRANSACTION_COUNT -> { @@ -474,22 +396,79 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } } - requestCounter-- - if (requestCounter == 0) { - srl!!.isRefreshing = false - updateViews() - } + counterMinus() } - override fun onInfuraFail(method: String, message: String) { - requestCounter-- - if (requestCounter == 0) { - srl!!.isRefreshing = false - updateViews() - } + override fun onFail(method: String, message: String) { + } } serverApiHelper.setInfuraResponse(infuraBodyListener) + + // request card verify and get info listener + val cardVerifyAndGetInfoListener: ServerApiHelper.CardVerifyAndGetInfoListener = object : ServerApiHelper.CardVerifyAndGetInfoListener { + override fun onSuccess(cardVerifyAndGetArtworkResponse: CardVerifyAndGetInfo.Response?) { + val result = cardVerifyAndGetArtworkResponse?.results!![0] + if (result.error != null) { + card!!.isOnlineVerified = false + return + } + card!!.isOnlineVerified = result.passed + + if (requestCounter == 0) updateViews() + + if (!result.passed) return + + if (localStorage.checkBatchInfoChanged(card!!, result)) { + Log.w(TAG, "Batch ${result.batch} info changed to '$result'") + ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!)) + localStorage.applySubstitution(card!!) + if (card!!.blockchain == Blockchain.Token || card!!.blockchain == Blockchain.Ethereum) { + card!!.setBlockchainIDFromCard(Blockchain.Ethereum.id) + } + refresh() + } + if (result.artwork != null && localStorage.checkNeedUpdateArtwork(result.artwork)) { + Log.w(TAG, "Artwork '${result.artwork!!.id}' updated, need download") + serverApiHelper.requestArtwork(result.artwork!!.id, result.artwork!!.getUpdateDate(), card!!) + updateViews() + } +// Log.i(TAG, "setCardVerify " + it.results!![0].passed) + } + + override fun onFail(message: String?) { + + } + } + serverApiHelper.setCardVerifyAndGetInfoListener(cardVerifyAndGetInfoListener) + + // request artwork listener + val artworkListener: ServerApiHelper.ArtworkListener = object : ServerApiHelper.ArtworkListener { + override fun onSuccess(artworkId: String?, inputStream: InputStream?, updateDate: Date?) { + localStorage.updateArtwork(artworkId!!, inputStream!!, updateDate!!) + ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!)) + } + + override fun onFail(message: String?) { + + } + } + serverApiHelper.setArtworkListener(artworkListener) + + // request rate info listener + serverApiHelper.setRateInfoData { + val rate = it.priceUsd.toFloat() + card!!.rate = rate + card!!.rateAlter = rate + } + } + + private fun counterMinus() { + requestCounter-- + if (requestCounter == 0) { + srl!!.isRefreshing = false + updateViews() + } } override fun onResume() { @@ -800,7 +779,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } tvWallet.text = card!!.wallet - // tvBlockchain.text = card!!.blockchainName if (card!!.tokenSymbol.length > 1) { @@ -885,7 +863,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific Toast.makeText(activity!!, getString(R.string.no_connection), Toast.LENGTH_SHORT).show() srl!!.isRefreshing = false } - } private fun requestInfura(method: String, contract: String) { @@ -901,7 +878,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific private fun requestVerifyAndGetInfo() { if (UtilHelper.isOnline(activity)) { if ((card!!.isOnlineVerified == null || !card!!.isOnlineVerified)) { -// requestCounter++ serverApiHelper.cardVerifyAndGetInfo(card) } } else { @@ -912,7 +888,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific private fun requestRateInfo(cryptoId: String) { if (UtilHelper.isOnline(activity)) { - requestCounter++ serverApiHelper.rateInfoData(cryptoId) } else { Toast.makeText(activity, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()