diff --git a/app/src/main/java/com/tangem/di/ToastHelper.kt b/app/src/main/java/com/tangem/di/ToastHelper.kt index c19cfe6cf9..664a83d479 100644 --- a/app/src/main/java/com/tangem/di/ToastHelper.kt +++ b/app/src/main/java/com/tangem/di/ToastHelper.kt @@ -45,6 +45,13 @@ class ToastHelper { snackbar.show() } + fun showSnackbarWarning(context: Context, vg: ViewGroup, message: String) { + val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_LONG) + val snackView = snackbar.view + snackView.setBackgroundColor(context.resources.getColor(R.color.msg_err)) + snackbar.show() + } + private var singleToast: Toast? = null private var showTime: Date = Date() diff --git a/app/src/main/java/com/tangem/di/ToastHelperComponent.kt b/app/src/main/java/com/tangem/di/ToastHelperComponent.kt index 1957d59a6a..24d5165c5e 100644 --- a/app/src/main/java/com/tangem/di/ToastHelperComponent.kt +++ b/app/src/main/java/com/tangem/di/ToastHelperComponent.kt @@ -1,5 +1,6 @@ package com.tangem.di +import com.tangem.ui.ConfirmTransactionActivity import com.tangem.ui.PrepareTransactionActivity import com.tangem.ui.activity.EmptyWalletActivity import com.tangem.ui.activity.LoadedWalletActivity @@ -15,6 +16,8 @@ interface ToastHelperComponent { fun inject(activity: LoadedWalletActivity) + fun inject(activity: ConfirmTransactionActivity) + fun inject(activity: PrepareTransactionActivity) fun inject(activity: EmptyWalletActivity) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 002f70699b..080eb72bcf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -219,6 +219,7 @@ PIN2 is required to sign the payment Not enough funds Service unavailable + You have a risk of delaying transaction Wallet hasn\'t been yet created diff --git a/app/src/tangemAccess/java/com/tangem/ui/ConfirmTransactionActivity.kt b/app/src/tangemAccess/java/com/tangem/ui/ConfirmTransactionActivity.kt index 60921bcef7..88b5d56871 100644 --- a/app/src/tangemAccess/java/com/tangem/ui/ConfirmTransactionActivity.kt +++ b/app/src/tangemAccess/java/com/tangem/ui/ConfirmTransactionActivity.kt @@ -2,40 +2,49 @@ package com.tangem.ui import android.app.Activity import android.content.Intent +import android.content.SharedPreferences import android.nfc.NfcAdapter import android.nfc.Tag import android.os.Build import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity +import android.preference.PreferenceManager import android.text.Editable import android.text.Html import android.text.TextWatcher import android.view.KeyEvent import android.view.View import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import com.tangem.App import com.tangem.Constant -import com.tangem.data.Blockchain -import com.tangem.wallet.CoinEngine -import com.tangem.wallet.CoinEngineFactory -import com.tangem.wallet.TangemContext -import com.tangem.ui.event.TransactionFinishWithError import com.tangem.card_android.android.nfc.NfcLifecycleObserver import com.tangem.card_android.android.reader.NfcManager +import com.tangem.card_android.data.EXTRA_TANGEM_CARD +import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID import com.tangem.card_android.data.loadFromBundle import com.tangem.card_common.data.TangemCard +import com.tangem.data.Blockchain +import com.tangem.di.ToastHelper +import com.tangem.ui.activity.PinRequestActivity +import com.tangem.ui.activity.SignTransactionActivity +import com.tangem.ui.event.TransactionFinishWithError import com.tangem.util.UtilHelper +import com.tangem.wallet.CoinEngine +import com.tangem.wallet.CoinEngineFactory import com.tangem.wallet.R +import com.tangem.wallet.TangemContext +import kotlinx.android.synthetic.tangemAccess.activity_confirm_transaction.* import org.greenrobot.eventbus.EventBus import java.io.IOException import java.util.* -import com.tangem.card_android.data.EXTRA_TANGEM_CARD -import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID -import com.tangem.ui.activity.PinRequestActivity -import com.tangem.ui.activity.SignTransactionActivity -import kotlinx.android.synthetic.tangemAccess.activity_confirm_transaction.* +import javax.inject.Inject class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { + @Inject + internal lateinit var toastHelper: ToastHelper + + private lateinit var sp: SharedPreferences private lateinit var nfcManager: NfcManager private lateinit var ctx: TangemContext private lateinit var amount: CoinEngine.Amount @@ -49,6 +58,10 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac super.onCreate(savedInstanceState) setContentView(R.layout.activity_confirm_transaction) + App.toastHelperComponent.inject(this) + + sp = PreferenceManager.getDefaultSharedPreferences(this) + nfcManager = NfcManager(this, this) lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) @@ -95,6 +108,8 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac rgFee.visibility = View.INVISIBLE } + etFee.isEnabled = sp.getBoolean(getString(R.string.pref_manual_editing_fee), false) + // set listeners rgFee.setOnCheckedChangeListener { _, checkedId -> doSetFee(checkedId) } etFee.addTextChangedListener(object : TextWatcher { @@ -114,6 +129,9 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac } else tvFeeEquivalent.error = null + if (sp.getBoolean(getString(R.string.pref_manual_editing_fee), false)) + toastHelper.showSingleToast(this@ConfirmTransactionActivity, getString(R.string.risk_delaying)) + } catch (e: Exception) { e.printStackTrace() tvFeeEquivalent.text = "" diff --git a/app/src/tangemAccess/res/layout/activity_confirm_transaction.xml b/app/src/tangemAccess/res/layout/activity_confirm_transaction.xml index f41865d204..a3e049834c 100644 --- a/app/src/tangemAccess/res/layout/activity_confirm_transaction.xml +++ b/app/src/tangemAccess/res/layout/activity_confirm_transaction.xml @@ -2,6 +2,7 @@