Updated on 2026-08-14
This commit is contained in:
parent
28f58e8059
commit
cb6678380f
10 changed files with 302 additions and 192 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue