Updated on 2026-08-14

This commit is contained in:
Tangem 2019-04-08 15:05:55 +03:00
parent 092eb2dd68
commit 250ceba99f
78 changed files with 229 additions and 247 deletions

View file

@ -0,0 +1,194 @@
package com.tangem.wallet;
import android.os.Bundle;
import android.util.Log;
import com.tangem.data.Blockchain;
public abstract class CoinData {
public CoinData() {
}
private String wallet;
public void setWallet(String wallet) {
this.wallet = wallet;
}
public String getWallet() {
return wallet;
}
public String getShortWalletString() {
if (wallet.length() < 22) {
return wallet;
} else {
return wallet.substring(0, 10) + "......" + wallet.substring(wallet.length() - 10, wallet.length());
}
}
public boolean isBalanceReceived() {
return balanceReceived;
}
private boolean balanceReceived = false;
public void setBalanceReceived(boolean value) {
balanceReceived = value;
}
public void loadFromBundle(Bundle B) {
wallet = B.getString("Wallet");
if (B.containsKey("balanceReceived")) setBalanceReceived(B.getBoolean("balanceReceived"));
validationNodeDescription = B.getString("validationNodeDescription");
// if (B.containsKey("FailedBalance"))
// failedBalanceRequestCounter = new AtomicInteger(B.getInt("FailedBalance"));
if (B.containsKey("isBalanceEqual")) setIsBalanceEqual(B.getBoolean("isBalanceEqual"));
if (B.containsKey("rate"))
rate = B.getFloat("rate");
if (B.containsKey("rateAlter"))
rateAlter = B.getFloat("rateAlter");
}
public void saveToBundle(Bundle B) {
try {
B.putString("Wallet", wallet);
if (balanceEqual != null) B.putBoolean("isBalanceEqual", balanceEqual);
// if (failedBalanceRequestCounter != null)
// B.putInt("FailedBalance", failedBalanceRequestCounter.get());
B.putFloat("rate", rate);
B.putFloat("rateAlter", rateAlter);
B.putBoolean("balanceReceived", balanceReceived);
B.putString("validationNodeDescription", validationNodeDescription);
} catch (Exception e) {
Log.e("Can't save to bundle ", e.getMessage());
}
}
public Bundle asBundle() {
Bundle bundle = new Bundle();
saveToBundle(bundle);
return bundle;
}
public static CoinData fromBundle(Blockchain blockchain, Bundle bundle) {
CoinEngine engine= CoinEngineFactory.INSTANCE.create(blockchain);
if( engine==null ) return null;
CoinData result = engine.createCoinData();
result.loadFromBundle(bundle);
return result;
}
//TODO - move all to special engines
private float rate = 0;
private float rateAlter = 0;
public float getRate() {
return rate;
}
public float getRateAlter() {
return rateAlter;
}
public void setRate(float rate) {
this.rate = rate;
}
public void setRateAlter(float rate) {
this.rateAlter = rate;
}
// public Double amountFromInternalUnits(Long internalAmount) {
// // TODO java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
// return ((double) internalAmount) /
// getBlockchain().getMultiplier();
// }
//
// public Double amountFromInternalUnits(Integer internalAmount) {
// return ((double) internalAmount) / getBlockchain().getMultiplier();
// }
//
// // TODO разобраться с балансами, привести к единому интерфейсу
// public Long internalUnitsFromString(String caption) {
// try {
// return FormatUtil.ConvertStringToLong(caption);
// } catch (Exception e) {
// return null;
// }
// }
//
// public String getAmountDescription(Double amount) {
// String output = FormatUtil.DoubleToString(amount);
// return output + " " + getBlockchain().getCurrency();
// }
public boolean getAmountEquivalentDescriptionAvailable() {
return rate > 0;
}
public void clearInfo() {
setIsBalanceEqual(false);
setBalanceReceived(false);
setValidationNodeDescription("");
minFee=null;
maxFee=null;
normalFee=null;
rate=0f;
rateAlter=0f;
}
// private AtomicInteger failedBalanceRequestCounter;
//
// public int incFailedBalanceRequestCounter() {
// if (failedBalanceRequestCounter == null)
// failedBalanceRequestCounter = new AtomicInteger(0);
// return failedBalanceRequestCounter.incrementAndGet();
// }
//
// public void resetFailedBalanceRequestCounter() {
// failedBalanceRequestCounter = new AtomicInteger(0);
// }
//
// public int getFailedBalanceRequestCounter() {
// if (failedBalanceRequestCounter == null)
// return 0;
// return failedBalanceRequestCounter.get();
// }
private Boolean balanceEqual;
public Boolean isBalanceEqual() {
return balanceEqual;
}
public void setIsBalanceEqual(boolean isEqual) {
balanceEqual = isEqual;
}
private String validationNodeDescription = "";
public String getValidationNodeDescription() {
return validationNodeDescription;
}
public void setValidationNodeDescription(String validationNodeDescription) {
this.validationNodeDescription = validationNodeDescription;
}
public CoinEngine.Amount minFee = null;
public CoinEngine.Amount normalFee = null;
public CoinEngine.Amount maxFee = null;
}