diff --git a/app/build.gradle b/app/build.gradle
index cd7356b..f37d8b0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -129,7 +129,7 @@ dependencies {
// Barcode scanner
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
-
+ implementation 'com.github.yuriy-budiyev:code-scanner:2.3.0'
// Google ML Kit using play services
implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ea83f8c..128bc28 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,14 +6,15 @@
-
-
-
-
+
+
+
@@ -25,16 +26,19 @@
+
@@ -60,23 +64,20 @@
-
+ android:theme="@style/Theme.HPOS.NoActionBar" />
-
+ android:theme="@style/Theme.HPOS.NoActionBar" />
-
-
+ android:theme="@style/Theme.HPOS.NoActionBar"
+ android:windowSoftInputMode="stateHidden" />
-
+
+
-
-
-
+
+
+
-
+ tools:replace="android:screenOrientation" />
-
\ No newline at end of file
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 592a06a..917e7d5 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt
@@ -1,5 +1,6 @@
package com.example.hpostesting.presentation
+import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
@@ -9,6 +10,7 @@ import android.util.Log
import android.view.View
import android.widget.EditText
import android.widget.Toast
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import com.example.hpostesting.data.constant.DataHolder
import com.example.hpostesting.data.constant.Constants
@@ -42,23 +44,36 @@ class KitScanActivity : AppCompatActivity() {
var sdkHandler: SDKHandler? = null
var editBarcode: EditText? = null
var mScannerInfoList = ArrayList()
+ companion object {
+ const val QR_REQUEST_CODE = 1
+ }
+// private val barcodeLauncher = registerForActivityResult(
+// ScanContract()
+// ) { result: ScanIntentResult ->
+// Log.d(TAG, result.contents)
+// if (result.contents.isNullOrEmpty()) {
+// Toast.makeText(this, R.string.cancelled_unable_scan, Toast.LENGTH_LONG).show()
+// } else {
+// Log.d(TAG, result.contents)
+// processScannedData(result.contents)
+// }
+// }
+//
+// private fun processScannedData(contents: String) {
+// binding.nameEditText.setText(contents)
+// }
- private val barcodeLauncher = registerForActivityResult(
- ScanContract()
- ) { result: ScanIntentResult ->
- Log.d(TAG, result.contents)
- if (result.contents.isNullOrEmpty()) {
- Toast.makeText(this, R.string.cancelled_unable_scan, Toast.LENGTH_LONG).show()
- } else {
- Log.d(TAG, result.contents)
- processScannedData(result.contents)
+ // In your calling activity
+ var resultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+ if (result.resultCode == Activity.RESULT_OK) { // Handle the result
+ val qrCode = result.data?.getStringExtra("QRCode")
+ Toast.makeText(this, "scanned kit text:$qrCode",
+ Toast.LENGTH_LONG).show()
+// val editText = findViewById(R.id.name_edit_text)
+ binding.nameEditText.setText(qrCode)
+ // Use data to retrieve extra
}
}
-
- private fun processScannedData(contents: String) {
- binding.nameEditText.setText(contents)
- }
-
override fun attachBaseContext(newBase: Context?) {
val languageCode = LanguageManager.getSavedLanguage(newBase!!)
LanguageManager.setLocale(newBase, languageCode)
@@ -152,8 +167,9 @@ class KitScanActivity : AppCompatActivity() {
setSupportActionBar(binding.toolbar)
binding.btnScanNow.setOnClickListener {
- startScanningNow()
-// pullTrigger()
+// startForResult.launch(Intent(this, ScannerKitActvity::class.java))
+ val intent = Intent(this, ScannerKitActvity::class.java)
+ resultLauncher.launch(intent)
}
binding.btnGo.setOnClickListener {
@@ -304,21 +320,21 @@ class KitScanActivity : AppCompatActivity() {
}
}
- private fun startScanningNow() {
- val options = ScanOptions()
- options.setDesiredBarcodeFormats(ScanOptions.QR_CODE)
- options.setPrompt("Scan a barcode")
- options.setCameraId(0) // Use a specific camera of the device
-
- options.setBeepEnabled(true)
- options.setBarcodeImageEnabled(true)
-
- options.setPrompt("Start Scanning")
- options.setOrientationLocked(false)
-// options.setTimeout(10000) // in ms
-
- barcodeLauncher.launch(options)
- }
+// private fun startScanningNow() {
+// val options = ScanOptions()
+// options.setDesiredBarcodeFormats(ScanOptions.QR_CODE)
+// options.setPrompt("Scan a barcode")
+// options.setCameraId(0) // Use a specific camera of the device
+//
+// options.setBeepEnabled(true)
+// options.setBarcodeImageEnabled(true)
+//
+// options.setPrompt("Start Scanning")
+// options.setOrientationLocked(false)
+//// options.setTimeout(10000) // in ms
+//
+// barcodeLauncher.launch(options)
+// }
private fun checkDataNotNull(): Boolean {
return if (DataHolder.selectedTest?._id == null) {
@@ -334,4 +350,13 @@ class KitScanActivity : AppCompatActivity() {
true
}
}
+
+// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+// super.onActivityResult(requestCode, resultCode, data)
+// if (requestCode == QR_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
+// val qrCode = data?.getStringExtra("QRCode")
+//// val editText = findViewById(R.id.name_edit_text)
+// binding.nameEditText.setText(qrCode)
+// }
+// }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/presentation/ScannerKitActvity.kt b/app/src/main/java/com/example/hpostesting/presentation/ScannerKitActvity.kt
new file mode 100644
index 0000000..d58ec29
--- /dev/null
+++ b/app/src/main/java/com/example/hpostesting/presentation/ScannerKitActvity.kt
@@ -0,0 +1,73 @@
+package com.example.hpostesting.presentation
+
+import android.app.Activity
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.widget.Toast
+import com.budiyev.android.codescanner.AutoFocusMode
+import com.budiyev.android.codescanner.CodeScanner
+import com.budiyev.android.codescanner.CodeScannerView
+import com.budiyev.android.codescanner.DecodeCallback
+import com.budiyev.android.codescanner.ErrorCallback
+import com.budiyev.android.codescanner.ScanMode
+import `in`.sminnovations.hpostesting.R
+
+class ScannerKitActvity : AppCompatActivity() {
+ private lateinit var codeScanner: CodeScanner
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_scanner_kit_actvity)
+ val scannerView = findViewById(R.id.scanner_view)
+
+ codeScanner = CodeScanner(this, scannerView)
+
+ // Parameters (default values)
+ codeScanner.camera = CodeScanner.CAMERA_BACK // or CAMERA_FRONT or specific camera id
+ codeScanner.formats = CodeScanner.ALL_FORMATS // list of type BarcodeFormat,
+ // ex. listOf(BarcodeFormat.QR_CODE)
+ codeScanner.autoFocusMode = AutoFocusMode.SAFE // or CONTINUOUS
+ codeScanner.scanMode = ScanMode.SINGLE // or CONTINUOUS or PREVIEW
+ codeScanner.isAutoFocusEnabled = true // Whether to enable auto focus or not
+ codeScanner.isFlashEnabled = false // Whether to enable flash or not
+
+ // Callbacks
+ codeScanner.decodeCallback = DecodeCallback {
+ runOnUiThread {
+ Toast.makeText(this, "scanned text: ${it.text}",
+ Toast.LENGTH_LONG).show()
+ }
+ val resultIntent = Intent()
+ resultIntent.putExtra("QRCode", it.text)
+ setResult(Activity.RESULT_OK, resultIntent)
+
+
+ }
+ codeScanner.errorCallback = ErrorCallback { // or ErrorCallback.SUPPRESS
+ runOnUiThread {
+ Toast.makeText(this, "Camera initialization error: ${it.message}",
+ Toast.LENGTH_LONG).show()
+ }
+ }
+
+ scannerView.setOnClickListener {
+ codeScanner.startPreview()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ codeScanner.startPreview()
+ }
+
+ override fun onPause() {
+ codeScanner.releaseResources()
+ super.onPause()
+ }
+
+ override fun onBackPressed() {
+ // You can do additional work here before calling super
+ super.onBackPressed() // This calls finish() behind the scenes for you
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_kit_scan.xml b/app/src/main/res/layout/activity_kit_scan.xml
index aa84355..38a1139 100644
--- a/app/src/main/res/layout/activity_kit_scan.xml
+++ b/app/src/main/res/layout/activity_kit_scan.xml
@@ -3,8 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".presentation.KitScanActivity">
+ android:layout_height="match_parent">
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_scanner_kit_actvity2.xml b/app/src/main/res/layout/activity_scanner_kit_actvity2.xml
new file mode 100644
index 0000000..f218654
--- /dev/null
+++ b/app/src/main/res/layout/activity_scanner_kit_actvity2.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/qrscanner.xml b/app/src/main/res/layout/qrscanner.xml
new file mode 100644
index 0000000..d92bbe0
--- /dev/null
+++ b/app/src/main/res/layout/qrscanner.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
\ No newline at end of file