Updated on 2026-08-14

This commit is contained in:
Tangem 2019-04-04 12:31:19 +03:00
parent 156ab295eb
commit ddf613590c
14 changed files with 165 additions and 167 deletions

View file

@ -81,7 +81,6 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
private lateinit var nfcDeviceAntenna: NfcDeviceAntennaLocation
private var unsuccessReadCount = 0
private var lastTag: Tag? = null
// private var readCardInfoTask: ReadCardInfoTask? = null
private var task: CustomReadCardTask? = null
private var onNfcReaderCallback: NfcAdapter.ReaderCallback? = null
@ -246,76 +245,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
lastTag = tag
// readCardInfoTask = ReadCardInfoTask(NfcReader(nfcManager, isoDep), App.localStorage, App.pinStorage, this)
//readCardInfoTask?.start()
val tx: OneTouchSignTask.TransactionToSign = object : OneTouchSignTask.TransactionToSign {
var txToSign: SignTask.TransactionToSign?=null
var ctx: TangemContext?=null
var coinEngine: CoinEngine?=null
val amount: CoinEngine.Amount=CoinEngine.Amount(10,"")
val fee: CoinEngine.Amount=CoinEngine.Amount(1,"")
val incFee: Boolean = true
val targetAddress: String = "aaaa"
suspend fun requestBalanceAndUnspentTransactions(): Boolean = suspendCoroutine { cont ->
coinEngine!!.requestBalanceAndUnspentTransactions(object : CoinEngine.BlockchainRequestsCallbacks {
override fun onComplete(success: Boolean?) {
cont.resume(success!!)
}
override fun onProgress() {
}
override fun allowAdvance(): Boolean {
return true
}
})
}
fun initData(card: TangemCard)
{
if( ctx==null ) ctx= TangemContext(card)
if( coinEngine==null ) {
coinEngine=CoinEngineFactory.createCardano(ctx!!)!!
coinEngine!!.defineWallet()
runBlocking { requestBalanceAndUnspentTransactions() }
Log.e(TAG, "requestBalanceAndUnspentTransactions completed")
}
if( txToSign==null ) txToSign=coinEngine!!.constructTransaction(amount,fee,true, targetAddress)
}
override fun isSigningOnCardSupported(card: TangemCard?): Boolean {
initData(card!!)
return (card?.blockchainID==Blockchain.Cardano.id)and(txToSign!!.isSigningMethodSupported(card?.signingMethod))
}
override fun getHashesToSign(card: TangemCard?): Array<ByteArray> {
initData(card!!)
return txToSign!!.hashesToSign
}
override fun getRawDataToSign(card: TangemCard?): ByteArray {
initData(card!!)
return txToSign!!.rawDataToSign
}
override fun getHashAlgToSign(card: TangemCard?): String {
initData(card!!)
return txToSign!!.hashAlgToSign
}
override fun getIssuerTransactionSignature(card: TangemCard?, dataToSignByIssuer: ByteArray?): ByteArray {
initData(card!!)
return txToSign!!.getIssuerTransactionSignature(dataToSignByIssuer)
}
override fun onSignCompleted(card: TangemCard?, signature: ByteArray?) {
initData(card!!)
txToSign!!.onSignCompleted(signature)
}
}
task = OneTouchSignTask(NfcReader(nfcManager, isoDep), App.localStorage, App.pinStorage, this, tx)
task = ReadCardInfoTask(NfcReader(nfcManager, isoDep), App.localStorage, App.pinStorage, this)
task?.start()
} catch (e: Exception) {
e.printStackTrace()