From 41ffc78545915c4e9027676a315e92858018ccb1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Jul 2018 18:53:17 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/domain/wallet/Blockchain.java | 52 +++++---- .../presentation/fragment/LoadedWallet.java | 109 +++++++----------- .../presentation/fragment/VerifyCard.java | 5 +- app/src/main/res/drawable/ethereum2.png | Bin 10416 -> 0 bytes .../{bat_token.png => ic_logo_bat_token.png} | Bin .../{bitcoins.png => ic_logo_bitcoin.png} | Bin ...coin_cash.png => ic_logo_bitcoin_cash.png} | Bin ...estnet.png => ic_logo_bitcoin_testnet.png} | Bin .../{ethereum.png => ic_logo_ethereum.png} | Bin ...stnet.png => ic_logo_ethereum_testnet.png} | Bin app/src/main/res/drawable/ic_logo_seed.png | Bin 0 -> 28880 bytes ...{ic_logo_small.png => ic_logo_unknown.png} | Bin app/src/main/res/layout/fr_loaded_wallet.xml | 42 +------ app/src/main/res/layout/fr_verify_card.xml | 2 +- 14 files changed, 73 insertions(+), 137 deletions(-) delete mode 100644 app/src/main/res/drawable/ethereum2.png rename app/src/main/res/drawable/{bat_token.png => ic_logo_bat_token.png} (100%) rename app/src/main/res/drawable/{bitcoins.png => ic_logo_bitcoin.png} (100%) rename app/src/main/res/drawable/{bitcoin_cash.png => ic_logo_bitcoin_cash.png} (100%) rename app/src/main/res/drawable/{bitcoins_testnet.png => ic_logo_bitcoin_testnet.png} (100%) rename app/src/main/res/drawable/{ethereum.png => ic_logo_ethereum.png} (100%) rename app/src/main/res/drawable/{ethereum_testnet.png => ic_logo_ethereum_testnet.png} (100%) create mode 100644 app/src/main/res/drawable/ic_logo_seed.png rename app/src/main/res/drawable/{ic_logo_small.png => ic_logo_unknown.png} (100%) diff --git a/app/src/main/java/com/tangem/domain/wallet/Blockchain.java b/app/src/main/java/com/tangem/domain/wallet/Blockchain.java index 8d51f652fd..34ba4cda21 100644 --- a/app/src/main/java/com/tangem/domain/wallet/Blockchain.java +++ b/app/src/main/java/com/tangem/domain/wallet/Blockchain.java @@ -7,21 +7,20 @@ import com.tangem.wallet.R; * Created by dvol on 06.08.2017. */ public enum Blockchain { - Unknown("", "", 1.0, R.drawable.ic_logo_small, ""), - Bitcoin("BTC", "BTC", 100000000.0, R.drawable.bitcoins, "Bitcoin"), - BitcoinTestNet("BTC/test", "BTC", 100000000.0, R.drawable.bitcoins_testnet, "Bitcoin Testnet"), - Ethereum("ETH", "ETH", 1.0, R.drawable.ethereum, "Ethereum"), - EthereumTestNet("ETH/test", "ETH", 1.0, R.drawable.ethereum_testnet, "Ethereum Testnet"), - Token("ETH\\XTZ", "BAT", 1.0, R.drawable.bat_token, "Ethereum"), - BitcoinCash("BCH", "BCH", 100000000.0, R.drawable.bitcoin_cash, "Bitcoin Cash"), - BitcoinCashTestNet("BCH/test", "BTC", 100000000.0, R.drawable.bitcoin_cash, "Bitcoin Cash Testnet"); + Unknown("", "", 1.0, R.drawable.ic_logo_unknown, ""), + Bitcoin("BTC", "BTC", 100000000.0, R.drawable.ic_logo_bitcoin, "Bitcoin"), + BitcoinTestNet("BTC/test", "BTC", 100000000.0, R.drawable.ic_logo_bitcoin_testnet, "Bitcoin Testnet"), + Ethereum("ETH", "ETH", 1.0, R.drawable.ic_logo_ethereum, "Ethereum"), + EthereumTestNet("ETH/test", "ETH", 1.0, R.drawable.ic_logo_ethereum_testnet, "Ethereum Testnet"), + Token("ETH\\XTZ", "BAT", 1.0, R.drawable.ic_logo_bat_token, "Ethereum"), + BitcoinCash("BCH", "BCH", 100000000.0, R.drawable.ic_logo_bitcoin_cash, "Bitcoin Cash"), + BitcoinCashTestNet("BCH/test", "BTC", 100000000.0, R.drawable.ic_logo_bitcoin_cash, "Bitcoin Cash Testnet"); - - Blockchain(String ID, String Currency, double Multiplier, int ImageResource, String officialName) { + Blockchain(String ID, String currency, double multiplier, int imageResource, String officialName) { mID = ID; - mCurrency = Currency; - mMultiplier = Multiplier; - mImageResource = ImageResource; + mCurrency = currency; + mMultiplier = multiplier; + mImageResource = imageResource; mOfficialName = officialName; } @@ -68,7 +67,7 @@ public enum Blockchain { return result; } - public int getImageResource() { + private int getImageResource() { return mImageResource; } @@ -81,22 +80,25 @@ public enum Blockchain { int resourceId = context.getResources().getIdentifier(name + "_token", "drawable", context.getPackageName()); if (resourceId <= 0) - return R.drawable.ethereum; + return R.drawable.ic_logo_ethereum; return resourceId; } - public int getLogoImageResource(String tokenSymbol) { - if (Strings.isNullOrEmpty(tokenSymbol)) - return getImageResource(); + public int getLogoImageResource(String blockchainID, String symbolName) { + switch (blockchainID) { + case "BTC": + return R.drawable.ic_logo_bitcoin; - switch (tokenSymbol) { - case "SEED": - return R.drawable.bitcoins; - case "SEEDq": - return R.drawable.bitcoins; - case "SEEDqq": - return R.drawable.bitcoins; + case "ETH\\XTZ": + if (symbolName.equals("SEED")) + return R.drawable.ic_logo_seed; + else + return R.drawable.ic_logo_ethereum; + + case "ETH": + return R.drawable.ic_logo_ethereum; } return R.drawable.tangem2; } + } 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 b0fad673b0..0b2b4054f2 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java +++ b/app/src/main/java/com/tangem/presentation/fragment/LoadedWallet.java @@ -83,7 +83,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre private static final int REQUEST_CODE_SEND_PAYMENT = 1; private static final int REQUEST_CODE_VERIFY_CARD = 4; - private static final int REQUEST_CODE_PURGE = 2; private static final int REQUEST_CODE_REQUEST_PIN2_FOR_PURGE = 3; private static final int REQUEST_CODE_ENTER_NEW_PIN = 5; @@ -91,39 +90,25 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre private static final int REQUEST_CODE_REQUEST_PIN2_FOR_SWAP_PIN = 7; private static final int REQUEST_CODE_SWAP_PIN = 8; + private NfcManager mNfcManager; private TangemCard mCard; - private TextView tvCardID; - private TextView tvBalance; - private TextView tvOffline; - private TextView tvBalanceEquivalent; - private TextView tvWallet; - private TextView tvInputs; - private TextView tvError; - private TextView tvMessage; - private TextView tvIssuer; - private TextView tvIssuerData; - private TextView tvBlockchain; - private TextView tvLastInput; - private TextView tvLastOutput; - private TextView lbLastOutput; - private TextView tvValidationNode; - private TextView tvHeader, tvCaution; + private Tag lastTag; + + private SwipeRefreshLayout mSwipeRefreshLayout; + private RelativeLayout rlProgressBar; + private TextView tvCardID, tvBalance, tvOffline, tvBalanceEquivalent, tvWallet, tvInputs, tvError, tvMessage, tvIssuer, tvBlockchain, tvValidationNode, tvHeader, tvCaution; private ProgressBar progressBar; private ImageView ivBlockchain, ivPIN, ivPIN2orSecurityDelay, ivDeveloperVersion; - private SwipeRefreshLayout mSwipeRefreshLayout; + private AppCompatButton btnExtract; + private List updateTasks = new ArrayList<>(); - private NfcManager mNfcManager; private boolean lastReadSuccess = true; private VerifyCardTask verifyCardTask = null; private int requestPIN2Count = 0; - private Timer timerHideErrorAndMessage = null; private String newPIN = "", newPIN2 = ""; - private AppCompatButton btnExtract; - private FloatingActionButton fabInfo; - private Tag lastTag; - private ImageView ivTangemCard; - private RelativeLayout rlProgressBar; + private CardProtocol mCardProtocol; + private int scanTimes = 0; public LoadedWallet() { @@ -242,7 +227,8 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre } } - if (updateTasks.size() == 0) mSwipeRefreshLayout.setRefreshing(false); + if (updateTasks.size() == 0) + mSwipeRefreshLayout.setRefreshing(false); } } @@ -578,17 +564,15 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre mSwipeRefreshLayout = v.findViewById(R.id.swipe_container); progressBar = v.findViewById(R.id.progressBar); rlProgressBar = v.findViewById(R.id.rlProgressBar); - ivTangemCard = v.findViewById(R.id.ivTangemCard); + ImageView ivTangemCard = v.findViewById(R.id.ivTangemCard); tvBalance = v.findViewById(R.id.tvBalance); tvOffline = v.findViewById(R.id.tvOffline); tvCardID = v.findViewById(R.id.tvCardID); tvWallet = v.findViewById(R.id.tvWallet); tvInputs = v.findViewById(R.id.tvInputs); - tvLastOutput = v.findViewById(R.id.tvLastOutput); tvError = v.findViewById(R.id.tvError); tvMessage = v.findViewById(R.id.tvMessage); tvIssuer = v.findViewById(R.id.tvIssuer); - tvIssuerData = v.findViewById(R.id.tvIssuerData); tvHeader = v.findViewById(R.id.tvHeader); tvCaution = v.findViewById(R.id.tvCaution); ImageView imgLookup = v.findViewById(R.id.imgLookup); @@ -600,7 +584,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre ivPIN2orSecurityDelay = v.findViewById(R.id.imgPIN2orSecurityDelay); ivDeveloperVersion = v.findViewById(R.id.imgDeveloperVersion); ImageView ivQR = v.findViewById(R.id.qrWallet); - fabInfo = v.findViewById(R.id.fabInfo); + FloatingActionButton fabInfo = v.findViewById(R.id.fabInfo); FloatingActionButton fabNFC = v.findViewById(R.id.fabNFC); AppCompatButton btnLoad = v.findViewById(R.id.btnLoad); btnExtract = v.findViewById(R.id.btnExtract); @@ -632,6 +616,11 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre mSwipeRefreshLayout.postDelayed(this::onRefresh, 1000); } + startVerify(lastTag); + + tvWallet.setText(mCard.getWallet()); + + // set listeners imgLookup.setOnClickListener(v15 -> { if (!mCard.hasBalanceInfo()) return; CoinEngine engineClick = CoinEngineFactory.Create(mCard.getBlockchain()); @@ -653,7 +642,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre } catch (ActivityNotFoundException e) { e.printStackTrace(); } - } ); @@ -666,7 +654,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre } }); - startVerify(lastTag); fabNFC.setOnClickListener(view -> { Intent intent = new Intent(getContext(), MainActivity.class); @@ -700,8 +687,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre startActivityForResult(intent, REQUEST_CODE_SEND_PAYMENT); }); - tvWallet.setText(mCard.getWallet()); - return v; } @@ -748,7 +733,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre case REQUEST_CODE_ENTER_NEW_PIN: if (resultCode == Activity.RESULT_OK) { if (data != null) { - if (Objects.requireNonNull(data.getExtras()).containsKey("confirmPIN")) { + if (data.getExtras() != null && data.getExtras().containsKey("confirmPIN")) { Intent intent = new Intent(getContext(), RequestPINActivity.class); intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString()); intent.putExtra("UID", mCard.getUID()); @@ -767,7 +752,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre case REQUEST_CODE_ENTER_NEW_PIN2: if (resultCode == Activity.RESULT_OK) { if (data != null) { - if (Objects.requireNonNull(data.getExtras()).containsKey("confirmPIN2")) { + if (data.getExtras() != null && data.getExtras().containsKey("confirmPIN2")) { Intent intent = new Intent(getContext(), RequestPINActivity.class); intent.putExtra("mode", RequestPINActivity.Mode.RequestPIN2.toString()); intent.putExtra("UID", mCard.getUID()); @@ -785,9 +770,11 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre break; case REQUEST_CODE_REQUEST_PIN2_FOR_SWAP_PIN: if (resultCode == Activity.RESULT_OK) { - if (newPIN.equals("")) newPIN = mCard.getPIN(); + if (newPIN.equals("")) + newPIN = mCard.getPIN(); - if (newPIN2.equals("")) newPIN2 = PINStorage.getPIN2(); + if (newPIN2.equals("")) + newPIN2 = PINStorage.getPIN2(); PINSwapWarningDialog pinSwapWarningDialog = new PINSwapWarningDialog(); pinSwapWarningDialog.setOnRefreshPage(this::startSwapPINActivity); @@ -805,17 +792,18 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre if (resultCode == Activity.RESULT_OK) { if (data == null) { data = new Intent(); - data.putExtra("UID", mCard.getUID()); data.putExtra("Card", mCard.getAsBundle()); data.putExtra("modification", "delete"); - } else { + } else data.putExtra("modification", "update"); + + if (getActivity() != null) { + getActivity().setResult(Activity.RESULT_OK, data); + getActivity().finish(); } - Objects.requireNonNull(getActivity()).setResult(Activity.RESULT_OK, data); - getActivity().finish(); } else { - if (data != null && data.getExtras().containsKey("UID") && data.getExtras().containsKey("Card")) { + if (data != null && data.getExtras() != null && data.getExtras().containsKey("UID") && data.getExtras().containsKey("Card")) { TangemCard updatedCard = new TangemCard(data.getStringExtra("UID")); updatedCard.LoadFromBundle(data.getBundleExtra("Card")); mCard = updatedCard; @@ -847,17 +835,18 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre if (resultCode == Activity.RESULT_OK) { if (data == null) { data = new Intent(); - data.putExtra("UID", mCard.getUID()); data.putExtra("Card", mCard.getAsBundle()); data.putExtra("modification", "delete"); } else { data.putExtra("modification", "update"); } - Objects.requireNonNull(getActivity()).setResult(Activity.RESULT_OK, data); - getActivity().finish(); + if (getActivity() != null) { + getActivity().setResult(Activity.RESULT_OK, data); + getActivity().finish(); + } } else { - if (data != null && data.getExtras().containsKey("UID") && data.getExtras().containsKey("Card")) { + if (data != null && data.getExtras() != null && data.getExtras().containsKey("UID") && data.getExtras().containsKey("Card")) { TangemCard updatedCard = new TangemCard(data.getStringExtra("UID")); updatedCard.LoadFromBundle(data.getBundleExtra("Card")); mCard = updatedCard; @@ -976,7 +965,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre RateInfoTask taskRate = new RateInfoTask(); - ExchangeRequest rate = ExchangeRequest.GetRate(mCard.getWallet(), "ethereum", "ethereum"); + ExchangeRequest rate = ExchangeRequest.GetRate(mCard.getWallet(), "ic_logo_ethereum", "ic_logo_ethereum"); taskRate.execute(rate); } else if (mCard.getBlockchain() == Blockchain.Token) { @@ -996,7 +985,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre RateInfoTask taskRate = new RateInfoTask(); - ExchangeRequest rate = ExchangeRequest.GetRate(mCard.getWallet(), "basic-attention-token", "ethereum"); + ExchangeRequest rate = ExchangeRequest.GetRate(mCard.getWallet(), "basic-attention-token", "ic_logo_ethereum"); taskRate.execute(rate); } @@ -1031,7 +1020,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre } else { isoDep.setTimeout(65000); } - //lastTag = tag; + verifyCardTask = new VerifyCardTask(getContext(), mCard, mNfcManager, isoDep, this); verifyCardTask.start(); @@ -1058,11 +1047,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre }); } - private CardProtocol mCardProtocol; - - // private boolean needOpenVerify; - private int scanTimes = 0; - @Override public void OnReadFinish(final CardProtocol cardProtocol) { verifyCardTask = null; @@ -1219,15 +1203,8 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre else tvInputs.setTextColor(ContextCompat.getColor(Objects.requireNonNull(getContext()), R.color.confirmed)); -// if (btnSend != null) { -// btnSend.setText(mCard.getOutputsDescription()); -// } - - tvLastInput.setText(mCard.getLastInputDescription()); -// tvLastOutput.setText(mCard.getLastOutputDescription()); - tvBlockchain.setText(mCard.getBlockchainName()); - ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(this.getContext(), mCard.getTokenSymbol())); + ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(getContext(), mCard.getTokenSymbol())); if (tvValidationNode != null) { tvValidationNode.setText(mCard.getValidationNodeDescription()); @@ -1267,12 +1244,6 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre else btnExtract.setEnabled(false); -// if (tvPurge != null) -// if (mCard.hasBalanceInfo()) -// tvPurge.setEnabled(true); -// else -// tvPurge.setEnabled(false); - tvIssuer.setText(mCard.getIssuerDescription()); timerHideErrorAndMessage = new Timer(); 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 38b94bd0de..9a2cdab405 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java +++ b/app/src/main/java/com/tangem/presentation/fragment/VerifyCard.java @@ -88,7 +88,7 @@ public class VerifyCard extends Fragment implements NfcAdapter.ReaderCallback { tvManufacturer = v.findViewById(R.id.tvManufacturerInfo); tvCardIdentity = v.findViewById(R.id.tvCardIdentity); tvRegistrationDate = v.findViewById(R.id.tvCardRegistredDate); - ivBlockchain = v.findViewById(R.id.imgBlockchain); + ivBlockchain = v.findViewById(R.id.ivBlockchain); ivPIN = v.findViewById(R.id.imgPIN); ivPIN2orSecurityDelay = v.findViewById(R.id.imgPIN2orSecurityDelay); ivDeveloperVersion = v.findViewById(R.id.imgDeveloperVersion); @@ -356,8 +356,7 @@ public class VerifyCard extends Fragment implements NfcAdapter.ReaderCallback { tvBlockchain.setText(mCard.getBlockchainName()); - ivBlockchain.setImageResource(mCard.getBlockchain().getImageResource(getContext(), mCard.getTokenSymbol())); - + ivBlockchain.setImageResource(mCard.getBlockchain().getLogoImageResource(mCard.getBlockchainID(), mCard.getTokenSymbol())); if (mCard.isReusable()) tvReusable.setText(R.string.reusable); diff --git a/app/src/main/res/drawable/ethereum2.png b/app/src/main/res/drawable/ethereum2.png deleted file mode 100644 index 62400e89751ee15e0bab328fbbdffce6bd7b7615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10416 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 - - - - - - - - - - - - - - - - - + + android:layout_marginTop="215dp" + android:visibility="gone">