Skip to content

Commit c587e29

Browse files
Merge pull request #58 from doo/dd/EPIC-1506-update-to-SDKv3.0.8
Update to SDK v3.0.8
2 parents f2ae8f6 + 7b17077 commit c587e29

File tree

7 files changed

+82
-88
lines changed

7 files changed

+82
-88
lines changed

Libraries.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
Open Source libraries used in the Scanbot Barcode Scanner SDK for Android version 3.0.7
1+
Open Source libraries used in the Scanbot Barcode Scanner SDK for Android version 3.0.8
22

33
CWAC-Camera
44

5-
Version 0.6.41
5+
Version 0.6.42
66
(https://github.com/doo/cwac-camera)
77
(https://github.com/commonsguy/cwac-camera/)
88

build.gradle

+9-13
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,31 @@
1-
// Top-level build file where you can add configuration options common to all sub-projects/modules.
21

32
buildscript {
43
ext.compileVersion = 30
54
ext.targetVersion = 30
65
ext.minVersion = 21
7-
ext.kotlin_version = '1.4.20' // use the same version as SDK does
8-
ext.sdkVersion = '3.0.7'
6+
ext.kotlin_version = "1.4.20" // use the same version as SDK does
7+
ext.sdkVersion = "3.0.8"
8+
99
repositories {
1010
google()
11-
jcenter()
1211
mavenCentral()
1312

14-
maven { url 'https://nexus.scanbot.io/nexus/content/repositories/releases/' }
15-
maven { url 'https://nexus.scanbot.io/nexus/content/repositories/snapshots/' }
13+
maven { url "https://nexus.scanbot.io/nexus/content/repositories/releases/" }
14+
maven { url "https://nexus.scanbot.io/nexus/content/repositories/snapshots/" }
1615
}
1716
dependencies {
18-
classpath 'com.android.tools.build:gradle:4.2.2'
19-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
20-
// NOTE: Do not place your application dependencies here; they belong
21-
// in the individual module build.gradle files
17+
classpath('com.android.tools.build:gradle:7.0.4')
18+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
2219
}
2320
}
2421

2522
allprojects {
2623
repositories {
2724
google()
28-
jcenter()
2925
mavenCentral()
3026

31-
maven { url 'https://nexus.scanbot.io/nexus/content/repositories/releases/' }
32-
maven { url 'https://nexus.scanbot.io/nexus/content/repositories/snapshots/' }
27+
maven { url "https://nexus.scanbot.io/nexus/content/repositories/releases/" }
28+
maven { url "https://nexus.scanbot.io/nexus/content/repositories/snapshots/" }
3329
}
3430
}
3531

example_app/build.gradle

+15-18
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
apply plugin: 'com.android.application'
2-
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
1+
2+
apply plugin: "com.android.application"
3+
apply plugin: "kotlin-android"
4+
apply plugin: "kotlin-android-extensions"
5+
46
android {
57
compileSdkVersion compileVersion
6-
buildToolsVersion buildToolsVersion
78

89
defaultConfig {
910
applicationId "io.scanbot.example.sdk.barcode.android"
@@ -20,15 +21,11 @@ android {
2021
buildTypes {
2122
release {
2223
minifyEnabled false
23-
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
24+
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
2425
}
2526
}
26-
compileOptions {
27-
sourceCompatibility 1.8
28-
targetCompatibility 1.8
29-
}
3027
kotlinOptions {
31-
jvmTarget = JavaVersion.VERSION_1_8
28+
jvmTarget = JavaVersion.VERSION_11
3229
}
3330

3431
dexOptions {
@@ -38,15 +35,15 @@ android {
3835
}
3936

4037
dependencies {
41-
implementation fileTree(dir: 'libs', include: ['*.jar'])
42-
implementation 'androidx.appcompat:appcompat:1.3.0'
43-
implementation 'com.squareup.picasso:picasso:2.71828'
38+
implementation(fileTree(dir: "libs", include: ["*.jar"]))
39+
implementation("androidx.appcompat:appcompat:1.3.0")
40+
implementation("com.squareup.picasso:picasso:2.71828")
4441

45-
implementation 'androidx.recyclerview:recyclerview:1.2.1'
46-
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
42+
implementation("androidx.recyclerview:recyclerview:1.2.1")
43+
implementation("androidx.constraintlayout:constraintlayout:2.0.4")
4744

48-
implementation "io.scanbot:scanbot-barcode-scanner-sdk:$sdkVersion"
49-
implementation "io.scanbot:scanbot-barcode-scanner-sdk-ui:$sdkVersion"
45+
implementation("io.scanbot:scanbot-barcode-scanner-sdk:$sdkVersion")
46+
implementation("io.scanbot:scanbot-barcode-scanner-sdk-ui:$sdkVersion")
5047

51-
implementation 'com.google.android.material:material:1.4.0'
48+
implementation("com.google.android.material:material:1.4.0")
5249
}

example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/BarcodeTypesActivity.kt

-2
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@ class BarcodeTypesActivity : AppCompatActivity() {
2727
val layoutManager = LinearLayoutManager(this)
2828
typesList.layoutManager = layoutManager
2929

30-
3130
val adapter = BarcodeTypesAdapter()
3231
typesList.adapter = adapter
3332

3433
findViewById<View>(R.id.apply).setOnClickListener { v ->
3534
finish()
3635
}
3736
}
38-
3937
}

example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/MainActivity.kt

+55-51
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import android.graphics.Bitmap
66
import android.os.Bundle
77
import android.provider.MediaStore
88
import android.view.View
9+
import androidx.activity.result.ActivityResultLauncher
10+
import androidx.activity.result.contract.ActivityResultContracts
911
import androidx.appcompat.app.AppCompatActivity
1012
import androidx.core.content.ContextCompat
1113
import androidx.core.view.isVisible
@@ -17,22 +19,19 @@ import io.scanbot.example.sdk.barcode.ui.dialog.ErrorFragment
1719
import io.scanbot.sap.Status
1820
import io.scanbot.sdk.barcode.ScanbotBarcodeDetector
1921
import io.scanbot.sdk.barcode.entity.BarcodeFormat
20-
import io.scanbot.sdk.barcode.entity.BarcodeScanningResult
2122
import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK
2223
import io.scanbot.sdk.ui.barcode_scanner.view.barcode.BarcodeScannerActivity
2324
import io.scanbot.sdk.ui.barcode_scanner.view.barcode.batch.BatchBarcodeScannerActivity
25+
import io.scanbot.sdk.ui.registerForActivityResultOk
2426
import io.scanbot.sdk.ui.view.barcode.batch.configuration.BatchBarcodeScannerConfiguration
2527
import io.scanbot.sdk.ui.view.barcode.configuration.BarcodeImageGenerationType
2628
import io.scanbot.sdk.ui.view.barcode.configuration.BarcodeScannerConfiguration
2729
import io.scanbot.sdk.ui.view.base.configuration.CameraOrientationMode
2830
import kotlinx.android.synthetic.main.activity_main.*
31+
import kotlinx.android.synthetic.main.activity_qr_camera_view.*
2932
import java.io.IOException
3033

3134
class MainActivity : AppCompatActivity() {
32-
companion object {
33-
private const val BARCODE_DEFAULT_UI_REQUEST_CODE = 910
34-
private const val IMPORT_IMAGE_REQUEST_CODE = 911
35-
}
3635

3736
private lateinit var barcodeDetector: ScanbotBarcodeDetector
3837

@@ -62,9 +61,9 @@ class MainActivity : AppCompatActivity() {
6261
)
6362
})
6463
barcodeCameraConfiguration.setBarcodeImageGenerationType(BarcodeImageGenerationType.NONE)
65-
val intent = BarcodeScannerActivity.newIntent(this@MainActivity, barcodeCameraConfiguration)
66-
startActivityForResult(intent, BARCODE_DEFAULT_UI_REQUEST_CODE)
64+
barcodeResultLauncher.launch(barcodeCameraConfiguration)
6765
}
66+
6867
findViewById<View>(R.id.rtu_ui_image).setOnClickListener {
6968
val barcodeCameraConfiguration = BarcodeScannerConfiguration()
7069
barcodeCameraConfiguration.setBarcodeFormatsFilter(arrayListOf<BarcodeFormat>().also {
@@ -73,9 +72,7 @@ class MainActivity : AppCompatActivity() {
7372
)
7473
})
7574
barcodeCameraConfiguration.setBarcodeImageGenerationType(BarcodeImageGenerationType.VIDEO_FRAME)
76-
val intent =
77-
BarcodeScannerActivity.newIntent(this@MainActivity, barcodeCameraConfiguration)
78-
startActivityForResult(intent, BARCODE_DEFAULT_UI_REQUEST_CODE)
75+
barcodeResultLauncher.launch(barcodeCameraConfiguration)
7976
}
8077

8178
findViewById<View>(R.id.rtu_ui_import).setOnClickListener {
@@ -85,15 +82,10 @@ class MainActivity : AppCompatActivity() {
8582
imageIntent.action = Intent.ACTION_GET_CONTENT
8683
imageIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, false)
8784
imageIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
88-
startActivityForResult(
89-
Intent.createChooser(
90-
imageIntent,
91-
getString(R.string.share_title)
92-
), IMPORT_IMAGE_REQUEST_CODE
93-
)
85+
val wrappedIntent = Intent.createChooser(imageIntent, getString(R.string.share_title))
86+
importImageResultLauncher.launch(wrappedIntent)
9487
}
9588

96-
9789
findViewById<View>(R.id.rtu_ui_batch_mode).setOnClickListener {
9890
val barcodeCameraConfiguration = BatchBarcodeScannerConfiguration()
9991

@@ -107,9 +99,16 @@ class MainActivity : AppCompatActivity() {
10799
barcodeCameraConfiguration.setDetailsPrimaryColor(ContextCompat.getColor(this, android.R.color.white))
108100
barcodeCameraConfiguration.setBarcodesCountTextColor(ContextCompat.getColor(this, android.R.color.white))
109101
barcodeCameraConfiguration.setOrientationLockMode(CameraOrientationMode.PORTRAIT)
102+
barcodeCameraConfiguration.setBarcodeFormatsFilter(arrayListOf<BarcodeFormat>().also {
103+
it.addAll(
104+
BarcodeTypeRepository.selectedTypes
105+
)
106+
})
110107

111-
val intent = BatchBarcodeScannerActivity.newIntent(this@MainActivity, barcodeCameraConfiguration)
112-
startActivityForResult(intent, BARCODE_DEFAULT_UI_REQUEST_CODE)
108+
val rtuInput = BatchBarcodeScannerActivity.InputParams(
109+
barcodeCameraConfiguration
110+
)
111+
batchBarcodeResultLauncher.launch(rtuInput)
113112
}
114113

115114
findViewById<View>(R.id.settings).setOnClickListener {
@@ -118,40 +117,46 @@ class MainActivity : AppCompatActivity() {
118117
}
119118
}
120119

121-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
122-
super.onActivityResult(requestCode, resultCode, data)
123-
if (requestCode == BARCODE_DEFAULT_UI_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
124-
data?.getParcelableExtra<BarcodeScanningResult>(BarcodeScannerActivity.SCANNED_BARCODE_EXTRA)
125-
?.let {
126-
val imagePath =
127-
data.getStringExtra(BarcodeScannerActivity.SCANNED_BARCODE_IMAGE_PATH_EXTRA)
128-
val previewPath =
129-
data.getStringExtra(BarcodeScannerActivity.SCANNED_BARCODE_PREVIEW_FRAME_PATH_EXTRA)
130-
131-
BarcodeResultRepository.barcodeResultBundle =
132-
BarcodeResultBundle(it, imagePath, previewPath)
133-
134-
val intent = Intent(this, BarcodeResultActivity::class.java)
135-
startActivity(intent)
136-
}
137-
} else if (requestCode == IMPORT_IMAGE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
138-
val sdk = ScanbotBarcodeScannerSDK(this)
139-
if (!sdk.licenseInfo.isValid) {
140-
showLicenseDialog()
141-
} else {
142-
processGalleryResult(data!!)?.let { bitmap ->
143-
barcodeDetector.modifyConfig { setBarcodeFormats(BarcodeTypeRepository.selectedTypes.toList()) }
144-
val result = barcodeDetector.detectFromBitmap(bitmap, 0)
145-
146-
BarcodeResultRepository.barcodeResultBundle =
147-
result?.let { BarcodeResultBundle(it, null, null) }
148-
149-
startActivity(Intent(this, BarcodeResultActivity::class.java))
120+
private val barcodeResultLauncher: ActivityResultLauncher<BarcodeScannerConfiguration> =
121+
registerForActivityResultOk(BarcodeScannerActivity.ResultContract()) { resultEntity ->
122+
val imagePath = resultEntity.barcodeImagePath
123+
val previewPath = resultEntity.barcodePreviewFramePath
124+
125+
BarcodeResultRepository.barcodeResultBundle =
126+
BarcodeResultBundle(resultEntity.result!!, imagePath, previewPath)
127+
128+
val intent = Intent(this, BarcodeResultActivity::class.java)
129+
startActivity(intent)
130+
}
131+
132+
private val batchBarcodeResultLauncher: ActivityResultLauncher<BatchBarcodeScannerActivity.InputParams> =
133+
registerForActivityResultOk(BatchBarcodeScannerActivity.ResultContract()) { resultEntity ->
134+
BarcodeResultRepository.barcodeResultBundle =
135+
BarcodeResultBundle(resultEntity.result!!)
136+
137+
val intent = Intent(this, BarcodeResultActivity::class.java)
138+
startActivity(intent)
139+
}
140+
141+
private val importImageResultLauncher: ActivityResultLauncher<Intent> =
142+
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { activityResult ->
143+
if (activityResult.resultCode == Activity.RESULT_OK) {
144+
val sdk = ScanbotBarcodeScannerSDK(this)
145+
if (!sdk.licenseInfo.isValid) {
146+
showLicenseDialog()
147+
} else {
148+
processGalleryResult(activityResult.data!!)?.let { bitmap ->
149+
barcodeDetector.modifyConfig { setBarcodeFormats(BarcodeTypeRepository.selectedTypes.toList()) }
150+
val result = barcodeDetector.detectFromBitmap(bitmap, 0)
151+
152+
BarcodeResultRepository.barcodeResultBundle =
153+
result?.let { BarcodeResultBundle(it, null, null) }
154+
155+
startActivity(Intent(this, BarcodeResultActivity::class.java))
156+
}
150157
}
151158
}
152159
}
153-
}
154-
155160

156161
private fun showLicenseDialog() {
157162
if (supportFragmentManager.findFragmentByTag(ErrorFragment.NAME) == null) {
@@ -171,5 +176,4 @@ class MainActivity : AppCompatActivity() {
171176
}
172177
return bitmap
173178
}
174-
175179
}

example_app/src/main/java/io/scanbot/example/sdk/barcode/ui/adapter/BarcodeTypesAdapter.kt

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class BarcodeTypesAdapter() :
1515
RecyclerView.Adapter<BarcodeTypesViewHolder>() {
1616
val values = BarcodeFormat.ALL_CODES
1717

18-
1918
class BarcodeTypesViewHolder(barcodeTypeView: View) : RecyclerView.ViewHolder(barcodeTypeView) {
2019
var barcodeTypeName: TextView
2120
var barcodeTypeChecker: CheckBox

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip

0 commit comments

Comments
 (0)