diff --git a/tangem-demo/src/main/AndroidManifest.xml b/tangem-demo/src/main/AndroidManifest.xml index f90fa6c597..600bca8f4e 100644 --- a/tangem-demo/src/main/AndroidManifest.xml +++ b/tangem-demo/src/main/AndroidManifest.xml @@ -17,7 +17,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> - + diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt new file mode 100644 index 0000000000..f2c89bc9b4 --- /dev/null +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt @@ -0,0 +1,161 @@ +package com.tangem.tangemtest + +import android.content.Intent +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.tangem.CardManager +import com.tangem.tangem_sdk_new.extensions.init +import com.tangem.tasks.ScanEvent +import com.tangem.tasks.TaskError +import com.tangem.tasks.TaskEvent +import kotlinx.android.synthetic.main.old_activity_main.* + +class Old_MainActivity : AppCompatActivity() { + + private lateinit var cardManager: CardManager + private lateinit var cardId: String + private lateinit var issuerData: ByteArray + private lateinit var issuerDataSignature: ByteArray + private var issuerDataCounter: Int = 1 + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.old_activity_main) + + cardManager = CardManager.init(this) + + btn_scan?.setOnClickListener { _ -> + cardManager.scanCard { taskEvent -> + when (taskEvent) { + is TaskEvent.Event -> { + when (taskEvent.data) { + is ScanEvent.OnReadEvent -> { + // Handle returned card data + cardId = (taskEvent.data as ScanEvent.OnReadEvent).card.cardId + runOnUiThread { + tv_card_cid?.text = cardId + btn_create_wallet.isEnabled = true + } + } + is ScanEvent.OnVerifyEvent -> { + //Handle card verification + runOnUiThread { + tv_card_cid?.text = cardId + btn_sign.isEnabled = true + btn_read_issuer_data.isEnabled = true + btn_read_issuer_extra_data.isEnabled = true + btn_write_issuer_data.isEnabled = true + btn_purge_wallet.isEnabled = true + btn_create_wallet.isEnabled = true + } + } + } + } + is TaskEvent.Completion -> { + if (taskEvent.error != null) { + if (taskEvent.error is TaskError.UserCancelled) { + // Handle case when user cancelled manually + } + // Handle other errors + } + // Handle completion + } + } + } + } + btn_sign?.setOnClickListener { _ -> + cardManager.sign( + createSampleHashes(), + cardId) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { tv_card_cid?.text = cardId + "was used to sign sample hashes." } + } + } + } + btn_read_issuer_data?.setOnClickListener { _ -> + cardManager.readIssuerData(cardId) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { + btn_write_issuer_data.isEnabled = true + tv_card_cid?.text = it.data.issuerData.contentToString() + issuerData = it.data.issuerData + issuerDataSignature = it.data.issuerDataSignature + } + } + } + } + btn_write_issuer_data?.setOnClickListener { _ -> + cardManager.writeIssuerData( + cardId, + issuerData, + issuerDataSignature) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { + tv_card_cid?.text = it.data.cardId + } + } + } + } + btn_read_issuer_extra_data?.setOnClickListener { _ -> + cardManager.readIssuerExtraData(cardId) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { + issuerDataCounter = (it.data.issuerDataCounter ?: 0) + 1 + btn_write_issuer_data.isEnabled = true + tv_card_cid?.text = "Read ${it.data.issuerData.size} bytes of data." + } + } + } + } + btn_purge_wallet?.setOnClickListener { _ -> + cardManager.purgeWallet( + cardId) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { + tv_card_cid?.text = it.data.status.name + } + } + } + } + btn_create_wallet?.setOnClickListener { _ -> + cardManager.createWallet( + cardId) { + when (it) { + is TaskEvent.Completion -> { + if (it.error != null) runOnUiThread { tv_card_cid?.text = it.error!!::class.simpleName } + } + is TaskEvent.Event -> runOnUiThread { + tv_card_cid?.text = it.data.status.name + btn_sign.isEnabled = true + btn_read_issuer_data.isEnabled = true + btn_purge_wallet.isEnabled = true + btn_create_wallet.isEnabled = false + + } + } + } + } + btn_read_write_user_data?.setOnClickListener { startActivity(Intent(this, TestUserDataActivity::class.java)) } + } + + private fun createSampleHashes(): Array { + val hash1 = ByteArray(32) { 1 } + val hash2 = ByteArray(32) { 2 } + return arrayOf(hash1, hash2) + } +} \ No newline at end of file diff --git a/tangem-demo/src/main/res/layout/activity_main.xml b/tangem-demo/src/main/res/layout/old_activity_main.xml similarity index 99% rename from tangem-demo/src/main/res/layout/activity_main.xml rename to tangem-demo/src/main/res/layout/old_activity_main.xml index 2af3ad92de..13c1d81f26 100644 --- a/tangem-demo/src/main/res/layout/activity_main.xml +++ b/tangem-demo/src/main/res/layout/old_activity_main.xml @@ -9,7 +9,7 @@ android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + tools:context=".Old_MainActivity">