Updated on 2026-08-14

This commit is contained in:
Tangem 2018-07-07 00:58:19 +03:00
parent 28f58e8059
commit cb6678380f
10 changed files with 302 additions and 192 deletions

View file

@ -3,6 +3,7 @@ package com.tangem.presentation.activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.AssetManager;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.os.Bundle;
@ -23,6 +24,7 @@ import android.widget.TextView;
import com.scottyab.rootbeer.RootBeer;
import com.skyfishjy.library.RippleBackground;
import com.tangem.domain.cardReader.FW;
import com.tangem.domain.wallet.DeviceNFCAntennaLocation;
import com.tangem.domain.wallet.Issuer;
import com.tangem.domain.wallet.LastSignStorage;
@ -217,10 +219,8 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI
if (LastSignStorage.needInit()) {
LastSignStorage.Init(context);
}
if(Issuer.needInit())
{
Issuer.Init(context);
}
if( Issuer.needInit() ) Issuer.Init(context);
if( FW.needInit() ) FW.Init(context);
}
public void showCleanButton() {

View file

@ -35,9 +35,11 @@ import com.google.zxing.WriterException;
import com.tangem.data.network.request.ElectrumRequest;
import com.tangem.data.network.request.ExchangeRequest;
import com.tangem.data.network.request.InfuraRequest;
import com.tangem.data.network.request.VerificationServerProtocol;
import com.tangem.data.network.task.ElectrumTask;
import com.tangem.data.network.task.ExchangeTask;
import com.tangem.data.network.task.InfuraTask;
import com.tangem.data.network.task.VerificationServerTask;
import com.tangem.data.nfc.VerifyCardTask;
import com.tangem.domain.cardReader.CardProtocol;
import com.tangem.domain.cardReader.NfcManager;
@ -113,7 +115,8 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
private ImageView ivPIN2orSecurityDelay;
private ImageView ivDeveloperVersion;
private SwipeRefreshLayout mSwipeRefreshLayout;
private List<UpdateWalletInfoTask> updateTasks = new ArrayList<>();
private List<AsyncTask> updateTasks = new ArrayList<>();
OnlineVerifyTask onlineVerifyTask;
private NfcManager mNfcManager;
private boolean lastReadSuccess = true;
private VerifyCardTask verifyCardTask = null;
@ -561,6 +564,42 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
}
}
private class OnlineVerifyTask extends VerificationServerTask {
@Override
protected void onCancelled() {
super.onCancelled();
updateTasks.remove(this);
onlineVerifyTask=null;
if (updateTasks.size() == 0) mSwipeRefreshLayout.setRefreshing(false);
}
@Override
protected void onPostExecute(List<VerificationServerProtocol.Request> requests) {
super.onPostExecute(requests);
Log.i("OnlineVerifyTask", "onPostExecute[" + String.valueOf(updateTasks.size()) + "]");
updateTasks.remove(this);
onlineVerifyTask=null;
for (VerificationServerProtocol.Request request : requests) {
if (request.error == null) {
VerificationServerProtocol.Verify.Answer answer = (VerificationServerProtocol.Verify.Answer) request.answer;
if (answer.error == null) {
mCard.setOnlineVerified(answer.results[0].passed);
} else {
mCard.setOnlineVerified(null);
errorOnUpdate(request.error);
}
} else {
mCard.setOnlineVerified(null);
errorOnUpdate(request.error);
}
}
if (updateTasks.size() == 0) mSwipeRefreshLayout.setRefreshing(false);
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -639,6 +678,12 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
mSwipeRefreshLayout.postDelayed(this::onRefresh, 1000);
}
if ( (mCard.isOnlineVerified()==null || !mCard.isOnlineVerified()) && onlineVerifyTask ==null) {
onlineVerifyTask = new OnlineVerifyTask();
updateTasks.add(onlineVerifyTask);
onlineVerifyTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, VerificationServerProtocol.Verify.prepare(mCard));
}
imgLookup.setOnClickListener(v15 -> {
if (!mCard.hasBalanceInfo()) return;
CoinEngine engineClick = CoinEngineFactory.Create(mCard.getBlockchain());
@ -734,7 +779,7 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
@Override
public void onStop() {
super.onStop();
for (UpdateWalletInfoTask ut : updateTasks) {
for (AsyncTask ut : updateTasks) {
ut.cancel(true);
}
mNfcManager.onStop();
@ -926,6 +971,12 @@ public class LoadedWallet extends Fragment implements SwipeRefreshLayout.OnRefre
updateViews();
if ( (mCard.isOnlineVerified()==null || !mCard.isOnlineVerified()) && onlineVerifyTask ==null) {
onlineVerifyTask = new OnlineVerifyTask();
updateTasks.add(onlineVerifyTask);
onlineVerifyTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, VerificationServerProtocol.Verify.prepare(mCard));
}
CoinEngine engine = CoinEngineFactory.Create(mCard.getBlockchain());
if (mCard.getBlockchain() == Blockchain.Bitcoin || mCard.getBlockchain() == Blockchain.BitcoinTestNet) {