@regulaforensics/react-native-document-reader-api 8.1.128-nightly → 8.1.138-nightly

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/RNDocumentReaderApi.podspec +1 -1
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/AndroidManifest.xml +1 -1
  4. package/android/src/main/java/com/regula/{documentreader → plugin/documentreader}/BluetoothUtil.kt +7 -16
  5. package/android/src/main/java/com/regula/{documentreader → plugin/documentreader}/Config.kt +154 -120
  6. package/android/src/main/java/com/regula/plugin/documentreader/JSONConstructor.kt +1778 -0
  7. package/android/src/main/java/com/regula/plugin/documentreader/Main.kt +553 -0
  8. package/android/src/main/java/com/regula/plugin/documentreader/RNRegulaDocumentReaderModule.kt +103 -0
  9. package/android/src/main/java/com/regula/plugin/documentreader/Utils.kt +181 -0
  10. package/example/android/app/build.gradle +7 -4
  11. package/example/android/app/src/debug/java/com/regula/dr/fullrfid/ReactNativeFlipper.java +1 -1
  12. package/example/android/app/src/main/java/com/regula/dr/{fullrfid → fullauthrfid}/MainActivity.java +1 -1
  13. package/example/android/app/src/main/java/com/regula/dr/{fullrfid → fullauthrfid}/MainApplication.java +10 -3
  14. package/example/android/app/src/release/java/com/regula/dr/fullrfid/ReactNativeFlipper.java +1 -1
  15. package/example/android/build.gradle +5 -5
  16. package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  17. package/example/android/settings.gradle +4 -2
  18. package/example/ios/DocumentReader/AppDelegate.mm +5 -0
  19. package/example/ios/DocumentReader/Info.plist +22 -0
  20. package/example/ios/DocumentReader.xcodeproj/project.pbxproj +4 -14
  21. package/example/ios/Podfile +1 -6
  22. package/example/package-lock.json +2665 -1874
  23. package/example/package.json +25 -22
  24. package/ios/RGLWConfig.h +0 -8
  25. package/ios/RGLWConfig.m +44 -52
  26. package/ios/RGLWJSONConstructor.h +1 -8
  27. package/ios/RGLWJSONConstructor.m +12 -10
  28. package/ios/RGLWMain.h +36 -0
  29. package/ios/RGLWMain.m +591 -0
  30. package/ios/RNRegulaDocumentReader.h +4 -20
  31. package/ios/RNRegulaDocumentReader.m +18 -726
  32. package/package.json +1 -1
  33. package/android/src/main/java/com/regula/documentreader/JSONConstructor.kt +0 -2227
  34. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderModule.kt +0 -560
  35. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderPackage.kt +0 -11
  36. package/android/src/main/java/com/regula/documentreader/Utils.kt +0 -268
