diff --git a/app/src/main/java/com/tangem/data/Blockchain.java b/app/src/main/java/com/tangem/data/Blockchain.java
index 3224ae7da0..b2771a6bb2 100644
--- a/app/src/main/java/com/tangem/data/Blockchain.java
+++ b/app/src/main/java/com/tangem/data/Blockchain.java
@@ -105,4 +105,25 @@ public enum Blockchain {
return getImageResource();
}
+ public String getUriScheme() {
+ String scheme = null;
+ switch (this) {
+ case Bitcoin:
+ case BitcoinDual:
+ scheme = "bitcoin";
+ break;
+ case Ethereum:
+ case Token:
+ case TokenEmv:
+ scheme = "ethereum";
+ break;
+ case Litecoin:
+ scheme = "litecoin";
+ break;
+ case Ripple:
+ scheme = "ripple";
+ }
+ return scheme;
+ }
+
}
diff --git a/app/src/main/java/com/tangem/wallet/CoinEngine.java b/app/src/main/java/com/tangem/wallet/CoinEngine.java
index 5fce47c602..edf38cad4c 100644
--- a/app/src/main/java/com/tangem/wallet/CoinEngine.java
+++ b/app/src/main/java/com/tangem/wallet/CoinEngine.java
@@ -197,10 +197,11 @@ public abstract class CoinEngine {
public abstract Uri getShareWalletUri();
public Uri getShareWalletUriEx(){
- if (ctx.getBlockchain() == Blockchain.BitcoinCash)
- return getShareWalletUri();
+ String scheme = ctx.getBlockchain().getUriScheme();
+ if (scheme != null)
+ return Uri.parse(scheme + ":" + getShareWalletUri());
else
- return Uri.parse(ctx.getBlockchain().name().toLowerCase() + ":" + getShareWalletUri().toString());
+ return getShareWalletUri();
}
public abstract boolean checkNewTransactionAmount(Amount amount);
diff --git a/app/src/main/java/com/tangem/wallet/TangemContext.java b/app/src/main/java/com/tangem/wallet/TangemContext.java
index 09674de601..9d3c4d5194 100644
--- a/app/src/main/java/com/tangem/wallet/TangemContext.java
+++ b/app/src/main/java/com/tangem/wallet/TangemContext.java
@@ -68,7 +68,7 @@ public class TangemContext {
if (blockchain == Blockchain.NftToken) {
return card.getTokenSymbol().substring(4) + "
" + getBlockchain().getOfficialName() + " non-fungible token";
}
- if (blockchain == Blockchain.StellarAsset) {
+ if (blockchain == Blockchain.StellarAsset || blockchain == Blockchain.BinanceAsset) {
return card.getTokenSymbol() + "
" + getBlockchain().getOfficialName() + " asset";
}
if (blockchain == Blockchain.StellarTag) {
diff --git a/app/src/main/java/com/tangem/wallet/binance/BinanceAssetEngine.java b/app/src/main/java/com/tangem/wallet/binance/BinanceAssetEngine.java
index d622431ffa..9e336690a3 100644
--- a/app/src/main/java/com/tangem/wallet/binance/BinanceAssetEngine.java
+++ b/app/src/main/java/com/tangem/wallet/binance/BinanceAssetEngine.java
@@ -95,7 +95,7 @@ public class BinanceAssetEngine extends CoinEngine {
if (assetBalance != null) {
return assetBalance.toDescriptionString(getDecimals()) + "
+ " + balance.toDescriptionString(getDecimals()) + " for fee";
}
- return balance.toDescriptionString(getDecimals());
+ return new Amount(BigDecimal.ZERO, ctx.getCard().tokenSymbol).toDescriptionString(getDecimals()) + "
+ " + balance.toDescriptionString(getDecimals()) + " for fee";
} else {
return "";
}
@@ -135,6 +135,8 @@ public class BinanceAssetEngine extends CoinEngine {
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.loaded_wallet_message_wait);
+ } else if (coinData.getBalance() == null || coinData.getBalance().isZero()) {
+ ctx.setMessage(ctx.getString(R.string.confirm_transaction_error_not_enough_eth_for_fee));
} else {
return true;
}
diff --git a/app/src/tangemAccess/java/com/tangem/ui/PrepareTransactionFragment.kt b/app/src/tangemAccess/java/com/tangem/ui/PrepareTransactionFragment.kt
index 48a385a3d8..1b5fa7d2c7 100644
--- a/app/src/tangemAccess/java/com/tangem/ui/PrepareTransactionFragment.kt
+++ b/app/src/tangemAccess/java/com/tangem/ui/PrepareTransactionFragment.kt
@@ -154,17 +154,8 @@ class PrepareTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
val schemeSplit = code!!.split(":")
when (schemeSplit.size) {
2 -> {
- if (ctx.blockchain.officialName.toLowerCase(Locale.ROOT).replace("\\s", "") == schemeSplit[0]) {
- val uri = Uri.parse(schemeSplit[1])
- etWallet?.setText(uri.path)
-// val amount = uri.getQueryParameter("amount") //TODO: enable after redesign
-// if (amount != null) {
-// etAmount?.setText(amount)
-// rgIncFee.check(R.id.rbFeeOut)
-// }
- } else if (ctx.blockchain == Blockchain.Ripple && schemeSplit[0] == "ripple") {
- val uri = Uri.parse(schemeSplit[1])
- etWallet?.setText(uri.path)
+ if (schemeSplit[0] == ctx.blockchain.uriScheme) {
+ etWallet?.setText(schemeSplit[1])
} else {
etWallet?.setText(code)
}