diff --git a/build.gradle.kts b/build.gradle.kts index 048ef9c..b02a05d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,8 @@ plugins { - id("com.android.application") version "8.3.2" apply false - id("org.jetbrains.kotlin.android") version "1.9.25" apply false + id("com.android.application") version "8.9.0" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false + id( "org.jetbrains.kotlin.plugin.compose") version "2.2.21" apply false } tasks.register("clean", Delete::class.java) { diff --git a/example_app/build.gradle b/example_app/build.gradle index 4b872a1..eea6000 100644 --- a/example_app/build.gradle +++ b/example_app/build.gradle @@ -2,6 +2,7 @@ plugins { id("com.android.application") id("org.jetbrains.kotlin.android") + id( "org.jetbrains.kotlin.plugin.compose") } android { @@ -54,7 +55,7 @@ dependencies { implementation("androidx.constraintlayout:constraintlayout:2.1.4") - def sdkVersion = "7.1.2" + def sdkVersion = "8.0.0.49-STAGING-SNAPSHOT" implementation("io.scanbot:scanbot-barcode-scanner-sdk:$sdkVersion") implementation("io.scanbot:rtu-ui-v2-barcode:$sdkVersion") diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/Application.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/Application.kt index 98f5642..d0a818d 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/Application.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/Application.kt @@ -2,7 +2,6 @@ package io.scanbot.example.sdk.barcode import android.app.Application import io.scanbot.sap.IScanbotSDKLicenseErrorHandler -import io.scanbot.sap.SdkFeature import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDKInitializer import io.scanbot.sdk.pdf.PdfImagesExtractor @@ -26,11 +25,9 @@ class ExampleApplication : Application() { .withLogging(true) // TODO 2/2: Enable the Scanbot Barcode SDK license key //.license(this, licenseKey) - .licenceErrorHandler(IScanbotSDKLicenseErrorHandler { status, feature, statusMessage -> + .licenseErrorHandler (IScanbotSDKLicenseErrorHandler { status, feature, statusMessage -> LoggerProvider.logger.d("ExampleApplication", "+++> License status: ${status.name}. Status message: $statusMessage") - if (feature != SdkFeature.NoSdkFeature) { - LoggerProvider.logger.d("ExampleApplication", "+++> Feature not available: ${feature.name}") - } + LoggerProvider.logger.d("ExampleApplication", "+++> Feature not available: ${feature.name}") }) .pdfImagesExtractorType(PdfImagesExtractor.Type.PDFIUM) // select PDFium or default android pdf library to extract barcode image // Uncomment to switch back to the legacy camera approach in Ready-To-Use UI screens @@ -43,7 +40,7 @@ class ExampleApplication : Application() { val licenseInfo = ScanbotBarcodeScannerSDK(this).licenseInfo LoggerProvider.logger.d("ExampleApplication", "License status: ${licenseInfo.status}") LoggerProvider.logger.d("ExampleApplication", "License isValid: ${licenseInfo.isValid}") - LoggerProvider.logger.d("ExampleApplication", "License expirationDate: ${licenseInfo.expirationDate}") + LoggerProvider.logger.d("ExampleApplication", "License expirationDate: ${licenseInfo.expirationDateString}") } } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ArOverlayUseCaseSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ArOverlayUseCaseSnippet.kt index b50d9b7..c076a18 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ArOverlayUseCaseSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ArOverlayUseCaseSnippet.kt @@ -12,6 +12,7 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet // TODO: add URLs here // @Tag("Configuring RTU UI v2 Barcode AR overlay snippet") +import io.scanbot.sdk.barcode.BarcodeFormatCommonConfiguration import io.scanbot.sdk.barcode.BarcodeFormats import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerConfiguration import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration @@ -39,7 +40,7 @@ fun arOverlayUseCaseSnippet() { } // Set an array of accepted barcode types. - this.scannerConfiguration.barcodeFormats = BarcodeFormats.common + this.scannerConfiguration.barcodeFormatConfigurations = listOf(BarcodeFormatCommonConfiguration(formats = BarcodeFormats.common)) // Configure other parameters as needed. } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeAdvancedConfigSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeAdvancedConfigSnippet.kt index 835b9c0..b1cb99f 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeAdvancedConfigSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeAdvancedConfigSnippet.kt @@ -32,7 +32,7 @@ import java.util.EnumSet fun barcodeScannerWithAdvancedConfigSnippet(context: Context) { // @Tag("Advanced configuring Barcode Scanner") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() var configs = mutableListOf() @@ -133,7 +133,7 @@ fun barcodeFormatIndividualSimplifiedConfigurationSnippet(context: Context) { fun barcodeParsersConfigurationSnippet(context: Context) { // @Tag("Configuring parsers in Barcode Scanner") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() var configs = mutableListOf() @@ -149,7 +149,7 @@ fun barcodeParsersConfigurationSnippet(context: Context) { fun barcodeRegexpConfigurationSnippet(context: Context) { // @Tag("Configuring regexp in Barcode Scanner") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() var configs = mutableListOf() val baseConfig = BarcodeFormatCommonConfiguration.default().copy( @@ -176,7 +176,7 @@ fun barcodeRegexpConfigurationSnippet(context: Context) { fun barcodeTinyBarcodeConfigurationSnippet(context: Context) { // @Tag("Configuring tiny barcodes in Barcode Scanner") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() barcodeScanner.setConfiguration(barcodeScanner.copyCurrentConfiguration().apply { // Example of adding a specific configuration for parsed documents diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeResultHandlingSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeResultHandlingSnippet.kt index 8163574..3512ae4 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeResultHandlingSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeResultHandlingSnippet.kt @@ -24,11 +24,12 @@ import io.scanbot.sdk.barcode.entity.SEPA import io.scanbot.sdk.barcode.entity.SwissQR import io.scanbot.sdk.barcode.entity.VCard import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK +import io.scanbot.sdk.image.ImageRef -fun handlingResult(bitmap: Bitmap, context: Context) { +fun handlingResult(imageRef: ImageRef, context: Context) { // @Tag("Handling the Result") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() - val result = barcodeScanner.scanFromBitmap(bitmap, 0) + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() + val result = barcodeScanner.run(imageRef).getOrNull() result?.barcodes?.forEach { barcodeItem -> // Handle the detected barcode(s) from result val barcodeText = barcodeItem.text @@ -42,10 +43,10 @@ fun handlingResult(bitmap: Bitmap, context: Context) { // @EndTag("Handling the Result") } -fun handlingParsedDocumentsResult(bitmap: Bitmap, context: Context) { +fun handlingParsedDocumentsResult(imageRef: ImageRef, context: Context) { // @Tag("Handling the parsed document result") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() - val result = barcodeScanner.scanFromBitmap(bitmap, 0) + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() + val result = barcodeScanner.run(imageRef).getOrNull() result?.barcodes?.forEach { barcodeItem -> barcodeItem.extractedDocument?.let { document -> when (document.type.name) { diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerClassicUiSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerClassicUiSnippet.kt index d012854..d253593 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerClassicUiSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerClassicUiSnippet.kt @@ -13,6 +13,7 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import io.scanbot.common.onSuccess import io.scanbot.example.sdk.barcode.R import io.scanbot.sdk.barcode.BarcodeFormats import io.scanbot.sdk.barcode.BarcodeItem @@ -22,8 +23,8 @@ import io.scanbot.sdk.barcode.ui.IBarcodeScannerViewCallback import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK import io.scanbot.sdk.camera.CameraModule import io.scanbot.sdk.camera.CaptureInfo -import io.scanbot.sdk.camera.FrameHandlerResult -import io.scanbot.sdk.common.AspectRatio +import io.scanbot.sdk.geometry.AspectRatio +import io.scanbot.sdk.image.ImageRef class BarcodeScannerClassicUiSnippetActivity : AppCompatActivity() { @@ -35,7 +36,7 @@ class BarcodeScannerClassicUiSnippetActivity : AppCompatActivity() { // @Tag("Barcode Classic UI view snippet") barcodeScannerView = findViewById(R.id.barcode_scanner_view)!! - val barcodeScanner = ScanbotBarcodeScannerSDK(this).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(this).createBarcodeScanner().getOrThrow() // modify config as needed barcodeScanner.setConfiguration( @@ -51,24 +52,27 @@ class BarcodeScannerClassicUiSnippetActivity : AppCompatActivity() { barcodeScannerView.apply { initCamera() initScanningBehavior(barcodeScanner, - { result -> - if (result is FrameHandlerResult.Success) { + { result, frame -> + result.onSuccess { // process the scanned result here // handleSuccess(result) } false }, object : IBarcodeScannerViewCallback { - override fun onCameraOpen() { - // barcodeScannerView.viewController.useFlash(flashEnabled) - } - - override fun onPictureTaken(image: ByteArray, captureInfo: CaptureInfo) { + override fun onPictureTaken( + image: ImageRef, + captureInfo: CaptureInfo + ) { // process the full size images taken by BarcodeAutoSnappingController here // to enable auto snapping use the following command: // barcodeScannerView.viewController.autoSnappingEnabled = true } + override fun onCameraOpen() { + // barcodeScannerView.viewController.useFlash(flashEnabled) + } + override fun onSelectionOverlayBarcodeClicked(barcodeItem: BarcodeItem) { // handle the barcode item selection here } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerScanOnImageSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerScanOnImageSnippet.kt index 3308ce2..e53d32b 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerScanOnImageSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeScannerScanOnImageSnippet.kt @@ -17,6 +17,7 @@ import android.widget.Toast import io.scanbot.sdk.barcode.BarcodeScanner import io.scanbot.sdk.barcode.BarcodeScannerResult import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK +import io.scanbot.sdk.image.ImageRef fun scanOnImageSnippet(context: Context) { // @Tag("Creating the Scanner") @@ -29,11 +30,11 @@ fun scanOnImageSnippet(context: Context) { fun processImageSnippet( sdk: ScanbotBarcodeScannerSDK, barcodeDetector: BarcodeScanner, - bitmap: Bitmap + imageRef: ImageRef ) { if (!sdk.licenseInfo.isValid) { return; } - val result = barcodeDetector.scanFromBitmap(bitmap, 0) + val result = barcodeDetector.run(imageRef).getOrThrow() // handle the detected barcode(s) from result } // @EndTag("Scanning from Bitmap") diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeSimpleConfigSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeSimpleConfigSnippet.kt index 9d4c0f2..82294df 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeSimpleConfigSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/BarcodeSimpleConfigSnippet.kt @@ -19,7 +19,7 @@ import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK fun barcodeScannerWithSimpleConfigSnippet(context: Context) { // @Tag("Simple configuring Barcode Scanner") - val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner() + val barcodeScanner = ScanbotBarcodeScannerSDK(context).createBarcodeScanner().getOrThrow() barcodeScanner.setConfiguration( barcodeScanner.copyCurrentConfiguration().apply { diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/FindAndPickUseCaseSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/FindAndPickUseCaseSnippet.kt index 954fd85..725c9ce 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/FindAndPickUseCaseSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/FindAndPickUseCaseSnippet.kt @@ -12,6 +12,7 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet // TODO: add URLs here // @Tag("Configuring RTU UI v2 Barcode find and pick use case snippet") +import io.scanbot.sdk.barcode.BarcodeFormatCommonConfiguration import io.scanbot.sdk.barcode.BarcodeFormats import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeUseCase @@ -66,7 +67,7 @@ fun findAndPickModeUseCaseSnippet() { } // Set an array of accepted barcode types. - this.scannerConfiguration.barcodeFormats = BarcodeFormats.common + this.scannerConfiguration.barcodeFormatConfigurations = listOf(BarcodeFormatCommonConfiguration(formats = BarcodeFormats.common)) // Configure other parameters as needed. } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ManualBarcodeDataParsingSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ManualBarcodeDataParsingSnippet.kt index 124d439..49bafa3 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ManualBarcodeDataParsingSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ManualBarcodeDataParsingSnippet.kt @@ -16,6 +16,6 @@ import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK fun manualBarcodeDataParsing(context: Context, barcodeString: String) { val scanbotSDK = ScanbotBarcodeScannerSDK(context); - scanbotSDK.createBarcodeDocumentParser().parseDocument(barcodeString) + scanbotSDK.createBarcodeDocumentParser().getOrNull()?.parse(barcodeString) } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningCountUseCaseSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningCountUseCaseSnippet.kt new file mode 100644 index 0000000..71f141c --- /dev/null +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningCountUseCaseSnippet.kt @@ -0,0 +1,59 @@ +package io.scanbot.example.sdk.barcode.doc_code_snippet + +/* + NOTE: this snippet of code is to be used only as a part of the website documentation. + This code is not intended for any use outside of the support of documentation by Scanbot SDK GmbH employees. +*/ + +// NOTE for maintainers: whenever changing this code, +// ensure that links using it are still pointing to valid lines! +// Pay attention to imports adding/removal/sorting! +// Page URLs using this code: +// TODO: add URLs here + +// @Tag("Configuring RTU UI v2 Barcode multiple scanning use case snippet") +import io.scanbot.sdk.barcode.BarcodeFormatCommonConfiguration +import io.scanbot.sdk.barcode.BarcodeFormats +import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration +import io.scanbot.sdk.ui_v2.barcode.configuration.CollapsedVisibleHeight +import io.scanbot.sdk.ui_v2.barcode.configuration.MultipleBarcodesScanningMode +import io.scanbot.sdk.ui_v2.barcode.configuration.MultipleScanningMode +import io.scanbot.sdk.ui_v2.barcode.configuration.SheetMode +import io.scanbot.sdk.ui_v2.common.ScanbotColor + +fun multipleScanningCountUseCaseSnippet() { + // Create the default configuration object. + val config = BarcodeScannerScreenConfiguration().apply { + // Configure parameters (use explicit `this.` receiver for better code completion): + + // Initialize the use case for multiple scanning. + this.useCase = MultipleScanningMode().apply { + // Set the counting mode. + this.mode = MultipleBarcodesScanningMode.COUNTING + + // Set the sheet mode for the barcodes preview. + this.sheet.mode = SheetMode.COLLAPSED_SHEET + + // Set the height for the collapsed sheet. + this.sheet.collapsedVisibleHeight = CollapsedVisibleHeight.LARGE + + // Enable manual count change. + this.sheetContent.manualCountChangeEnabled = true + + // Set the delay before same barcode counting repeat. + this.countingRepeatDelay = 1000 + + // Configure the submit button. + this.sheetContent.submitButton.text = "Submit" + this.sheetContent.submitButton.foreground.color = ScanbotColor("#000000") + + // Configure other parameters, pertaining to multiple-scanning mode as needed. + } + + // Set an array of accepted barcode types. + this.scannerConfiguration.barcodeFormatConfigurations = listOf(BarcodeFormatCommonConfiguration(formats = BarcodeFormats.common)) + + // Configure other parameters as needed. + } +} +// @EndTag("Configuring RTU UI v2 Barcode multiple scanning use case snippet") diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningUseCaseSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningUseCaseSnippet.kt index b3a2cf5..212d5e5 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningUseCaseSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/MultipleScanningUseCaseSnippet.kt @@ -12,6 +12,7 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet // TODO: add URLs here // @Tag("Configuring RTU UI v2 Barcode multiple scanning use case snippet") +import io.scanbot.sdk.barcode.BarcodeFormatCommonConfiguration import io.scanbot.sdk.barcode.BarcodeFormats import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration import io.scanbot.sdk.ui_v2.barcode.configuration.CollapsedVisibleHeight @@ -28,7 +29,7 @@ fun multipleScanningUseCaseSnippet() { // Initialize the use case for multiple scanning. this.useCase = MultipleScanningMode().apply { // Set the counting mode. - this.mode = MultipleBarcodesScanningMode.COUNTING + this.mode = MultipleBarcodesScanningMode.UNIQUE // Set the sheet mode for the barcodes preview. this.sheet.mode = SheetMode.COLLAPSED_SHEET @@ -50,7 +51,7 @@ fun multipleScanningUseCaseSnippet() { } // Set an array of accepted barcode types. - this.scannerConfiguration.barcodeFormats = BarcodeFormats.common + this.scannerConfiguration.barcodeFormatConfigurations = listOf(BarcodeFormatCommonConfiguration(formats = BarcodeFormats.common)) // Configure other parameters as needed. } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/SingleScanningUseCaseSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/SingleScanningUseCaseSnippet.kt index df90591..6806410 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/SingleScanningUseCaseSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/SingleScanningUseCaseSnippet.kt @@ -12,6 +12,7 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet // TODO: add URLs here // @Tag("Configuring RTU UI v2 Barcode single scan use case snippet") +import io.scanbot.sdk.barcode.BarcodeFormatCommonConfiguration import io.scanbot.sdk.barcode.BarcodeFormats import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration import io.scanbot.sdk.ui_v2.barcode.configuration.SingleScanningMode @@ -53,7 +54,7 @@ fun singleScanningUseCaseSnippet() { } // Set an array of accepted barcode types. - this.scannerConfiguration.barcodeFormats = BarcodeFormats.common + this.scannerConfiguration.barcodeFormatConfigurations = listOf(BarcodeFormatCommonConfiguration(formats = BarcodeFormats.common)) // Configure other parameters as needed. } diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ViewFinderSnippet.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ViewFinderSnippet.kt index 7baf4ab..1295910 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ViewFinderSnippet.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/ViewFinderSnippet.kt @@ -19,7 +19,7 @@ import android.widget.Toast import androidx.activity.result.ActivityResultLauncher // @Tag("Add imports for RTU UI v2 activity") import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDKInitializer -import io.scanbot.sdk.common.AspectRatio +import io.scanbot.sdk.geometry.AspectRatio import io.scanbot.sdk.ui_v2.barcode.BarcodeScannerActivity import io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeScannerScreenConfiguration import io.scanbot.sdk.ui_v2.common.FinderStyle diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/detailed_setup_guide/LicenseHandlingSnippets.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/detailed_setup_guide/LicenseHandlingSnippets.kt index 4309eac..ac40efe 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/detailed_setup_guide/LicenseHandlingSnippets.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/detailed_setup_guide/LicenseHandlingSnippets.kt @@ -4,10 +4,10 @@ import android.app.Application import androidx.appcompat.app.AppCompatActivity import io.scanbot.example.* import io.scanbot.sap.* -import io.scanbot.sap.Status.* import io.scanbot.sdk.* import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDKInitializer +import io.scanbot.sdk.licensing.LicenseStatus import io.scanbot.sdk.util.log.* /* @@ -40,22 +40,27 @@ fun handleLicenseStatusSnippet(application: Application) { // @Tag("Handle License Status") val licenseInfo = ScanbotBarcodeScannerSDKInitializer() .license(application, "YOUR_SCANBOT_SDK_LICENSE_KEY") - .licenceErrorHandler(IScanbotSDKLicenseErrorHandler { status, feature, message -> - LoggerProvider.logger.d("ScanbotSDK", "license status:${status.name}, message: $message") + .licenseErrorHandler { status, feature, message -> + LoggerProvider.logger.d( + "ScanbotSDK", + "license status:${status.name}, message: $message" + ) when (status) { - StatusFailureNotSet, - StatusFailureCorrupted, - StatusFailureWrongOS, - StatusFailureAppIDMismatch, - StatusFailureExpired -> { + LicenseStatus.OKAY -> {} + LicenseStatus.TRIAL -> {} + LicenseStatus.OKAY_EXPIRING_SOON -> {} + LicenseStatus.FAILURE_NOT_SET, + LicenseStatus.FAILURE_CORRUPTED, + LicenseStatus.FAILURE_WRONG_OS, + LicenseStatus.FAILURE_APP_ID_MISMATCH, + LicenseStatus.FAILURE_EXPIRED, + LicenseStatus.FAILURE_SERVER, + LicenseStatus.FAILURE_VERSION, + LicenseStatus.FAILURE_INACTIVE -> { // license is completely invalid } - StatusOkay, - StatusTrial -> { - - } } - }) - .initialize(application) + } + .initialize(application) // @EndTag("Handle License Status") } \ No newline at end of file diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/LicenseHandlingSnippets.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/LicenseHandlingSnippets.kt index 3919f63..cc735a6 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/LicenseHandlingSnippets.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/LicenseHandlingSnippets.kt @@ -3,15 +3,9 @@ package io.scanbot.example.sdk.barcode.doc_code_snippet.usecases import android.app.Application import android.content.Context import io.scanbot.sap.IScanbotSDKLicenseErrorHandler -import io.scanbot.sap.Status.StatusFailureAppIDMismatch -import io.scanbot.sap.Status.StatusFailureCorrupted -import io.scanbot.sap.Status.StatusFailureExpired -import io.scanbot.sap.Status.StatusFailureNotSet -import io.scanbot.sap.Status.StatusFailureWrongOS -import io.scanbot.sap.Status.StatusOkay -import io.scanbot.sap.Status.StatusTrial import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDKInitializer +import io.scanbot.sdk.licensing.LicenseStatus import io.scanbot.sdk.util.log.LoggerProvider fun checkingLicenseStatusSnippet(context: Context) { @@ -19,7 +13,10 @@ fun checkingLicenseStatusSnippet(context: Context) { val licenseInfo = ScanbotBarcodeScannerSDK(context).licenseInfo LoggerProvider.logger.d("ExampleApplication", "License status: ${licenseInfo.status}") LoggerProvider.logger.d("ExampleApplication", "License isValid: ${licenseInfo.isValid}") - LoggerProvider.logger.d("ExampleApplication", "License message: ${licenseInfo.licenseStatusMessage}") + LoggerProvider.logger.d( + "ExampleApplication", + "License message: ${licenseInfo.licenseStatusMessage}" + ) if (licenseInfo.isValid) { // Making your call into ScanbotSDK API is now safe. @@ -30,21 +27,26 @@ fun checkingLicenseStatusSnippet(context: Context) { fun licenseErrorHandlingSnippet(application: Application) { val licenseInfo = ScanbotBarcodeScannerSDKInitializer() .license(application, "YOUR_SCANBOT_SDK_LICENSE_KEY") - .licenceErrorHandler(IScanbotSDKLicenseErrorHandler { status, feature, message -> - LoggerProvider.logger.d("ScanbotSDK", "license status:${status.name}, message: $message") + .licenseErrorHandler { status, feature, message -> + LoggerProvider.logger.d( + "ScanbotSDK", + "license status:${status.name}, message: $message" + ) when (status) { - StatusFailureNotSet, - StatusFailureCorrupted, - StatusFailureWrongOS, - StatusFailureAppIDMismatch, - StatusFailureExpired -> { + LicenseStatus.OKAY -> {} + LicenseStatus.TRIAL -> {} + LicenseStatus.OKAY_EXPIRING_SOON -> {} + LicenseStatus.FAILURE_NOT_SET, + LicenseStatus.FAILURE_CORRUPTED, + LicenseStatus.FAILURE_WRONG_OS, + LicenseStatus.FAILURE_APP_ID_MISMATCH, + LicenseStatus.FAILURE_EXPIRED, + LicenseStatus.FAILURE_SERVER, + LicenseStatus.FAILURE_VERSION, + LicenseStatus.FAILURE_INACTIVE -> { // license is completely invalid } - StatusOkay, - StatusTrial -> { - - } } - }) + } .initialize(application) } \ No newline at end of file diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/ScanAndCountSnippets.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/ScanAndCountSnippets.kt index d13cb7f..85d8f54 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/ScanAndCountSnippets.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/doc_code_snippet/usecases/ScanAndCountSnippets.kt @@ -11,7 +11,7 @@ fun scanAndCountClassicUiSnippet(barcodeCounterView: BarcodeScanAndCountView, co // @Tag("Scan And Count Classic UI") barcodeCounterView.initCamera() val scanbotSDK = ScanbotBarcodeScannerSDK(context) - val barcodeDetector = scanbotSDK.createBarcodeScanner() + val barcodeDetector = scanbotSDK.createBarcodeScanner().getOrThrow() barcodeCounterView.initScanningBehavior( barcodeDetector, diff --git a/example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/BarcodeDocumentParserDemoActivity.kt b/example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/BarcodeDocumentParserDemoActivity.kt index e8a3b6c..0fc0000 100644 --- a/example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/BarcodeDocumentParserDemoActivity.kt +++ b/example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/BarcodeDocumentParserDemoActivity.kt @@ -6,7 +6,7 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import io.scanbot.example.sdk.barcode.R import io.scanbot.example.sdk.barcode.ui.util.applyEdgeToEdge -import io.scanbot.sdk.barcode.document.BarcodeDocumentParser +import io.scanbot.sdk.barcode.BarcodeDocumentParser import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK class BarcodeDocumentParserDemoActivity : AppCompatActivity() { @@ -18,12 +18,12 @@ class BarcodeDocumentParserDemoActivity : AppCompatActivity() { setContentView(R.layout.activity_barcode_document_parser) applyEdgeToEdge(this.findViewById(R.id.root_view)) - barcodeDocumentParser = ScanbotBarcodeScannerSDK(this).createBarcodeDocumentParser() + barcodeDocumentParser = ScanbotBarcodeScannerSDK(this).createBarcodeDocumentParser().getOrThrow() val inputView = findViewById(R.id.barcode_document_input) val outputView = findViewById(R.id.barcode_document_output) findViewById