diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index fe5a450625..7965d59020 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.java b/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.java
index 06a0e7c330..3e7aed1ae9 100644
--- a/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.java
+++ b/app/src/main/java/com/tangem/presentation/activity/ConfirmPaymentActivity.java
@@ -594,10 +594,6 @@ public class ConfirmPaymentActivity extends AppCompatActivity implements NfcAdap
intent.putExtra("Card", mCard.getAsBundle());
intent.putExtra("Wallet", etWallet.getText().toString());
intent.putExtra(SignPaymentActivity.EXTRA_AMOUNT, etAmount.getText().toString());
-
-// if (BuildConfig.DEBUG)
-// Toast.makeText(this, etAmount.getText().toString(), Toast.LENGTH_LONG).show();
-
intent.putExtra("Fee", etFee.getText().toString());
startActivityForResult(intent, REQUEST_CODE_SIGN_PAYMENT);
} else {
diff --git a/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.java b/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.java
index 9704006b64..eb8374373e 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.java
+++ b/app/src/main/java/com/tangem/presentation/activity/PreparePaymentActivity.java
@@ -16,7 +16,6 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
-import android.widget.Toast;
import com.tangem.domain.cardReader.NfcManager;
import com.tangem.domain.wallet.Blockchain;
@@ -24,7 +23,6 @@ import com.tangem.domain.wallet.CoinEngine;
import com.tangem.domain.wallet.CoinEngineFactory;
import com.tangem.domain.wallet.TangemCard;
import com.tangem.util.FormatUtil;
-import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.R;
import java.io.IOException;
@@ -141,9 +139,6 @@ public class PreparePaymentActivity extends AppCompatActivity implements NfcAdap
String strAmount;
strAmount = etAmount.getText().toString().replace(",", ".");
- if (BuildConfig.DEBUG)
- Toast.makeText(this, strAmount, Toast.LENGTH_LONG).show();
-
CoinEngine engine1 = CoinEngineFactory.Create(mCard.getBlockchain());
Log.i(TAG, mCard.getBlockchain().getOfficialName());
diff --git a/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.java b/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.java
index 6899e3b505..e2a789bded 100644
--- a/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.java
+++ b/app/src/main/java/com/tangem/presentation/activity/SignPaymentActivity.java
@@ -1 +1 @@
-package com.tangem.presentation.activity;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.IsoDep;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.tangem.data.nfc.SignPaymentTask;
import com.tangem.domain.cardReader.CardProtocol;
import com.tangem.domain.cardReader.NfcManager;
import com.tangem.domain.wallet.TangemCard;
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog;
import com.tangem.presentation.dialog.WaitSecurityDelayDialog;
import com.tangem.util.Util;
import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.R;
public class SignPaymentActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback, CardProtocol.Notifications {
public static final String EXTRA_AMOUNT = "Amount";
public static final int REQUEST_CODE_SEND_PAYMENT = 1;
public static final int RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER;
private TangemCard mCard;
private TextView tvCardID;
private NfcManager mNfcManager;
private static final String logTag = "SignPayment";
private ProgressBar progressBar;
private SignPaymentTask signPaymentTask;
private String amountStr;
private String feeStr;
private String outAddressStr;
private boolean lastReadSuccess = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_payment);
MainActivity.commonInit(getApplicationContext());
mCard = new TangemCard(getIntent().getStringExtra("UID"));
mCard.LoadFromBundle(getIntent().getExtras().getBundle("Card"));
amountStr = getIntent().getStringExtra(EXTRA_AMOUNT);
feeStr = getIntent().getStringExtra("Fee");
outAddressStr = getIntent().getStringExtra("Wallet");
tvCardID = findViewById(R.id.tvCardID);
tvCardID.setText(mCard.getCIDDescription());
mNfcManager = new NfcManager(this, this);
progressBar = findViewById(R.id.progressBar);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
if (BuildConfig.DEBUG)
Toast.makeText(this, amountStr, Toast.LENGTH_LONG).show();
}
@Override
public void onTagDiscovered(Tag tag) {
try {
// get IsoDep handle and run cardReader thread
final IsoDep isoDep = IsoDep.get(tag);
if (isoDep == null) {
throw new CardProtocol.TangemException(getString(R.string.wrong_tag_err));
}
byte UID[] = tag.getId();
String sUID = Util.byteArrayToHexString(UID);
Log.v(logTag, "UID: " + sUID);
if (sUID.equals(mCard.getUID())) {
if (lastReadSuccess) {
isoDep.setTimeout(mCard.getPauseBeforePIN2() + 5000);
} else {
isoDep.setTimeout(mCard.getPauseBeforePIN2() + 65000);
}
signPaymentTask = new SignPaymentTask(this, mCard, mNfcManager, isoDep, this, amountStr, feeStr, outAddressStr);
signPaymentTask.start();
} else {
Log.d(logTag, "Mismatch card UID (" + sUID + " instead of " + mCard.getUID() + ")");
mNfcManager.ignoreTag(isoDep.getTag());
return;
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onResume() {
super.onResume();
mNfcManager.onResume();
}
@Override
public void onPause() {
mNfcManager.onPause();
if (signPaymentTask != null) {
signPaymentTask.cancel(true);
}
super.onPause();
}
@Override
public void onStop() {
// dismiss enable NFC dialog
mNfcManager.onStop();
if (signPaymentTask != null) {
signPaymentTask.cancel(true);
}
super.onStop();
}
public void OnReadStart(CardProtocol cardProtocol) {
progressBar.post(() -> {
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(5);
});
}
public void OnReadFinish(final CardProtocol cardProtocol) {
signPaymentTask = null;
if (cardProtocol != null) {
if (cardProtocol.getError() == null) {
progressBar.post(() -> {
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
});
} else {
lastReadSuccess = false;
if (cardProtocol.getError().getClass().equals(CardProtocol.TangemException_InvalidPIN.class)) {
progressBar.post(() -> {
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
});
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
Intent intent = new Intent();
intent.putExtra("message", "Cannot sign transaction. Make sure you enter correct PIN2!");
intent.putExtra("UID", cardProtocol.getCard().getUID());
intent.putExtra("Card", cardProtocol.getCard().getAsBundle());
setResult(RESULT_INVALID_PIN, intent);
finish();
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
return;
} else {
progressBar.post(() -> {
if (cardProtocol.getError() instanceof CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.allreadyShowed) {
new NoExtendedLengthSupportDialog().show(getFragmentManager(), NoExtendedLengthSupportDialog.TAG);
}
} else {
Toast.makeText(getBaseContext(), R.string.try_to_scan_again, Toast.LENGTH_LONG).show();
}
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
});
}
}
}
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
}
public void OnReadProgress(CardProtocol protocol, final int progress) {
progressBar.post(() -> progressBar.setProgress(progress));
}
public void OnReadCancel() {
signPaymentTask = null;
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
}
@Override
public void OnReadWait(final int msec) {
WaitSecurityDelayDialog.OnReadWait(this, msec);
}
@Override
public void OnReadBeforeRequest(int timeout) {
WaitSecurityDelayDialog.onReadBeforeRequest(this, timeout);
}
@Override
public void OnReadAfterRequest() {
WaitSecurityDelayDialog.onReadAfterRequest(this);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
Intent intent = new Intent();
// intent.putExtra("message", "Operation canceled");
setResult(Activity.RESULT_CANCELED, intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_SEND_PAYMENT) {
setResult(resultCode, data);
finish();
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
\ No newline at end of file
+package com.tangem.presentation.activity;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.IsoDep;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.tangem.data.nfc.SignPaymentTask;
import com.tangem.domain.cardReader.CardProtocol;
import com.tangem.domain.cardReader.NfcManager;
import com.tangem.domain.wallet.TangemCard;
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog;
import com.tangem.presentation.dialog.WaitSecurityDelayDialog;
import com.tangem.util.Util;
import com.tangem.wallet.R;
public class SignPaymentActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback, CardProtocol.Notifications {
public static final String EXTRA_AMOUNT = "Amount";
public static final int REQUEST_CODE_SEND_PAYMENT = 1;
public static final int RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER;
private TangemCard mCard;
private TextView tvCardID;
private NfcManager mNfcManager;
private static final String logTag = "SignPayment";
private ProgressBar progressBar;
private SignPaymentTask signPaymentTask;
private String amountStr;
private String feeStr;
private String outAddressStr;
private boolean lastReadSuccess = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_payment);
MainActivity.commonInit(getApplicationContext());
mCard = new TangemCard(getIntent().getStringExtra("UID"));
mCard.LoadFromBundle(getIntent().getExtras().getBundle("Card"));
amountStr = getIntent().getStringExtra(EXTRA_AMOUNT);
feeStr = getIntent().getStringExtra("Fee");
outAddressStr = getIntent().getStringExtra("Wallet");
tvCardID = findViewById(R.id.tvCardID);
tvCardID.setText(mCard.getCIDDescription());
mNfcManager = new NfcManager(this, this);
progressBar = findViewById(R.id.progressBar);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
}
@Override
public void onTagDiscovered(Tag tag) {
try {
// get IsoDep handle and run cardReader thread
final IsoDep isoDep = IsoDep.get(tag);
if (isoDep == null) {
throw new CardProtocol.TangemException(getString(R.string.wrong_tag_err));
}
byte UID[] = tag.getId();
String sUID = Util.byteArrayToHexString(UID);
Log.v(logTag, "UID: " + sUID);
if (sUID.equals(mCard.getUID())) {
if (lastReadSuccess) {
isoDep.setTimeout(mCard.getPauseBeforePIN2() + 5000);
} else {
isoDep.setTimeout(mCard.getPauseBeforePIN2() + 65000);
}
signPaymentTask = new SignPaymentTask(this, mCard, mNfcManager, isoDep, this, amountStr, feeStr, outAddressStr);
signPaymentTask.start();
} else {
Log.d(logTag, "Mismatch card UID (" + sUID + " instead of " + mCard.getUID() + ")");
mNfcManager.ignoreTag(isoDep.getTag());
return;
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onResume() {
super.onResume();
mNfcManager.onResume();
}
@Override
public void onPause() {
mNfcManager.onPause();
if (signPaymentTask != null) {
signPaymentTask.cancel(true);
}
super.onPause();
}
@Override
public void onStop() {
// dismiss enable NFC dialog
mNfcManager.onStop();
if (signPaymentTask != null) {
signPaymentTask.cancel(true);
}
super.onStop();
}
public void OnReadStart(CardProtocol cardProtocol) {
progressBar.post(() -> {
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(5);
});
}
public void OnReadFinish(final CardProtocol cardProtocol) {
signPaymentTask = null;
if (cardProtocol != null) {
if (cardProtocol.getError() == null) {
progressBar.post(() -> {
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
});
} else {
lastReadSuccess = false;
if (cardProtocol.getError().getClass().equals(CardProtocol.TangemException_InvalidPIN.class)) {
progressBar.post(() -> {
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
});
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
Intent intent = new Intent();
intent.putExtra("message", "Cannot sign transaction. Make sure you enter correct PIN2!");
intent.putExtra("UID", cardProtocol.getCard().getUID());
intent.putExtra("Card", cardProtocol.getCard().getAsBundle());
setResult(RESULT_INVALID_PIN, intent);
finish();
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
return;
} else {
progressBar.post(() -> {
if (cardProtocol.getError() instanceof CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.allreadyShowed) {
new NoExtendedLengthSupportDialog().show(getFragmentManager(), NoExtendedLengthSupportDialog.TAG);
}
} else {
Toast.makeText(getBaseContext(), R.string.try_to_scan_again, Toast.LENGTH_LONG).show();
}
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
});
}
}
}
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
}
public void OnReadProgress(CardProtocol protocol, final int progress) {
progressBar.post(() -> progressBar.setProgress(progress));
}
public void OnReadCancel() {
signPaymentTask = null;
progressBar.postDelayed(() -> {
try {
progressBar.setProgress(0);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
progressBar.setVisibility(View.INVISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
}, 500);
}
@Override
public void OnReadWait(final int msec) {
WaitSecurityDelayDialog.OnReadWait(this, msec);
}
@Override
public void OnReadBeforeRequest(int timeout) {
WaitSecurityDelayDialog.onReadBeforeRequest(this, timeout);
}
@Override
public void OnReadAfterRequest() {
WaitSecurityDelayDialog.onReadAfterRequest(this);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
Intent intent = new Intent();
// intent.putExtra("message", "Operation canceled");
setResult(Activity.RESULT_CANCELED, intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_SEND_PAYMENT) {
setResult(resultCode, data);
finish();
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java
index ad8aadd1a7..81c9166704 100644
--- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java
+++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java
@@ -561,7 +561,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
}
}
-
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -702,6 +701,8 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
startActivityForResult(intent, REQUEST_CODE_SEND_PAYMENT);
});
+ tvWallet.setText(mCard.getWallet());
+
return v;
}
diff --git a/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java b/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java
index 66fb98a5cb..786512037c 100644
--- a/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java
+++ b/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java
@@ -66,7 +66,6 @@ public class VerifyCard extends Fragment implements NfcAdapter.ReaderCallback {
private SwipeRefreshLayout mSwipeRefreshLayout;
private Tag lastTag;
-
public VerifyCard() {
}
@@ -78,9 +77,6 @@ public class VerifyCard extends Fragment implements NfcAdapter.ReaderCallback {
mCard = new TangemCard(Objects.requireNonNull(getActivity()).getIntent().getStringExtra("UID"));
mCard.LoadFromBundle(Objects.requireNonNull(getActivity().getIntent().getExtras()).getBundle("Card"));
-
-
-// LoadedWallet.needOpenVerify = true;
}
@Override
@@ -384,7 +380,8 @@ public class VerifyCard extends Fragment implements NfcAdapter.ReaderCallback {
//tvBlockchain.setText(mCard.getBlockchain().getOfficialName());
tvBlockchain.setText(mCard.getBlockchainName());
- ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(this.getContext(), mCard.getTokenSymbol()));
+
+ ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(getContext(), mCard.getTokenSymbol()));
if (mCard.isReusable())
tvReusable.setText(R.string.reusable);
diff --git a/app/src/main/res/layout/fr_loaded_wallet.xml b/app/src/main/res/layout/fr_loaded_wallet.xml
index 54d3b3689f..591cecd917 100644
--- a/app/src/main/res/layout/fr_loaded_wallet.xml
+++ b/app/src/main/res/layout/fr_loaded_wallet.xml
@@ -37,7 +37,6 @@
android:orientation="vertical">
+ android:textSize="@dimen/text_size_1_small"
+ android:visibility="gone"/>
+ tools:text="Verified balance"/>
+ tools:text="0.05 BTC (Bitcoin)"/>
+ android:text="100% safe. Confirmed balance and banknote identity"/>
@@ -411,7 +412,7 @@
android:text="@string/message"
android:textAlignment="center"
android:textColor="@color/black"
- android:textStyle="normal|bold" />
+ android:textStyle="normal|bold"/>