From 42b33c93979e5471ef97bfcca687ff11ac657220 Mon Sep 17 00:00:00 2001 From: Mariya Date: Mon, 5 Feb 2024 17:23:33 +0530 Subject: [PATCH] Added code for scan , Issue fixed --- .../presentation/KitScanActivity.kt | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) 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!!)