@@ -1,560 +0,0 @@
1
- @file:Suppress("UNCHECKED_CAST", "MissingPermission")
2
-
3
- package com.regula.documentreader
4
-
5
- import android.app.Activity
6
- import android.app.PendingIntent
7
- import android.content.Context
8
- import android.content.Intent
9
- import android.content.IntentFilter
10
- import android.nfc.NfcAdapter
11
- import android.nfc.tech.IsoDep
12
- import android.os.Build
13
- import androidx.appcompat.app.AppCompatActivity
14
- import androidx.lifecycle.Lifecycle
15
- import androidx.lifecycle.LifecycleEventObserver
16
- import com.facebook.react.bridge.ActivityEventListener
17
- import com.facebook.react.bridge.Arguments
18
- import com.facebook.react.bridge.ReactApplicationContext
19
- import com.facebook.react.bridge.ReactContext
20
- import com.facebook.react.bridge.ReactContextBaseJavaModule
21
- import com.facebook.react.bridge.ReactMethod
22
- import com.facebook.react.bridge.ReadableArray
23
- import com.facebook.react.modules.core.DeviceEventManagerModule
24
- import com.facebook.react.modules.core.PermissionAwareActivity
25
- import com.regula.common.LocalizationCallbacks
26
- import com.regula.documentreader.Convert.bitmapToBase64
27
- import com.regula.documentreader.Convert.byteArrayFromBase64
28
- import com.regula.documentreader.api.DocumentReader.Instance
29
- import com.regula.documentreader.api.completions.IDocumentReaderCompletion
30
- import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion
31
- import com.regula.documentreader.api.completions.IDocumentReaderPrepareDbCompletion
32
- import com.regula.documentreader.api.completions.model.PrepareProgress
33
- import com.regula.documentreader.api.completions.rfid.IRfidPKDCertificateCompletion
34
- import com.regula.documentreader.api.completions.rfid.IRfidReaderCompletion
35
- import com.regula.documentreader.api.completions.rfid.IRfidReaderRequest
36
- import com.regula.documentreader.api.completions.rfid.IRfidTASignatureCompletion
37
- import com.regula.documentreader.api.completions.rfid.certificates.IRfidPACertificates
38
- import com.regula.documentreader.api.completions.rfid.certificates.IRfidTACertificates
39
- import com.regula.documentreader.api.completions.rfid.certificates.IRfidTASignature
40
- import com.regula.documentreader.api.enums.DocReaderAction
41
- import com.regula.documentreader.api.enums.LCID
42
- import com.regula.documentreader.api.enums.eImageQualityCheckType
43
- import com.regula.documentreader.api.enums.eLDS_ParsingErrorCodes
44
- import com.regula.documentreader.api.enums.eLDS_ParsingNotificationCodes
45
- import com.regula.documentreader.api.enums.eRFID_DataFile_Type
46
- import com.regula.documentreader.api.enums.eRFID_ErrorCodes
47
- import com.regula.documentreader.api.enums.eVisualFieldType
48
- import com.regula.documentreader.api.errors.DocReaderRfidException
49
- import com.regula.documentreader.api.errors.DocumentReaderException
50
- import com.regula.documentreader.api.internal.core.CoreScenarioUtil
51
- import com.regula.documentreader.api.results.DocumentReaderNotification
52
- import com.regula.documentreader.api.results.DocumentReaderResults
53
- import com.regula.documentreader.api.results.DocumentReaderResults.fromRawResults
54
- import com.regula.documentreader.api.results.DocumentReaderScenario
55
- import org.json.JSONArray
56
- import org.json.JSONObject
57
-
58
- lateinit var args: JSONArray
59
- lateinit var binding: ReactContext
60
- val context: Context
61
- get() = binding.applicationContext
62
- val activity: Activity
63
- get() = binding.currentActivity!!
64
- val lifecycle: Lifecycle
65
- get() = (activity as AppCompatActivity).lifecycle
66
-
67
- fun sendEvent(event: String, data: Any? = "") {
68
- val map = Arguments.createMap()
69
- val result = if (data is JSONObject || data is JSONArray) data.toString() else data.toString() + ""
70
- map.putString("msg", result)
71
- binding.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit(event, map)
72
- }
73
-
74
- fun <T> argsNullable(index: Int): T? {
75
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
76
- // Rewrite it according to react native documentation!!!
77
- // the is no int or double in js so all ints are sent as double by default
78
- val value = args[index]
79
- if (value is Double) if (value % 1 == 0.0) {
80
- val intValue = value.toInt()
81
- return intValue as T
82
- }
83
- if (args[index].toString() == "null") return null
84
- return args[index] as T
85
- }
86
-
87
- @Suppress("unused", "UNUSED_PARAMETER")
88
- class RNRegulaDocumentReaderModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext), ActivityEventListener {
89
- init {
90
- binding = reactContext
91
- binding.addActivityEventListener(this)
92
- }
93
-
94
- @ReactMethod
95
- fun addListener(eventName: String?) = Unit
96
-
97
- @ReactMethod
98
- fun removeListeners(count: Int?) = Unit
99
-
100
- @ReactMethod
101
- fun exec(moduleName: String?, action: String?, args: ReadableArray, successCallback: com.facebook.react.bridge.Callback, errorCallback: com.facebook.react.bridge.Callback) = exec(action, args, successCallback, errorCallback)
102
-
103
- override fun getName() = "RNRegulaDocumentReader"
104
-
105
- override fun onNewIntent(intent: Intent) {
106
- newIntent(intent)
107
- }
108
-
109
- override fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) {
110
- onActivityResult(requestCode, resultCode, data)
111
- }
112
- }
113
-
114
- fun requestPermissions(activity: Activity, permissions: Array<String>, requestCode: Int) {
115
- (activity as PermissionAwareActivity).requestPermissions(permissions, requestCode) { code, perms, grantResults ->
116
- onRequestPermissionsResult(code, perms, grantResults)
117
- }
118
- }
119
-
120
- fun startActivityForResult(activity: Activity, intent: Intent, requestCode: Int) {
121
- activity.startActivityForResult(intent, requestCode)
122
- }
123
-
124
- fun exec(action: String?, arguments: ReadableArray, successCallback: com.facebook.react.bridge.Callback, errorCallback: com.facebook.react.bridge.Callback) {
125
- args = JSONArray(arguments.toArrayList())
126
- val callback = object : Callback {
127
- override fun success(data: Any?) = successCallback.invoke(data.toSendable())
128
- override fun error(message: String) = errorCallback.invoke(message)
129
- }
130
- when (action) {
131
- "getDocumentReaderIsReady" -> getDocumentReaderIsReady(callback)
132
- "getDocumentReaderStatus" -> getDocumentReaderStatus(callback)
133
- "getRfidSessionStatus" -> getRfidSessionStatus(callback)
134
- "setRfidSessionStatus" -> setRfidSessionStatus(callback)
135
- "getTag" -> getTag(callback)
136
- "setTag" -> setTag(argsNullable(0))
137
- "getTenant" -> getTenant(callback)
138
- "setTenant" -> setTenant(argsNullable(0))
139
- "getEnv" -> getEnv(callback)
140
- "setEnv" -> setEnv(argsNullable(0))
141
- "getFunctionality" -> getFunctionality(callback)
142
- "setFunctionality" -> setFunctionality(args(0))
143
- "getProcessParams" -> getProcessParams(callback)
144
- "setProcessParams" -> setProcessParams(args(0))
145
- "getCustomization" -> getCustomization(callback)
146
- "setCustomization" -> setCustomization(args(0))
147
- "getRfidScenario" -> getRfidScenario(callback)
148
- "setRfidScenario" -> setRfidScenario(args(0))
149
- "resetConfiguration" -> resetConfiguration()
150
- "initializeReader" -> initializeReader(callback, args(0))
151
- "initializeReaderWithBleDeviceConfig" -> initializeReaderWithBleDeviceConfig(callback, args(0))
152
- "deinitializeReader" -> deinitializeReader(callback)
153
- "prepareDatabase" -> prepareDatabase(callback, args(0))
154
- "removeDatabase" -> removeDatabase(callback)
155
- "runAutoUpdate" -> runAutoUpdate(callback, args(0))
156
- "cancelDBUpdate" -> cancelDBUpdate(callback)
157
- "checkDatabaseUpdate" -> checkDatabaseUpdate(callback, args(0))
158
- "scan" -> scan(args(0))
159
- "recognize" -> recognize(args(0))
160
- "startNewPage" -> startNewPage(callback)
161
- "stopScanner" -> stopScanner(callback)
162
- "startRFIDReader" -> startRFIDReader(args(0), args(1), args(2))
163
- "readRFID" -> readRFID(args(0), args(1), args(2))
164
- "stopRFIDReader" -> stopRFIDReader(callback)
165
- "providePACertificates" -> providePACertificates(callback, argsNullable(0))
166
- "provideTACertificates" -> provideTACertificates(callback, argsNullable(0))
167
- "provideTASignature" -> provideTASignature(callback, args(0))
168
- "setTCCParams" -> setTCCParams(callback, args(0))
169
- "addPKDCertificates" -> addPKDCertificates(callback, args(0))
170
- "clearPKDCertificates" -> clearPKDCertificates(callback)
171
- "startNewSession" -> startNewSession(callback)
172
- "connectBluetoothDevice" -> connectBluetoothDevice(callback)
173
- "setLocalizationDictionary" -> setLocalizationDictionary(args(0))
174
- "getLicense" -> getLicense(callback)
175
- "getAvailableScenarios" -> getAvailableScenarios(callback)
176
- "getIsRFIDAvailableForUse" -> getIsRFIDAvailableForUse(callback)
177
- "isAuthenticatorAvailableForUse" -> isAuthenticatorAvailableForUse(callback)
178
- "isAuthenticatorRFIDAvailableForUse" -> isAuthenticatorRFIDAvailableForUse(callback)
179
- "getDocReaderVersion" -> getDocReaderVersion(callback)
180
- "getDocReaderDocumentsDatabase" -> getDocReaderDocumentsDatabase(callback)
181
- "textFieldValueByType" -> textFieldValueByType(callback, args(0), args(1))
182
- "textFieldValueByTypeLcid" -> textFieldValueByTypeLcid(callback, args(0), args(1), args(2))
183
- "textFieldValueByTypeSource" -> textFieldValueByTypeSource(callback, args(0), args(1), args(2))
184
- "textFieldValueByTypeLcidSource" -> textFieldValueByTypeLcidSource(callback, args(0), args(1), args(2), args(3))
185
- "textFieldValueByTypeSourceOriginal" -> textFieldValueByTypeSourceOriginal(callback, args(0), args(1), args(2), args(3))
186
- "textFieldValueByTypeLcidSourceOriginal" -> textFieldValueByTypeLcidSourceOriginal(callback, args(0), args(1), args(2), args(3), args(4))
187
- "textFieldByType" -> textFieldByType(callback, args(0), args(1))
188
- "textFieldByTypeLcid" -> textFieldByTypeLcid(callback, args(0), args(1), args(2))
189
- "graphicFieldByTypeSource" -> graphicFieldByTypeSource(callback, args(0), args(1), args(2))
190
- "graphicFieldByTypeSourcePageIndex" -> graphicFieldByTypeSourcePageIndex(callback, args(0), args(1), args(2), args(3))
191
- "graphicFieldByTypeSourcePageIndexLight" -> graphicFieldByTypeSourcePageIndexLight(callback, args(0), args(1), args(2), args(3), args(4))
192
- "graphicFieldImageByType" -> graphicFieldImageByType(callback, args(0), args(1))
193
- "graphicFieldImageByTypeSource" -> graphicFieldImageByTypeSource(callback, args(0), args(1), args(2))
194
- "graphicFieldImageByTypeSourcePageIndex" -> graphicFieldImageByTypeSourcePageIndex(callback, args(0), args(1), args(2), args(3))
195
- "graphicFieldImageByTypeSourcePageIndexLight" -> graphicFieldImageByTypeSourcePageIndexLight(callback, args(0), args(1), args(2), args(3), args(4))
196
- "containers" -> containers(callback, args(0), args(1))
197
- "encryptedContainers" -> encryptedContainers(callback, args(0))
198
- "finalizePackage" -> finalizePackage(callback)
199
- "endBackendTransaction" -> endBackendTransaction(callback)
200
- "getTranslation" -> getTranslation(callback, args(0), args(1))
201
- }
202
- }
203
-
204
- inline fun <reified T> args(index: Int) = argsNullable<T>(index)!!
205
- interface Callback {
206
- fun success(data: Any? = "")
207
- fun error(message: String)
208
- }
209
-
210
- const val eventCompletion = "completion"
211
- const val eventDatabaseProgress = "database_progress"
212
-
213
- const val rfidOnProgressEvent = "rfidOnProgressCompletion"
214
- const val rfidOnChipDetectedEvent = "rfidOnChipDetectedEvent"
215
- const val rfidOnRetryReadChipEvent = "rfidOnRetryReadChipEvent"
216
-
217
- const val eventPACertificateCompletion = "pa_certificate_completion"
218
- const val eventTACertificateCompletion = "ta_certificate_completion"
219
- const val eventTASignatureCompletion = "ta_signature_completion"
220
-
221
- const val eventVideoEncoderCompletion = "video_encoder_completion"
222
- const val onCustomButtonTappedEvent = "onCustomButtonTappedEvent"
223
-
224
- fun getDocumentReaderIsReady(callback: Callback) = callback.success(Instance().isReady)
225
-
226
- fun getDocumentReaderStatus(callback: Callback) = callback.success(Instance().status)
227
-
228
- fun getRfidSessionStatus(callback: Callback) = callback.error("getRfidSessionStatus() is an ios-only method")
229
-
230
- fun setRfidSessionStatus(callback: Callback) = callback.error("setRfidSessionStatus() is an ios-only method")
231
-
232
- fun getTag(callback: Callback) = callback.success(Instance().tag)
233
-
234
- fun setTag(tag: String?) = tag.let { Instance().tag = it }
235
-
236
- fun getTenant(callback: Callback) = callback.success(Instance().tenant)
237
-
238
- fun setTenant(tag: String?) = tag.let { Instance().tenant = it }
239
-
240
- fun getEnv(callback: Callback) = callback.success(Instance().env)
241
-
242
- fun setEnv(tag: String?) = tag.let { Instance().env = it }
243
-
244
- fun getFunctionality(callback: Callback) = callback.success(getFunctionality(Instance().functionality()))
245
-
246
- fun setFunctionality(functionality: JSONObject) = setFunctionality(Instance().functionality(), functionality)
247
-
248
- fun getProcessParams(callback: Callback) = callback.success(getProcessParams(Instance().processParams()))
249
-
250
- fun setProcessParams(processParams: JSONObject) = setProcessParams(Instance().processParams(), processParams)
251
-
252
- fun getCustomization(callback: Callback) = callback.success(getCustomization(Instance().customization()))
253
-
254
- fun setCustomization(customization: JSONObject) = setCustomization(Instance().customization(), customization, context)
255
-
256
- fun getRfidScenario(callback: Callback) = callback.success(getRfidScenario(Instance().rfidScenario()))
257
-
258
- fun setRfidScenario(rfidScenario: JSONObject) = setRfidScenario(Instance().rfidScenario(), rfidScenario)
259
-
260
- fun resetConfiguration() = Instance().resetConfiguration()
261
-
262
- fun initializeReader(callback: Callback, config: JSONObject) = Instance().initializeReader(context, docReaderConfigFromJSON(config), getInitCompletion(callback))
263
-
264
- fun initializeReaderWithBleDeviceConfig(callback: Callback, config: JSONObject) = Instance().initializeReader(context, bleDeviceConfigFromJSON(config), getInitCompletion(callback))
265
-
266
- fun deinitializeReader(callback: Callback) {
267
- Instance().deinitializeReader()
268
- callback.success()
269
- }
270
-
271
- fun prepareDatabase(callback: Callback, databaseID: String) = Instance().prepareDatabase(context, databaseID, getPrepareCompletion(callback))
272
-
273
- fun removeDatabase(callback: Callback) = callback.success(Instance().removeDatabase(context))
274
-
275
- fun runAutoUpdate(callback: Callback, databaseID: String) = Instance().runAutoUpdate(context, databaseID, getPrepareCompletion(callback))
276
-
277
- fun cancelDBUpdate(callback: Callback) = callback.success(Instance().cancelDBUpdate(context))
278
-
279
- fun checkDatabaseUpdate(callback: Callback, databaseID: String) = Instance().checkDatabaseUpdate(context, databaseID) { callback.success(generateDocReaderDocumentsDatabase(it)) }
280
-
281
- fun scan(config: JSONObject) {
282
- stopBackgroundRFID()
283
- Instance().showScanner(context, scannerConfigFromJSON(config), completion)
284
- }
285
-
286
- fun recognize(config: JSONObject) {
287
- stopBackgroundRFID()
288
- Instance().recognize(recognizeConfigFromJSON(config), completion)
289
- }
290
-
291
- fun startNewPage(callback: Callback) {
292
- Instance().startNewPage()
293
- callback.success()
294
- }
295
-
296
- fun stopScanner(callback: Callback) {
297
- Instance().stopScanner(context)
298
- callback.success()
299
- }
300
-
301
- fun startRFIDReader(onRequestPACertificates: Boolean, onRequestTACertificates: Boolean, onRequestTASignature: Boolean) {
302
- stopBackgroundRFID()
303
- requestType = RfidReaderRequestType(
304
- onRequestPACertificates,
305
- onRequestTACertificates,
306
- onRequestTASignature
307
- )
308
- Instance().startRFIDReader(context, rfidReaderCompletion, requestType.getRfidReaderRequest())
309
- }
310
-
311
- fun readRFID(onRequestPACertificates: Boolean, onRequestTACertificates: Boolean, onRequestTASignature: Boolean) {
312
- requestType = RfidReaderRequestType(
313
- onRequestPACertificates,
314
- onRequestTACertificates,
315
- onRequestTASignature
316
- )
317
- startForegroundDispatch()
318
- }
319
-
320
- fun stopRFIDReader(callback: Callback) {
321
- Instance().stopRFIDReader(context)
322
- stopBackgroundRFID()
323
- callback.success()
324
- }
325
-
326
- fun providePACertificates(callback: Callback, certificates: JSONArray?) {
327
- paCertificateCompletion!!.onCertificatesReceived(arrayFromJSON(certificates, ::pkdCertificateFromJSON, arrayOfNulls(certificates?.length() ?: 0)))
328
- callback.success()
329
- }
330
-
331
- fun provideTACertificates(callback: Callback, certificates: JSONArray?) {
332
- taCertificateCompletion!!.onCertificatesReceived(arrayFromJSON(certificates, ::pkdCertificateFromJSON, arrayOfNulls(certificates?.length() ?: 0)))
333
- callback.success()
334
- }
335
-
336
- fun provideTASignature(callback: Callback, signature: String?) {
337
- taSignatureCompletion!!.onSignatureReceived(byteArrayFromBase64(signature))
338
- callback.success()
339
- }
340
-
341
- fun setTCCParams(callback: Callback, params: JSONObject) {
342
- Instance().setTccParams(tccParamsFromJSON(params)) { success, error ->
343
- callback.success(generateSuccessCompletion(success, error))
344
- }
345
- }
346
-
347
- fun addPKDCertificates(callback: Callback, certificates: JSONArray) {
348
- Instance().addPKDCertificates(listFromJSON(certificates, ::pkdCertificateFromJSON)!!)
349
- callback.success()
350
- }
351
-
352
- fun clearPKDCertificates(callback: Callback) {
353
- Instance().clearPKDCertificates()
354
- callback.success()
355
- }
356
-
357
- fun startNewSession(callback: Callback) {
358
- Instance().startNewSession()
359
- callback.success()
360
- }
361
-
362
- fun setLocalizationDictionary(dictionary: JSONObject) {
363
- localizationCallbacks = LocalizationCallbacks { if (dictionary.has(it)) dictionary.getString(it) else null }
364
- Instance().setLocalizationCallback(localizationCallbacks!!)
365
- }
366
-
367
- fun getLicense(callback: Callback) = callback.success(generateLicense(Instance().license()))
368
-
369
- fun getAvailableScenarios(callback: Callback) {
370
- val scenarios: MutableList<DocumentReaderScenario> = ArrayList()
371
- for (scenario: DocumentReaderScenario in Instance().availableScenarios)
372
- scenarios.add(CoreScenarioUtil.getScenario(scenario.name))
373
- callback.success(generateList(scenarios, ::generateDocumentReaderScenario))
374
- }
375
-
376
- fun getIsRFIDAvailableForUse(callback: Callback) = callback.success(Instance().isRFIDAvailableForUse)
377
-
378
- fun isAuthenticatorAvailableForUse(callback: Callback) = callback.success(Instance().isAuthenticatorAvailableForUse)
379
-
380
- fun isAuthenticatorRFIDAvailableForUse(callback: Callback) = callback.success(Instance().isAuthenticatorRFIDAvailableForUse)
381
-
382
- fun getDocReaderVersion(callback: Callback) = callback.success(generateDocReaderVersion(Instance().version))
383
-
384
- fun getDocReaderDocumentsDatabase(callback: Callback) = callback.success(Instance().version?.let { generateDocReaderDocumentsDatabase(it.database) })
385
-
386
- fun textFieldValueByType(callback: Callback, raw: String, fieldType: Int) = callback.success(fromRawResults(raw).getTextFieldValueByType(fieldType))
387
-
388
- fun textFieldValueByTypeLcid(callback: Callback, raw: String, fieldType: Int, lcid: Int) = callback.success(fromRawResults(raw).getTextFieldValueByType(fieldType, lcid))
389
-
390
- fun textFieldValueByTypeSource(callback: Callback, raw: String, fieldType: Int, source: Int) = callback.success(fromRawResults(raw).getTextFieldValueByTypeAndSource(fieldType, source))
391
-
392
- fun textFieldValueByTypeLcidSource(callback: Callback, raw: String, fieldType: Int, lcid: Int, source: Int) = callback.success(fromRawResults(raw).getTextFieldValueByType(fieldType, lcid, source))
393
-
394
- fun textFieldValueByTypeSourceOriginal(callback: Callback, raw: String, fieldType: Int, source: Int, original: Boolean) = callback.success(fromRawResults(raw).getTextFieldValueByTypeAndSource(fieldType, source, original))
395
-
396
- fun textFieldValueByTypeLcidSourceOriginal(callback: Callback, raw: String, fieldType: Int, lcid: Int, source: Int, original: Boolean) = callback.success(fromRawResults(raw).getTextFieldValueByType(fieldType, lcid, source, original))
397
-
398
- fun textFieldByType(callback: Callback, raw: String, fieldType: Int) = callback.success(generateDocumentReaderTextField(fromRawResults(raw).getTextFieldByType(fieldType), context))
399
-
400
- fun textFieldByTypeLcid(callback: Callback, raw: String, fieldType: Int, lcid: Int) = callback.success(generateDocumentReaderTextField(fromRawResults(raw).getTextFieldByType(fieldType, lcid), context))
401
-
402
- fun graphicFieldByTypeSource(callback: Callback, raw: String, fieldType: Int, source: Int) = callback.success(generateDocumentReaderGraphicField(fromRawResults(raw).getGraphicFieldByType(fieldType, source), context))
403
-
404
- fun graphicFieldByTypeSourcePageIndex(callback: Callback, raw: String, fieldType: Int, source: Int, pageIndex: Int) = callback.success(generateDocumentReaderGraphicField(fromRawResults(raw).getGraphicFieldByType(fieldType, source, pageIndex), context))
405
-
406
- fun graphicFieldByTypeSourcePageIndexLight(callback: Callback, raw: String, fieldType: Int, source: Int, pageIndex: Int, light: Int) = callback.success(generateDocumentReaderGraphicField(fromRawResults(raw).getGraphicFieldByType(fieldType, source, pageIndex, light), context))
407
-
408
- fun graphicFieldImageByType(callback: Callback, raw: String, fieldType: Int) = callback.success(bitmapToBase64(fromRawResults(raw).getGraphicFieldImageByType(fieldType)))
409
-
410
- fun graphicFieldImageByTypeSource(callback: Callback, raw: String, fieldType: Int, source: Int) = callback.success(bitmapToBase64(fromRawResults(raw).getGraphicFieldImageByType(fieldType, source)))
411
-
412
- fun graphicFieldImageByTypeSourcePageIndex(callback: Callback, raw: String, fieldType: Int, source: Int, pageIndex: Int) = callback.success(bitmapToBase64(fromRawResults(raw).getGraphicFieldImageByType(fieldType, source, pageIndex)))
413
-
414
- fun graphicFieldImageByTypeSourcePageIndexLight(callback: Callback, raw: String, fieldType: Int, source: Int, pageIndex: Int, light: Int) = callback.success(bitmapToBase64(fromRawResults(raw).getGraphicFieldImageByType(fieldType, source, pageIndex, light)))
415
-
416
- fun containers(callback: Callback, raw: String, resultType: JSONArray) = callback.success(fromRawResults(raw).getContainers(resultType.toIntArray()!!))
417
-
418
- fun encryptedContainers(callback: Callback, raw: String) = callback.success(fromRawResults(raw).encryptedContainers)
419
-
420
- fun finalizePackage(callback: Callback) = Instance().finalizePackage { action, info, error -> callback.success(generateFinalizePackageCompletion(action, info, error)) }
421
-
422
- fun endBackendTransaction(callback: Callback) {
423
- Instance().endBackendTransaction()
424
- callback.success()
425
- }
426
-
427
- fun getTranslation(callback: Callback, className: String, value: Int) = when (className) {
428
- "RFIDErrorCodes" -> callback.success(eRFID_ErrorCodes.getTranslation(context, value))
429
- "LDSParsingErrorCodes" -> callback.success(eLDS_ParsingErrorCodes.getTranslation(context, value))
430
- "LDSParsingNotificationCodes" -> callback.success(eLDS_ParsingNotificationCodes.getTranslation(context, value))
431
- "ImageQualityCheckType" -> callback.success(eImageQualityCheckType.getTranslation(context, value))
432
- "RFIDDataFileType" -> callback.success(eRFID_DataFile_Type.getTranslation(context, value))
433
- "VisualFieldType" -> callback.success(eVisualFieldType.getTranslation(context, value))
434
- "LCID" -> callback.success(LCID.getTranslation(context, value))
435
- else -> null
436
- }
437
-
438
- val completed = { action: Int, results: DocumentReaderResults?, error: DocumentReaderException? ->
439
- sendEvent(eventCompletion, generateCompletion(action, results, error, context))
440
- if ((action == DocReaderAction.ERROR) || (action == DocReaderAction.CANCEL) || ((action == DocReaderAction.COMPLETE) && (results?.rfidResult == 1)))
441
- stopBackgroundRFID()
442
- }
443
-
444
- val completion = IDocumentReaderCompletion(completed)
445
-
446
- val rfidReaderCompletion = object : IRfidReaderCompletion() {
447
- override fun onCompleted(action: Int, results: DocumentReaderResults?, error: DocumentReaderException?): Unit = completed(action, results, error)
448
- override fun onChipDetected(): Unit = sendEvent(rfidOnChipDetectedEvent)
449
- override fun onRetryReadChip(error: DocReaderRfidException) = sendEvent(rfidOnRetryReadChipEvent, generateRegulaException(error))
450
- override fun onProgress(notification: DocumentReaderNotification) = sendEvent(rfidOnProgressEvent, generateDocumentReaderNotification(notification))
451
- }
452
-
453
- fun getPrepareCompletion(callback: Callback) = object : IDocumentReaderPrepareDbCompletion() {
454
- override fun onPrepareProgressChanged(progress: PrepareProgress) = sendEvent(eventDatabaseProgress, generatePrepareProgress(progress))
455
- override fun onPrepareCompleted(success: Boolean, error: DocumentReaderException?) = callback.success(generateSuccessCompletion(success, error))
456
- }
457
-
458
- fun getInitCompletion(callback: Callback) = IDocumentReaderInitCompletion { success, error ->
459
- if (success) {
460
- Instance().setVideoEncoderCompletion { _, file -> sendEvent(eventVideoEncoderCompletion, file.path) }
461
- Instance().setOnClickListener { sendEvent(onCustomButtonTappedEvent, it.tag) }
462
- }
463
- callback.success(generateSuccessCompletion(success, error))
464
- }
465
-
466
- var paCertificateCompletion: IRfidPKDCertificateCompletion? = null
467
- var taCertificateCompletion: IRfidPKDCertificateCompletion? = null
468
- var taSignatureCompletion: IRfidTASignatureCompletion? = null
469
-
470
- class RfidReaderRequestType(
471
- val doPACertificates: Boolean,
472
- val doTACertificates: Boolean,
473
- val doTASignature: Boolean
474
- ) {
475
- private val onRequestPACertificates = IRfidPACertificates { serialNumber, issuer, completion ->
476
- paCertificateCompletion = completion
477
- sendEvent(eventPACertificateCompletion, generatePACertificateCompletion(serialNumber, issuer))
478
- }
479
- private val onRequestTACertificates = IRfidTACertificates { keyCAR, completion ->
480
- taCertificateCompletion = completion
481
- sendEvent(eventTACertificateCompletion, keyCAR)
482
- }
483
- private val onRequestTASignature = IRfidTASignature { challenge, completion ->
484
- taSignatureCompletion = completion
485
- sendEvent(eventTASignatureCompletion, generateTAChallenge(challenge))
486
- }
487
-
488
- fun getRfidReaderRequest(): IRfidReaderRequest? = when {
489
- !doPACertificates && !doTACertificates && doTASignature -> IRfidReaderRequest(onRequestTASignature)
490
- !doPACertificates && doTACertificates && !doTASignature -> IRfidReaderRequest(onRequestTACertificates)
491
- !doPACertificates && doTACertificates && doTASignature -> IRfidReaderRequest(onRequestTACertificates, onRequestTASignature)
492
- doPACertificates && !doTACertificates && !doTASignature -> IRfidReaderRequest(onRequestPACertificates)
493
- doPACertificates && !doTACertificates && doTASignature -> IRfidReaderRequest(onRequestPACertificates, onRequestTASignature)
494
- doPACertificates && doTACertificates && !doTASignature -> IRfidReaderRequest(onRequestPACertificates, onRequestTACertificates)
495
- doPACertificates && doTACertificates && doTASignature -> IRfidReaderRequest(onRequestPACertificates, onRequestTACertificates, onRequestTASignature)
496
- else -> null
497
- }
498
- }
499
-
500
- var requestType = RfidReaderRequestType(
501
- doPACertificates = false,
502
- doTACertificates = false,
503
- doTASignature = false
504
- )
505
-
506
- @Suppress("DEPRECATION")
507
- fun newIntent(intent: Intent): Boolean {
508
- if (intent.action != NfcAdapter.ACTION_TECH_DISCOVERED) return false
509
- Instance().readRFID(
510
- IsoDep.get(intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)),
511
- rfidReaderCompletion,
512
- requestType.getRfidReaderRequest()
513
- )
514
- return true
515
- }
516
-
517
- var backgroundRFIDEnabled = false
518
- lateinit var lifecycleObserver: LifecycleEventObserver
519
-
520
- fun startForegroundDispatch() {
521
- backgroundRFIDEnabled = true
522
- val filters: Array<IntentFilter?> = arrayOfNulls(1)
523
- filters[0] = IntentFilter()
524
- filters[0]!!.addAction(NfcAdapter.ACTION_TECH_DISCOVERED)
525
- filters[0]!!.addCategory(Intent.CATEGORY_DEFAULT)
526
- val techList = arrayOf(arrayOf("android.nfc.tech.IsoDep"))
527
- val intent = Intent(activity, activity.javaClass)
528
- val flag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) PendingIntent.FLAG_MUTABLE else 0
529
- val pendingIntent = PendingIntent.getActivity(activity, 0, intent, flag)
530
-
531
- if (lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED))
532
- enableForegroundDispatch(pendingIntent, filters, techList)
533
- lifecycleObserver = LifecycleEventObserver { _, event ->
534
- if (backgroundRFIDEnabled) when (event) {
535
- Lifecycle.Event.ON_RESUME -> enableForegroundDispatch(pendingIntent, filters, techList)
536
- Lifecycle.Event.ON_PAUSE -> disableForegroundDispatch()
537
- else -> Unit
538
- }
539
- }
540
- activity.runOnUiThread { lifecycle.addObserver(lifecycleObserver) }
541
- }
542
-
543
- fun enableForegroundDispatch(
544
- pendingIntent: PendingIntent,
545
- filters: Array<IntentFilter?>,
546
- techList: Array<Array<String>>
547
- ) = NfcAdapter.getDefaultAdapter(context).enableForegroundDispatch(activity, pendingIntent, filters, techList)
548
-
549
- fun disableForegroundDispatch() = NfcAdapter.getDefaultAdapter(context).disableForegroundDispatch(activity)
550
-
551
- fun stopBackgroundRFID() {
552
- if (!backgroundRFIDEnabled) return
553
- backgroundRFIDEnabled = false
554
- if (lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED))
555
- disableForegroundDispatch()
556
- activity.runOnUiThread { lifecycle.removeObserver(lifecycleObserver) }
557
- }
558
-
559
- // Weak references
560
- var localizationCallbacks: LocalizationCallbacks? = null
@@ -1,11 +0,0 @@
1
- package com.regula.documentreader
2
-
3
- import com.facebook.react.ReactPackage
4
- import com.facebook.react.bridge.NativeModule
5
- import com.facebook.react.bridge.ReactApplicationContext
6
- import com.facebook.react.uimanager.ViewManager
7
-
8
- class RNRegulaDocumentReaderPackage : ReactPackage {
9
- override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> = listOf(RNRegulaDocumentReaderModule(reactContext))
10
- override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> = emptyList()
11
- }