Updated on 2026-08-14

This commit is contained in:
Tangem 2018-06-26 14:34:24 +03:00
parent 4339490ef1
commit f773ca2b80
8 changed files with 163 additions and 168 deletions

View file

@ -60,24 +60,24 @@ public class BtcEngine extends CoinEngine {
}
// public static String[] GetBitcoinTestNetServiceHosts() {
// return new String[]{/*"testnetnode.arihanc.com"*/BitcoinTestNetNode.hsmiths_com.getHost(), BitcoinTestNetNode.qtornado_com.getHost(), BitcoinTestNetNode.bauerj_eu.getHost()};
// }
//
// public static Integer[] GetBitcoinTestNetServicePorts() {
// return new Integer[]{/*51001*/BitcoinTestNetNode.hsmiths_com.getPort(), BitcoinTestNetNode.qtornado_com.getPort(), BitcoinTestNetNode.bauerj_eu.getPort()};
// }
public static String[] GetBitcoinTestNetServiceHosts() {
return new String[]{BitcoinTestNetNode.bauerj_eu.getHost()};
return new String[]{/*"testnetnode.arihanc.com"*/BitcoinTestNetNode.hsmiths_com.getHost(), BitcoinTestNetNode.qtornado_com.getHost(), BitcoinTestNetNode.bauerj_eu.getHost()};
}
public static Integer[] GetBitcoinTestNetServicePorts() {
return new Integer[]{BitcoinTestNetNode.bauerj_eu.getPort()};
return new Integer[]{/*51001*/BitcoinTestNetNode.hsmiths_com.getPort(), BitcoinTestNetNode.qtornado_com.getPort(), BitcoinTestNetNode.bauerj_eu.getPort()};
}
// public static String[] GetBitcoinTestNetServiceHosts() {
// return new String[]{BitcoinTestNetNode.bauerj_eu.getHost()};
// }
//
// public static Integer[] GetBitcoinTestNetServicePorts() {
// return new Integer[]{BitcoinTestNetNode.bauerj_eu.getPort()};
// }
// public static String[] GetBitcoinTestNetServiceHosts() {
// return new String[]{"electrum.akinbo.org"/*, "testnet.hsmiths.com", "testnet.qtornado.com", "testnet1.bauerj.eu"*/};

View file

