Skip to content

Commit f4720eb

Browse files
author
ci-bot
committed
Updated projects
1 parent 21e630a commit f4720eb

31 files changed

Lines changed: 420 additions & 95 deletions

File tree

1120-Without License/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ dependencies {
3636
implementation 'com.google.android.material:material:1.6.1'
3737
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
3838

39-
implementation 'com.regula.btdevice:api:1.1.+@aar'
40-
implementation 'com.regula.documentreader.core:fullauthrfid:7.5.+@aar'
41-
implementation('com.regula.documentreader:api:7.5.+@aar') {
39+
implementation 'com.regula.btdevice:api:7.6.+@aar'
40+
implementation 'com.regula.documentreader.core:fullauthrfid:7.6.+@aar'
41+
implementation('com.regula.documentreader:api:7.6.+@aar') {
4242
transitive = true;
4343
}
4444
}

1120-Without License/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<!-- used for DocumentReader.Instance().prepareDatabase method-->
77
<uses-permission android:name="android.permission.INTERNET" />
88
<uses-permission android:name="android.permission.NFC" />
9+
<uses-permission android:name="android.permission.VIBRATE" />
910

1011
<application
1112
android:allowBackup="true"

1120-Without License/app/src/main/java/com/regula/ble_1120/MainActivity.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ import com.regula.ble_1120.util.BluetoothUtil
1717
import com.regula.ble_1120.util.PermissionUtil
1818
import com.regula.ble_1120.util.PermissionUtil.Companion.respondToPermissionRequest
1919
import com.regula.ble_1120.util.Utils
20+
import com.regula.common.ble.BLEWrapper
21+
import com.regula.common.ble.BleWrapperCallback
22+
import com.regula.common.ble.RegulaBleService
23+
import com.regula.common.ble.callback.BleManagerCallback
2024
import com.regula.documentreader.api.DocumentReader
21-
import com.regula.documentreader.api.ble.BLEWrapper
22-
import com.regula.documentreader.api.ble.BleWrapperCallback
23-
import com.regula.documentreader.api.ble.RegulaBleService
24-
import com.regula.documentreader.api.ble.callback.BleManagerCallback
2525
import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion
2626
import com.regula.documentreader.api.errors.DocumentReaderException
2727
import com.regula.documentreader.api.params.DocReaderConfig

Advanced/DocumentReader-Kotlin/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ dependencies {
3737
implementation 'androidx.navigation:navigation-ui-ktx:2.4.0'
3838
implementation "androidx.recyclerview:recyclerview:1.2.1"
3939

40-
implementation 'com.regula.btdevice:api:1.1.+@aar'
40+
implementation 'com.regula.btdevice:api:7.6.+@aar'
4141
//noinspection GradleDynamicVersion
42-
implementation 'com.regula.documentreader.core:fullrfid:7.5.+@aar'
42+
implementation 'com.regula.documentreader.core:fullrfid:7.6.+@aar'
4343
//noinspection GradleDynamicVersion
44-
implementation('com.regula.documentreader:api:7.5.+@aar') {
44+
implementation('com.regula.documentreader:api:7.6.+@aar') {
4545
transitive = true
4646
}
4747

Advanced/DocumentReader-Kotlin/app/src/main/java/com/regula/documentreader/CommonRecyclerAdapter.kt

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import android.widget.EditText
1111
import androidx.fragment.app.FragmentActivity
1212
import androidx.recyclerview.widget.RecyclerView
1313
import com.google.android.material.dialog.MaterialAlertDialogBuilder
14+
import com.regula.documentreader.Helpers.Companion.adaptImageSize
1415
import com.regula.documentreader.Helpers.Companion.grayedOutAlpha
1516
import com.regula.documentreader.Helpers.Companion.listToString
1617
import com.regula.documentreader.Helpers.Companion.openLink
@@ -43,6 +44,7 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
4344
is ImagePair -> IMAGE_PAIR
4445
is Status -> STATUS
4546
is InputDouble -> INPUT_DOUBLE
47+
is AuthSection -> AUTH_SECTION
4648
else -> 0
4749
}
4850

@@ -56,13 +58,15 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
5658
BOTTOM_SHEET -> VH.BottomSheetVH(RvTitleValueBinding.inflate(li, parent, false))
5759
BOTTOM_SHEET_MULTI ->
5860
VH.BottomSheetMultiVH(RvTitleValueBinding.inflate(li, parent, false))
61+
5962
INPUT_INT -> VH.InputIntVH(RvTitleValueBinding.inflate(li, parent, false))
6063
INPUT_STRING -> VH.InputStringVH(RvTitleValueBinding.inflate(li, parent, false))
6164
TEXT_RESULT -> VH.TextResultVH(RvTextResultBinding.inflate(li, parent, false))
6265
IMAGE -> VH.ImageVH(RvImageBinding.inflate(li, parent, false))
6366
IMAGE_PAIR -> VH.ImagePairVH(RvImagePairBinding.inflate(li, parent, false))
6467
STATUS -> VH.StatusVH(RvStatusBinding.inflate(li, parent, false))
6568
INPUT_DOUBLE -> VH.InputDoubleVH(RvTitleValueBinding.inflate(li, parent, false))
69+
AUTH_SECTION -> VH.AuthSectionVH(RvAuthSectionBinding.inflate(li, parent, false))
6670
else -> VH.SectionVH(RvSectionBinding.inflate(li, parent, false))
6771
}
6872
}
@@ -87,16 +91,62 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
8791
context.getString(R.string.help_mrz),
8892
R.drawable.info_mrz
8993
)
94+
95+
20 -> showBottomSheetHelp(
96+
context.getString(R.string.viz),
97+
context.getString(R.string.help_viz),
98+
R.drawable.info_viz
99+
)
100+
101+
30 -> showBottomSheetHelp(
102+
context.getString(R.string.barcode),
103+
context.getString(R.string.help_barcode),
104+
R.drawable.info_barcode
105+
)
106+
107+
40 -> openLink(context, "Security")
108+
}
109+
}
110+
}
111+
112+
private fun showBottomSheetHelp(title: String, text: String, image: Int) =
113+
BottomSheet.newInstance(
114+
title, arrayListOf(HelpBig(text, image)), true, "Close", true
115+
) {}.show((context as FragmentActivity).supportFragmentManager, "")
116+
}
117+
118+
class AuthSectionVH(private val binding: RvAuthSectionBinding) : VH(binding.root) {
119+
override fun bind(base: Base) {
120+
val section = base as AuthSection
121+
binding.title.text = section.title
122+
if (section.helpTag == 0)
123+
binding.help.visibility = INVISIBLE
124+
125+
when (section.checkStatus){
126+
eCheckResult.CH_CHECK_ERROR -> binding.completedStatusImage.setImageResource(R.drawable.reg_icon_check_fail)
127+
eCheckResult.CH_CHECK_OK -> binding.completedStatusImage.setImageResource(R.drawable.reg_icon_check_ok)
128+
eCheckResult.CH_CHECK_WAS_NOT_DONE -> binding.completedStatusImage.setImageResource(R.drawable.reg_icon_no_check)
129+
}
130+
binding.help.setOnClickListener {
131+
when (section.helpTag) {
132+
10 -> showBottomSheetHelp(
133+
context.getString(R.string.mrz),
134+
context.getString(R.string.help_mrz),
135+
R.drawable.info_mrz
136+
)
137+
90138
20 -> showBottomSheetHelp(
91139
context.getString(R.string.viz),
92140
context.getString(R.string.help_viz),
93141
R.drawable.info_viz
94142
)
143+
95144
30 -> showBottomSheetHelp(
96145
context.getString(R.string.barcode),
97146
context.getString(R.string.help_barcode),
98147
R.drawable.info_barcode
99148
)
149+
100150
40 -> openLink(context, "Security")
101151
}
102152
}
@@ -125,6 +175,7 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
125175
ACTION_TYPE_GALLERY -> (context as MainActivity).createImageBrowsingRequest()
126176
ACTION_TYPE_CUSTOM -> {
127177
}
178+
128179
ACTION_TYPE_MANUAL_MULTIPAGE_MODE -> {
129180
DocumentReader.Instance().startNewSession()
130181
(context as MainActivity).showScanner()
@@ -349,28 +400,28 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
349400
val image = base as ImagePair
350401
binding.title.text = "#$layoutPosition " + image.title
351402

352-
if(image.error?.isEmpty() == true) {
403+
if (image.error?.isEmpty() == true) {
353404
binding.titleError.visibility = View.GONE
354-
} else{
405+
} else {
355406
binding.titleError.visibility = View.VISIBLE
356407
}
357-
binding.titleError.text = image.error
408+
binding.titleError.text = image.error
358409

359-
if(image.imageEtalon != null) {
410+
if (image.imageEtalon != null) {
360411
image.imageEtalon.let {
361412
binding.titleEtalon.text = "(EtalonImage)"
362413
}
363414
binding.imageEtalon.visibility = View.VISIBLE
364415
binding.imageEtalon.setImageBitmap(image.imageEtalon)
365-
} else{
416+
} else {
366417
binding.titleEtalon.text = ""
367418
binding.imageEtalon.visibility = View.GONE
368419
}
369-
if(image.image != null) {
420+
if (image.image != null) {
370421
binding.image.visibility = View.VISIBLE
371422
binding.image.setImageBitmap(image.image)
372423
binding.titleImage.text = "(Image)"
373-
} else{
424+
} else {
374425
binding.titleImage.text = ""
375426
binding.image.visibility = View.GONE
376427
}
@@ -379,23 +430,33 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
379430
eCheckResult.CH_CHECK_OK -> {
380431
binding.elementStatusImage.setImageResource(R.drawable.reg_icon_check_ok)
381432
}
433+
382434
eCheckResult.CH_CHECK_ERROR -> {
383435
binding.elementStatusImage.setImageResource(R.drawable.reg_icon_check_fail)
384436
}
437+
385438
eCheckResult.CH_CHECK_WAS_NOT_DONE -> {
386439
binding.elementStatusImage.setImageResource(R.drawable.reg_icon_no_check)
387440
}
441+
388442
else -> {
389443
binding.elementStatusImage.setImageBitmap(null)
390444
}
391445
}
392446
}
393447
}
448+
394449
class ImageVH(private val binding: RvImageBinding) : VH(binding.root) {
395450
override fun bind(base: Base) {
396451
val image = base as Image
397452
binding.title.text = image.title.uppercase(Locale.ROOT)
398-
binding.image.setImageBitmap(image.value)
453+
454+
if (image.title.uppercase(Locale.ROOT).contains("DOCUMENT IMAGE")) {
455+
val resizedBitmap = adaptImageSize(image.value, 900)
456+
binding.image.setImageBitmap(resizedBitmap)
457+
} else {
458+
binding.image.setImageBitmap(image.value)
459+
}
399460
}
400461
}
401462

@@ -426,5 +487,6 @@ class CommonRecyclerAdapter(private val items: List<Base>) :
426487
private const val STATUS = 9
427488
private const val INPUT_DOUBLE = 10
428489
private const val IMAGE_PAIR = 11
490+
private const val AUTH_SECTION = 12
429491
}
430492
}

Advanced/DocumentReader-Kotlin/app/src/main/java/com/regula/documentreader/DeviceActivity.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import android.widget.EditText
1313
import android.widget.Toast
1414
import androidx.appcompat.app.AlertDialog
1515
import androidx.appcompat.app.AppCompatActivity
16+
import com.regula.common.ble.BLEWrapper
17+
import com.regula.common.ble.BleWrapperCallback
18+
import com.regula.common.ble.RegulaBleService
19+
import com.regula.common.ble.callback.BleManagerCallback
1620
import com.regula.documentreader.api.DocumentReader
17-
import com.regula.documentreader.api.ble.BLEWrapper
18-
import com.regula.documentreader.api.ble.BleWrapperCallback
19-
import com.regula.documentreader.api.ble.RegulaBleService
20-
import com.regula.documentreader.api.ble.callback.BleManagerCallback
2121
import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion
2222
import com.regula.documentreader.api.errors.DocumentReaderException
2323
import com.regula.documentreader.api.params.BleDeviceConfig
@@ -123,7 +123,7 @@ class DeviceActivity : AppCompatActivity() {
123123
showDialog("Initializing")
124124
if (bleManager != null) {
125125
DocumentReader.Instance()
126-
.initializeReader(this@DeviceActivity, BleDeviceConfig(bleManager), initCompletion)
126+
.initializeReader(this@DeviceActivity, BleDeviceConfig(bleManager!!), initCompletion)
127127
} else {
128128
dismissDialog()
129129
Toast.makeText(this, "Error reading license from device", Toast.LENGTH_LONG).show()

Advanced/DocumentReader-Kotlin/app/src/main/java/com/regula/documentreader/Helpers.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import androidx.fragment.app.FragmentActivity
1717
import com.regula.common.utils.CameraUtil
1818
import com.regula.documentreader.api.DocumentReader.Instance
1919
import com.regula.documentreader.api.enums.eRPRM_ResultType
20-
import com.regula.documentreader.api.enums.eRPRM_Authenticity
2120
import com.regula.documentreader.api.enums.eRPRM_ResultType.RPRM_RESULT_TYPE_MRZ_OCR_EXTENDED
2221
import com.regula.documentreader.api.enums.eVisualFieldType
2322
import com.regula.documentreader.api.params.Functionality
@@ -134,6 +133,13 @@ class Helpers {
134133
fun replaceFragment(fragment: Fragment, activity: FragmentActivity, id: Int) =
135134
activity.supportFragmentManager.beginTransaction().replace(id, fragment).commit()
136135

136+
fun adaptImageSize(bitmap: Bitmap, newWidth: Int): Bitmap {
137+
val aspectRatio = bitmap.height.toFloat() / bitmap.width
138+
val newHeight = (aspectRatio * newWidth).toInt()
139+
140+
return Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, false)
141+
}
142+
137143
fun setFunctionality(from: Functionality) {
138144
val to = Instance().functionality().edit()
139145
to.setShowChangeFrameButton(from.isShowChangeFrameButton)
@@ -1070,16 +1076,6 @@ class Helpers {
10701076
eRPRM_ResultType.RFID_RESULT_TYPE_RFID_ORIGINAL_GRAPHICS -> "RFID Original Graphics"
10711077
eRPRM_ResultType.RPRM_RESULT_TYPE_BARCODE_POSITION -> "Barcode Position"
10721078
eRPRM_ResultType.RPRM_RESULT_TYPE_MRZ_POSITION -> "Mrz Position"
1073-
eRPRM_Authenticity.IMAGE_PATTERN -> "Image pattern"
1074-
eRPRM_Authenticity.UV_LUMINESCENCE -> "UV dull paper check"
1075-
eRPRM_Authenticity.BARCODE_FORMAT_CHECK -> "Barcode format check"
1076-
eRPRM_Authenticity.HOLOGRAMS_DETECTION -> "Hologram detection"
1077-
eRPRM_Authenticity.PORTRAIT_COMPARISON -> "Comparison of the portraits"
1078-
eRPRM_Authenticity.OVI -> "OVI check"
1079-
eRPRM_Authenticity.IPI -> "IPI (invisible personal information)"
1080-
eRPRM_Authenticity.LIVENESS -> "Liveness"
1081-
eRPRM_Authenticity.BARCODE_FORMAT_CHECK -> "Barcode format check"
1082-
eRPRM_Authenticity.PHOTO_EMBED_TYPE -> "Photo embedding type"
10831079
else -> "Undefined"
10841080
}
10851081

Advanced/DocumentReader-Kotlin/app/src/main/java/com/regula/documentreader/ResultsActivity.kt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,10 @@ import com.regula.documentreader.api.enums.LCID
2626
import com.regula.documentreader.api.enums.eCheckResult.*
2727
import com.regula.documentreader.api.enums.eRFID_DataFile_Type
2828
import com.regula.documentreader.api.enums.eRFID_ErrorCodes.*
29-
import com.regula.documentreader.api.enums.eRPRM_ResultType
3029
import com.regula.documentreader.api.results.DocumentReaderComparison
3130
import com.regula.documentreader.api.results.DocumentReaderResults
3231
import com.regula.documentreader.api.results.DocumentReaderValidity
33-
import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityElement
3432
import com.regula.documentreader.api.results.authenticity.DocumentReaderIdentResult
35-
import com.regula.documentreader.api.results.authenticity.DocumentReaderOCRSecurityTextResult
3633
import com.regula.documentreader.api.results.authenticity.DocumentReaderPhotoIdentResult
3734
import com.regula.documentreader.api.results.authenticity.DocumentReaderSecurityFeatureCheck
3835
import com.regula.documentreader.databinding.ActivityResultsBinding
@@ -161,9 +158,11 @@ class ResultsActivity : AppCompatActivity() {
161158

162159
private fun initAuthData(): List<GroupedAttributes> {
163160
val pickerData = mutableListOf<GroupedAttributes>()
164-
val attributes = mutableListOf<Attribute>()
165161

166162
results.authenticityResult?.checks?.forEach { checks ->
163+
164+
val attributes = mutableListOf<Attribute>()
165+
167166
checks.elements.forEach{
168167
val error = if (it.elementDiagnose == 1) "" else (it.getElementDiagnoseName(this))
169168
when (it) {
@@ -199,12 +198,7 @@ class ResultsActivity : AppCompatActivity() {
199198
}
200199
}
201200
}
202-
}
203-
204-
val types = attributes.map { it.source }.toSet()
205-
for (type in types) {
206-
val typed = attributes.filter { it.source == type }.toMutableList()
207-
val group = GroupedAttributes(getResultTypeTranslation(type!!), typed)
201+
val group = AuthGroupedAttributes(checks.getTypeName(this), attributes, checkStatus = checks.status)
208202
pickerData.add(group)
209203
}
210204
pickerData.sortBy { it.type }
@@ -496,7 +490,12 @@ class GroupFragment : Fragment() {
496490
tag = 30
497491
else if (type.contains("data groups") || type.contains("data status"))
498492
tag = 40
499-
sectionsData.add(Section(groupedAttributes.type, tag))
493+
494+
if (groupedAttributes is AuthGroupedAttributes){
495+
sectionsData.add(AuthSection(groupedAttributes.type, tag, (groupedAttributes as AuthGroupedAttributes).checkStatus))
496+
} else {
497+
sectionsData.add(Section(groupedAttributes.type, tag))
498+
}
500499

501500
for (attribute in groupedAttributes.items) {
502501
when {

Advanced/DocumentReader-Kotlin/app/src/main/java/com/regula/documentreader/SettingsActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,12 @@ class APISettingsFragment : Fragment() {
194194
{ functionality.isShowTorchButton },
195195
{ functionality.edit().setShowTorchButton(it).apply() })
196196
)
197+
sectionsData.add(
198+
Switch(
199+
"Turn on torch on camera start",
200+
{ functionality.isTorchTurnedOn },
201+
{ functionality.edit().setTorchTurnedOn(it).apply() })
202+
)
197203
sectionsData.add(
198204
Switch(
199205
"Camera Switch button",

0 commit comments

Comments
 (0)