Updated on 2026-08-14

This commit is contained in:
Tangem 2019-04-03 11:14:39 +03:00
parent 524fa3ba2b
commit 9be5894c1a
3 changed files with 19 additions and 199 deletions

View file

@ -1,173 +0,0 @@
package com.tangem.domain.wallet;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import com.tangem.Constant;
import com.tangem.card_android.data.TangemCardExtensionsKt;
import com.tangem.card_common.data.TangemCard;
import com.tangem.data.Blockchain;
public class TangemContext {
// public static final String EXTRA_BLOCKCHAIN_DATA = "BLOCKCHAIN_DATA";
private Context context;
private TangemCard card;
private CoinData coinData;
private String error;
private String message;
public TangemContext() {
}
public TangemContext(TangemCard card) {
this.card = card;
}
public Blockchain getBlockchain() {
if (card == null) return Blockchain.Unknown;
Blockchain blockchain = Blockchain.fromId(card.getBlockchainID());
if ((blockchain == Blockchain.Ethereum || blockchain == Blockchain.EthereumTestNet) && card.isToken()) {
if (card.getTokenSymbol().startsWith("NFT:")) {
return Blockchain.NftToken;
} else {
return Blockchain.Token;
}
}
if ((blockchain == Blockchain.Rootstock) && card.isToken()) {
return Blockchain.RootstockToken;
}
return blockchain;
}
// public void setBlockchain(Blockchain blockchain) {
// if (card == null) return;
// card.setBlockchainID(blockchain.getID());
// }
// private String blockchainName = "";
public String getBlockchainName() {
Blockchain blockchain = getBlockchain();
if (blockchain == Blockchain.Token || blockchain == Blockchain.RootstockToken) {
String token = card.getTokenSymbol();
return token + " <br><small><small> " + getBlockchain().getOfficialName() + " smart contract token</small></small>";
}
if (blockchain == Blockchain.NftToken) {
return card.getTokenSymbol().substring(4) + " <br><small><small> " + getBlockchain().getOfficialName() + " NFT token</small></small>";
}
return blockchain.getOfficialName();
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
}
public TangemCard getCard() {
return card;
}
public void setCard(TangemCard card) {
this.card = card;
}
public CoinData getCoinData() {
return coinData;
}
public void setCoinData(CoinData coinData) {
this.coinData = coinData;
}
public void setError(String error) {
this.error = error;
}
public void setError(int valueId) {
this.error = getString(valueId);
}
public String getError() {
return error;
}
public boolean hasError() {
return error != null && !error.isEmpty();
}
public void setMessage(String value) {
this.message = value;
}
public void setMessage(int valueId) {
this.message = getString(valueId);
}
public String getMessage() {
return message;
}
public static TangemContext loadFromBundle(Context context, Bundle bundle) {
TangemContext tangemContext = new TangemContext();
tangemContext.setContext(context);
// if (bundle.containsKey(TangemCardExtensionsKt.EXTRA_TANGEM_CARD_UID)) {
// tangemContext.card = new TangemCard(bundle.getString(TangemCardExtensionsKt.EXTRA_TANGEM_CARD_UID));
// TangemCardExtensionsKt.loadFromBundle(tangemContext.card, bundle.getBundle(TangemCardExtensionsKt.EXTRA_TANGEM_CARD));
// }
tangemContext.coinData = CoinEngineFactory.INSTANCE.createCardano(tangemContext).createCoinData();
// if (tangemContext.getBlockchain() != null) {
// if (bundle.containsKey(Constant.EXTRA_BLOCKCHAIN_DATA)) {
// tangemContext.coinData = CoinData.fromBundle(tangemContext.getBlockchain(), bundle.getBundle(Constant.EXTRA_BLOCKCHAIN_DATA));
// } else {
// tangemContext.coinData = CoinEngineFactory.INSTANCE.create(tangemContext).createCoinData();
// }
// }
// tangemContext.error = bundle.getString("Error");
// tangemContext.message = bundle.getString("Message");
return tangemContext;
}
public void saveToIntent(Intent intent) {
if (card != null) {
intent.putExtra(TangemCardExtensionsKt.EXTRA_TANGEM_CARD_UID, card.getUID());
intent.putExtra(TangemCardExtensionsKt.EXTRA_TANGEM_CARD, TangemCardExtensionsKt.getAsBundle(card));
}
if (coinData != null) {
intent.putExtra(Constant.EXTRA_BLOCKCHAIN_DATA, coinData.asBundle());
}
intent.putExtra("Error", error);
intent.putExtra("Message", message);
}
public String getString(int stringId) {
if (context != null) return getContext().getResources().getString(stringId);
return "context.resources.string[" + stringId + "]";
}
public void setDenomination(byte[] denomination) {
try {
CoinEngine engine = CoinEngineFactory.INSTANCE.create(getBlockchain());
CoinEngine.InternalAmount internalAmount = engine.convertToInternalAmount(denomination);
CoinEngine.Amount amount = engine.convertToAmount(internalAmount);
card.setDenomination(denomination, amount.toString());
} catch (Exception e) {
e.printStackTrace();
card.setDenomination(denomination, "N/A");
}
}
}