@ -61,8 +61,8 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
private boolean feeRequestSuccess = false;
private boolean balanceRequestSuccess = false;
private EditText etWallet;
private TextView tvAmountEquivalent;
private TextView tvFeeEquivalent;
// private TextView tvAmountEquivalent;
// private TextView tvFeeEquivalent;
private EditText etAmount;
private EditText etFee;
private ImageView ivCamera;
@ -353,9 +353,9 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
TextView tvCurrency2 = findViewById(R.id.tvCurrency2);
etAmount = findViewById(R.id.etAmount);
etFee = findViewById(R.id.etFee);
TextView tvBalanceEquivalent = findViewById(R.id.tvBalanceEquivalent);
tvAmountEquivalent = findViewById(R.id.tvAmountEquivalent);
tvFeeEquivalent = findViewById(R.id.tvFeeEquivalent);
// TextView tvBalanceEquivalent = findViewById(R.id.tvBalanceEquivalent);
// tvAmountEquivalent = findViewById(R.id.tvAmountEquivalent);
// tvFeeEquivalent = findViewById(R.id.tvFeeEquivalent);
ivCamera = findViewById(R.id.ivCamera);
rgFee = findViewById(R.id.rgFee);
@ -369,19 +369,19 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
tvAmountEquivalent.setText(engine.GetAmountEqualentDescriptor(mCard, etAmount.getText().toString()));
if (!mCard.getAmountEquivalentDescriptionAvailable()) {
tvAmountEquivalent.setError("Service unavailable");
} else {
tvAmountEquivalent.setError(null);
}
} catch (Exception e) {
e.printStackTrace();
tvAmountEquivalent.setText("");
}
// try {
//
// CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
// tvAmountEquivalent.setText(engine.GetAmountEqualentDescriptor(mCard, etAmount.getText().toString()));
// if (!mCard.getAmountEquivalentDescriptionAvailable()) {
// tvAmountEquivalent.setError("Service unavailable");
// } else {
// tvAmountEquivalent.setError(null);
// }
// } catch (Exception e) {
// e.printStackTrace();
// tvAmountEquivalent.setText("");
// }
}
@Override
@ -398,21 +398,21 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
String eqFee = engine.EvaluteFeeEquivalent(mCard, etFee.getText().toString());
tvFeeEquivalent.setText(eqFee);
if (!mCard.getAmountEquivalentDescriptionAvailable()) {
tvFeeEquivalent.setError("Service unavailable");
} else {
tvFeeEquivalent.setError(null);
}
} catch (Exception e) {
e.printStackTrace();
tvFeeEquivalent.setText("");
}
// try {
//
// CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
// String eqFee = engine.EvaluteFeeEquivalent(mCard, etFee.getText().toString());
// tvFeeEquivalent.setText(eqFee);
//
// if (!mCard.getAmountEquivalentDescriptionAvailable()) {
// tvFeeEquivalent.setError("Service unavailable");
// } else {
// tvFeeEquivalent.setError(null);
// }
// } catch (Exception e) {
// e.printStackTrace();
// tvFeeEquivalent.setText("");
// }
}
@Override
@ -436,12 +436,12 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
tvCardID.setText(mCard.getCIDDescription());
//tvBalanceEquivalent.setText(mCard.getBalanceEquivalentDescription());
tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(mCard));
if (!mCard.getAmountEquivalentDescriptionAvailable()) {
tvBalanceEquivalent.setError("Service unavailable");
} else {
tvBalanceEquivalent.setError(null);
}
// tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(mCard));
// if (!mCard.getAmountEquivalentDescriptionAvailable()) {
// tvBalanceEquivalent.setError("Service unavailable");
// } else {
// tvBalanceEquivalent.setError(null);
// }
etWallet.setText(getIntent().getStringExtra("Wallet"));

View file

@ -34,7 +34,7 @@ public class PreparePaymentActivity extends AppCompatActivity implements NfcAdap
private static final int REQUEST_CODE_SEND_PAYMENT = 2;
private EditText etWallet;
private EditText etAmount;
private TextView tvAmountEquivalent;
// private TextView tvAmountEquivalent;
boolean use_mCurrency;
private TangemCard mCard;
private NfcManager mNfcManager;
@ -59,8 +59,8 @@ public class PreparePaymentActivity extends AppCompatActivity implements NfcAdap
TextView tvCurrency = findViewById(R.id.tvCurrency);
TextView tvCardId = findViewById(R.id.tvCardID);
TextView tvBalance = findViewById(R.id.tvBalance);
TextView tvBalanceEquivalent = findViewById(R.id.tvBalanceEquivalent);
tvAmountEquivalent = findViewById(R.id.tvAmountEquivalent);
// TextView tvBalanceEquivalent = findViewById(R.id.tvBalanceEquivalent);
// tvAmountEquivalent = findViewById(R.id.tvAmountEquivalent);
tvCardId.setText(mCard.getCIDDescription());
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
@ -72,17 +72,17 @@ public class PreparePaymentActivity extends AppCompatActivity implements NfcAdap
tvBalance.setText(engine.GetBalanceWithAlter(mCard));
}
tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(mCard));
// tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(mCard));
if (etAmount != null && mCard.getRemainingSignatures() < 2) {
etAmount.setEnabled(false);
}
if (!mCard.getAmountEquivalentDescriptionAvailable()) {
tvBalanceEquivalent.setError("Service unavailable");
} else {
tvBalanceEquivalent.setError(null);
}
// if (!mCard.getAmountEquivalentDescriptionAvailable()) {
// tvBalanceEquivalent.setError("Service unavailable");
// } else {
// tvBalanceEquivalent.setError(null);
// }
etAmount.addTextChangedListener(new TextWatcher() {
@Override
@ -92,18 +92,18 @@ public class PreparePaymentActivity extends AppCompatActivity implements NfcAdap
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
tvAmountEquivalent.setText(engine.GetAmountEqualentDescriptor(mCard, etAmount.getText().toString()));
if (!mCard.getAmountEquivalentDescriptionAvailable()) {
tvAmountEquivalent.setError("Service unavailable");
} else {
tvAmountEquivalent.setError(null);
}
} catch (Exception e) {
e.printStackTrace();
tvAmountEquivalent.setText("");
}
// try {
// CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
// tvAmountEquivalent.setText(engine.GetAmountEqualentDescriptor(mCard, etAmount.getText().toString()));
// if (!mCard.getAmountEquivalentDescriptionAvailable()) {
// tvAmountEquivalent.setError("Service unavailable");
// } else {
// tvAmountEquivalent.setError(null);
// }
// } catch (Exception e) {
// e.printStackTrace();
// tvAmountEquivalent.setText("");
// }
}
@Override

