Updated on 2026-08-14

This commit is contained in:
Tangem 2018-08-02 13:24:40 +03:00
parent 01e629649e
commit 68915d912a
5 changed files with 269 additions and 368 deletions

View file

@ -15,7 +15,7 @@ android {
applicationId "com.tangem.wallet"
minSdkVersion 21
targetSdkVersion 27
versionCode 53
versionCode 54
versionName "0.87.3." + generateVersionName()
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

View file

@ -1,304 +0,0 @@
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.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.tangem.domain.cardReader.CardProtocol;
import com.tangem.domain.cardReader.NfcManager;
import com.tangem.domain.wallet.TangemCard;
import com.tangem.util.Util;
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog;
import com.tangem.wallet.R;
import com.tangem.data.nfc.VerifyCardTask;
import com.tangem.presentation.dialog.WaitSecurityDelayDialog;
public class EmptyWalletActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback, CardProtocol.Notifications {
public static final String TAG = EmptyWalletActivity.class.getSimpleName();
private static final int REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY = 2;
private static final int REQUEST_CODE_REQUEST_PIN2 = 3;
private static final int REQUEST_CODE_VERIFY_CARD = 4;
private TangemCard mCard;
private ProgressBar progressBar;
private NfcManager mNfcManager;
private boolean lastReadSuccess = true;
private VerifyCardTask verifyCardTask = null;
private int requestPIN2Count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_empty_wallet);
MainActivity.Companion.commonInit(getApplicationContext());
mNfcManager = new NfcManager(this, this);
mCard = new TangemCard(getIntent().getStringExtra("UID"));
mCard.LoadFromBundle(getIntent().getExtras().getBundle("Card"));
TextView tvCardID = findViewById(R.id.tvCardID);
tvCardID.setText(mCard.getCIDDescription());
TextView tvIssuer = findViewById(R.id.tvIssuer);
TextView tvIssuerData = findViewById(R.id.tvIssuerData);
TextView tvBlockchain = findViewById(R.id.tvBlockchain);
tvIssuer.setText(mCard.getIssuerDescription());
tvIssuerData.setText(mCard.getIssuerDataDescription());
//tvBlockchain.setText(mCard.getBlockchain().getOfficialName());
tvBlockchain.setText(mCard.getBlockchainName());
progressBar = findViewById(R.id.progressBar);
ImageView ivBlockchain = findViewById(R.id.imgBlockchain);
ImageView ivPIN = findViewById(R.id.imgPIN);
ImageView ivPIN2orSecurityDelay = findViewById(R.id.imgPIN2orSecurityDelay);
ImageView ivDeveloperVersion = findViewById(R.id.imgDeveloperVersion);
Button btnNewWallet = findViewById(R.id.btnNewWallet);
ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(this, mCard.getTokenSymbol()));
if (mCard.useDefaultPIN1()) {
ivPIN.setImageResource(R.drawable.unlock_pin1);
ivPIN.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, R.string.this_banknote_protected_default_PIN1_code, Toast.LENGTH_LONG).show());
} else {
ivPIN.setImageResource(R.drawable.lock_pin1);
ivPIN.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, R.string.this_banknote_protected_user_PIN1_code, Toast.LENGTH_LONG).show());
}
if (mCard.getPauseBeforePIN2() > 0 && (mCard.useDefaultPIN2() || !mCard.useSmartSecurityDelay())) {
ivPIN2orSecurityDelay.setImageResource(R.drawable.timer);
ivPIN2orSecurityDelay.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, String.format(getString(R.string.this_banknote_will_enforce), mCard.getPauseBeforePIN2() / 1000.0), Toast.LENGTH_LONG).show());
} else if (mCard.useDefaultPIN2()) {
ivPIN2orSecurityDelay.setImageResource(R.drawable.unlock_pin2);
ivPIN2orSecurityDelay.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, R.string.this_banknote_protected_default_PIN2_code, Toast.LENGTH_LONG).show());
} else {
ivPIN2orSecurityDelay.setImageResource(R.drawable.lock_pin2);
ivPIN2orSecurityDelay.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, R.string.this_banknote_protected_user_PIN2_code, Toast.LENGTH_LONG).show());
}
if (mCard.useDevelopersFirmware()) {
ivDeveloperVersion.setImageResource(R.drawable.ic_developer_version);
ivDeveloperVersion.setVisibility(View.VISIBLE);
ivDeveloperVersion.setOnClickListener(v -> Toast.makeText(EmptyWalletActivity.this, R.string.unlocked_banknote_only_development_use, Toast.LENGTH_LONG).show());
} else {
ivDeveloperVersion.setVisibility(View.INVISIBLE);
}
btnNewWallet.setOnClickListener(v -> {
requestPIN2Count = 0;
Intent intent = new Intent(getBaseContext(), RequestPINActivity.class);
intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString());
intent.putExtra("UID", mCard.getUID());
intent.putExtra("Card", mCard.getAsBundle());
startActivityForResult(intent, REQUEST_CODE_REQUEST_PIN2);
});
// if (getIntent().getExtras().containsKey(NfcAdapter.EXTRA_TAG)) {
// Tag tag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
// if (tag != null) {
// onTagDiscovered(tag);
// }
// }
}
@Override
public void onResume() {
super.onResume();
mNfcManager.onResume();
}
@Override
public void onPause() {
super.onPause();
mNfcManager.onPause();
}
@Override
public void onStop() {
super.onStop();
mNfcManager.onStop();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY) {
if (resultCode == Activity.RESULT_OK) {
if (data != null) {
data.putExtra("modification", "updateAndViewCard");
data.putExtra("updateDelay", 0);
setResult(Activity.RESULT_OK, data);
}
finish();
} else {
if (data != null && data.getExtras().containsKey("UID") && data.getExtras().containsKey("Card")) {
TangemCard updatedCard = new TangemCard(data.getStringExtra("UID"));
updatedCard.LoadFromBundle(data.getBundleExtra("Card"));
mCard = updatedCard;
}
if (resultCode == CreateNewWalletActivity.RESULT_INVALID_PIN && requestPIN2Count < 2) {
requestPIN2Count++;
Intent intent = new Intent(getBaseContext(), RequestPINActivity.class);
intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString());
intent.putExtra("UID", mCard.getUID());
intent.putExtra("Card", mCard.getAsBundle());
startActivityForResult(intent, REQUEST_CODE_REQUEST_PIN2);
return;
}
}
setResult(resultCode, data);
finish();
} else if (requestCode == REQUEST_CODE_REQUEST_PIN2) {
if (resultCode == Activity.RESULT_OK) {
doCreateNewWallet();
}
}
}
@Override
public void onTagDiscovered(Tag tag) {
try {
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);
if (!mCard.getUID().equals(sUID)) {
Log.d(TAG, "Invalid UID: " + sUID);
mNfcManager.ignoreTag(isoDep.getTag());
return;
} else {
Log.v(TAG, "UID: " + sUID);
}
if (lastReadSuccess) {
isoDep.setTimeout(1000);
} else {
isoDep.setTimeout(65000);
}
//lastTag = tag;
verifyCardTask = new VerifyCardTask(this, mCard, mNfcManager, isoDep, this);
verifyCardTask.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void OnReadStart(CardProtocol cardProtocol) {
progressBar.post(() -> {
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(5);
});
}
public void OnReadFinish(final CardProtocol cardProtocol) {
verifyCardTask = null;
if (cardProtocol != null) {
if (cardProtocol.getError() == null) {
progressBar.post(() -> {
progressBar.setProgress(100);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.GREEN));
Intent intent = new Intent(EmptyWalletActivity.this, VerifyCardActivity.class);
// TODO обновить карту mCard
intent.putExtra("UID", cardProtocol.getCard().getUID());
intent.putExtra("Card", cardProtocol.getCard().getAsBundle());
startActivityForResult(intent, REQUEST_CODE_VERIFY_CARD);
//addCard(cardProtocol.getCard());
});
} else {
// remove last UIDs because of error and no card read
progressBar.post(() -> {
lastReadSuccess = false;
if (cardProtocol.getError() instanceof CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.Companion.getAllReadyShowed()) {
new NoExtendedLengthSupportDialog().show(getFragmentManager(), NoExtendedLengthSupportDialog.Companion.getTAG());
}
} else {
Toast.makeText(EmptyWalletActivity.this, 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() {
verifyCardTask = 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(int msec) {
WaitSecurityDelayDialog.OnReadWait(this, msec);
}
@Override
public void OnReadBeforeRequest(int timeout) {
WaitSecurityDelayDialog.onReadBeforeRequest(this, timeout);
}
@Override
public void OnReadAfterRequest() {
WaitSecurityDelayDialog.onReadAfterRequest(this);
}
private void doCreateNewWallet() {
Intent intent = new Intent(this, CreateNewWalletActivity.class);
intent.putExtra("UID", mCard.getUID());
intent.putExtra("Card", mCard.getAsBundle());
// intent.putExtra("newPIN",mCard.getPIN());
// intent.putExtra("newPIN2","12345678");
startActivityForResult(intent, REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY);
}
}

View file

@ -0,0 +1,254 @@
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.view.View
import android.widget.Toast
import com.tangem.data.nfc.VerifyCardTask
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_empty_wallet.*
class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
val TAG: String = EmptyWalletActivity::class.java.simpleName
private const val REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY = 2
private const val REQUEST_CODE_REQUEST_PIN2 = 3
private const val REQUEST_CODE_VERIFY_CARD = 4
}
private var nfcManager: NfcManager? = null
private var card: TangemCard? = null
private var lastReadSuccess = true
private var verifyCardTask: VerifyCardTask? = null
private var requestPIN2Count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_empty_wallet)
MainActivity.commonInit(applicationContext)
nfcManager = NfcManager(this, this)
card = TangemCard(intent.getStringExtra("UID"))
card!!.LoadFromBundle(intent.extras!!.getBundle("Card"))
tvIssuer.text = card!!.issuerDescription
tvBlockchain.text = card!!.blockchainName
tvCardID.text = card!!.cidDescription
imgBlockchain.setImageResource(card!!.blockchain.getImageResource(this, card!!.tokenSymbol))
if (card!!.useDefaultPIN1()!!) {
imgPIN.setImageResource(R.drawable.unlock_pin1)
imgPIN.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, R.string.this_banknote_protected_default_PIN1_code, Toast.LENGTH_LONG).show() }
} else {
imgPIN.setImageResource(R.drawable.lock_pin1)
imgPIN.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, R.string.this_banknote_protected_user_PIN1_code, Toast.LENGTH_LONG).show() }
}
if (card!!.pauseBeforePIN2 > 0 && (card!!.useDefaultPIN2()!! || !card!!.useSmartSecurityDelay())) {
imgPIN2orSecurityDelay.setImageResource(R.drawable.timer)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, String.format(getString(R.string.this_banknote_will_enforce), card!!.pauseBeforePIN2 / 1000.0), Toast.LENGTH_LONG).show() }
} else if (card!!.useDefaultPIN2()!!) {
imgPIN2orSecurityDelay.setImageResource(R.drawable.unlock_pin2)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, R.string.this_banknote_protected_default_PIN2_code, Toast.LENGTH_LONG).show() }
} else {
imgPIN2orSecurityDelay.setImageResource(R.drawable.lock_pin2)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, R.string.this_banknote_protected_user_PIN2_code, Toast.LENGTH_LONG).show() }
}
if (card!!.useDevelopersFirmware()!!) {
imgDeveloperVersion.setImageResource(R.drawable.ic_developer_version)
imgDeveloperVersion.visibility = View.VISIBLE
imgDeveloperVersion.setOnClickListener { Toast.makeText(this@EmptyWalletActivity, R.string.unlocked_banknote_only_development_use, Toast.LENGTH_LONG).show() }
} else
imgDeveloperVersion.visibility = View.INVISIBLE
btnNewWallet.setOnClickListener {
requestPIN2Count = 0
val intent = Intent(baseContext, RequestPINActivity::class.java)
intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString())
intent.putExtra("UID", card!!.uid)
intent.putExtra("Card", card!!.asBundle)
startActivityForResult(intent, REQUEST_CODE_REQUEST_PIN2)
}
}
public override fun onResume() {
super.onResume()
nfcManager!!.onResume()
}
public override fun onPause() {
super.onPause()
nfcManager!!.onPause()
}
public override fun onStop() {
super.onStop()
nfcManager!!.onStop()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY) {
if (resultCode == Activity.RESULT_OK) {
if (data != null) {
data.putExtra("modification", "updateAndViewCard")
data.putExtra("updateDelay", 0)
setResult(Activity.RESULT_OK, data)
}
finish()
} else {
if (data != null && data.extras!!.containsKey("UID") && data.extras!!.containsKey("Card")) {
val updatedCard = TangemCard(data.getStringExtra("UID"))
updatedCard.LoadFromBundle(data.getBundleExtra("Card"))
card = updatedCard
}
if (resultCode == CreateNewWalletActivity.RESULT_INVALID_PIN && requestPIN2Count < 2) {
requestPIN2Count++
val intent = Intent(baseContext, RequestPINActivity::class.java)
intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString())
intent.putExtra("UID", card!!.uid)
intent.putExtra("Card", card!!.asBundle)
startActivityForResult(intent, REQUEST_CODE_REQUEST_PIN2)
return
}
}
setResult(resultCode, data)
finish()
} else if (requestCode == REQUEST_CODE_REQUEST_PIN2) {
if (resultCode == Activity.RESULT_OK) {
doCreateNewWallet()
}
}
}
override fun onTagDiscovered(tag: Tag) {
try {
val isoDep = IsoDep.get(tag)
?: throw CardProtocol.TangemException(getString(R.string.wrong_tag_err))
val uid = tag.id
val sUID = Util.byteArrayToHexString(uid)
if (card!!.uid != sUID) {
// Log.d(TAG, "Invalid UID: " + sUID);
nfcManager!!.ignoreTag(isoDep.tag)
return
} else {
// Log.v(TAG, "UID: " + sUID);
}
if (lastReadSuccess) {
isoDep.timeout = 1000
} else {
isoDep.timeout = 65000
}
//lastTag = tag;
verifyCardTask = VerifyCardTask(this, card, nfcManager, isoDep, this)
verifyCardTask!!.start()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun OnReadStart(cardProtocol: CardProtocol) {
progressBar!!.post {
progressBar!!.visibility = View.VISIBLE
progressBar!!.progress = 5
}
}
override fun OnReadFinish(cardProtocol: CardProtocol?) {
verifyCardTask = null
if (cardProtocol != null) {
if (cardProtocol.error == null) {
progressBar!!.post {
progressBar!!.progress = 100
progressBar!!.progressTintList = ColorStateList.valueOf(Color.GREEN)
val intent = Intent(this@EmptyWalletActivity, VerifyCardActivity::class.java)
intent.putExtra("UID", cardProtocol.card.uid)
intent.putExtra("Card", cardProtocol.card.asBundle)
startActivityForResult(intent, REQUEST_CODE_VERIFY_CARD)
//addCard(cardProtocol.getCard());
}
} else {
// remove last UIDs because of error and no card read
progressBar!!.post {
lastReadSuccess = false
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.allReadyShowed) {
NoExtendedLengthSupportDialog().show(fragmentManager, NoExtendedLengthSupportDialog.TAG)
}
} else {
Toast.makeText(this@EmptyWalletActivity, 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() {
verifyCardTask = null
progressBar!!.postDelayed({
try {
progressBar!!.progress = 0
progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
progressBar!!.visibility = View.INVISIBLE
} catch (e: Exception) {
e.printStackTrace()
}
}, 500)
}
override fun OnReadWait(msec: Int) {
WaitSecurityDelayDialog.OnReadWait(this, msec)
}
override fun OnReadBeforeRequest(timeout: Int) {
WaitSecurityDelayDialog.onReadBeforeRequest(this, timeout)
}
override fun OnReadAfterRequest() {
WaitSecurityDelayDialog.onReadAfterRequest(this)
}
private fun doCreateNewWallet() {
val intent = Intent(this, CreateNewWalletActivity::class.java)
intent.putExtra("UID", card!!.uid)
intent.putExtra("Card", card!!.asBundle)
startActivityForResult(intent, REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY)
}
}

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -33,7 +32,7 @@
android:gravity="center_vertical"
android:text="@string/wallet_has_not_been_yet_created"
android:textAlignment="center"
android:textSize="@dimen/text_size_1_small"/>
android:textSize="@dimen/text_size_1_small" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/btnNewWallet"
@ -57,7 +56,7 @@
android:fontFamily="@font/maax"
android:text="@string/blockchain"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"/>
android:textSize="@dimen/text_size_1_small" />
<TextView
android:id="@+id/tvBlockchain"
@ -67,7 +66,7 @@
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"
tools:text="12345"/>
tools:text="12345" />
</LinearLayout>
@ -83,7 +82,7 @@
android:fontFamily="@font/maax"
android:text="@string/issuer"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"/>
android:textSize="@dimen/text_size_1_small" />
<TextView
android:id="@+id/tvIssuer"
@ -93,30 +92,7 @@
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"
tools:text="5555"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/empty_wallet_left_col_width"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
android:fontFamily="@font/maax"
android:text=""/>
<TextView
android:id="@+id/tvIssuerData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"
tools:text="11111"/>
tools:text="5555" />
</LinearLayout>
@ -138,7 +114,7 @@
android:textAlignment="center"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"/>
android:textStyle="normal|bold" />
<TextView
android:id="@+id/textView5"
@ -148,7 +124,7 @@
android:text="@string/scan_again_to_verify_the_card"
android:textAlignment="center"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_small"/>
android:textSize="@dimen/text_size_small" />
</LinearLayout>
@ -160,7 +136,7 @@
android:layout_alignParentTop="true"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
android:src="@drawable/tangem_logo_small_new"/>
android:src="@drawable/tangem_logo_small_new" />
<ImageView
android:id="@+id/imgPIN"
@ -171,7 +147,7 @@
android:layout_margin="8dp"
android:layout_marginEnd="4dp"
android:layout_toStartOf="@+id/imgPIN2orSecurityDelay"
android:src="@drawable/unlock_pin1"/>
android:src="@drawable/unlock_pin1" />
<ImageView
android:id="@+id/imgPIN2orSecurityDelay"
@ -182,7 +158,7 @@
android:layout_alignParentStart="false"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:src="@drawable/unlock_pin2"/>
android:src="@drawable/unlock_pin2" />
<ImageView
android:id="@+id/imgDeveloperVersion"
@ -192,7 +168,7 @@
android:layout_alignParentStart="true"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:src="@drawable/ic_developer_version"/>
android:src="@drawable/ic_developer_version" />
</RelativeLayout>
@ -206,6 +182,6 @@
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>

View file

@ -289,31 +289,6 @@
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/verify_card_left_col_width"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/issuer_data"
android:textSize="@dimen/text_size_1_small" />
<TextView
android:id="@+id/tvIssuerData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"
tools:text="Tangem" />
</LinearLayout>
<View
android:id="@+id/view2"
android:layout_width="match_parent"
@ -440,7 +415,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="32dp"
android:layout_marginTop="2dp">
<TextView