View file

@ -38,12 +38,6 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
ctx.saveToIntent(intent)
return intent
}
fun callingIntent(context: Context): Intent {
val intent = Intent(context, PrepareTransactionActivity::class.java)
// ctx.saveToIntent(intent)
return intent
}
}
@Inject
@ -64,28 +58,28 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
// ctx = TangemContext.loadFromBundle(this, intent.extras)
// tvCardID.text = ctx.card?.cidDescription
val engine = CoinEngineFactory.create(TangemContext())
val engine = CoinEngineFactory.createCardano(TangemContext())
// @Suppress("DEPRECATION") val html = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
// Html.fromHtml(engine?.balanceHTML, Html.FROM_HTML_MODE_LEGACY)
// else
// Html.fromHtml(engine?.balanceHTML)
// tvBalance.text = html
@Suppress("DEPRECATION") val html = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
Html.fromHtml(engine?.balanceHTML, Html.FROM_HTML_MODE_LEGACY)
else
Html.fromHtml(engine?.balanceHTML)
tvBalance.text = html
// if (!engine.allowSelectFeeInclusion()) {
// rgIncFee.visibility = View.INVISIBLE
// } else {
// rgIncFee.visibility = View.VISIBLE
// }
if (!engine!!.allowSelectFeeInclusion()) {
rgIncFee.visibility = View.INVISIBLE
} else {
rgIncFee.visibility = View.VISIBLE
}
// if (ctx.card!!.remainingSignatures < 2)
// etAmount.isEnabled = false
tvCurrency.text = engine?.balance?.currency
etAmount.setText(engine?.balance?.toValueString())
tvCurrency.text = engine.balance?.currency
etAmount.setText(engine.balance?.toValueString())
// limit number of symbols after comma
// etAmount.filters = engine?.amountInputFilters
etAmount.filters = engine.amountInputFilters
etWallet.setText(PrefsManager.getInstance().lastWalletAddress)
@ -107,16 +101,15 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
return@setOnClickListener
}
// val engine1 = CoinEngineFactory.create(ctx)
val engine1 = CoinEngineFactory.create(TangemContext())
val engine1 = CoinEngineFactory.createCardano(TangemContext())
val strAmount: String = etAmount.text.toString().replace(",", ".")
val amount = engine1!!.convertToAmount(etAmount.text.toString(), tvCurrency.text.toString())
try {
// if (!engine.checkNewTransactionAmount(amount))
// etAmount.error = getString(R.string.not_enough_funds_on_your_card)
// else
// etAmount.error = null
if (!engine.checkNewTransactionAmount(amount))
etAmount.error = getString(R.string.not_enough_funds_on_your_card)
else
etAmount.error = null
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
}