View file

@ -19,9 +19,9 @@ import java.util.TimerTask;
* Created by dvol on 06.03.2018.
*/
public class WaitSecurityDelayDialog extends DialogFragment {
ProgressBar progressBar;
int msTimeout = 60000, msProgress = 0;
Timer timer;
private ProgressBar progressBar;
private int msTimeout = 60000, msProgress = 0;
private Timer timer;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@ -50,7 +50,7 @@ public class WaitSecurityDelayDialog extends DialogFragment {
}, 1000, 1000);
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle("Security delay")
.setTitle(R.string.security_delay)
.setView(v)
.setCancelable(false)
.create();

View file

@ -666,6 +666,8 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
} else if (engine.AwaitingConfirmation(mCard)) {
Toast.makeText(getContext(), R.string.please_wait_while_previous, Toast.LENGTH_LONG).show();
return;
} else if (!engine.CheckUnspentTransaction(mCard)) {
Toast.makeText(getContext(), R.string.please_wait_for_confirmation, Toast.LENGTH_LONG).show();
return;

View file

@ -54,7 +54,7 @@
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
tools:text="3434 7474 7474 8484"/>
tools:text="BB00 0000 1210 0233"/>
<TextView
android:layout_width="wrap_content"
@ -66,36 +66,36 @@
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"/>
<LinearLayout
<TextView
android:id="@+id/tvBalance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:orientation="horizontal">
android:layout_marginTop="4dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
tools:text="4.51735 mBtc"/>
<TextView
android:id="@+id/tvBalance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
tools:text="0.844"/>
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginStart="16dp"-->
<!--android:orientation="horizontal">-->
<TextView
android:id="@+id/tvBalanceEquivalent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_1_small"
tools:text="343"/>
<!--<TextView-->
<!--android:id="@+id/tvBalanceEquivalent"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginStart="8dp"-->
<!--android:layout_marginTop="4dp"-->
<!--android:fontFamily="@font/montserrat_light"-->
<!--android:textColor="@android:color/darker_gray"-->
<!--android:textSize="@dimen/text_size_1_small"-->
<!--tools:text="343"/>-->
</LinearLayout>
<!--</LinearLayout>-->
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
@ -123,8 +123,7 @@
android:id="@+id/etWallet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:enabled="false"
android:fontFamily="@font/montserrat_light"
android:hint="@string/target_wallet_address"
@ -169,15 +168,12 @@
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp">
android:layout_height="wrap_content">
<EditText
android:id="@+id/etAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="16dp"
android:enabled="false"
android:fontFamily="@font/montserrat_light"
android:hint="@string/payment_amount"
@ -188,38 +184,38 @@
android:textSize="@dimen/text_size_large"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tvCurrency"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tvCurrency"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tvCurrency"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="12dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/montserrat_light"
android:text="@string/m_btc"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tvAmountEquivalent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/etAmount"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tvAmountEquivalent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:layout_marginTop="12dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="0000"/>
<!--<TextView-->
<!--android:id="@+id/tvAmountEquivalent"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginEnd="12dp"-->
<!--android:layout_marginTop="12dp"-->
<!--android:fontFamily="@font/montserrat_light"-->
<!--android:textColor="@android:color/darker_gray"-->
<!--android:textSize="@dimen/text_size_1_small"-->
<!--app:layout_constraintBottom_toBottomOf="parent"-->
<!--app:layout_constraintEnd_toEndOf="parent"-->
<!--app:layout_constraintTop_toTopOf="parent"-->
<!--tools:text="0000"/>-->
</android.support.constraint.ConstraintLayout>
@ -334,18 +330,18 @@
app:layout_constraintLeft_toRightOf="@+id/etFee"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tvFeeEquivalent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/tvCurrency2"
app:layout_constraintTop_toTopOf="parent"
tools:text="000"/>
<!--<TextView-->
<!--android:id="@+id/tvFeeEquivalent"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginStart="8dp"-->
<!--android:fontFamily="@font/montserrat_light"-->
<!--android:textColor="@android:color/darker_gray"-->
<!--android:textSize="@dimen/text_size_1_small"-->
<!--app:layout_constraintBottom_toBottomOf="parent"-->
<!--app:layout_constraintLeft_toRightOf="@+id/tvCurrency2"-->
<!--app:layout_constraintTop_toTopOf="parent"-->
<!--tools:text="000"/>-->
</android.support.constraint.ConstraintLayout>
@ -353,16 +349,10 @@
<Button
android:id="@+id/btnSend"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
style="@style/AppTheme.RoundedCornerMaterialButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:backgroundTint="@color/colorPrimary"
android:fontFamily="@font/raleway_r"
android:includeFontPadding="false"
android:layout_marginBottom="16dp"
android:text="@string/send_1"
android:textColor="@color/white"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>

View file

@ -56,7 +56,8 @@
android:fontFamily="@font/montserrat_light"
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"/>
android:textStyle="bold"
tools:text="BB00 0000 1210 0233"/>
<TextView
android:layout_width="wrap_content"
@ -84,18 +85,18 @@
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
tools:text="$232"/>
tools:text="4.51735 mBtc"/>
<TextView
android:id="@+id/tvBalanceEquivalent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_1_small"
tools:text="$132"/>
<!--<TextView-->
<!--android:id="@+id/tvBalanceEquivalent"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginStart="12dp"-->
<!--android:layout_marginTop="4dp"-->
<!--android:fontFamily="@font/montserrat_light"-->
<!--android:textColor="@android:color/darker_gray"-->
<!--android:textSize="@dimen/text_size_1_small"-->
<!--tools:text="$132"/>-->
</LinearLayout>
@ -148,6 +149,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:fontFamily="@font/montserrat_light"
android:hint="@string/enter_wallet_address"
android:inputType="text|textMultiLine|textNoSuggestions"
@ -227,17 +229,17 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/etAmount"/>
<TextView
android:id="@+id/tvAmountEquivalent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginStart="8dp"
android:fontFamily="@font/montserrat_light"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toBottomOf="@+id/tvCurrency"
app:layout_constraintLeft_toRightOf="@+id/tvCurrency"/>
<!--<TextView-->
<!--android:id="@+id/tvAmountEquivalent"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginBottom="4dp"-->
<!--android:layout_marginStart="8dp"-->
<!--android:fontFamily="@font/montserrat_light"-->
<!--android:textColor="@android:color/darker_gray"-->
<!--android:textSize="@dimen/text_size_1_small"-->
<!--app:layout_constraintBottom_toBottomOf="@+id/tvCurrency"-->
<!--app:layout_constraintLeft_toRightOf="@+id/tvCurrency"/>-->
</android.support.constraint.ConstraintLayout>

View file

@ -50,6 +50,7 @@
<string name="device_is_rooted">Your Android device is rooted. Security at risk!</string>
<string name="got_it">Got it</string>
<string name="warning">Warning</string>
<string name="security_delay">Security delay</string>
<string name="the_nfc_adapter_length_apdu">The NFC adapter of the device does not support extended length APDU, it\'s possible that some functions will not work!</string>
<string name="your_money_is_at_risk">Your money is at risk!</string>
<string name="this_banknote_has_enforced_security_delay">This banknote has enforced security delay</string>