diff --git a/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt
index cb9eb40..4aafcc7 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt
@@ -223,26 +223,40 @@ class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate {
notifications_mask or DCSSDKDefs.DCSSDK_EVENT.DCSSDK_EVENT_BARCODE.value
sdkHandler!!.dcssdkSubsribeForEvents(notifications_mask)
mScannerInfoList.addAll(sdkHandler!!.dcssdkGetAvailableScannersList())
- sdkHandler!!.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
+ Log.e("scannersize",sdkHandler!!.dcssdkGetAvailableScannersList().size.toString())
+ if (mScannerInfoList.isNotEmpty()) {
+ sdkHandler!!.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
+ } else {
+ Toast.makeText(this,"Error", Toast.LENGTH_LONG).show()
+ }
+
}
- fun pullTrigger() {
- if (!mScannerInfoList[0].isActive) {
- sdkHandler!!.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
+ private fun pullTrigger() {
+ // Check if the list is not empty before accessing its elements
+ if (mScannerInfoList.isNotEmpty()) {
+ // Only proceed if the scanner is not active
+ if (!mScannerInfoList[0].isActive) {
+ sdkHandler?.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
+ }
+ val inXML = " 1 "
+ val outXML = StringBuilder()
+ val result: DCSSDK_RESULT =
+ sdkHandler!!.dcssdkExecuteCommandOpCodeInXMLForScanner(
+ DCSSDK_COMMAND_OPCODE.DCSSDK_DEVICE_PULL_TRIGGER, inXML, outXML, mScannerInfoList[0].scannerID // Ensure you're using the correct scanner ID
+ )
+ if (result == DCSSDK_RESULT.DCSSDK_RESULT_SUCCESS) {
+ Log.d("Scanning", "Success")
+ } else if (result == DCSSDK_RESULT.DCSSDK_RESULT_FAILURE) {
+ Log.d("Scanning", "Failed")
+ }
+ } else {
+ // Handle the case where the list is empty, perhaps notify the user or log an error
+ Log.e("ScannerError", "No scanners are connected or available.")
}
- val inXML = " 1 "
- val outXML = StringBuilder()
- val result: DCSSDK_RESULT =
- sdkHandler!!.dcssdkExecuteCommandOpCodeInXMLForScanner(
- DCSSDK_COMMAND_OPCODE.DCSSDK_DEVICE_PULL_TRIGGER, inXML, outXML, 1
- )
- if (result == DCSSDK_RESULT.DCSSDK_RESULT_SUCCESS) Log.d(
- "Scanning",
- "Success"
- ) else if (result == DCSSDK_RESULT.DCSSDK_RESULT_FAILURE) Log.d("Scanning", "Failed")
- //new MyAsyncTask(1, DCSSDKDefs.DCSSDK_COMMAND_OPCODE.DCSSDK_DEVICE_PULL_TRIGGER,null).execute(inXML);
}
+
//this function is called if barcode is detected.
override fun dcssdkEventBarcode(barcodeData: ByteArray?, barcodeType: Int, fromScannerID: Int) {
val result = String(barcodeData!!)