diff --git a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.java b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.java
deleted file mode 100644
index d23c490adc..0000000000
--- a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package com.tangem.presentation.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-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.View;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.tangem.data.nfc.PurgeTask;
-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 PurgeActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback, CardProtocol.Notifications {
- public static final String TAG = PurgeActivity.class.getSimpleName();
-
- public static final int RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER;
-
- private TangemCard mCard;
- private NfcManager mNfcManager;
- private ProgressBar progressBar;
- private PurgeTask purgeTask;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_purge);
-
- setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
- mNfcManager = new NfcManager(this, this);
-
- MainActivity.Companion.commonInit(getApplicationContext());
-
- mCard = new TangemCard(getIntent().getStringExtra("UID"));
- mCard.LoadFromBundle(getIntent().getExtras().getBundle("Card"));
-
- TextView tvCardID = findViewById(R.id.tvCardID);
- progressBar = findViewById(R.id.progressBar);
-
- tvCardID.setText(mCard.getCIDDescription());
- progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
- progressBar.setVisibility(View.INVISIBLE);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- mNfcManager.onResume();
- }
-
- @Override
- public void onPause() {
- mNfcManager.onPause();
- if (purgeTask != null) {
- purgeTask.cancel(true);
- }
- super.onPause();
- }
-
- @Override
- public void onStop() {
- // dismiss enable NFC dialog
- mNfcManager.onStop();
- if (purgeTask != null) {
- purgeTask.cancel(true);
- }
- super.onStop();
- }
-
- @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(TAG, "UID: " + sUID);
-
- if (sUID.equals(mCard.getUID())) {
- isoDep.setTimeout(mCard.getPauseBeforePIN2() + 65000);
- purgeTask = new PurgeTask(this, mCard, mNfcManager, isoDep, this);
- purgeTask.start();
- } else {
-// Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + mCard.getUID() + ")");
- mNfcManager.ignoreTag(isoDep.getTag());
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
-
- @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);
- }
-
- public void OnReadStart(CardProtocol cardProtocol) {
- progressBar.post(() -> {
- progressBar.setVisibility(View.VISIBLE);
- progressBar.setProgress(5);
- });
- }
-
- public void OnReadFinish(final CardProtocol cardProtocol) {
-
- purgeTask = null;
-
- if (cardProtocol != null) {
- if (cardProtocol.getError() == null) {
- progressBar.post(() -> {
- progressBar.setProgress(100);
- progressBar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
- Intent intent = new Intent();
- intent.putExtra("UID", cardProtocol.getCard().getUID());
- intent.putExtra("Card", cardProtocol.getCard().getAsBundle());
- setResult(Activity.RESULT_OK, intent);
- finish();
- });
- } else {
- if (cardProtocol.getError() instanceof CardProtocol.TangemException_InvalidPIN) {
- 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("UID", cardProtocol.getCard().getUID());
- intent.putExtra("Card", cardProtocol.getCard().getAsBundle());
- intent.putExtra("message", getString(R.string.cannot_erase_wallet));
- 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.Companion.getAllReadyShowed()) {
- new NoExtendedLengthSupportDialog().show(getFragmentManager(), NoExtendedLengthSupportDialog.Companion.getTAG());
- }
- } 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() {
- purgeTask = null;
- progressBar.postDelayed(() -> {
- try {
- progressBar.setProgress(0);
- progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
- progressBar.setVisibility(View.INVISIBLE);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }, 500);
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
new file mode 100644
index 0000000000..c72c0a3b18
--- /dev/null
+++ b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
@@ -0,0 +1,196 @@
+package com.tangem.presentation.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.content.pm.ActivityInfo
+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.view.View
+import android.widget.Toast
+import com.tangem.data.nfc.PurgeTask
+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
+import kotlinx.android.synthetic.main.activity_purge.*
+
+class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
+
+ companion object {
+ val TAG: String = PurgeActivity::class.java.simpleName
+ const val RESULT_INVALID_PIN = Activity.RESULT_FIRST_USER
+ }
+
+ private var mCard: TangemCard? = null
+ private var mNfcManager: NfcManager? = null
+ private var purgeTask: PurgeTask? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_purge)
+
+ requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
+
+ mNfcManager = NfcManager(this, this)
+
+ MainActivity.commonInit(applicationContext)
+
+ mCard = TangemCard(intent.getStringExtra("UID"))
+ mCard!!.LoadFromBundle(intent.extras!!.getBundle("Card"))
+
+ tvCardID.text = mCard!!.cidDescription
+ progressBar.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
+ progressBar.visibility = View.INVISIBLE
+ }
+
+ public override fun onResume() {
+ super.onResume()
+ mNfcManager!!.onResume()
+ }
+
+ public override fun onPause() {
+ mNfcManager!!.onPause()
+ if (purgeTask != null) {
+ purgeTask!!.cancel(true)
+ }
+ super.onPause()
+ }
+
+ public override fun onStop() {
+ // dismiss enable NFC dialog
+ mNfcManager!!.onStop()
+ if (purgeTask != null) {
+ purgeTask!!.cancel(true)
+ }
+ super.onStop()
+ }
+
+ override fun onTagDiscovered(tag: Tag) {
+ try {
+ // get IsoDep handle and run cardReader thread
+ val isoDep = IsoDep.get(tag)
+ ?: throw CardProtocol.TangemException(getString(R.string.wrong_tag_err))
+ val uid = tag.id
+ val sUID = Util.byteArrayToHexString(uid)
+// Log.v(TAG, "UID: $sUID")
+
+ if (sUID == mCard!!.uid) {
+ isoDep.timeout = mCard!!.pauseBeforePIN2 + 65000
+ purgeTask = PurgeTask(this, mCard, mNfcManager, isoDep, this)
+ purgeTask!!.start()
+ } else {
+ // this Log.d(TAG, "Mismatch card UID (" + sUID + " instead of " + mCard.getUID() + ")");
+ mNfcManager!!.ignoreTag(isoDep.tag)
+ }
+
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ override fun OnReadWait(msec: Int) {
+ WaitSecurityDelayDialog.OnReadWait(this, msec)
+ }
+
+ override fun OnReadBeforeRequest(timeout: Int) {
+ WaitSecurityDelayDialog.onReadBeforeRequest(this, timeout)
+ }
+
+ override fun OnReadAfterRequest() {
+ WaitSecurityDelayDialog.onReadAfterRequest(this)
+ }
+
+ override fun OnReadStart(cardProtocol: CardProtocol) {
+ progressBar!!.post {
+ progressBar!!.visibility = View.VISIBLE
+ progressBar!!.progress = 5
+ }
+ }
+
+ override fun OnReadFinish(cardProtocol: CardProtocol?) {
+ purgeTask = null
+
+ if (cardProtocol != null) {
+ if (cardProtocol.error == null) {
+ progressBar!!.post {
+ progressBar!!.progress = 100
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.GREEN)
+ val intent = Intent()
+ intent.putExtra("UID", cardProtocol.card.uid)
+ intent.putExtra("Card", cardProtocol.card.asBundle)
+ setResult(Activity.RESULT_OK, intent)
+ finish()
+ }
+ } else {
+ if (cardProtocol.error is CardProtocol.TangemException_InvalidPIN) {
+ progressBar!!.post {
+ progressBar!!.progress = 100
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED)
+ }
+ progressBar!!.postDelayed({
+ try {
+ progressBar!!.progress = 0
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
+ progressBar!!.visibility = View.INVISIBLE
+ val intent = Intent()
+ intent.putExtra("UID", cardProtocol.card.uid)
+ intent.putExtra("Card", cardProtocol.card.asBundle)
+ intent.putExtra("message", getString(R.string.cannot_erase_wallet))
+ setResult(RESULT_INVALID_PIN, intent)
+ finish()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }, 500)
+ } else {
+ progressBar!!.post {
+ if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
+ if (!NoExtendedLengthSupportDialog.allReadyShowed)
+ NoExtendedLengthSupportDialog().show(fragmentManager, NoExtendedLengthSupportDialog.TAG)
+ } else
+ Toast.makeText(baseContext, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
+
+ progressBar!!.progress = 100
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED)
+ }
+ }
+ }
+ }
+
+ progressBar!!.postDelayed({
+ try {
+ progressBar!!.progress = 0
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
+ progressBar!!.visibility = View.INVISIBLE
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }, 500)
+ }
+
+ override fun OnReadProgress(protocol: CardProtocol, progress: Int) {
+ progressBar!!.post { progressBar!!.progress = progress }
+ }
+
+ override fun OnReadCancel() {
+ purgeTask = null
+ progressBar!!.postDelayed({
+ try {
+ progressBar!!.progress = 0
+ progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
+ progressBar!!.visibility = View.INVISIBLE
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }, 500)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_purge.xml b/app/src/main/res/layout/activity_purge.xml
index b8fa5d8205..6b21e9d9b9 100644
--- a/app/src/main/res/layout/activity_purge.xml
+++ b/app/src/main/res/layout/activity_purge.xml
@@ -1,6 +1,5 @@
-
+ android:textSize="@dimen/text_size_medium" />
+ tools:text="CB02 0000 0002 5000" />
+ android:textSize="@dimen/text_size_medium" />
+ android:textSize="@dimen/text_size_medium" />
@@ -61,6 +60,6 @@
android:layout_alignParentBottom="true"
android:alpha="0.5"
android:elevation="1dp"
- app:layout_constraintBottom_toBottomOf="parent"/>
+ app:layout_constraintBottom_toBottomOf="parent" />
-
+
\ No newline at end of file