Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-06 16:31:05 +03:00
parent 6d3ab223ec
commit c577dae7a1
9 changed files with 451 additions and 525 deletions

View file

@ -45,11 +45,11 @@ public class ConnectFeeTask extends FeeTask {
if (errCounter >= sharedCounter.allRequest) {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
} else {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
@ -58,7 +58,7 @@ public class ConnectFeeTask extends FeeTask {
}
if (minFeeRate == 0) {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! Wrong data received from the node");
return;
}
@ -75,50 +75,50 @@ public class ConnectFeeTask extends FeeTask {
if (sharedCounter != null) {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
if (errCounter >= sharedCounter.allRequest) {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
} else {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
return;
}
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
float finalFee = (float) minFeeRate / (float) 10000;
finalFee = Math.round(finalFee) / (float) 10000;
if ((request.getBlockCount() == FeeRequest.MINIMAL) && (confirmPaymentActivity.minFee == null)) {
confirmPaymentActivity.minFee = String.valueOf(finalFee);
confirmPaymentActivity.minFeeInInternalUnits = confirmPaymentActivity.mCard.InternalUnitsFromString(String.valueOf(finalFee));
} else if ((request.getBlockCount() == FeeRequest.NORMAL) && (confirmPaymentActivity.normalFee == null)) {
confirmPaymentActivity.normalFee = String.valueOf(finalFee);
} else if ((request.getBlockCount() == FeeRequest.PRIORITY) && (confirmPaymentActivity.maxFee == null)) {
confirmPaymentActivity.maxFee = String.valueOf(finalFee);
if ((request.getBlockCount() == FeeRequest.MINIMAL) && (confirmPaymentActivity.getMinFee() == null)) {
confirmPaymentActivity.setMinFee(String.valueOf(finalFee));
confirmPaymentActivity.setMinFeeInInternalUnits(confirmPaymentActivity.getCard().InternalUnitsFromString(String.valueOf(finalFee)));
} else if ((request.getBlockCount() == FeeRequest.NORMAL) && (confirmPaymentActivity.getNormalFee() == null)) {
confirmPaymentActivity.setNormalFee(String.valueOf(finalFee));
} else if ((request.getBlockCount() == FeeRequest.PRIORITY) && (confirmPaymentActivity.getMaxFee() == null)) {
confirmPaymentActivity.setMaxFee(String.valueOf(finalFee));
}
confirmPaymentActivity.doSetFee(confirmPaymentActivity.rgFee.getCheckedRadioButtonId());
confirmPaymentActivity.doSetFee(confirmPaymentActivity.getRgFee().getCheckedRadioButtonId());
confirmPaymentActivity.etFee.setError(null);
confirmPaymentActivity.feeRequestSuccess = true;
if (confirmPaymentActivity.feeRequestSuccess && confirmPaymentActivity.balanceRequestSuccess) {
confirmPaymentActivity.btnSend.setVisibility(View.VISIBLE);
confirmPaymentActivity.getEtFee().setError(null);
confirmPaymentActivity.setFeeRequestSuccess(true);
if (confirmPaymentActivity.getFeeRequestSuccess() && confirmPaymentActivity.getBalanceRequestSuccess()) {
confirmPaymentActivity.getBtnSend().setVisibility(View.VISIBLE);
}
confirmPaymentActivity.dtVerifyed = new Date();
confirmPaymentActivity.setDtVerified(new Date());
} else {
if (sharedCounter != null) {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
if (errCounter >= sharedCounter.allRequest) {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
} else {
confirmPaymentActivity.progressBar.setVisibility(View.INVISIBLE);
confirmPaymentActivity.getProgressBar().setVisibility(View.INVISIBLE);
confirmPaymentActivity.finishActivityWithError(Activity.RESULT_CANCELED, "Cannot calculate fee! No connection with blockchain nodes");
}
}

View file

@ -42,34 +42,34 @@ public class ConnectTask extends ElectrumTask {
if (request.error == null) {
if (request.isMethod(ElectrumRequest.METHOD_GetBalance)) {
try {
confirmPaymentActivity.etFee.setText("--");
confirmPaymentActivity.getEtFee().setText("--");
//String mWalletAddress = request.getParams().getString(0);
if ((request.getResult().getInt("confirmed") + request.getResult().getInt("unconfirmed")) / confirmPaymentActivity.mCard.getBlockchain().getMultiplier() * 1000000.0 < Float.parseFloat(confirmPaymentActivity.etAmount.getText().toString())) {
confirmPaymentActivity.etFee.setError("Not enough funds");
if ((request.getResult().getInt("confirmed") + request.getResult().getInt("unconfirmed")) / confirmPaymentActivity.getCard().getBlockchain().getMultiplier() * 1000000.0 < Float.parseFloat(confirmPaymentActivity.getEtAmount().getText().toString())) {
confirmPaymentActivity.getEtFee().setError("Not enough funds");
if (sharedCounter == null) {
confirmPaymentActivity.balanceRequestSuccess = false;
confirmPaymentActivity.btnSend.setVisibility(View.INVISIBLE);
confirmPaymentActivity.dtVerifyed = null;
confirmPaymentActivity.nodeCheck = false;
confirmPaymentActivity.setBalanceRequestSuccess(false);
confirmPaymentActivity.getBtnSend().setVisibility(View.INVISIBLE);
confirmPaymentActivity.setDtVerified(null);
confirmPaymentActivity.setNodeCheck(false);
} else {
int errCounter = sharedCounter.errorRequest.incrementAndGet();
if (errCounter >= sharedCounter.allRequest) {
confirmPaymentActivity.balanceRequestSuccess = false;
confirmPaymentActivity.btnSend.setVisibility(View.INVISIBLE);
confirmPaymentActivity.dtVerifyed = null;
confirmPaymentActivity.nodeCheck = false;
confirmPaymentActivity.setBalanceRequestSuccess(false);
confirmPaymentActivity.getBtnSend().setVisibility(View.INVISIBLE);
confirmPaymentActivity.setDtVerified(null);
confirmPaymentActivity.setNodeCheck(false);
}
}
} else {
confirmPaymentActivity.etFee.setError(null);
confirmPaymentActivity.balanceRequestSuccess = true;
if (confirmPaymentActivity.feeRequestSuccess && confirmPaymentActivity.balanceRequestSuccess) {
confirmPaymentActivity.btnSend.setVisibility(View.VISIBLE);
confirmPaymentActivity.getEtFee().setError(null);
confirmPaymentActivity.setBalanceRequestSuccess(true);
if (confirmPaymentActivity.getFeeRequestSuccess() && confirmPaymentActivity.getBalanceRequestSuccess()) {
confirmPaymentActivity.getBtnSend().setVisibility(View.VISIBLE);
}
confirmPaymentActivity.dtVerifyed = new Date();
confirmPaymentActivity.nodeCheck = true;
confirmPaymentActivity.setDtVerified(new Date());
confirmPaymentActivity.setNodeCheck(true);
}
} catch (JSONException e) {
if (sharedCounter != null) {
@ -85,7 +85,7 @@ public class ConnectTask extends ElectrumTask {
}
} else if (request.isMethod(ElectrumRequest.METHOD_GetFee)) {
if (request.getResultString() == "-1") {
confirmPaymentActivity.etFee.setText("3");
confirmPaymentActivity.getEtFee().setText("3");
}
}
} else {

View file

@ -39,21 +39,20 @@ public class ETHRequestTask extends InfuraTask {
gasPrice = gasPrice.substring(2);
BigInteger l = new BigInteger(gasPrice, 16);
BigInteger m = confirmPaymentActivity.mCard.getBlockchain() == Blockchain.Token ? BigInteger.valueOf(55000) : BigInteger.valueOf(21000);
BigInteger m = confirmPaymentActivity.getCard().getBlockchain() == Blockchain.Token ? BigInteger.valueOf(55000) : BigInteger.valueOf(21000);
l = l.multiply(m);
String feeInGwei = confirmPaymentActivity.mCard.getAmountInGwei(String.valueOf(l));
String feeInGwei = confirmPaymentActivity.getCard().getAmountInGwei(String.valueOf(l));
confirmPaymentActivity.minFee = feeInGwei;
confirmPaymentActivity.maxFee = feeInGwei;
confirmPaymentActivity.normalFee = feeInGwei;
confirmPaymentActivity.etFee.setText(feeInGwei);
confirmPaymentActivity.etFee.setError(null);
confirmPaymentActivity.btnSend.setVisibility(View.VISIBLE);
confirmPaymentActivity.feeRequestSuccess = true;
confirmPaymentActivity.balanceRequestSuccess = true;
confirmPaymentActivity.dtVerifyed = new Date();
confirmPaymentActivity.minFeeInInternalUnits = confirmPaymentActivity.mCard.InternalUnitsFromString(feeInGwei);
confirmPaymentActivity.setMinFee(feeInGwei);
confirmPaymentActivity.setMaxFee(feeInGwei);
confirmPaymentActivity.setNormalFee(feeInGwei);
confirmPaymentActivity.getEtFee().setText(feeInGwei);
confirmPaymentActivity.getEtFee().setError(null);
confirmPaymentActivity.getBtnSend().setVisibility(View.VISIBLE);
confirmPaymentActivity.setFeeRequestSuccess(true);
confirmPaymentActivity.setBalanceRequestSuccess(true);
confirmPaymentActivity.setDtVerified(new Date());
confirmPaymentActivity.setMinFeeInInternalUnits(confirmPaymentActivity.getCard().InternalUnitsFromString(feeInGwei));
} catch (JSONException e) {
e.printStackTrace();
@ -69,4 +68,5 @@ public class ETHRequestTask extends InfuraTask {
}
}
}
}
}