From 5d1683ac0d1225afcf3cfaab9c15e9a7568c5511 Mon Sep 17 00:00:00 2001 From: Tangem Date: Sun, 7 Oct 2018 13:55:49 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../task/confirm_payment/ConnectFeeTask.java | 2 - .../activity/ConfirmPaymentActivity.kt | 45 +++++++++++++------ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/tangem/data/network/task/confirm_payment/ConnectFeeTask.java b/app/src/main/java/com/tangem/data/network/task/confirm_payment/ConnectFeeTask.java index cec31fb31e..aae97aea43 100644 --- a/app/src/main/java/com/tangem/data/network/task/confirm_payment/ConnectFeeTask.java +++ b/app/src/main/java/com/tangem/data/network/task/confirm_payment/ConnectFeeTask.java @@ -84,8 +84,6 @@ public class ConnectFeeTask extends FeeTask { - - confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE); DecimalFormat df = new DecimalFormat(); 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 6a46c7e6b7..822f9bfcff 100644 --- a/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt +++ b/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.kt @@ -17,8 +17,6 @@ import android.widget.* import com.tangem.data.network.ServerApiHelper import com.tangem.data.network.model.InfuraResponse import com.tangem.data.network.request.ElectrumRequest -import com.tangem.data.network.request.FeeRequest -import com.tangem.data.network.task.confirm_payment.ConnectFeeTask import com.tangem.data.network.task.confirm_payment.ConnectTask import com.tangem.domain.cardReader.NfcManager import com.tangem.domain.wallet.* @@ -50,15 +48,20 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { var rgFee: RadioGroup? = null var progressBar: ProgressBar? = null var btnSend: Button? = null + var minFee: String? = null var maxFee: String? = null var normalFee: String? = null + private var isIncludeFee: Boolean = true var minFeeInInternalUnits: Long? = 0L private var requestPIN2Count = 0 var nodeCheck = false var dtVerified: Date? = null + + var calcSize: Int = 0 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_confirm_payment) @@ -129,7 +132,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { connectTaskEx.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ElectrumRequest.checkBalance(card!!.wallet)) } - var calcSize = 256 + calcSize = 256 try { calcSize = buildSize(etWallet!!.text.toString(), "0.00", etAmount!!.text.toString()) } catch (ex: Exception) { @@ -232,8 +235,19 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { // request estimate fee listener serverApiHelper!!.setEstimateFee { blockCount, estimateFeeResponse -> + var fee: BigDecimal? + fee = BigDecimal(estimateFeeResponse) // BTC per 1 kb - val fee = BigDecimal(estimateFeeResponse) + if (fee == BigDecimal.ZERO) { + progressBar!!.visibility = View.INVISIBLE + finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! Wrong data received from the node") + } + + if (calcSize.toLong() != 0L) { + fee = fee.multiply(BigDecimal(calcSize.toLong())).divide(BigDecimal(1024)) // per Kb -> per byte + } else { + finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! Tx length unknown") + } progressBar!!.visibility = View.INVISIBLE @@ -243,22 +257,25 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { df.isGroupingUsed = false val strFee = df.format(fee) + var txtFee = "" when (blockCount) { - ServerApiHelper.ESTIMATE_FEE_PRIORITY -> { - maxFee = strFee - } - - ServerApiHelper.ESTIMATE_FEE_NORMAL -> { - normalFee = strFee - } ServerApiHelper.ESTIMATE_FEE_MINIMAL -> { minFee = strFee minFeeInInternalUnits = card!!.internalUnitsFromString(strFee) } + + ServerApiHelper.ESTIMATE_FEE_NORMAL -> { + normalFee = strFee + + doSetFee(rgFee!!.checkedRadioButtonId) + } + + ServerApiHelper.ESTIMATE_FEE_PRIORITY -> { + maxFee = strFee + } } -// doSetFee(rgFee!!.checkedRadioButtonId) etFee!!.error = null feeRequestSuccess = true if (feeRequestSuccess && balanceRequestSuccess) @@ -284,7 +301,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { minFee = minFeeInGwei normalFee = normalFeeInGwei maxFee = maxFeeInGwei - etFee!!.setText(normalFeeInGwei.replace(',','.')) + etFee!!.setText(normalFeeInGwei.replace(',', '.')) etFee!!.error = null btnSend!!.visibility = View.VISIBLE feeRequestSuccess = true @@ -487,7 +504,7 @@ class ConfirmPaymentActivity : AppCompatActivity(), NfcAdapter.ReaderCallback { else finishActivityWithError(Activity.RESULT_CANCELED, getString(R.string.cannot_obtain_data_from_blockchain)) } - etFee!!.setText(txtFee.replace(',','.')) + etFee!!.setText(txtFee.replace(',', '.')) } } \ No newline at end of file