Updated on 2026-08-14

This commit is contained in:
Tangem 2018-10-16 15:31:31 +03:00
parent 8020425374
commit ad42818b84
2 changed files with 66 additions and 45 deletions

View file

@ -103,7 +103,6 @@ public class ServerApiHelper {
public interface InfuraBodyListener {
void onInfuraSuccess(String method, InfuraResponse infuraResponse);
void onInfuraFail(String method, String message);
}
@ -168,7 +167,8 @@ public class ServerApiHelper {
private CardVerifyAndGetInfoListener cardVerifyAndGetInfoListener;
public interface CardVerifyAndGetInfoListener {
void onCardVerifyAndGetInfo(CardVerifyAndGetInfo.Response cardVerifyAndGetArtworkResponse);
void onSuccess(CardVerifyAndGetInfo.Response cardVerifyAndGetArtworkResponse);
void onFail(String message);
}
public void setCardVerifyAndGetInfoListener(CardVerifyAndGetInfoListener listener) {
@ -189,14 +189,17 @@ public class ServerApiHelper {
public void onResponse(@NonNull Call<CardVerifyAndGetInfo.Response> call, @NonNull Response<CardVerifyAndGetInfo.Response> response) {
if (response.code() == 200) {
CardVerifyAndGetInfo.Response cardVerifyAndGetArtworkResponse = response.body();
cardVerifyAndGetInfoListener.onCardVerifyAndGetInfo(cardVerifyAndGetArtworkResponse);
cardVerifyAndGetInfoListener.onSuccess(cardVerifyAndGetArtworkResponse);
Log.i(TAG, "cardVerifyAndGeInfo onResponse " + response.code());
} else
} else {
cardVerifyAndGetInfoListener.onFail(String.valueOf(response.code()));
Log.e(TAG, "cardVerifyAndGetInfo onResponse " + response.code());
}
}
@Override
public void onFailure(@NonNull Call<CardVerifyAndGetInfo.Response> call, @NonNull Throwable t) {
cardVerifyAndGetInfoListener.onFail(t.getMessage());
Log.e(TAG, "cardVerifyAndGetInfo onFailure " + t.getMessage());
}
});
@ -209,7 +212,8 @@ public class ServerApiHelper {
private ArtworkListener artworkListener;
public interface ArtworkListener {
void onArtwork(String artworkId, InputStream inputStream, Date updateDate);
void onSuccess(String artworkId, InputStream inputStream, Date updateDate);
void onFail(String message);
}
public void setArtworkListener(ArtworkListener listener) {
@ -228,7 +232,7 @@ public class ServerApiHelper {
try {
ResponseBody body = response.body();
if (body != null) {
artworkListener.onArtwork(artworkId, body.byteStream(), updateDate);
artworkListener.onSuccess(artworkId, body.byteStream(), updateDate);
}
} catch (Exception e) {
e.printStackTrace();
@ -238,6 +242,7 @@ public class ServerApiHelper {
@Override
public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) {
artworkListener.onFail(t.getMessage());
Log.e(TAG, "getArtwork onFailure " + t.getMessage());
}
});

View file

@ -24,6 +24,7 @@ import com.tangem.data.network.ServerApiHelper
import com.tangem.data.network.ServerApiHelperElectrum
import com.tangem.data.network.model.InfuraResponse
import com.tangem.data.network.ElectrumRequest
import com.tangem.data.network.model.CardVerifyAndGetInfo
import com.tangem.data.nfc.VerifyCardTask
import com.tangem.domain.cardReader.CardProtocol
import com.tangem.domain.cardReader.NfcManager
@ -38,6 +39,7 @@ import com.tangem.wallet.BuildConfig
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.fr_loaded_wallet.*
import org.json.JSONException
import java.io.InputStream
import java.math.BigInteger
import java.util.*
@ -286,59 +288,75 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
}
if (requestCounter == 0) updateViews()
if (requestCounter == 0)
updateViews()
}
override fun onElectrumFail(method: String?) {
srl!!.isRefreshing = false
// Log.e(TAG, "FAIL $method")
}
}
serverApiHelperElectrum.setElectrumRequestData(electrumBodyListener)
// request card verify listener
serverApiHelper.setCardVerifyAndGetInfoListener {
requestCounter--
if (requestCounter == 0) srl!!.isRefreshing = false
// request card verify and get info listener
val cardVerifyAndGetInfoListener: ServerApiHelper.CardVerifyAndGetInfoListener = object : ServerApiHelper.CardVerifyAndGetInfoListener {
override fun onSuccess(cardVerifyAndGetArtworkResponse: CardVerifyAndGetInfo.Response?) {
requestCounter--
if (requestCounter == 0) srl!!.isRefreshing = false
val result = it.results!![0]
if (result.error != null) {
card!!.isOnlineVerified = false
return@setCardVerifyAndGetInfoListener
}
card!!.isOnlineVerified = result.passed
if (requestCounter == 0) updateViews()
if (!result.passed) return@setCardVerifyAndGetInfoListener
if (localStorage.checkBatchInfoChanged(card!!, result)) {
Log.w(TAG, "Batch ${result.batch} info changed to '$result'")
ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!))
localStorage.applySubstitution(card!!)
if (card!!.blockchain == Blockchain.Token || card!!.blockchain == Blockchain.Ethereum) {
card!!.setBlockchainIDFromCard(Blockchain.Ethereum.id)
val result = cardVerifyAndGetArtworkResponse?.results!![0]
if (result.error != null) {
card!!.isOnlineVerified = false
return
}
refresh()
}
if (result.artwork != null && localStorage.checkNeedUpdateArtwork(result.artwork)) {
Log.w(TAG, "Artwork '${result.artwork!!.id}' updated, need download")
serverApiHelper.requestArtwork(result.artwork!!.id, result.artwork!!.getUpdateDate(), card!!)
updateViews()
}
// Log.i(TAG, "setCardVerify " + it.results!![0].passed)
}
card!!.isOnlineVerified = result.passed
serverApiHelper.setArtworkListener { artworkId, inputStream, updateDate ->
Log.w(TAG, "Artwork '$artworkId' downloaded")
localStorage.updateArtwork(artworkId, inputStream, updateDate)
ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!))
if (requestCounter == 0) updateViews()
if (!result.passed) return
if (localStorage.checkBatchInfoChanged(card!!, result)) {
Log.w(TAG, "Batch ${result.batch} info changed to '$result'")
ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!))
localStorage.applySubstitution(card!!)
if (card!!.blockchain == Blockchain.Token || card!!.blockchain == Blockchain.Ethereum) {
card!!.setBlockchainIDFromCard(Blockchain.Ethereum.id)
}
refresh()
}
if (result.artwork != null && localStorage.checkNeedUpdateArtwork(result.artwork)) {
Log.w(TAG, "Artwork '${result.artwork!!.id}' updated, need download")
serverApiHelper.requestArtwork(result.artwork!!.id, result.artwork!!.getUpdateDate(), card!!)
updateViews()
}
// Log.i(TAG, "setCardVerify " + it.results!![0].passed)
}
override fun onFail(message: String?) {
requestCounter--
if (requestCounter == 0)
srl!!.isRefreshing = false
}
}
serverApiHelper.setCardVerifyAndGetInfoListener(cardVerifyAndGetInfoListener)
// request artwork listener
val artworkListener: ServerApiHelper.ArtworkListener = object : ServerApiHelper.ArtworkListener {
override fun onSuccess(artworkId: String?, inputStream: InputStream?, updateDate: Date?) {
localStorage.updateArtwork(artworkId!!, inputStream!!, updateDate!!)
ivTangemCard.setImageBitmap(localStorage.getCardArtworkBitmap(card!!))
Log.w(TAG, "Artwork '$artworkId' downloaded")
}
override fun onFail(message: String?) {
}
}
serverApiHelper.setArtworkListener(artworkListener)
// request rate info listener
serverApiHelper.setRateInfoData {
requestCounter--
val rate = it.priceUsd.toFloat()
card!!.rate = rate
@ -348,7 +366,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
srl!!.isRefreshing = false
updateViews()
}
// Log.i(TAG, "setRateInfoData $rate")
}
// request eth get balance, eth get transaction count, eth call, eth sendRawTransaction listener
@ -469,7 +486,6 @@ class LoadedWallet : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
}
}
}
serverApiHelper.setInfuraResponse(infuraBodyListener)
}