From f75483df0c9b169f430741226ce2461cb45a597d Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 21 Apr 2020 10:55:26 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/ui/fragment/id/IdFragment.kt | 3 +++ .../tangem/ui/fragment/id/IssueNewIdFragment.kt | 7 ++++++- .../tangem/ui/fragment/id/ValidateIdFragment.kt | 9 +++++++++ .../com/tangem/ui/fragment/id/WriteIdFragment.kt | 3 +++ .../java/com/tangem/wallet/ethID/EthIdEngine.java | 14 ++++++++++++++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt index 8013e66fed..61e4e7524a 100644 --- a/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/id/IdFragment.kt @@ -8,6 +8,7 @@ import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep import android.os.Bundle +import android.util.Log import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity @@ -231,6 +232,8 @@ class IdFragment : BaseFragment(), NfcAdapter.ReaderCallback, mpSecondScanSound.start() } } else { + Log.d(this.javaClass.simpleName, + "Error while reading ID card: ${cardProtocol.error.localizedMessage}") // remove last UIDs because of error and no card read FirebaseCrashlytics.getInstance().recordException(cardProtocol.error) rlProgressBar?.post { diff --git a/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt index d61191457f..119d692321 100644 --- a/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/id/IssueNewIdFragment.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.os.Parcelable import android.text.Editable import android.text.TextWatcher +import android.util.Log import android.view.View import android.widget.EditText import android.widget.RadioButton @@ -22,7 +23,6 @@ import com.tangem.wallet.ethID.EthIdEngine import kotlinx.android.parcel.Parcelize import kotlinx.android.synthetic.main.fragment_issue_new_id.* import java.io.ByteArrayOutputStream -import java.lang.Exception import java.text.SimpleDateFormat import java.util.* @@ -54,6 +54,8 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener { try { processData() } catch (exception: Exception) { + Log.e(this.javaClass.simpleName, + "Exception while processing data: ${exception.localizedMessage}") Toast.makeText(context, "Check for correctness of data", Toast.LENGTH_LONG).show() return@setOnClickListener } @@ -123,6 +125,9 @@ class IssueNewIdFragment : BaseFragment(), NavigationResultListener { val inputs = "$name $lastName;$birthDate${gender.toString()}" val info = inputs.toByteArray() + photoInBytes!! ctx.card.idHash = Util.calculateSHA256(info) + + Log.d(this.javaClass.simpleName, + "ID info provided: $inputs,\n photo of size ${photoInBytes?.size}") } private fun convertDate(inputDate: CharSequence): String { diff --git a/app/src/main/java/com/tangem/ui/fragment/id/ValidateIdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/ValidateIdFragment.kt index 0fb2c13aa6..61019f8ab9 100644 --- a/app/src/main/java/com/tangem/ui/fragment/id/ValidateIdFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/id/ValidateIdFragment.kt @@ -8,6 +8,7 @@ import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep import android.os.Bundle +import android.util.Log import android.view.View import androidx.activity.OnBackPressedCallback import com.google.firebase.crashlytics.FirebaseCrashlytics @@ -114,6 +115,10 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener, val data = Bundle() ctx.saveToBundle(data) data.putByteArray(Constant.EXTRA_TX, tx) + + Log.d(this.javaClass.simpleName, + "Transaction is ready to be sent.") + navigateForResult( Constant.REQUEST_CODE_SEND_TRANSACTION_, R.id.action_validateIdFragment_to_writeIdFragment, @@ -161,6 +166,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener, } PINStorage.setPIN2(PINStorage.getDefaultPIN2()) + Log.d(this.javaClass.simpleName, + "Ready to sing transaction, launching OneTouchSignTask") signTransactionTask = OneTouchSignTask(NfcReader((activity as MainActivity).nfcManager, isoDep), App.localStorage, App.pinStorage, this@ValidateIdFragment, transaction) signTransactionTask?.start() @@ -216,6 +223,8 @@ class ValidateIdFragment : BaseFragment(), NavigationResultListener, mpFinishSignSound.start() } else { + Log.d(this.javaClass.simpleName, + "Error while signing with ID Issuer card: ${cardProtocol.error.localizedMessage}") FirebaseCrashlytics.getInstance().recordException(cardProtocol.error) lastReadSuccess = false if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) { diff --git a/app/src/main/java/com/tangem/ui/fragment/id/WriteIdFragment.kt b/app/src/main/java/com/tangem/ui/fragment/id/WriteIdFragment.kt index 53f19ff2a5..03e96331c8 100644 --- a/app/src/main/java/com/tangem/ui/fragment/id/WriteIdFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/id/WriteIdFragment.kt @@ -8,6 +8,7 @@ import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep import android.os.Bundle +import android.util.Log import android.view.View import androidx.activity.OnBackPressedCallback import com.google.firebase.crashlytics.FirebaseCrashlytics @@ -186,6 +187,8 @@ class WriteIdFragment : BaseFragment(), NavigationResultListener, ) } else { + Log.d(this.javaClass.simpleName, + "Error while writing on ID card: ${cardProtocol.error}") lastReadSuccess = false FirebaseCrashlytics.getInstance().recordException(cardProtocol.error) if (cardProtocol.error.javaClass == CardProtocol.TangemException_InvalidPIN::class.java) { diff --git a/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java b/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java index 3c9e6c0017..c681805f2a 100644 --- a/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java +++ b/app/src/main/java/com/tangem/wallet/ethID/EthIdEngine.java @@ -277,6 +277,9 @@ public class EthIdEngine extends CoinEngine { @Override public SignTask.TransactionToSign constructTransaction(Amount amountValue, Amount feeValue, boolean IncFee, String targetAddress) { + Log.d(this.getClass().getSimpleName(), + "Constructing transaction for signature"); + final EthTransaction tx = constructIdTxForSign(coinData.getApprovalAddressNonce()); return new SignTask.TransactionToSign() { @@ -309,6 +312,9 @@ public class EthIdEngine extends CoinEngine { @Override public byte[] onSignCompleted(byte[] signFromCard) throws Exception { + Log.d(this.getClass().getSimpleName(), + "Transaction has been signed, now preparing transaction to send"); + byte[] for_hash = tx.getRawHash(); BigInteger r = new BigInteger(1, Arrays.copyOfRange(signFromCard, 0, 32)); BigInteger s = new BigInteger(1, Arrays.copyOfRange(signFromCard, 32, 64)); @@ -330,6 +336,8 @@ public class EthIdEngine extends CoinEngine { Log.e(this.getClass().getSimpleName(), " V: " + String.valueOf(v)); byte[] txForSend = tx.getEncoded(); + Log.d(this.getClass().getSimpleName(), + "Tx is ready to be sent"); notifyOnNeedSendTransaction(txForSend); return txForSend; } @@ -434,9 +442,13 @@ public class EthIdEngine extends CoinEngine { if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) { if (infuraResponse.getResult() == null || infuraResponse.getResult().isEmpty()) { ctx.setError("Rejected by node: " + infuraResponse.getError()); + Log.d(this.getClass().getSimpleName(), + "Rejected by node:" + infuraResponse.getError()); blockchainRequestsCallbacks.onComplete(false); } else { ctx.setError(null); + Log.d(this.getClass().getSimpleName(), + "Transaction has been sent successfully"); blockchainRequestsCallbacks.onComplete(true); } } @@ -444,6 +456,8 @@ public class EthIdEngine extends CoinEngine { @Override public void onFail(String method, String message) { + Log.d(this.getClass().getSimpleName(), + "requestSendTransaction failed with message: " + message); if (method.equals(ServerApiInfura.INFURA_ETH_SEND_RAW_TRANSACTION)) { ctx.setError(message); blockchainRequestsCallbacks.onComplete(false);