Updated on 2026-08-14

This commit is contained in:
Tangem 2018-07-16 13:03:51 +03:00
commit ab13ff8636
16 changed files with 530 additions and 175 deletions

View file

@ -11,10 +11,10 @@ import com.tangem.wallet.R;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Created by dvol on 16.07.2017.
@ -271,6 +271,7 @@ public class TangemCard {
}
private Boolean codeConfirmed;
public void setCodeConfirmed(Boolean codeConfirmed) {
this.codeConfirmed = codeConfirmed;
}
@ -280,6 +281,7 @@ public class TangemCard {
}
private Boolean onlineVerified;
public void setOnlineVerified(Boolean verified) {
this.onlineVerified = verified;
}
@ -289,6 +291,7 @@ public class TangemCard {
}
private Boolean onlineValidated;
public void setOnlineValidated(Boolean validated) {
this.onlineValidated = validated;
}
@ -297,15 +300,6 @@ public class TangemCard {
return onlineValidated;
}
private boolean balanceRecieved = false;
public boolean isBalanceRecieved() {
return balanceRecieved;
}
public void setBalanceRecieved(boolean balanceRecieved)
{
this.balanceRecieved = balanceRecieved;
}
public int getRemainingSignatures() {
return remainingSignatures;
}
@ -615,7 +609,7 @@ public class TangemCard {
return health == 0;
}
private Issuer issuer = Issuer.Unknown;
private Issuer issuer = Issuer.Unknown();
public void setIssuer(Issuer issuer) {
this.issuer = issuer;
@ -663,8 +657,8 @@ public class TangemCard {
return issuer.getOfficialName();
}
byte[] issuerData;
byte[] issuerDataSignature;
private byte[] issuerData;
private byte[] issuerDataSignature;
public byte[] getIssuerData() {
return issuerData;
@ -676,9 +670,10 @@ public class TangemCard {
public void setIssuerData(byte[] value, byte[] signature) {
issuerData = value;
issuerDataSignature = signature;
}
boolean needWriteIssuerData = false;
private boolean needWriteIssuerData = false;
public boolean getNeedWriteIssuerData() {
return needWriteIssuerData;
@ -862,6 +857,16 @@ public class TangemCard {
return numbers1[0] > numbers2[0] || (numbers1[0] == numbers2[0] && numbers1[1] > numbers2[1]);
}
private String batch;
public void setBatch(String batch) {
this.batch = batch;
}
public String getBatch() {
return batch;
}
private String validationNodeDescription = "";
public String getValidationNodeDescription() {
@ -1187,9 +1192,22 @@ public class TangemCard {
}
private byte[] Denomination;
private String DenominationText;
public void setDenomination(byte[] denomination) {
public void setDenomination(byte[] denomination, String denominationText) {
this.Denomination = denomination;
this.DenominationText=denominationText;
}
public void setDenomination(byte[] denomination)
{
this.Denomination=denomination;
try {
this.DenominationText=CoinEngineFactory.Create(getBlockchain()).ConvertByteArrayToAmount(this, denomination);
} catch (Exception e) {
e.printStackTrace();
this.DenominationText="N/A";
}
}
public byte[] getDenomination() {
@ -1206,8 +1224,17 @@ public class TangemCard {
}
public String getDenominationText() {
return DenominationText;
}
public void setDenominationText(String denominationText) {
DenominationText = denominationText;
}
public void clearDenomination() {
Denomination = null;
DenominationText=null;
}
public void setError(String error) {
@ -1274,9 +1301,10 @@ public class TangemCard {
if (signingMethod != null) B.putString("signingMethod", signingMethod.name());
if (manufacturer != null) B.putString("Manufacturer", manufacturer.name());
if (encryptionMode != null) B.putString("EncryptionMode", encryptionMode.name());
if (issuer != null) B.putString("Issuer", issuer.name());
if (issuer != null) B.putString("Issuer", issuer.getID());
if (firmwareVersion != null) B.putString("FirmwareVersion", firmwareVersion);
if(balanceEqual != null) B.putBoolean("isBalanceEqual", balanceEqual);
if (batch != null) B.putString("Batch", batch);
B.putString("BalanceDecimal", balanceDecimal);
B.putString("BalanceDecimalAlter", balanceDecimalAlter);
B.putBoolean("ManufacturerConfirmed", manufacturerConfirmed);
@ -1346,6 +1374,19 @@ public class TangemCard {
if( onlineValidated!=null )
B.putBoolean("onlineValidated", onlineValidated);
if (codeConfirmed != null)
B.putBoolean("codeConfirmed", codeConfirmed);
if (codeConfirmed != null)
B.putBoolean("codeConfirmed", codeConfirmed);
if (onlineVerified != null)
B.putBoolean("onlineVerified", onlineVerified);
if (onlineValidated != null)
B.putBoolean("onlineValidated", onlineValidated);
}
public void LoadFromBundle(Bundle B) {
@ -1388,6 +1429,7 @@ public class TangemCard {
if(B.containsKey("FailedBalance")) failedBalanceRequestCounter = new AtomicInteger(B.getInt("FailedBalance"));
if (B.containsKey("Issuer")) issuer = Issuer.FindIssuer(B.getString("Issuer"));
if (B.containsKey("FirmwareVersion")) firmwareVersion = B.getString("FirmwareVersion");
if (B.containsKey("Batch")) batch = B.getString("Batch");
if(B.containsKey("isBalanceEqual")) setIsBalanceEqual(B.getBoolean("isBalanceEqual"));
cardPublicKeyValid = B.getBoolean("CardPublicKeyValid");
@ -1406,7 +1448,7 @@ public class TangemCard {
if (B.containsKey("Denomination")) setDenomination(B.getByteArray("Denomination"));
else clearDenomination();
if (B.containsKey("IssuerData"))
if (B.containsKey("IssuerData") && B.containsKey("IssuerDataSignature"))
setIssuerData(B.getByteArray("IssuerData"), B.getByteArray("IssuerDataSignature"));
else setIssuerData(null, null);
@ -1461,26 +1503,47 @@ public class TangemCard {
if (B.containsKey("confirmTx"))
countConfirmTX = new BigInteger(B.getString("confirmTx"), 16);
if( B.containsKey("codeConfirmed") )
codeConfirmed=B.getBoolean("codeConfirmed");
if (B.containsKey("codeConfirmed"))
codeConfirmed = B.getBoolean("codeConfirmed");
if( B.containsKey("onlineVerified") )
onlineVerified=B.getBoolean("onlineVerified");
if (B.containsKey("onlineVerified"))
onlineVerified = B.getBoolean("onlineVerified");
if( B.containsKey("onlineValidated") )
onlineValidated=B.getBoolean("onlineValidated");
if (B.containsKey("onlineValidated"))
onlineValidated = B.getBoolean("onlineValidated");
}
private final static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
if (bytes == null) return "";
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
public int getCardImageResource() {
switch (getBlockchainID()) {
case "BTC":
return R.drawable.card_btc001;
if (bytesToHex(getDenomination()).equals("40420F0000000000"))
return R.drawable.card_btc001;
else if (bytesToHex(getDenomination()).equals("404B4C0000000000"))
return R.drawable.card_btc005;
else
return R.drawable.card_default;
case "ETH\\XTZ":
return R.drawable.card_seed;
case "Token":
if (getTokenSymbol().equals("SEED"))
return R.drawable.card_seed;
else
return R.drawable.card_default;
default:
return R.drawable.card_btc001;
return R.drawable.card_default;
}
}