Updated on 2026-08-14

This commit is contained in:
Tangem 2019-12-18 12:39:02 +03:00
parent b3b5ee7f9a
commit 9e067e324d
9 changed files with 66 additions and 23 deletions

View file

@ -24,6 +24,7 @@ import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.Unspents;
import org.json.JSONArray;
import org.json.JSONException;
@ -424,7 +425,15 @@ public class BtcCashEngine extends CoinEngine {
@Override
public String getUnspentInputsDescription() {
return coinData.getUnspentInputsDescription();
Unspents unspents = coinData.getUnspentInputsDescription();
if (unspents == null) {
return "";
} else {
return String.format(
ctx.getContext().getString(R.string.details_unspents_number),
unspents.getUnspetns(),
unspents.getGatheredUnspents());
}
}
@Override

View file

@ -22,18 +22,19 @@ public class BtcData extends CoinData {
//for blockchain.info
private boolean hasUnconfirmed = false;
public String getUnspentInputsDescription() {
public Unspents getUnspentInputsDescription() {
try {
int gatheredUnspents = 0;
if (unspentTransactions == null) return "";
if (unspentTransactions == null) return null;
for (int i = 0; i < unspentTransactions.size(); i++) {
if (unspentTransactions.get(i).script != null && unspentTransactions.get(i).script.length() > 1)
gatheredUnspents++;
}
return unspentTransactions.size() + " unspents (" + gatheredUnspents + " received)";
return new Unspents(unspentTransactions.size(), gatheredUnspents);
} catch (Exception e) {
e.printStackTrace();
return "";
return null;
}
}

View file

@ -437,7 +437,15 @@ public class BtcEngine extends CoinEngine {
@Override
public String getUnspentInputsDescription() {
return coinData.getUnspentInputsDescription();
Unspents unspents = coinData.getUnspentInputsDescription();
if (unspents == null) {
return "";
} else {
return String.format(
ctx.getContext().getString(R.string.details_unspents_number),
unspents.getUnspetns(),
unspents.getGatheredUnspents());
}
}
@Override

View file

@ -0,0 +1,3 @@
package com.tangem.wallet.btc
data class Unspents(val unspetns: Int, val gatheredUnspents: Int)

View file

@ -25,6 +25,7 @@ import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.BtcEngine;
import com.tangem.wallet.btc.Unspents;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
@ -377,7 +378,15 @@ public class DucatusEngine extends BtcEngine {
@Override
public String getUnspentInputsDescription() {
return coinData.getUnspentInputsDescription();
Unspents unspents = coinData.getUnspentInputsDescription();
if (unspents == null) {
return "";
} else {
return String.format(
ctx.getContext().getString(R.string.details_unspents_number),
unspents.getUnspetns(),
unspents.getGatheredUnspents());
}
}
@Override

View file

@ -31,6 +31,7 @@ import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.BtcEngine;
import com.tangem.wallet.btc.Unspents;
import org.json.JSONException;
@ -389,7 +390,15 @@ public class LtcEngine extends BtcEngine {
@Override
public String getUnspentInputsDescription() {
return coinData.getUnspentInputsDescription();
Unspents unspents = coinData.getUnspentInputsDescription();
if (unspents == null) {
return "";
} else {
return String.format(
ctx.getContext().getString(R.string.details_unspents_number),
unspents.getUnspetns(),
unspents.getGatheredUnspents());
}
}
@Override

View file

@ -198,7 +198,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="The card is linked"
android:text="@string/details_linked_card_title"
android:textSize="@dimen/text_size_1_small" />
<TextView

View file

@ -9,9 +9,9 @@
<string name="general_continue">Continuer</string>
<string name="error_empty_pin">Le code PIN est vide</string>
<string name="general_blockchain">Blockchain</string>
<string name="general_notification_scan_again">Réessayez de numériser</string>
<string name="general_notification_scan_again">Réessayez de scanner la carte</string>
<string name="general_error_cannot_erase_wallet_with_non_zero_balance">Impossible d\'effacer le porte-monnaie avec un solde différent de zéro</string>
<string name="general_send_transaction">Envoyer le paiement</string>
<string name="general_send_transaction">Transférer les fonds</string>
<string name="general_from_card">Depuis la carte</string>
<string name="general_on_card">sur la carte</string>
<string name="general_balance">avec solde</string>
@ -49,9 +49,9 @@
<string name="dialog_the_nfc_adapter_length_apdu">Oups .. Il semble que votre smartphone ne supporte pas de tels paquets NFC.</string>
<string name="dialog_the_nfc_adapter_length_apdu_advice">Essayez d\'envoyer une quantité inférieure ou utilisez un smartphone avec prise en charge complète de NFC.</string>
<string name="dialog_title_money_is_at_risk">Votre argent est en jeu!</string>
<string name="dialog_this_card_has_enforced_security_delay">Cette carte a imposé un délai de sécurité</string>
<string name="dialog_hold_card">Veuillez tenir la carte fermement \ n jusqu\'à ce que l\'opération soit terminée…</string>
<string name="dialog_you_may_be_required_to_repeat">Vous devrez peut-être répéter cette opération plusieurs fois en fonction des performances NFC de votre smartphone. \ n Ceci est fait pour sécuriser vos fonds.</string>
<string name="dialog_this_card_has_enforced_security_delay">Cette carte impose un délai de sécurité pour confirmer le transfert des fonds</string>
<string name="dialog_hold_card">Veuillez maintenir la carte dans cette position jusqu\'à ce que l\'opération soit terminée…</string>
<string name="dialog_you_may_be_required_to_repeat">Vous devrez peut-être répéter cette opération plusieurs fois en fonction des performances NFC de votre smartphone.\nCeci est fait pour sécuriser vos fonds.</string>
<!-- menu main -->
<string name="main_menu_manage_pin_1">Gérer le code PIN de l\'utilisateur…</string>
@ -74,12 +74,14 @@
<!-- Main -->
<string name="main_screen_tap_card">Mettez en contact la carte avec votre smartphone</string>
<string name="main_screen_scan_card">Scanner une carte avec votre \n %1$s \n comme indiqué ci-dessus</string>
<string name="main_screen_scan_card">Scanner votre carte avec votre %1$s comme indiqué ci-dessus</string>
<string name="main_screen_phone">phone</string>
<string name="main_screen_erased_wallet">Le porte-monnaie a été effacé</string>
<string name="main_screen_not_personalized">Non personnalisé</string>
<string name="main_screen_new_version_toast">Il existe une nouvelle version de l\'application: %1$s</string>
<string name="main_screen_btn_update">Mettre à jour</string>
<string name="main_screen_visit_store">Vous navez pas de carte?\nVisitez notre boutique sur %1$s</string>
<!-- LoadedWallet -->
<string name="loaded_wallet_no_compatible_wallet">Aucun porte-monnaie compatible installé</string>
@ -146,10 +148,10 @@
<string name="balance_validator_second_line_authenticity_not_verified">L\'authenticité ne peut pas être vérifiée. Balayez vers le bas pour actualiser.</string>
    
<!-- CreateNewWallet, Purge, SignTransaction -->
<string name="now_touch_the_card_with_id"> Maintenant, touchez la carte avec l\'ID </string>
<string name="now_touch_the_card_with_id">Maintenir la carte avec l\ID</string>
<string name="to_create_the_wallet">pour créer le porte-monnaie </string>
<string name="to_erase_the_wallet">pour effacer le porte-monnaie</string>
<string name="to_sign_the_transaction">pour signer le paiement</string>
<string name="to_sign_the_transaction">pour confirmer le transfert des fonds</string>
<string name="to_change_pin_codes">pour changer les codes PIN / PIN2</string>
<string name="nfc_purge_warning">En mettant la carte en contact avec votre smartphone, vous retirerez définitivement le porte-monnaie de la blockchain. Assurez-vous qu\'il n\'y aura pas d\'autres transactions entrantes</string>
<string name="nfc_error_cannot_erase_wallet">Impossible d\'effacer le porte-monnaie. Veillez à entrer le code PIN2 correct!</string>
@ -178,7 +180,7 @@
<!-- PrepareTransaction -->
<string name="prepare_transaction_hint_enter_address">entrez l\'adresse du porte-monnaie</string>
<string name="prepare_transaction_hint_enter_amount">entrer le montant</string>
<string name="prepare_transaction_btn_verify">Vérifiez</string>
<string name="prepare_transaction_btn_verify">Vérifier</string>
<string name="prepare_transaction_error_not_enough_funds">Pas assez de fonds</string>
<string name="prepare_transaction_error_unknown_amount_format">Format de montant inconnu</string>
<string name="prepare_transaction_error_incorrect_destination">Adresse du porte-monnaie de destination incorrecte</string>
@ -223,12 +225,12 @@
<string name="details_category_manufacturer">Fabricant</string>
<string name="details_category_wallet">Porte-monnaie</string>
<string name="details_card_identity">Identité de la carte</string>
<string name="details_attested">Attested</string>
<string name="details_attested">Attestée</string>
<string name="details_not_confirmed">Non confirmé</string>
<string name="details_reusable">Réutilisable</string>
<string name="details_none">None</string>
<string name="details_last_one">Le dernier!</string>
<string name="details_unlimited">Unlimited</string>
<string name="details_unlimited">illimitées</string>
<string name="details_one_off_card">Carte ponctuelle</string>
<string name="details_firmware">Micrologiciel</string>
<string name="details_registration_date">Date d\'enregistrement</string>
@ -238,7 +240,7 @@
<string name="details_category_issuer">Émetteur</string>
<string name="details_private_key">Clé privée</string>
<string name="details_validation_node">Noeud de validation</string>
<string name="details_unspents">Unspents</string>
<string name="details_unspents">Transferts</string>
<string name="details_protected_by_default_pin_1">Cette carte est protégée par le code PIN1 par défaut</string>
<string name="details_protected_by_user_pin_1">Cette carte est protégée par le code PIN1 de lutilisateur</string>
<string name="details_protected_by_default_pin_2">Cette carte est protégée par le code PIN2 par défaut</string>
@ -255,8 +257,9 @@
<string name="details_blockable">Bloquable\n</string>
<string name="details_atomic_commmands">Mode de commande atomique\n</string>
<string name="details_linking_card_supported">La liaison au terminal est prise en charge\n</string>
<string name="details_linked_card_title">La carte est liée</string>
<string name="details_linked_card_title">La carte est associée</string>
<string name="details_linked_card_to_phone">à ce téléphone</string>
<string name="details_unspents_number">%1$d envoyé(s), %2$d reçu(s)</string>
<!-- PinSave -->
<string name="pin_save_btn_save">Enregistrer</string>

View file

@ -82,7 +82,7 @@
<string name="main_screen_new_version_toast">There is a new application version: %1$s</string>
<string name="main_screen_btn_update">Update</string>
<string name="main_screen_visit_store">Don\'t have a card?\n Visit our store at %1$s</string>
<string name="main_screen_store_address">tangemcards.com</string>
<string name="main_screen_store_address" translatable="false">tangemcards.com</string>
<!-- LoadedWallet -->
<string name="loaded_wallet_no_compatible_wallet">No compatible wallets installed</string>
@ -262,6 +262,7 @@
<string name="details_linking_card_supported">Linking to the terminal is supported\n</string>
<string name="details_linked_card_title">The card is linked</string>
<string name="details_linked_card_to_phone">To this phone</string>
<string name="details_unspents_number">%1$d unspents (%2$d received)</string>
<!-- PinSave -->
<string name="pin_save_btn_save">Save</string>