From a083fdb713298683ccfeb3d151b4ca536dee6842 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 13 Aug 2018 10:48:02 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle | 2 +- .../activity/PreparePaymentActivity.kt | 76 +++++++++---------- .../presentation/activity/PurgeActivity.kt | 28 +++---- .../activity/SignPaymentActivity.kt | 18 ++--- .../presentation/fragment/LoadedWallet.kt | 9 +-- .../tangem/util/DecimalDigitsInputFilter.java | 16 ++-- 6 files changed, 70 insertions(+), 79 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 35c03ff3f7..8e0ffd8da3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { applicationId "com.tangem.wallet" minSdkVersion 21 targetSdkVersion 27 - versionCode 54 + versionCode 55 versionName "0.88.1." + generateVersionName() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.kt index caea4d2c78..1bbf8cf33a 100644 --- a/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.kt @@ -29,8 +29,8 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { } private var useCurrency: Boolean = false - private var mCard: TangemCard? = null - private var mNfcManager: NfcManager? = null + private var card: TangemCard? = null + private var nfcManager: NfcManager? = null @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { @@ -39,62 +39,62 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { MainActivity.commonInit(applicationContext) - mNfcManager = NfcManager(this, this) + nfcManager = NfcManager(this, this) - mCard = TangemCard(intent.getStringExtra("UID")) - mCard!!.loadFromBundle(intent.extras!!.getBundle("Card")) + card = TangemCard(intent.getStringExtra("UID")) + card!!.loadFromBundle(intent.extras!!.getBundle("Card")) - tvCardID.text = mCard!!.cidDescription - val engine = CoinEngineFactory.create(mCard!!.blockchain) + tvCardID.text = card!!.cidDescription + val engine = CoinEngineFactory.create(card!!.blockchain) - if (mCard!!.blockchain == Blockchain.Token) { - val html = Html.fromHtml(engine!!.getBalanceWithAlter(mCard)) + if (card!!.blockchain == Blockchain.Token) { + val html = Html.fromHtml(engine!!.getBalanceWithAlter(card)) tvBalance.text = html } else - tvBalance.text = engine!!.getBalanceWithAlter(mCard) + tvBalance.text = engine!!.getBalanceWithAlter(card) - if (mCard!!.remainingSignatures < 2) + if (card!!.remainingSignatures < 2) etAmount!!.isEnabled = false - if (mCard!!.blockchain == Blockchain.Ethereum || mCard!!.blockchain == Blockchain.EthereumTestNet) { - tvCurrency.text = engine.getBalanceCurrency(mCard) + if (card!!.blockchain == Blockchain.Ethereum || card!!.blockchain == Blockchain.EthereumTestNet) { + tvCurrency.text = engine.getBalanceCurrency(card) useCurrency = false - etAmount!!.setText(engine.getBalanceValue(mCard)) - } else if (mCard!!.blockchain == Blockchain.Bitcoin || mCard!!.blockchain == Blockchain.BitcoinTestNet) { - val balance = engine.getBalanceLong(mCard)!! / (mCard!!.blockchain.multiplier / 1000.0) - tvCurrency.text = "m" + mCard!!.blockchain.currency + etAmount!!.setText(engine.getBalanceValue(card)) + } else if (card!!.blockchain == Blockchain.Bitcoin || card!!.blockchain == Blockchain.BitcoinTestNet) { + val balance = engine.getBalanceLong(card)!! / (card!!.blockchain.multiplier / 1000.0) + tvCurrency.text = "m" + card!!.blockchain.currency useCurrency = true val output = FormatUtil.DoubleToString(balance) etAmount!!.setText(output) - } else if (mCard!!.blockchain == Blockchain.BitcoinCash || mCard!!.blockchain == Blockchain.BitcoinCashTestNet) { - val balance = engine.getBalanceLong(mCard)!! / (mCard!!.blockchain.multiplier / 1000.0) - tvCurrency.text = "m" + mCard!!.blockchain.currency + } else if (card!!.blockchain == Blockchain.BitcoinCash || card!!.blockchain == Blockchain.BitcoinCashTestNet) { + val balance = engine.getBalanceLong(card)!! / (card!!.blockchain.multiplier / 1000.0) + tvCurrency.text = "m" + card!!.blockchain.currency useCurrency = true val output = FormatUtil.DoubleToString(balance) etAmount!!.setText(output) } else { - tvCurrency.text = engine.getBalanceCurrency(mCard) + tvCurrency.text = engine.getBalanceCurrency(card) useCurrency = false - etAmount!!.setText(engine.getBalanceValue(mCard)) + etAmount!!.setText(engine.getBalanceValue(card)) } - if (mCard!!.blockchain == Blockchain.Bitcoin) + if (card!!.blockchain == Blockchain.Bitcoin) + etAmount.filters = arrayOf(DecimalDigitsInputFilter(5)) + + if (card!!.blockchain == Blockchain.BitcoinCash) etAmount.filters = arrayOf(DecimalDigitsInputFilter(8)) - if (mCard!!.blockchain == Blockchain.BitcoinCash) - etAmount.filters = arrayOf(DecimalDigitsInputFilter(8)) - - if (mCard!!.blockchain == Blockchain.Ethereum) + if (card!!.blockchain == Blockchain.Ethereum) etAmount.filters = arrayOf(DecimalDigitsInputFilter(18)) // set listeners btnVerify.setOnClickListener { val strAmount: String = etAmount!!.text.toString().replace(",", ".") - val engine1 = CoinEngineFactory.create(mCard!!.blockchain) + val engine1 = CoinEngineFactory.create(card!!.blockchain) try { - if (!engine.checkAmount(mCard, etAmount!!.text.toString())) + if (!engine.checkAmount(card, etAmount!!.text.toString())) etAmount!!.error = getString(R.string.not_enough_funds_on_your_card) } catch (e: Exception) { etAmount!!.error = getString(R.string.unknown_amount_format) @@ -102,27 +102,25 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { var checkAddress = false if (engine1 != null) - checkAddress = engine1.validateAddress(etWallet!!.text.toString(), mCard) + checkAddress = engine1.validateAddress(etWallet!!.text.toString(), card) if (!checkAddress) { etWallet.error = getString(R.string.incorrect_destination_wallet_address) return@setOnClickListener } - if (etWallet.text.toString() == mCard!!.wallet) { + if (etWallet.text.toString() == card!!.wallet) { etWallet.error = getString(R.string.destination_wallet_address_equal_source_address) return@setOnClickListener } val intent = Intent(baseContext, ConfirmPaymentActivity::class.java) - intent.putExtra("UID", mCard!!.uid) - intent.putExtra("Card", mCard!!.asBundle) + intent.putExtra("UID", card!!.uid) + intent.putExtra("Card", card!!.asBundle) intent.putExtra("Wallet", etWallet!!.text.toString()) intent.putExtra(SignPaymentActivity.EXTRA_AMOUNT, strAmount) startActivityForResult(intent, REQUEST_CODE_SEND_PAYMENT) } - - // set listeners ivCamera.setOnClickListener { val intent = Intent(baseContext, QrScanActivity::class.java) startActivityForResult(intent, REQUEST_CODE_SCAN_QR) @@ -131,17 +129,17 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { public override fun onResume() { super.onResume() - mNfcManager!!.onResume() + nfcManager!!.onResume() } public override fun onPause() { super.onPause() - mNfcManager!!.onPause() + nfcManager!!.onPause() } public override fun onStop() { super.onStop() - mNfcManager!!.onStop() + nfcManager!!.onStop() } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -163,7 +161,7 @@ class PreparePaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { override fun onTagDiscovered(tag: Tag) { try { // Log.w(javaClass.name, "Ignore discovered tag!") - mNfcManager!!.ignoreTag(tag) + nfcManager!!.ignoreTag(tag) } catch (e: IOException) { e.printStackTrace() } diff --git a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt index 4d0aa7fc51..06b8931f26 100644 --- a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt @@ -29,8 +29,8 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc const val RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER } - private var mCard: TangemCard? = null - private var mNfcManager: NfcManager? = null + private var card: TangemCard? = null + private var nfcManager: NfcManager? = null private var purgeTask: PurgeTask? = null override fun onCreate(savedInstanceState: Bundle?) { @@ -39,25 +39,25 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT - mNfcManager = NfcManager(this, this) + nfcManager = NfcManager(this, this) MainActivity.commonInit(applicationContext) - mCard = TangemCard(intent.getStringExtra("UID")) - mCard!!.loadFromBundle(intent.extras!!.getBundle("Card")) + card = TangemCard(intent.getStringExtra("UID")) + card!!.loadFromBundle(intent.extras!!.getBundle("Card")) - tvCardID.text = mCard!!.cidDescription + tvCardID.text = card!!.cidDescription progressBar.progressTintList = ColorStateList.valueOf(Color.DKGRAY) progressBar.visibility = View.INVISIBLE } public override fun onResume() { super.onResume() - mNfcManager!!.onResume() + nfcManager!!.onResume() } public override fun onPause() { - mNfcManager!!.onPause() + nfcManager!!.onPause() if (purgeTask != null) { purgeTask!!.cancel(true) } @@ -66,7 +66,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc public override fun onStop() { // dismiss enable NFC dialog - mNfcManager!!.onStop() + nfcManager!!.onStop() if (purgeTask != null) { purgeTask!!.cancel(true) } @@ -82,13 +82,13 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc val sUID = Util.byteArrayToHexString(uid) // Log.v(TAG, "UID: $sUID") - if (sUID == mCard!!.uid) { - isoDep.timeout = mCard!!.pauseBeforePIN2 + 65000 - purgeTask = PurgeTask(this, mCard, mNfcManager, isoDep, this) + if (sUID == card!!.uid) { + isoDep.timeout = card!!.pauseBeforePIN2 + 65000 + purgeTask = PurgeTask(this, card, nfcManager, isoDep, this) purgeTask!!.start() } else { - // this Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + mCard.getUID() + ")"); - mNfcManager!!.ignoreTag(isoDep.tag) + // this Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + card.getUID() + ")"); + nfcManager!!.ignoreTag(isoDep.tag) } } catch (e: Exception) { diff --git a/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.kt b/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.kt index 8510bdaf96..8730dff2f2 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.kt @@ -34,7 +34,7 @@ class SignPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card } private var nfcManager: NfcManager? = null - private var mCard: TangemCard? = null + private var card: TangemCard? = null private var signPaymentTask: SignPaymentTask? = null @@ -53,14 +53,14 @@ class SignPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card nfcManager = NfcManager(this, this) - mCard = TangemCard(intent.getStringExtra("UID")) - mCard!!.loadFromBundle(intent.extras!!.getBundle("Card")) + card = TangemCard(intent.getStringExtra("UID")) + card!!.loadFromBundle(intent.extras!!.getBundle("Card")) amountStr = intent.getStringExtra(EXTRA_AMOUNT) feeStr = intent.getStringExtra("Fee") outAddressStr = intent.getStringExtra("Wallet") - tvCardID.text = mCard!!.cidDescription + tvCardID.text = card!!.cidDescription progressBar = findViewById(R.id.progressBar) progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY) @@ -76,16 +76,16 @@ class SignPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card val sUID = Util.byteArrayToHexString(uid) // Log.v(TAG, "UID: $sUID") - if (sUID == mCard!!.uid) { + if (sUID == card!!.uid) { if (lastReadSuccess) { - isoDep.timeout = mCard!!.pauseBeforePIN2 + 5000 + isoDep.timeout = card!!.pauseBeforePIN2 + 5000 } else { - isoDep.timeout = mCard!!.pauseBeforePIN2 + 65000 + isoDep.timeout = card!!.pauseBeforePIN2 + 65000 } - signPaymentTask = SignPaymentTask(this, mCard, nfcManager, isoDep, this, amountStr, feeStr, outAddressStr) + signPaymentTask = SignPaymentTask(this, card, nfcManager, isoDep, this, amountStr, feeStr, outAddressStr) signPaymentTask!!.start() } else { -// Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + mCard!!.uid + ")") +// Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + card!!.uid + ")") nfcManager!!.ignoreTag(isoDep.tag) } 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 f225e66b33..20be972b86 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -14,7 +14,6 @@ import android.support.v4.app.Fragment import android.support.v4.content.ContextCompat import android.support.v4.widget.SwipeRefreshLayout import android.text.Html -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -91,7 +90,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific private var timerHideErrorAndMessage: Timer? = null private var newPIN = "" private var newPIN2 = "" - private var mCardProtocol: CardProtocol? = null + private var cardProtocol: CardProtocol? = null private var onlineVerifyTask: OnlineVerifyTask? = null @@ -210,8 +209,8 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } } btnDetails.setOnClickListener { - if (mCardProtocol != null) - openVerifyCard(mCardProtocol!!) + if (cardProtocol != null) + openVerifyCard(cardProtocol!!) else showSingleToast(R.string.need_attach_card_again) } @@ -551,7 +550,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific if (cardProtocol.error == null) { rlProgressBar.post { rlProgressBar.visibility = View.GONE - mCardProtocol = cardProtocol + this.cardProtocol = cardProtocol refresh() } } else { diff --git a/app/src/main/java/com/tangem/util/DecimalDigitsInputFilter.java b/app/src/main/java/com/tangem/util/DecimalDigitsInputFilter.java index b306b1b063..d3c456c747 100644 --- a/app/src/main/java/com/tangem/util/DecimalDigitsInputFilter.java +++ b/app/src/main/java/com/tangem/util/DecimalDigitsInputFilter.java @@ -16,14 +16,7 @@ public class DecimalDigitsInputFilter implements InputFilter { } @Override - public CharSequence filter(CharSequence source, - int start, - int end, - Spanned dest, - int dstart, - int dend) { - - + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { int dotPos = -1; int len = dest.length(); for (int i = 0; i < len; i++) { @@ -33,17 +26,18 @@ public class DecimalDigitsInputFilter implements InputFilter { break; } } - if (dotPos >= 0) { + if (dotPos >= 0) { // protects against many dots - if (source.equals(".") || source.equals(",")) - { + if (source.equals(".") || source.equals(",")) { return ""; } + // if the text is entered before the dot if (dend <= dotPos) { return null; } + if (len - dotPos > decimalDigits) { return ""; }