diff --git a/app/build.gradle b/app/build.gradle index 6a5936aa12..4790d8e504 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { applicationId "com.tangem.wallet" minSdkVersion 21 targetSdkVersion 27 - versionCode 51 + versionCode 52 versionName "0.87.3." + generateVersionName() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 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 74642aef8d..9f2dc59aed 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.kt @@ -62,6 +62,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific private const val URL_CARD_VALIDATE = Server.API.Method.CARD_VALIDATE } + private var singleToast: Toast? = null private var nfcManager: NfcManager? = null var mCard: TangemCard? = null private var lastTag: Tag? = null @@ -187,7 +188,7 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific intent.addCategory(Intent.CATEGORY_DEFAULT) startActivity(intent) } catch (e: ActivityNotFoundException) { - Toast.makeText(context, R.string.no_compatible_wallet, Toast.LENGTH_LONG).show() + showSingleToast(R.string.no_compatible_wallet) } } @@ -195,14 +196,14 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific if (mCardProtocol != null) openVerifyCard(mCardProtocol!!) else - Toast.makeText(context, R.string.need_attach_card_again, Toast.LENGTH_LONG).show() + showSingleToast(R.string.need_attach_card_again) } tvInfo.setOnClickListener { if (mCardProtocol != null) openVerifyCard(mCardProtocol!!) else - Toast.makeText(context, R.string.need_attach_card_again, Toast.LENGTH_LONG).show() + showSingleToast(R.string.need_attach_card_again) } fabNFC.setOnClickListener { @@ -216,18 +217,18 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific } btnExtract.setOnClickListener { - if (!mCard!!.hasBalanceInfo()) - Toast.makeText(context, R.string.cannot_obtain_data_from_blockchain, Toast.LENGTH_LONG).show() - else if (!engine!!.IsBalanceNotZero(mCard)) - Toast.makeText(context, R.string.wallet_empty, Toast.LENGTH_LONG).show() + if (!mCard!!.hasBalanceInfo()) { + showSingleToast(R.string.cannot_obtain_data_from_blockchain) + } else if (!engine!!.IsBalanceNotZero(mCard)) + showSingleToast(R.string.wallet_empty) else if (!engine.IsBalanceAlterNotZero(mCard)) - Toast.makeText(context, R.string.not_enough_funds, Toast.LENGTH_LONG).show() + showSingleToast(R.string.not_enough_funds) else if (engine.AwaitingConfirmation(mCard)) - Toast.makeText(context, R.string.please_wait_while_previous, Toast.LENGTH_LONG).show() + showSingleToast(R.string.please_wait_while_previous) else if (!engine.CheckUnspentTransaction(mCard)) - Toast.makeText(context, R.string.please_wait_for_confirmation, Toast.LENGTH_LONG).show() + showSingleToast(R.string.please_wait_for_confirmation) else if (mCard!!.remainingSignatures == 0) - Toast.makeText(context, R.string.card_hasn_t_remaining_signature, Toast.LENGTH_LONG).show() + showSingleToast(R.string.card_hasn_t_remaining_signature) else { val intent = Intent(context, PreparePaymentActivity::class.java) intent.putExtra("UID", mCard!!.uid) @@ -760,4 +761,13 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific startActivityForResult(intent, REQUEST_CODE_SWAP_PIN) } + private fun showSingleToast(text: Int) { + if (singleToast == null || !singleToast!!.view.isShown) { + if (singleToast != null) + singleToast!!.cancel() + singleToast = Toast.makeText(context, text, Toast.LENGTH_LONG) + singleToast!!.show() + } + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fr_loaded_wallet.xml b/app/src/main/res/layout/fr_loaded_wallet.xml index 36c5a2b865..4d7b2dfacc 100644 --- a/app/src/main/res/layout/fr_loaded_wallet.xml +++ b/app/src/main/res/layout/fr_loaded_wallet.xml @@ -299,7 +299,7 @@ android:paddingLeft="20dp" android:paddingRight="20dp" android:text="@string/load" - android:textSize="@dimen/text_size_large" /> + android:textSize="@dimen/text_size_large"/>