Updated on 2026-08-14

This commit is contained in:
Tangem 2018-06-05 17:29:18 +03:00
parent d71ee3f4d5
commit cc71c599f7
6 changed files with 315 additions and 313 deletions

View file

@ -3,6 +3,8 @@ package com.tangem.presentation.adapter;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
@ -31,12 +33,16 @@ import static com.tangem.domain.wallet.TangemCard.CountOurTx;
public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardViewHolder> {
public static class CardViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView tvBalance, tvOffline, tvBalanceEquivalent, tvWallet, tvInputs, tvStatusInBlockchain, tvCardID, tvLastInput, lbLastInput, lbLastOutput, tvLastOutput, tvBlockchain;
TextView tvType, tvTypeBg, tvVoid;
ImageView imgBlockchain, imgSecurityNotification;
View llCardLoaded, llCardEmpty, llCardError, llCardPurged;
public interface UiCallbacks {
void onViewCard(Bundle cardInfo);
}
static class CardViewHolder extends RecyclerView.ViewHolder {
private CardView cv;
private TextView tvBalance, tvOffline, tvBalanceEquivalent, tvWallet, tvInputs, tvStatusInBlockchain, tvCardID, tvLastInput, lbLastInput, lbLastOutput, tvLastOutput, tvBlockchain;
private TextView tvType, tvTypeBg, tvVoid;
private ImageView imgBlockchain, imgSecurityNotification;
private View llCardLoaded, llCardEmpty, llCardError, llCardPurged;
CardViewHolder(View itemView) {
super(itemView);
@ -46,23 +52,15 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
tvBalanceEquivalent = itemView.findViewById(R.id.tvBalanceEquivalent);
tvWallet = itemView.findViewById(R.id.tvWallet);
tvCardID = itemView.findViewById(R.id.tvCardID);
if (tvCardID != null) tvCardID.requestFocus();
tvType = itemView.findViewById(R.id.tvType);
tvTypeBg = itemView.findViewById(R.id.tvTypeBg);
tvVoid = itemView.findViewById(R.id.tvVoid);
if (tvCardID != null) {
tvCardID.requestFocus();
}
tvInputs = itemView.findViewById(R.id.tvInputs);
tvLastInput = itemView.findViewById(R.id.tvLastInput);
lbLastInput = itemView.findViewById(R.id.lbLastInput);
lbLastOutput = itemView.findViewById(R.id.lbLastOutput);
tvLastOutput = itemView.findViewById(R.id.tvLastOutput);
tvBlockchain = itemView.findViewById(R.id.tvBlockchain);
imgBlockchain = itemView.findViewById(R.id.imgBlockchain);
llCardLoaded = itemView.findViewById(R.id.cardLoaded);
@ -73,10 +71,6 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
}
}
public interface UiCallbacks {
void onViewCard(Bundle cardInfo);
}
private LayoutInflater mLayoutInflater;
private Context mContext;
private UiCallbacks mUiCallbacks;
@ -101,9 +95,232 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
}
}
@Override
public int getItemCount() {
return mCards == null ? 0 : mCards.size();
}
@NonNull
@Override
public CardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_card, parent, false);
CardViewHolder cvh = new CardViewHolder(v);
return cvh;
}
@Override
public void onBindViewHolder(@NonNull CardViewHolder holder, int position) {
try {
TangemCard card = mCards.get(position);
CoinEngine engine = CoinEngineFactory.Create(card.getBlockchain());
int color = android.R.color.black;
switch (card.getStatus()) {
case NotPersonalized:
color = R.color.card_state_error;
holder.llCardError.setVisibility(View.VISIBLE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.imgBlockchain.setVisibility(View.INVISIBLE);
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
holder.tvCardID.setVisibility(View.INVISIBLE);
holder.tvCardID.setError(null);
holder.tvType.setVisibility(View.INVISIBLE);
holder.tvTypeBg.setVisibility(View.INVISIBLE);
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Empty:
color = R.color.card_state_empty;
holder.llCardEmpty.setVisibility(View.VISIBLE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.imgBlockchain.setVisibility(View.VISIBLE);
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else {
holder.imgBlockchain.setVisibility(View.INVISIBLE);
}
if (card.useDefaultPIN1() || card.useDefaultPIN2() || card.getPauseBeforePIN2() > 0 || card.useDevelopersFirmware()) {
//holder.imgSecurityNotification.setVisibility(View.VISIBLE);
} else {
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
}
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setError(null);
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
if (card.isReusable()) {
holder.tvType.setText(R.string.reusable_reusable);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.type_wallet));
} else {
holder.tvType.setText(R.string.banknote_banknote);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.type_banknote));
}
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Purged:
color = R.color.card_state_purged;
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.VISIBLE);
holder.imgBlockchain.setVisibility(View.VISIBLE);
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else
holder.imgBlockchain.setVisibility(View.INVISIBLE);
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvCardID.setError(null);
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
holder.tvType.setText(R.string.banknote_banknote);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.type_banknote));
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Loaded:
holder.llCardLoaded.setVisibility(View.VISIBLE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvWallet.setText(card.getShortWalletString());
holder.tvBlockchain.setText(card.getBlockchainName());
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else {
holder.imgBlockchain.setVisibility(View.INVISIBLE);
}
if (!engine.HasBalanceInfo(card)) {
color = R.color.card_state_loaded;
} else if (engine.IsBalanceNotZero(card)) {
color = R.color.card_state_loaded_with_coins;
} else {
color = R.color.card_state_loaded_with_zero;
}
if (holder.tvStatusInBlockchain != null) {
if (card.hasBalanceInfo() && card.hasUnspentInfo() && card.getUnspentTransactions().size() > 0) {
holder.tvStatusInBlockchain.setText(R.string.ok);
holder.tvStatusInBlockchain.setTextColor(ContextCompat.getColor(mContext, R.color.confirmed));
} else if (!card.hasBalanceInfo() || !card.hasUnspentInfo()) {
holder.tvStatusInBlockchain.setText(R.string.no_data_string);
holder.tvStatusInBlockchain.setTextColor(ContextCompat.getColor(mContext, R.color.primary_dark));
} else {
holder.tvStatusInBlockchain.setText(R.string.not_found);
holder.tvStatusInBlockchain.setTextColor(ContextCompat.getColor(mContext, R.color.not_confirmed));
}
}
if (engine.HasBalanceInfo(card) || card.getOfflineBalance() == null) {
String balance = engine.GetBalance(card);
holder.tvBalance.setText(balance);
holder.tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(card));
holder.tvBalance.setTextColor(Color.BLACK);
holder.tvOffline.setVisibility(View.INVISIBLE);
} else {
String offlineAmount = engine.ConvertByteArrayToAmount(card, card.getOfflineBalance());
holder.tvBalance.setText(engine.GetAmountDescription(card, offlineAmount));
holder.tvBalanceEquivalent.setText(engine.GetAmountEqualentDescriptor(card, offlineAmount));
holder.tvOffline.setVisibility(View.VISIBLE);
}
if (!card.getAmountEquivalentDescriptionAvailable()) {
//holder.tvBalanceEquivalent.setError("Service unavailable");
} else {
holder.tvBalanceEquivalent.setError(null);
}
String error = card.getError();
//holder.tvCardID.setError(error);
if (holder.tvInputs != null) {
holder.tvInputs.setText(card.getInputsDescription());
}
boolean visibleFlag = engine != null ? engine.InOutPutVisible() : true;
int visibleIOPuts = visibleFlag ? View.VISIBLE : View.GONE;
if (holder.tvLastInput != null) {
holder.tvLastInput.setText(card.getLastInputDescription());
if (card.getLastInputDescription().contains("awaiting"))
holder.tvLastInput.setTextColor(ContextCompat.getColor(mContext, R.color.not_confirmed));
else if (card.getLastInputDescription().contains("None") || card.getLastInputDescription().contains("--"))
holder.tvLastInput.setTextColor(ContextCompat.getColor(mContext, R.color.primary_dark));
else
holder.tvLastInput.setTextColor(ContextCompat.getColor(mContext, R.color.confirmed));
holder.tvLastInput.setVisibility(visibleIOPuts);
}
if (holder.lbLastInput != null) {
holder.lbLastInput.setVisibility(visibleIOPuts);
}
if (holder.tvLastOutput != null) {
holder.tvLastOutput.setText(card.getLastOutputDescription());
holder.tvLastOutput.setVisibility(visibleIOPuts);
}
if (holder.lbLastOutput != null) {
holder.lbLastOutput.setVisibility(visibleIOPuts);
}
if (card.useDefaultPIN1() || card.useDefaultPIN2() || card.getPauseBeforePIN2() > 0 || card.useDevelopersFirmware()) {
// holder.imgSecurityNotification.setVisibility(View.VISIBLE);
} else {
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
}
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
if (card.isReusable()) {
holder.tvType.setText(R.string.reusable_reusable);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.type_wallet));
holder.tvVoid.setVisibility(View.INVISIBLE);
} else {
holder.tvType.setText(R.string.banknote_banknote);
if (card.getRemainingSignatures() != card.getMaxSignatures()) {
holder.tvVoid.setVisibility(View.VISIBLE);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.msg_err));
} else {
holder.tvVoid.setVisibility(View.INVISIBLE);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.type_banknote));
}
}
break;
}
if (card.useDevelopersFirmware()) {
holder.tvType.setText(R.string.developer_kit);
holder.tvTypeBg.setBackgroundColor(ContextCompat.getColor(mContext, R.color.fab));
holder.tvVoid.setVisibility(View.INVISIBLE);
}
holder.cv.setOnClickListener(new CardClickListener(position));
holder.cv.setCardBackgroundColor(mContext.getResources().getColor(color));
} catch (Exception e) {
Log.e("onBindViewHolder", e.toString());
}
}
public void onSaveInstanceState(Bundle outstate) {
ArrayList<String> UIDs = new ArrayList<String>(mCards.size());
ArrayList<String> UIDs = new ArrayList<>(mCards.size());
for (TangemCard card : mCards) {
Bundle B = new Bundle();
card.SaveToBundle(B);
@ -154,7 +371,6 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
removeCard(i);
}
public void updateCard(TangemCard card) {
int i;
for (i = 0; i < mCards.size(); i++) {
@ -185,7 +401,6 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
}
}
public void UpdateWalletCoutConfirmTx(String walletAddress, BigInteger nonce) {
for (TangemCard c : mCards) {
if (c.getWallet().equals(walletAddress)) {
@ -287,9 +502,7 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
if (c.getWallet().equals(walletAddress)) {
try {
c.getHaedersInfo();
c.UpdateHeaderInfo(new TangemCard.HeaderInfo(
jsHeader.getInt("block_height"),
jsHeader.getInt("timestamp")));
c.UpdateHeaderInfo(new TangemCard.HeaderInfo(jsHeader.getInt("block_height"), jsHeader.getInt("timestamp")));
} catch (JSONException e) {
e.printStackTrace();
}
@ -353,237 +566,9 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
}
}
@Override
public int getItemCount() {
return mCards == null ? 0 : mCards.size();
}
@Override
public CardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_card, parent, false);
CardViewHolder cvh = new CardViewHolder(v);
return cvh;
}
@Override
public void onBindViewHolder(CardViewHolder holder, int position) {
try {
TangemCard card = mCards.get(position);
CoinEngine engine = CoinEngineFactory.Create(card.getBlockchain());
int color = android.R.color.black;
switch (card.getStatus()) {
case NotPersonalized:
color = R.color.card_state_error;
holder.llCardError.setVisibility(View.VISIBLE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.imgBlockchain.setVisibility(View.INVISIBLE);
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
holder.tvCardID.setVisibility(View.INVISIBLE);
holder.tvCardID.setError(null);
holder.tvType.setVisibility(View.INVISIBLE);
holder.tvTypeBg.setVisibility(View.INVISIBLE);
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Empty:
color = R.color.card_state_empty;
holder.llCardEmpty.setVisibility(View.VISIBLE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.imgBlockchain.setVisibility(View.VISIBLE);
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else {
holder.imgBlockchain.setVisibility(View.INVISIBLE);
}
if (card.useDefaultPIN1() || card.useDefaultPIN2() || card.getPauseBeforePIN2() > 0 || card.useDevelopersFirmware()) {
//holder.imgSecurityNotification.setVisibility(View.VISIBLE);
} else {
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
}
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setError(null);
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
if (card.isReusable()) {
holder.tvType.setText(" REUSABLE REUSABLE ");
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.type_wallet, mContext.getTheme()));
} else {
holder.tvType.setText(" BANKNOTE BANKNOTE");
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.type_banknote, mContext.getTheme()));
}
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Purged:
color = R.color.card_state_purged;
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardLoaded.setVisibility(View.GONE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.VISIBLE);
holder.imgBlockchain.setVisibility(View.VISIBLE);
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else {
holder.imgBlockchain.setVisibility(View.INVISIBLE);
}
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvCardID.setError(null);
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
holder.tvType.setText(" BANKNOTE BANKNOTE");
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.type_banknote, mContext.getTheme()));
holder.tvVoid.setVisibility(View.INVISIBLE);
break;
case Loaded:
holder.llCardLoaded.setVisibility(View.VISIBLE);
holder.llCardError.setVisibility(View.GONE);
holder.llCardEmpty.setVisibility(View.GONE);
holder.llCardPurged.setVisibility(View.GONE);
holder.tvCardID.setText(card.getCIDDescription());
holder.tvCardID.setVisibility(View.VISIBLE);
holder.tvWallet.setText(card.getShortWalletString());
holder.tvBlockchain.setText(card.getBlockchainName());
if (card.getBlockchain() != null) {
holder.imgBlockchain.setImageResource(card.getBlockchain().getImageResource(this.mContext, card.getTokenSymbol()));
holder.imgBlockchain.setVisibility(View.VISIBLE);
} else {
holder.imgBlockchain.setVisibility(View.INVISIBLE);
}
if (!engine.HasBalanceInfo(card)) {
color = R.color.card_state_loaded;
} else if (engine.IsBalanceNotZero(card)) {
color = R.color.card_state_loaded_with_coins;
} else {
color = R.color.card_state_loaded_with_zero;
}
if (holder.tvStatusInBlockchain != null) {
if (card.hasBalanceInfo() && card.hasUnspentInfo() && card.getUnspentTransactions().size() > 0) {
holder.tvStatusInBlockchain.setText("Ok");
holder.tvStatusInBlockchain.setTextColor(mContext.getResources().getColor(R.color.confirmed, mContext.getTheme()));
} else if (!card.hasBalanceInfo() || !card.hasUnspentInfo()) {
holder.tvStatusInBlockchain.setText("-- -- --");
holder.tvStatusInBlockchain.setTextColor(mContext.getResources().getColor(R.color.primary_dark, mContext.getTheme()));
} else {
holder.tvStatusInBlockchain.setText("Not found");
holder.tvStatusInBlockchain.setTextColor(mContext.getResources().getColor(R.color.not_confirmed, mContext.getTheme()));
}
}
if (engine.HasBalanceInfo(card) || card.getOfflineBalance() == null) {
String balance = engine.GetBalance(card);
holder.tvBalance.setText(balance);
holder.tvBalanceEquivalent.setText(engine.GetBalanceEquivalent(card));
holder.tvBalance.setTextColor(Color.BLACK);
holder.tvOffline.setVisibility(View.INVISIBLE);
} else {
String offlineAmount = engine.ConvertByteArrayToAmount(card, card.getOfflineBalance());
holder.tvBalance.setText(engine.GetAmountDescription(card, offlineAmount));
holder.tvBalanceEquivalent.setText(engine.GetAmountEqualentDescriptor(card, offlineAmount));
holder.tvOffline.setVisibility(View.VISIBLE);
}
if (!card.getAmountEquivalentDescriptionAvailable()) {
//holder.tvBalanceEquivalent.setError("Service unavailable");
} else {
holder.tvBalanceEquivalent.setError(null);
}
String error = card.getError();
//holder.tvCardID.setError(error);
if (holder.tvInputs != null) {
holder.tvInputs.setText(card.getInputsDescription());
}
boolean visibleFlag = engine != null ? engine.InOutPutVisible() : true;
int visibleIOPuts = visibleFlag ? View.VISIBLE : View.GONE;
if (holder.tvLastInput != null) {
holder.tvLastInput.setText(card.getLastInputDescription());
if (card.getLastInputDescription().contains("awaiting")) {
holder.tvLastInput.setTextColor(mContext.getResources().getColor(R.color.not_confirmed, mContext.getTheme()));
} else if (card.getLastInputDescription().contains("None") || card.getLastInputDescription().contains("--")) {
holder.tvLastInput.setTextColor(mContext.getResources().getColor(R.color.primary_dark, mContext.getTheme()));
} else {
holder.tvLastInput.setTextColor(mContext.getResources().getColor(R.color.confirmed, mContext.getTheme()));
}
holder.tvLastInput.setVisibility(visibleIOPuts);
}
if (holder.lbLastInput != null) {
holder.lbLastInput.setVisibility(visibleIOPuts);
}
if (holder.tvLastOutput != null) {
holder.tvLastOutput.setText(card.getLastOutputDescription());
holder.tvLastOutput.setVisibility(visibleIOPuts);
}
if (holder.lbLastOutput != null) {
holder.lbLastOutput.setVisibility(visibleIOPuts);
}
if (card.useDefaultPIN1() || card.useDefaultPIN2() || card.getPauseBeforePIN2() > 0 || card.useDevelopersFirmware()) {
//holder.imgSecurityNotification.setVisibility(View.VISIBLE);
} else {
holder.imgSecurityNotification.setVisibility(View.INVISIBLE);
}
holder.tvType.setVisibility(View.VISIBLE);
holder.tvTypeBg.setVisibility(View.VISIBLE);
if (card.isReusable()) {
holder.tvType.setText(" REUSABLE REUSABLE ");
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.type_wallet, mContext.getTheme()));
holder.tvVoid.setVisibility(View.INVISIBLE);
} else {
holder.tvType.setText(" BANKNOTE BANKNOTE");
if (card.getRemainingSignatures() != card.getMaxSignatures()) {
holder.tvVoid.setVisibility(View.VISIBLE);
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.msg_err, mContext.getTheme()));
} else {
holder.tvVoid.setVisibility(View.INVISIBLE);
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.type_banknote, mContext.getTheme()));
}
}
break;
}
if (card.useDevelopersFirmware()) {
holder.tvType.setText(" DEVELOPER KIT ");
holder.tvTypeBg.setBackgroundColor(mContext.getResources().getColor(R.color.fab, mContext.getTheme()));
holder.tvVoid.setVisibility(View.INVISIBLE);
}
holder.cv.setOnClickListener(new CardClickListener(position));
holder.cv.setCardBackgroundColor(mContext.getResources().getColor(color));
} catch (Exception e) {
Log.e("onBindViewHolder", e.toString());
}
}
private class CardClickListener implements View.OnClickListener {
TangemCard card;
int pos;
private TangemCard card;
private int pos;
CardClickListener(int position) {
card = mCards.get(position);
@ -600,4 +585,5 @@ public class CardListAdapter extends RecyclerView.Adapter<CardListAdapter.CardVi
mUiCallbacks.onViewCard(b);
}
}
}

View file

@ -111,6 +111,7 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback,
progressBar = result.findViewById(R.id.progressBar);
progressBar.setProgressTintList(ColorStateList.valueOf(Color.DKGRAY));
RecyclerView rvCards = result.findViewById(R.id.lvCards);
rvCards.setLayoutManager(new LinearLayoutManager(getContext()));
mCardListAdapter = new CardListAdapter(getActivity().getLayoutInflater(), savedInstanceState, this);
rvCards.setAdapter(mCardListAdapter);
@ -218,7 +219,6 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback,
@Override
public void onResume() {
super.onResume();
mNfcManager.onResume();
}