Skip to content

Commit 5fc7e17

Browse files
committed
fix compiling data sdk
1 parent ea59521 commit 5fc7e17

File tree

16 files changed

+119
-146
lines changed

16 files changed

+119
-146
lines changed

data-capture-ready-to-use-ui-example/app/build.gradle

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ dependencies {
7474
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version")
7575
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version")
7676

77-
def scanbotSdkVersion = "7.1.1"
77+
def scanbotSdkVersion = "8.0.0.1158-SNAPSHOT"
7878

7979
implementation("io.scanbot:sdk-package-4:$scanbotSdkVersion")
8080
implementation("io.scanbot:sdk-package-ui:$scanbotSdkVersion")
@@ -95,9 +95,6 @@ dependencies {
9595
// This dependency is only needed if you plan to use Credit Card Scanner feature
9696
implementation("io.scanbot:sdk-creditcard-assets:$scanbotSdkVersion")
9797

98-
// This dependency is only needed if you plan to use EHIC scanner feature
99-
implementation("io.scanbot:sdk-ehic-assets:$scanbotSdkVersion")
100-
10198
// This dependency is only needed if you plan to use MRZ scanner feature
10299
implementation("io.scanbot:sdk-mrz-assets:$scanbotSdkVersion")
103100

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/MainActivity.kt

Lines changed: 22 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,16 @@ import androidx.appcompat.app.AppCompatActivity
99
import androidx.core.content.ContextCompat
1010
import io.scanbot.example.databinding.*
1111
import io.scanbot.example.fragments.*
12-
import io.scanbot.example.util.applyEdgeToEdge
13-
import io.scanbot.sap.*
12+
import io.scanbot.example.util.*
1413
import io.scanbot.sdk.*
1514
import io.scanbot.sdk.check.entity.*
1615
import io.scanbot.sdk.creditcard.entity.*
17-
import io.scanbot.sdk.ehicscanner.*
18-
import io.scanbot.sdk.genericdocument.entity.*
19-
import io.scanbot.sdk.mc.*
20-
import io.scanbot.sdk.ui.*
21-
import io.scanbot.sdk.ui.view.hic.*
22-
import io.scanbot.sdk.ui.view.hic.configuration.*
23-
import io.scanbot.sdk.ui.view.mc.*
24-
import io.scanbot.sdk.ui.view.mc.configuration.*
25-
import io.scanbot.sdk.ui_v2.check.CheckScannerActivity
26-
import io.scanbot.sdk.ui_v2.check.configuration.CheckScannerScreenConfiguration
27-
import io.scanbot.sdk.ui_v2.check.configuration.CheckScannerUiResult
16+
import io.scanbot.sdk.documentdata.*
17+
import io.scanbot.sdk.documentdata.entity.*
18+
import io.scanbot.sdk.genericdocument.*
19+
import io.scanbot.sdk.licensing.*
20+
import io.scanbot.sdk.ui_v2.check.*
21+
import io.scanbot.sdk.ui_v2.check.configuration.*
2822
import io.scanbot.sdk.ui_v2.common.*
2923
import io.scanbot.sdk.ui_v2.common.activity.*
3024
import io.scanbot.sdk.ui_v2.creditcard.*
@@ -35,8 +29,8 @@ import io.scanbot.sdk.ui_v2.mrz.*
3529
import io.scanbot.sdk.ui_v2.mrz.configuration.*
3630
import io.scanbot.sdk.ui_v2.textpattern.*
3731
import io.scanbot.sdk.ui_v2.textpattern.configuration.*
38-
import io.scanbot.sdk.ui_v2.vin.VinScannerActivity
39-
import io.scanbot.sdk.ui_v2.vin.configuration.VinScannerScreenConfiguration
32+
import io.scanbot.sdk.ui_v2.vin.*
33+
import io.scanbot.sdk.ui_v2.vin.configuration.*
4034

4135
class MainActivity : AppCompatActivity() {
4236

@@ -46,8 +40,6 @@ class MainActivity : AppCompatActivity() {
4640
private val creditCardUiResultLauncher: ActivityResultLauncher<CreditCardScannerScreenConfiguration>
4741
private val textDataScannerResultLauncher: ActivityResultLauncher<TextPatternScannerScreenConfiguration>
4842
private val vinScannerResultLauncher: ActivityResultLauncher<VinScannerScreenConfiguration>
49-
private val medicalCertificateScannerActivityResultLauncher: ActivityResultLauncher<MedicalCertificateScannerConfiguration>
50-
private val ehicScannerResultLauncher: ActivityResultLauncher<HealthInsuranceCardScannerConfiguration>
5143
private val dataExtractorResultLauncher: ActivityResultLauncher<DocumentDataExtractorScreenConfiguration>
5244
private val checkScannerResultLauncher: ActivityResultLauncher<CheckScannerScreenConfiguration>
5345

@@ -115,18 +107,20 @@ class MainActivity : AppCompatActivity() {
115107
}
116108

117109
binding.ehicDefaultUi.setOnClickListener {
118-
val ehicScannerConfig = HealthInsuranceCardScannerConfiguration()
119-
ehicScannerConfig.setTopBarButtonsColor(Color.WHITE)
120-
ehicScannerConfig.setRecognizerParameters(
121-
EuropeanHealthInsuranceCardRecognizerConfiguration(
122-
// Add your parameters here if needed
110+
val configuration = DocumentDataExtractorScreenConfiguration()
111+
configuration.scannerConfiguration.configurations =
112+
listOf(
113+
DocumentDataExtractorCommonConfiguration(
114+
acceptedDocumentTypes = listOf(
115+
EuropeanHealthInsuranceCard.DOCUMENT_TYPE
116+
)
117+
),
118+
EuropeanHealthInsuranceCardConfiguration(expectedCountry = EuropeanHealthInsuranceCardIssuingCountry.GERMANY)
123119
)
120+
configuration.topBar.backgroundColor = ScanbotColor(
121+
ContextCompat.getColor(this, R.color.colorPrimaryDark)
124122
)
125-
// ehicScannerConfig.setTopBarBackgroundColor(ContextCompat.getColor(this, android.R.color.holo_red_dark))
126-
// ehicScannerConfig.setFinderTextHint("custom text")
127-
// ...
128-
129-
ehicScannerResultLauncher.launch(ehicScannerConfig)
123+
dataExtractorResultLauncher.launch(configuration)
130124
}
131125

132126
binding.checkRecognizerUi.setOnClickListener {
@@ -136,20 +130,6 @@ class MainActivity : AppCompatActivity() {
136130

137131
checkScannerResultLauncher.launch(config)
138132
}
139-
140-
binding.mcScannerUi.setOnClickListener {
141-
val config = MedicalCertificateScannerConfiguration().apply {
142-
setTopBarBackgroundColor(
143-
ContextCompat.getColor(
144-
this@MainActivity,
145-
R.color.colorPrimaryDark
146-
)
147-
)
148-
setTopBarButtonsColor(ContextCompat.getColor(this@MainActivity, R.color.greyColor))
149-
}
150-
151-
medicalCertificateScannerActivityResultLauncher.launch(config)
152-
}
153133
}
154134

155135
override fun onResume() {
@@ -158,7 +138,7 @@ class MainActivity : AppCompatActivity() {
158138
showLicenseDialog()
159139
}
160140
binding.warningView.visibility =
161-
if (scanbotSdk.licenseInfo.status != Status.StatusOkay) View.VISIBLE else View.GONE
141+
if (scanbotSdk.licenseInfo.status != LicenseStatus.OKAY) View.VISIBLE else View.GONE
162142
}
163143

164144
private fun handleDocumentDataExtractorResult(result: List<DocumentDataExtractorUiResult>) {
@@ -184,22 +164,6 @@ class MainActivity : AppCompatActivity() {
184164
dialogFragment.show(supportFragmentManager, MRZDialogFragment.NAME)
185165
}
186166

187-
private fun showEHICResultDialog(recognitionResult: EuropeanHealthInsuranceCardRecognitionResult) {
188-
val dialogFragment = EHICResultDialogFragment.newInstance(recognitionResult)
189-
dialogFragment.show(supportFragmentManager, EHICResultDialogFragment.NAME)
190-
}
191-
192-
private fun handleMedicalCertificateResult(resultWrapper: MedicalCertificateScanningResult) {
193-
194-
195-
showMedicalCertificateScannerResult(resultWrapper!!)
196-
}
197-
198-
private fun showMedicalCertificateScannerResult(recognitionResult: MedicalCertificateScanningResult) {
199-
val dialogFragment = MedicalCertificateResultDialogFragment.newInstance(recognitionResult)
200-
dialogFragment.show(supportFragmentManager, MedicalCertificateResultDialogFragment.NAME)
201-
}
202-
203167
private fun handleCheckScannerResult(result: CheckScannerUiResult) {
204168
showCheckScannerResult(result)
205169
}
@@ -255,21 +219,11 @@ class MainActivity : AppCompatActivity() {
255219
).show()
256220
}
257221

258-
ehicScannerResultLauncher =
259-
registerForActivityResultOk(HealthInsuranceCardScannerActivity.ResultContract()) { resultEntity ->
260-
showEHICResultDialog(resultEntity.result!!)
261-
}
262-
263222
dataExtractorResultLauncher =
264223
registerForActivityResultOk(DocumentDataExtractorActivity.ResultContract()) { resultEntity ->
265224
handleDocumentDataExtractorResult(listOfNotNull(resultEntity.result))
266225
}
267226

268-
medicalCertificateScannerActivityResultLauncher =
269-
registerForActivityResultOk(MedicalCertificateScannerActivity.ResultContract()) { resultEntity ->
270-
handleMedicalCertificateResult(resultEntity.result!!)
271-
}
272-
273227
checkScannerResultLauncher =
274228
registerForActivityResultOk(CheckScannerActivity.ResultContract()) { resultEntity ->
275229
handleCheckScannerResult(resultEntity.result!!)

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/cheque/CheckStableImageDetectionSnippet.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ import android.util.Log
88
import androidx.activity.result.contract.ActivityResultContracts
99
import androidx.appcompat.app.AppCompatActivity
1010
import androidx.lifecycle.lifecycleScope
11+
import io.scanbot.common.getOrNull
1112
import io.scanbot.example.util.*
1213
import io.scanbot.sdk.*
1314
import io.scanbot.sdk.check.*
15+
import io.scanbot.sdk.image.ImageRef
16+
import io.scanbot.sdk.ui_v2.document.utils.toImageRef
1417
import kotlinx.coroutines.Dispatchers
1518
import kotlinx.coroutines.launch
1619
import kotlinx.coroutines.withContext
@@ -44,16 +47,16 @@ class CheckStableImageDetectionSnippet : AppCompatActivity() {
4447
withContext(Dispatchers.Default) {
4548
getUrisFromGalleryResult(imagePickerResult)
4649
.asSequence() // process images one by one instead of collecting the whole list - less memory consumption
47-
.map { it.toBitmap(contentResolver) }
48-
.forEach { bitmap ->
49-
if (bitmap == null) {
50+
.map { it.toImageRef(contentResolver) }
51+
.forEach { image ->
52+
if (image == null) {
5053
Log.e(
5154
"Snippet",
5255
"Failed to load bitmap from URI"
5356
)
5457
return@forEach
5558
}
56-
processImage(checkScanner, bitmap)
59+
checkScanner?.let { processImage(it, image) }
5760
}
5861

5962
}
@@ -77,14 +80,14 @@ class CheckStableImageDetectionSnippet : AppCompatActivity() {
7780
}
7881

7982
// Create a check scanner instance
80-
val checkScanner = scanbotSDK.createCheckScanner()
83+
val checkScanner = scanbotSDK.createCheckScanner().getOrNull()
8184

8285
private fun processImage(
8386
checkScanner: CheckScanner,
84-
bitmap: Bitmap
87+
image: ImageRef
8588
) {
86-
val result = checkScanner.scanFromBitmap(bitmap, 0)
87-
result?.check?.let { wrapCheck(it) }
89+
val result = checkScanner.run(image)
90+
result.getOrNull()?.check?.let { wrapCheck(it) }
8891
// Check recognition results are processed
8992
}
9093
// @EndTag("Extracting cheque data from an image")

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/cheque/WrapCheckSnippet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ package io.scanbot.example.doc_code_snippet.cheque
1212
// TODO: add URLs here
1313

1414
import io.scanbot.sdk.check.entity.*
15-
import io.scanbot.sdk.genericdocument.entity.*
15+
import io.scanbot.sdk.genericdocument.GenericDocument
1616

1717
fun wrapCheck(genericDocument: GenericDocument) {
1818
// @Tag("Check Scanner Result Wrapper")

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/creditcard/CreditCardStableImageDetection.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ import android.util.Log
1010
import androidx.activity.result.contract.ActivityResultContracts
1111
import androidx.appcompat.app.AppCompatActivity
1212
import androidx.lifecycle.lifecycleScope
13+
import io.scanbot.common.getOrNull
1314
import io.scanbot.example.util.*
1415
import io.scanbot.sdk.*
1516
import io.scanbot.sdk.creditcard.*
17+
import io.scanbot.sdk.image.ImageRef
18+
import io.scanbot.sdk.ui_v2.document.utils.toImageRef
1619
import kotlinx.coroutines.Dispatchers
1720
import kotlinx.coroutines.launch
1821
import kotlinx.coroutines.withContext
@@ -72,16 +75,16 @@ class CreditCardStableImageDetection : AppCompatActivity() {
7275
withContext(Dispatchers.Default) {
7376
getUrisFromGalleryResult(imagePickerResult)
7477
.asSequence() // process images one by one instead of collecting the whole list - less memory consumption
75-
.map { it.toBitmap(contentResolver) }
76-
.forEach { bitmap ->
77-
if (bitmap == null) {
78+
.map { it.toImageRef(contentResolver) }
79+
.forEach { imageRef ->
80+
if (imageRef == null) {
7881
Log.e(
7982
"Snippet",
80-
"Failed to load bitmap from URI"
83+
"Failed to load imageRef from URI"
8184
)
8285
return@forEach
8386
}
84-
processImage(creditCardScanner, bitmap)
87+
creditCardScanner?.let { processImage(it, imageRef) }
8588
}
8689

8790
}
@@ -106,10 +109,10 @@ class CreditCardStableImageDetection : AppCompatActivity() {
106109

107110
// @Tag("Extracting credit card data from an image")
108111
// Create a data extractor instance
109-
val creditCardScanner = scanbotSDK.createCreditCardScanner()
112+
val creditCardScanner = scanbotSDK.createCreditCardScanner().getOrNull()
110113

111-
private fun processImage(scanner: CreditCardScanner, bitmap: Bitmap) {
112-
val result = scanner.scanFromBitmap(bitmap, 0)
114+
private fun processImage(scanner: CreditCardScanner, image: ImageRef) {
115+
val result = scanner.run(image)
113116
// Proceed MRZ scanner result
114117
// processResult(result)
115118
}

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/data_extractor/DataExtractorStableImageDetection.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ import android.util.Log
88
import androidx.activity.result.contract.ActivityResultContracts
99
import androidx.appcompat.app.AppCompatActivity
1010
import androidx.lifecycle.lifecycleScope
11+
import io.scanbot.common.getOrNull
1112
import io.scanbot.example.doc_code_snippet.data_extractor.*
1213
import io.scanbot.example.util.*
1314
import io.scanbot.sdk.*
1415
import io.scanbot.sdk.documentdata.*
16+
import io.scanbot.sdk.image.ImageRef
17+
import io.scanbot.sdk.ui_v2.document.utils.toImageRef
1518
import kotlinx.coroutines.Dispatchers
1619
import kotlinx.coroutines.launch
1720
import kotlinx.coroutines.withContext
@@ -45,16 +48,16 @@ class DataExtractorStableImageDetection : AppCompatActivity() {
4548
withContext(Dispatchers.Default) {
4649
getUrisFromGalleryResult(imagePickerResult)
4750
.asSequence() // process images one by one instead of collecting the whole list - less memory consumption
48-
.map { it.toBitmap(contentResolver) }
49-
.forEach { bitmap ->
50-
if (bitmap == null) {
51+
.map { it.toImageRef(contentResolver) }
52+
.forEach { imageRef ->
53+
if (imageRef == null) {
5154
Log.e(
5255
"Snippet",
53-
"Failed to load bitmap from URI"
56+
"Failed to load imageRef from URI"
5457
)
5558
return@forEach
5659
}
57-
processImage(dataExtractor, bitmap)
60+
dataExtractor?.let { processImage(it, imageRef) }
5861
}
5962

6063
}
@@ -78,15 +81,15 @@ class DataExtractorStableImageDetection : AppCompatActivity() {
7881
}
7982

8083
// Create a data extractor instance
81-
val dataExtractor = scanbotSDK.createDocumentDataExtractor()
84+
val dataExtractor = scanbotSDK.createDocumentDataExtractor().getOrNull()
8285

8386
private fun processImage(
8487
dataExtractor: DocumentDataExtractor,
85-
bitmap: Bitmap
88+
image: ImageRef
8689
) {
8790
// @Tag("Extracting document data from an image")
88-
val result = dataExtractor.extractFromBitmap(bitmap, 0)
89-
result?.document?.let { wrapGenericDocument(it) }
91+
val result = dataExtractor.run(image)
92+
result.getOrNull()?.document?.let { wrapGenericDocument(it) }
9093
// Data extraction results are processed
9194
// @EndTag("Extracting document data from an image")
9295
}

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/data_extractor/DetectionOnImageSnippets.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.scanbot.example.doc_code_snippet.data_extractor
22

33
import android.app.Application
44
import android.content.Context
5+
import io.scanbot.common.getOrNull
56
import io.scanbot.sdk.*
67
import io.scanbot.sdk.documentdata.*
78
import io.scanbot.sdk.documentdata.entity.*
@@ -41,8 +42,8 @@ fun extractorCreationSnippet(context: Context) {
4142
fun ehicExtractorCreationSnippet(context: Context) {
4243
// @Tag("Create Document Data Extractor for EHIC")
4344
val scanbotSdk = ScanbotSDK(context)
44-
val dataExtractor = scanbotSdk.createDocumentDataExtractor()
45-
dataExtractor.setConfiguration(
45+
val dataExtractor = scanbotSdk.createDocumentDataExtractor().getOrNull()
46+
dataExtractor?.setConfiguration(
4647
DocumentDataExtractorConfigurationBuilder()
4748
.setAcceptedDocumentTypes(listOf(RootDocumentType.EuropeanHealthInsuranceCard, RootDocumentType.DeHealthInsuranceCardFront))
4849
.build())

data-capture-ready-to-use-ui-example/app/src/main/java/io/scanbot/example/doc_code_snippet/data_extractor/DocumentDataExtractorFrameHandlerSnippet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ package io.scanbot.example.doc_code_snippet.data_extractor
1111

1212
import android.content.Context
1313
import android.widget.Toast
14+
import io.scanbot.common.getOrThrow
1415
import io.scanbot.sdk.ScanbotSDK
1516
import io.scanbot.sdk.SdkLicenseError
1617
import io.scanbot.sdk.camera.FrameHandlerResult
1718
import io.scanbot.sdk.documentdata.*
1819

1920
fun useDocumentDataExtractorFrameHandler(context: Context) {
2021
// @Tag("Add a frame handler for DocumentDataExtractor")
21-
val dataExtractor = ScanbotSDK(context).createDocumentDataExtractor()
22+
val dataExtractor = ScanbotSDK(context).createDocumentDataExtractor().getOrThrow()
2223
val frameHandler = DocumentDataExtractorFrameHandler(dataExtractor)
2324

2425
frameHandler.addResultHandler(object : DocumentDataExtractorFrameHandler.ResultHandler {

0 commit comments

Comments
 (0)