Skip to content

Commit beca66a

Browse files
committed
feat: return samId from readCardId
1 parent 007e559 commit beca66a

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

android/src/main/java/com/pos/CardManager.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.pos.calypso.*
88

99

1010
abstract class CardManager {
11+
protected lateinit var samId: String
1112
protected lateinit var cardId: String
1213

1314
protected var samIsConnected = false
@@ -54,7 +55,10 @@ abstract class CardManager {
5455
waitForCard()
5556
connectCard()
5657
if (cardIsConnected) {
57-
promise.resolve(cardId)
58+
val map = Arguments.createMap()
59+
map.putString("samId", samId)
60+
map.putString("cardId", cardId)
61+
promise.resolve(map)
5862
} else {
5963
promise.reject(PosException(PosException.CARD_NOT_PRESENT, "Card not connected"))
6064
}

android/src/main/java/com/pos/Famoco.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import kotlin.coroutines.resumeWithException
1919

2020

2121
class Famoco(private val reactContext: ReactApplicationContext) : CardManager() {
22-
private lateinit var samId: String
2322
private lateinit var samCard: Card
2423
private lateinit var rfCard: Card
2524

android/src/main/java/com/pos/Telpo.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,14 @@ import android.nfc.tech.IsoDep
99
import android.os.Build
1010
import com.cloudpos.DeviceException
1111
import com.facebook.react.bridge.*
12-
import com.facebook.react.modules.core.DeviceEventManagerModule
1312
import com.pos.byteUtils.ByteConvertStringUtil
14-
import com.pos.calypso.CardReadRecordsBuilder
1513
import com.telpo.tps550.api.reader.SmartCardReader
1614
import kotlinx.coroutines.*
1715
import java.io.IOException
1816

1917
class Telpo(private val reactContext: ReactApplicationContext) : CardManager(), LifecycleEventListener {
2018

2119
private lateinit var samReader: SmartCardReader
22-
private lateinit var samId: String
2320
private var isoDep: IsoDep? = null
2421

2522
private var nfcAdapter: NfcAdapter? = null
@@ -187,13 +184,16 @@ class Telpo(private val reactContext: ReactApplicationContext) : CardManager(),
187184

188185
override fun connectSam() {
189186
if (samIsConnected) return
190-
// TODO: manage return of open and iccPowerOn
191187
val isOpen = samReader.open()
192188
val isIccPowerOn = samReader.iccPowerOn()
193189

194190
if (!isOpen || !isIccPowerOn) {
195191
throw PosException(PosException.SAM_CONNECT_FAIL, "Cannot connect to SAM")
196192
}
193+
194+
val tempSamId = samReader.atrString
195+
if (tempSamId != null) samId = tempSamId.substring(24, 32)
196+
197197
samIsConnected = true
198198
}
199199

src/PosSam.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export function close() {
3333
return PosSam.close();
3434
}
3535

36-
export async function readCardId(): Promise<string> {
36+
export async function readCardId(): Promise<{ samId: string; cardId: string }> {
3737
return await PosSam.readCardId();
3838
}
3939

0 commit comments

Comments
 (0)