@regulaforensics/cordova-plugin-document-reader-api 6.9.1 → 7.2.0
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.
- package/README.md +10 -40
- package/example/README.md +32 -0
- package/example/config.xml +5 -1
- package/example/package.json +7 -10
- package/example/www/js/index.js +85 -159
- package/package.json +1 -1
- package/plugin.xml +8 -8
- package/src/android/BluetoothUtil.kt +78 -74
- package/src/android/Config.kt +692 -0
- package/src/android/DocumentReader.kt +524 -0
- package/src/android/JSONConstructor.kt +2198 -0
- package/src/android/Utils.kt +261 -0
- package/src/android/build.gradle +3 -3
- package/src/ios/RGLWConfig.h +48 -0
- package/src/ios/RGLWConfig.m +1312 -0
- package/src/ios/RGLWDocumentReader.h +14 -11
- package/src/ios/RGLWDocumentReader.m +384 -579
- package/src/ios/RGLWJSONConstructor.h +173 -69
- package/src/ios/RGLWJSONConstructor.m +1832 -786
- package/www/DocumentReader.js +869 -278
- package/src/android/DocumentReader.java +0 -1118
- package/src/android/Helpers.java +0 -259
- package/src/android/JSONConstructor.java +0 -1119
- package/src/android/RegulaConfig.java +0 -830
- package/src/ios/RGLWRegulaConfig.h +0 -26
- package/src/ios/RGLWRegulaConfig.m +0 -1152
|
@@ -1,1118 +0,0 @@
|
|
|
1
|
-
package cordova.plugin.documentreader;
|
|
2
|
-
|
|
3
|
-
import static com.regula.documentreader.api.DocumentReader.Instance;
|
|
4
|
-
import static cordova.plugin.documentreader.Helpers.*;
|
|
5
|
-
import static cordova.plugin.documentreader.JSONConstructor.*;
|
|
6
|
-
|
|
7
|
-
import android.annotation.SuppressLint;
|
|
8
|
-
import android.app.Activity;
|
|
9
|
-
import android.app.LocaleManager;
|
|
10
|
-
import android.app.PendingIntent;
|
|
11
|
-
import android.content.Context;
|
|
12
|
-
import android.content.Intent;
|
|
13
|
-
import android.content.IntentFilter;
|
|
14
|
-
import android.content.res.Configuration;
|
|
15
|
-
import android.content.res.Resources;
|
|
16
|
-
import android.graphics.Bitmap;
|
|
17
|
-
import android.nfc.NfcAdapter;
|
|
18
|
-
import android.nfc.tech.IsoDep;
|
|
19
|
-
import android.os.Build;
|
|
20
|
-
import android.os.LocaleList;
|
|
21
|
-
import android.util.Base64;
|
|
22
|
-
|
|
23
|
-
import androidx.annotation.NonNull;
|
|
24
|
-
import androidx.annotation.Nullable;
|
|
25
|
-
|
|
26
|
-
import com.regula.documentreader.api.completions.ICheckDatabaseUpdate;
|
|
27
|
-
import com.regula.documentreader.api.completions.IDocumentReaderCompletion;
|
|
28
|
-
import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion;
|
|
29
|
-
import com.regula.documentreader.api.completions.IDocumentReaderPrepareCompletion;
|
|
30
|
-
import com.regula.documentreader.api.completions.rfid.IRfidPKDCertificateCompletion;
|
|
31
|
-
import com.regula.documentreader.api.completions.rfid.IRfidReaderCompletion;
|
|
32
|
-
import com.regula.documentreader.api.completions.rfid.IRfidReaderRequest;
|
|
33
|
-
import com.regula.documentreader.api.completions.rfid.IRfidTASignatureCompletion;
|
|
34
|
-
import com.regula.documentreader.api.completions.rfid.ITccParamsCompletion;
|
|
35
|
-
import com.regula.documentreader.api.enums.DocReaderAction;
|
|
36
|
-
import com.regula.documentreader.api.errors.DocReaderRfidException;
|
|
37
|
-
import com.regula.documentreader.api.errors.DocumentReaderException;
|
|
38
|
-
import com.regula.documentreader.api.internal.core.CoreScenarioUtil;
|
|
39
|
-
import com.regula.documentreader.api.internal.params.ImageInputParam;
|
|
40
|
-
import com.regula.documentreader.api.internal.parser.DocReaderResultsJsonParser;
|
|
41
|
-
import com.regula.documentreader.api.params.BleDeviceConfig;
|
|
42
|
-
import com.regula.documentreader.api.params.DocReaderConfig;
|
|
43
|
-
import com.regula.documentreader.api.params.ImageInputData;
|
|
44
|
-
import com.regula.documentreader.api.params.rfid.PKDCertificate;
|
|
45
|
-
import com.regula.documentreader.api.params.rfid.authorization.PAResourcesIssuer;
|
|
46
|
-
import com.regula.documentreader.api.params.rfid.authorization.TAChallenge;
|
|
47
|
-
import com.regula.documentreader.api.results.DocumentReaderGraphicField;
|
|
48
|
-
import com.regula.documentreader.api.results.DocumentReaderNotification;
|
|
49
|
-
import com.regula.documentreader.api.results.DocumentReaderResults;
|
|
50
|
-
import com.regula.documentreader.api.results.DocumentReaderTextField;
|
|
51
|
-
|
|
52
|
-
import org.apache.cordova.CallbackContext;
|
|
53
|
-
import org.apache.cordova.CordovaPlugin;
|
|
54
|
-
import org.apache.cordova.PluginResult;
|
|
55
|
-
import org.json.JSONArray;
|
|
56
|
-
import org.json.JSONException;
|
|
57
|
-
import org.json.JSONObject;
|
|
58
|
-
|
|
59
|
-
import java.io.IOException;
|
|
60
|
-
import java.io.InputStream;
|
|
61
|
-
import java.util.ArrayList;
|
|
62
|
-
import java.util.Arrays;
|
|
63
|
-
import java.util.List;
|
|
64
|
-
import java.util.Locale;
|
|
65
|
-
|
|
66
|
-
@SuppressWarnings({"ConstantConditions", "RedundantSuppression", "deprecation"})
|
|
67
|
-
public class DocumentReader extends CordovaPlugin {
|
|
68
|
-
private CallbackContext callbackContext;
|
|
69
|
-
private boolean backgroundRFIDEnabled = false;
|
|
70
|
-
private Activity activity;
|
|
71
|
-
JSONArray data;
|
|
72
|
-
private IRfidPKDCertificateCompletion paCertificateCompletion;
|
|
73
|
-
private IRfidPKDCertificateCompletion taCertificateCompletion;
|
|
74
|
-
private IRfidTASignatureCompletion taSignatureCompletion;
|
|
75
|
-
|
|
76
|
-
private final static String eventDatabaseProgress = "database_progress";
|
|
77
|
-
private final static String eventCompletion = "completion";
|
|
78
|
-
// These events have a method that is associated only with this event
|
|
79
|
-
private final static List<String> singleEvents = Arrays.asList(eventDatabaseProgress, eventCompletion);
|
|
80
|
-
|
|
81
|
-
private final static String rfidOnProgressEvent = "rfid_notification_completion";
|
|
82
|
-
private final static String rfidOnChipDetectedEvent = "rfidOnChipDetectedEvent";
|
|
83
|
-
private final static String rfidOnRetryReadChipEvent = "rfidOnRetryReadChipEvent";
|
|
84
|
-
|
|
85
|
-
private final static String eventPACertificateCompletion = "pa_certificate_completion";
|
|
86
|
-
private final static String eventTACertificateCompletion = "ta_certificate_completion";
|
|
87
|
-
private final static String eventTASignatureCompletion = "ta_signature_completion";
|
|
88
|
-
|
|
89
|
-
private final static String bleOnServiceConnectedEvent = "bleOnServiceConnectedEvent";
|
|
90
|
-
private final static String bleOnServiceDisconnectedEvent = "bleOnServiceDisconnectedEvent";
|
|
91
|
-
private final static String bleOnDeviceReadyEvent = "bleOnDeviceReadyEvent";
|
|
92
|
-
|
|
93
|
-
private final static String eventVideoEncoderCompletion = "video_encoder_completion";
|
|
94
|
-
private final static String onCustomButtonTappedEvent = "onCustomButtonTappedEvent";
|
|
95
|
-
// These events are not working in cordova and ionic because they don't have a method
|
|
96
|
-
// associated with it. Callbacks are set automatically right after init.
|
|
97
|
-
private final static List<String> skippedEvents = Arrays.asList(eventVideoEncoderCompletion, onCustomButtonTappedEvent);
|
|
98
|
-
|
|
99
|
-
private static int databaseDownloadProgress = 0;
|
|
100
|
-
|
|
101
|
-
private Context getContext() {
|
|
102
|
-
return activity;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
private Activity getActivity() {
|
|
106
|
-
return activity;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@Override
|
|
110
|
-
public void onNewIntent(Intent intent) {
|
|
111
|
-
super.onNewIntent(intent);
|
|
112
|
-
if (intent.getAction() != null && intent.getAction().equals(NfcAdapter.ACTION_TECH_DISCOVERED) && backgroundRFIDEnabled)
|
|
113
|
-
Instance().readRFID(IsoDep.get(intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)), getRfidReaderCompletion());
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@Override
|
|
117
|
-
public void onResume(boolean multitasking) {
|
|
118
|
-
super.onResume(multitasking);
|
|
119
|
-
if (backgroundRFIDEnabled)
|
|
120
|
-
startForegroundDispatch(getActivity());
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
private interface Callback {
|
|
124
|
-
void success(Object o);
|
|
125
|
-
|
|
126
|
-
void error(String s);
|
|
127
|
-
|
|
128
|
-
default void success() {
|
|
129
|
-
success("");
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
private <T> T args(int index) throws JSONException {
|
|
134
|
-
//noinspection unchecked
|
|
135
|
-
return (T) data.get(index);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
private void sendEvent(String event, Object data) {
|
|
139
|
-
PluginResult pluginResult;
|
|
140
|
-
String result;
|
|
141
|
-
if (data instanceof JSONObject || data instanceof JSONArray)
|
|
142
|
-
result = data.toString();
|
|
143
|
-
else
|
|
144
|
-
result = (String) data;
|
|
145
|
-
if (skippedEvents.contains(event))
|
|
146
|
-
return;
|
|
147
|
-
// Allows user to determine which event fired when there are more
|
|
148
|
-
// than one event associated with the function
|
|
149
|
-
if (!singleEvents.contains(event))
|
|
150
|
-
result = event + result;
|
|
151
|
-
pluginResult = new PluginResult(PluginResult.Status.OK, result);
|
|
152
|
-
pluginResult.setKeepCallback(true);
|
|
153
|
-
callbackContext.sendPluginResult(pluginResult);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
@Override
|
|
157
|
-
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
|
|
158
|
-
this.callbackContext = callbackContext;
|
|
159
|
-
activity = cordova.getActivity();
|
|
160
|
-
action = (String) args.remove(0);
|
|
161
|
-
data = args;
|
|
162
|
-
Callback callback = new Callback() {
|
|
163
|
-
@Override
|
|
164
|
-
public void success(Object o) {
|
|
165
|
-
if (o instanceof Integer)
|
|
166
|
-
callbackContext.success((int) o);
|
|
167
|
-
else if (o instanceof Boolean)
|
|
168
|
-
callbackContext.success((boolean) o ? "true" : "");
|
|
169
|
-
else
|
|
170
|
-
callbackContext.success((String) o);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
@Override
|
|
174
|
-
public void error(String s) {
|
|
175
|
-
callbackContext.error(s);
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
try {
|
|
179
|
-
switch (action) {
|
|
180
|
-
case "initializeReaderAutomatically":
|
|
181
|
-
initializeReaderAutomatically(callback);
|
|
182
|
-
break;
|
|
183
|
-
case "isBlePermissionsGranted":
|
|
184
|
-
isBlePermissionsGranted(callback);
|
|
185
|
-
break;
|
|
186
|
-
case "startBluetoothService":
|
|
187
|
-
startBluetoothService(callback);
|
|
188
|
-
break;
|
|
189
|
-
case "initializeReaderBleDeviceConfig":
|
|
190
|
-
initializeReaderBleDeviceConfig(callback);
|
|
191
|
-
break;
|
|
192
|
-
case "getTag":
|
|
193
|
-
getTag(callback);
|
|
194
|
-
break;
|
|
195
|
-
case "getAPIVersion":
|
|
196
|
-
getAPIVersion(callback);
|
|
197
|
-
break;
|
|
198
|
-
case "getAvailableScenarios":
|
|
199
|
-
getAvailableScenarios(callback);
|
|
200
|
-
break;
|
|
201
|
-
case "isRFIDAvailableForUse":
|
|
202
|
-
isRFIDAvailableForUse(callback);
|
|
203
|
-
break;
|
|
204
|
-
case "getCoreMode":
|
|
205
|
-
getCoreMode(callback);
|
|
206
|
-
break;
|
|
207
|
-
case "getCoreVersion":
|
|
208
|
-
getCoreVersion(callback);
|
|
209
|
-
break;
|
|
210
|
-
case "getDatabaseDate":
|
|
211
|
-
getDatabaseDate(callback);
|
|
212
|
-
break;
|
|
213
|
-
case "getDatabaseID":
|
|
214
|
-
getDatabaseID(callback);
|
|
215
|
-
break;
|
|
216
|
-
case "getDatabaseVersion":
|
|
217
|
-
getDatabaseVersion(callback);
|
|
218
|
-
break;
|
|
219
|
-
case "getDocumentReaderIsReady":
|
|
220
|
-
getDocumentReaderIsReady(callback);
|
|
221
|
-
break;
|
|
222
|
-
case "getDocumentReaderStatus":
|
|
223
|
-
getDocumentReaderStatus(callback);
|
|
224
|
-
break;
|
|
225
|
-
case "getDatabaseCountriesNumber":
|
|
226
|
-
getDatabaseCountriesNumber(callback);
|
|
227
|
-
break;
|
|
228
|
-
case "getDatabaseDocumentsNumber":
|
|
229
|
-
getDatabaseDocumentsNumber(callback);
|
|
230
|
-
break;
|
|
231
|
-
case "selectedScenario":
|
|
232
|
-
selectedScenario(callback);
|
|
233
|
-
break;
|
|
234
|
-
case "getSessionLogFolder":
|
|
235
|
-
getSessionLogFolder(callback);
|
|
236
|
-
break;
|
|
237
|
-
case "getDatabaseDescription":
|
|
238
|
-
getDatabaseDescription(callback);
|
|
239
|
-
break;
|
|
240
|
-
case "showScanner":
|
|
241
|
-
showScanner(callback);
|
|
242
|
-
break;
|
|
243
|
-
case "startNewPage":
|
|
244
|
-
startNewPage(callback);
|
|
245
|
-
break;
|
|
246
|
-
case "startNewSession":
|
|
247
|
-
startNewSession(callback);
|
|
248
|
-
break;
|
|
249
|
-
case "startRFIDReader":
|
|
250
|
-
startRFIDReader(callback);
|
|
251
|
-
break;
|
|
252
|
-
case "stopRFIDReader":
|
|
253
|
-
stopRFIDReader(callback);
|
|
254
|
-
break;
|
|
255
|
-
case "stopRFIDReaderWithErrorMessage":
|
|
256
|
-
stopRFIDReaderWithErrorMessage(callback, args(0));
|
|
257
|
-
break;
|
|
258
|
-
case "stopScanner":
|
|
259
|
-
stopScanner(callback);
|
|
260
|
-
break;
|
|
261
|
-
case "deinitializeReader":
|
|
262
|
-
deinitializeReader(callback);
|
|
263
|
-
break;
|
|
264
|
-
case "isAuthenticatorAvailableForUse":
|
|
265
|
-
isAuthenticatorAvailableForUse(callback);
|
|
266
|
-
break;
|
|
267
|
-
case "getConfig":
|
|
268
|
-
getConfig(callback);
|
|
269
|
-
break;
|
|
270
|
-
case "getRfidScenario":
|
|
271
|
-
getRfidScenario(callback);
|
|
272
|
-
break;
|
|
273
|
-
case "getLicenseExpiryDate":
|
|
274
|
-
getLicenseExpiryDate(callback);
|
|
275
|
-
break;
|
|
276
|
-
case "getLicenseCountryFilter":
|
|
277
|
-
getLicenseCountryFilter(callback);
|
|
278
|
-
break;
|
|
279
|
-
case "licenseIsRfidAvailable":
|
|
280
|
-
licenseIsRfidAvailable(callback);
|
|
281
|
-
break;
|
|
282
|
-
case "getCameraSessionIsPaused":
|
|
283
|
-
getCameraSessionIsPaused(callback);
|
|
284
|
-
break;
|
|
285
|
-
case "removeDatabase":
|
|
286
|
-
removeDatabase(callback);
|
|
287
|
-
break;
|
|
288
|
-
case "cancelDBUpdate":
|
|
289
|
-
cancelDBUpdate(callback);
|
|
290
|
-
break;
|
|
291
|
-
case "resetConfiguration":
|
|
292
|
-
resetConfiguration(callback);
|
|
293
|
-
break;
|
|
294
|
-
case "clearPKDCertificates":
|
|
295
|
-
clearPKDCertificates(callback);
|
|
296
|
-
break;
|
|
297
|
-
case "readRFID":
|
|
298
|
-
readRFID(callback);
|
|
299
|
-
break;
|
|
300
|
-
case "getRfidSessionStatus":
|
|
301
|
-
getRfidSessionStatus(callback);
|
|
302
|
-
break;
|
|
303
|
-
case "setRfidDelegate":
|
|
304
|
-
setRfidDelegate(callback, args(0));
|
|
305
|
-
break;
|
|
306
|
-
case "setEnableCoreLogs":
|
|
307
|
-
setEnableCoreLogs(callback, args(0));
|
|
308
|
-
break;
|
|
309
|
-
case "addPKDCertificates":
|
|
310
|
-
addPKDCertificates(callback, args(0));
|
|
311
|
-
break;
|
|
312
|
-
case "setCameraSessionIsPaused":
|
|
313
|
-
setCameraSessionIsPaused(callback, args(0));
|
|
314
|
-
break;
|
|
315
|
-
case "setTag":
|
|
316
|
-
setTag(callback, args(0));
|
|
317
|
-
break;
|
|
318
|
-
case "checkDatabaseUpdate":
|
|
319
|
-
checkDatabaseUpdate(callback, args(0));
|
|
320
|
-
break;
|
|
321
|
-
case "scan":
|
|
322
|
-
scan(callback, args(0));
|
|
323
|
-
break;
|
|
324
|
-
case "recognize":
|
|
325
|
-
recognize(callback, args(0));
|
|
326
|
-
break;
|
|
327
|
-
case "recognizeImages":
|
|
328
|
-
recognizeImages(callback, args(0));
|
|
329
|
-
break;
|
|
330
|
-
case "showScannerWithCameraID":
|
|
331
|
-
showScannerWithCameraID(callback, args(0));
|
|
332
|
-
break;
|
|
333
|
-
case "runAutoUpdate":
|
|
334
|
-
runAutoUpdate(callback, args(0));
|
|
335
|
-
break;
|
|
336
|
-
case "setConfig":
|
|
337
|
-
setConfig(callback, args(0));
|
|
338
|
-
break;
|
|
339
|
-
case "setRfidScenario":
|
|
340
|
-
setRfidScenario(callback, args(0));
|
|
341
|
-
break;
|
|
342
|
-
case "initializeReader":
|
|
343
|
-
initializeReader(callback, args(0));
|
|
344
|
-
break;
|
|
345
|
-
case "prepareDatabase":
|
|
346
|
-
prepareDatabase(callback, args(0));
|
|
347
|
-
break;
|
|
348
|
-
case "recognizeImage":
|
|
349
|
-
recognizeImage(callback, args(0));
|
|
350
|
-
break;
|
|
351
|
-
case "recognizeData":
|
|
352
|
-
recognizeData(callback, args(0));
|
|
353
|
-
break;
|
|
354
|
-
case "setRfidSessionStatus":
|
|
355
|
-
setRfidSessionStatus(callback, args(0));
|
|
356
|
-
break;
|
|
357
|
-
case "providePACertificates":
|
|
358
|
-
providePACertificates(callback, args(0));
|
|
359
|
-
break;
|
|
360
|
-
case "provideTACertificates":
|
|
361
|
-
provideTACertificates(callback, args(0));
|
|
362
|
-
break;
|
|
363
|
-
case "provideTASignature":
|
|
364
|
-
provideTASignature(callback, args(0));
|
|
365
|
-
break;
|
|
366
|
-
case "parseCoreResults":
|
|
367
|
-
parseCoreResults(callback, args(0));
|
|
368
|
-
break;
|
|
369
|
-
case "setTCCParams":
|
|
370
|
-
setTCCParams(callback, args(0));
|
|
371
|
-
break;
|
|
372
|
-
case "recognizeImageWithOpts":
|
|
373
|
-
recognizeImageWithOpts(callback, args(0), args(1));
|
|
374
|
-
break;
|
|
375
|
-
case "recognizeVideoFrame":
|
|
376
|
-
recognizeVideoFrame(callback, args(0), args(1));
|
|
377
|
-
break;
|
|
378
|
-
case "showScannerWithCameraIDAndOpts":
|
|
379
|
-
showScannerWithCameraIDAndOpts(callback, args(0), args(1));
|
|
380
|
-
break;
|
|
381
|
-
case "recognizeImageWithCameraMode":
|
|
382
|
-
recognizeImageWithCameraMode(callback, args(0), args(1));
|
|
383
|
-
break;
|
|
384
|
-
case "recognizeImagesWithImageInputs":
|
|
385
|
-
recognizeImagesWithImageInputs(callback, args(0));
|
|
386
|
-
break;
|
|
387
|
-
case "setLanguage":
|
|
388
|
-
setLanguage(callback, args(0));
|
|
389
|
-
break;
|
|
390
|
-
case "textFieldValueByType":
|
|
391
|
-
textFieldValueByType(callback, args(0), args(1));
|
|
392
|
-
break;
|
|
393
|
-
case "textFieldValueByTypeLcid":
|
|
394
|
-
textFieldValueByTypeLcid(callback, args(0), args(1), args(2));
|
|
395
|
-
break;
|
|
396
|
-
case "textFieldValueByTypeSource":
|
|
397
|
-
textFieldValueByTypeSource(callback, args(0), args(1), args(2));
|
|
398
|
-
break;
|
|
399
|
-
case "textFieldValueByTypeLcidSource":
|
|
400
|
-
textFieldValueByTypeLcidSource(callback, args(0), args(1), args(2), args(3));
|
|
401
|
-
break;
|
|
402
|
-
case "textFieldValueByTypeSourceOriginal":
|
|
403
|
-
textFieldValueByTypeSourceOriginal(callback, args(0), args(1), args(2), args(3));
|
|
404
|
-
break;
|
|
405
|
-
case "textFieldValueByTypeLcidSourceOriginal":
|
|
406
|
-
textFieldValueByTypeLcidSourceOriginal(callback, args(0), args(1), args(2), args(3), args(4));
|
|
407
|
-
break;
|
|
408
|
-
case "textFieldByType":
|
|
409
|
-
textFieldByType(callback, args(0), args(1));
|
|
410
|
-
break;
|
|
411
|
-
case "textFieldByTypeLcid":
|
|
412
|
-
textFieldByTypeLcid(callback, args(0), args(1), args(2));
|
|
413
|
-
break;
|
|
414
|
-
case "graphicFieldByTypeSource":
|
|
415
|
-
graphicFieldByTypeSource(callback, args(0), args(1), args(2));
|
|
416
|
-
break;
|
|
417
|
-
case "graphicFieldByTypeSourcePageIndex":
|
|
418
|
-
graphicFieldByTypeSourcePageIndex(callback, args(0), args(1), args(2), args(3));
|
|
419
|
-
break;
|
|
420
|
-
case "graphicFieldByTypeSourcePageIndexLight":
|
|
421
|
-
graphicFieldByTypeSourcePageIndexLight(callback, args(0), args(1), args(2), args(3), args(4));
|
|
422
|
-
break;
|
|
423
|
-
case "graphicFieldImageByType":
|
|
424
|
-
graphicFieldImageByType(callback, args(0), args(1));
|
|
425
|
-
break;
|
|
426
|
-
case "graphicFieldImageByTypeSource":
|
|
427
|
-
graphicFieldImageByTypeSource(callback, args(0), args(1), args(2));
|
|
428
|
-
break;
|
|
429
|
-
case "graphicFieldImageByTypeSourcePageIndex":
|
|
430
|
-
graphicFieldImageByTypeSourcePageIndex(callback, args(0), args(1), args(2), args(3));
|
|
431
|
-
break;
|
|
432
|
-
case "graphicFieldImageByTypeSourcePageIndexLight":
|
|
433
|
-
graphicFieldImageByTypeSourcePageIndexLight(callback, args(0), args(1), args(2), args(3), args(4));
|
|
434
|
-
break;
|
|
435
|
-
case "containers":
|
|
436
|
-
containers(callback, args(0), args(1));
|
|
437
|
-
break;
|
|
438
|
-
case "encryptedContainers":
|
|
439
|
-
encryptedContainers(callback, args(0));
|
|
440
|
-
break;
|
|
441
|
-
}
|
|
442
|
-
} catch (Exception e) {
|
|
443
|
-
e.printStackTrace();
|
|
444
|
-
}
|
|
445
|
-
return true;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
private void startForegroundDispatch(final Activity activity) {
|
|
449
|
-
IntentFilter[] filters = new IntentFilter[1];
|
|
450
|
-
filters[0] = new IntentFilter();
|
|
451
|
-
filters[0].addAction(NfcAdapter.ACTION_TECH_DISCOVERED);
|
|
452
|
-
filters[0].addCategory(Intent.CATEGORY_DEFAULT);
|
|
453
|
-
String[][] techList = new String[][]{
|
|
454
|
-
new String[]{"android.nfc.tech.IsoDep"}
|
|
455
|
-
};
|
|
456
|
-
Intent intent = new Intent(activity.getApplicationContext(), activity.getClass());
|
|
457
|
-
int flag = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ? PendingIntent.FLAG_MUTABLE : 0;
|
|
458
|
-
PendingIntent pendingIntent = PendingIntent.getActivity(activity.getApplicationContext(), 0, intent, flag);
|
|
459
|
-
NfcAdapter.getDefaultAdapter(getActivity()).enableForegroundDispatch(activity, pendingIntent, filters, techList);
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
private void stopBackgroundRFID() {
|
|
463
|
-
if (!backgroundRFIDEnabled)
|
|
464
|
-
return;
|
|
465
|
-
NfcAdapter.getDefaultAdapter(getActivity()).disableForegroundDispatch(getActivity());
|
|
466
|
-
backgroundRFIDEnabled = false;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
private void initializeReaderAutomatically(Callback callback) {
|
|
470
|
-
if (!Instance().isReady())
|
|
471
|
-
try {
|
|
472
|
-
InputStream is = getContext().getAssets().open("regula.license");
|
|
473
|
-
byte[] license = new byte[is.available()];
|
|
474
|
-
//noinspection ResultOfMethodCallIgnored
|
|
475
|
-
is.read(license);
|
|
476
|
-
Instance().initializeReader(getContext(), new DocReaderConfig(license), getInitCompletion(callback));
|
|
477
|
-
is.close();
|
|
478
|
-
} catch (IOException e) {
|
|
479
|
-
e.printStackTrace();
|
|
480
|
-
callback.error("problem reading license(see logs)");
|
|
481
|
-
}
|
|
482
|
-
else
|
|
483
|
-
callback.success("already initialized");
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
private void isBlePermissionsGranted(Callback callback) {
|
|
487
|
-
callback.success(BluetoothUtil.Companion.isBlePermissionsGranted(getActivity()));
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
private void startBluetoothService(Callback callback) {
|
|
491
|
-
BluetoothUtil.Companion.startBluetoothService(
|
|
492
|
-
getActivity(),
|
|
493
|
-
isBleManagerConnected -> {
|
|
494
|
-
sendEvent(bleOnServiceConnectedEvent, isBleManagerConnected);
|
|
495
|
-
return null;
|
|
496
|
-
},
|
|
497
|
-
() -> {
|
|
498
|
-
sendEvent(bleOnServiceDisconnectedEvent, "");
|
|
499
|
-
return null;
|
|
500
|
-
},
|
|
501
|
-
() -> {
|
|
502
|
-
sendEvent(bleOnDeviceReadyEvent, "");
|
|
503
|
-
return null;
|
|
504
|
-
}
|
|
505
|
-
);
|
|
506
|
-
callback.success();
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
@SuppressLint("MissingPermission")
|
|
510
|
-
private void initializeReaderBleDeviceConfig(Callback callback) {
|
|
511
|
-
if (BluetoothUtil.Companion.getBleManager() == null) callback.error("bleManager is null");
|
|
512
|
-
if (!Instance().isReady())
|
|
513
|
-
Instance().initializeReader(getContext(), new BleDeviceConfig(BluetoothUtil.Companion.getBleManager()), getInitCompletion(callback));
|
|
514
|
-
else
|
|
515
|
-
callback.success("already initialized");
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
private void getAvailableScenarios(Callback callback) throws JSONException {
|
|
519
|
-
callback.success(generateList(Instance().availableScenarios, JSONConstructor::generateDocumentReaderScenario).toString());
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
private void parseCoreResults(Callback callback, String json) {
|
|
523
|
-
DocumentReaderResults results = (DocumentReaderResults) DocReaderResultsJsonParser.parseCoreResults(json).get("docReaderResults");
|
|
524
|
-
callback.success(generateDocumentReaderResults(results, getContext()).toString());
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
private void getAPIVersion(Callback callback) {
|
|
528
|
-
callback.success(Instance().version.api);
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
private void getCoreVersion(Callback callback) {
|
|
532
|
-
callback.success(Instance().version.core);
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
private void getCoreMode(Callback callback) {
|
|
536
|
-
callback.success(Instance().version.coreMode);
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
private void getDatabaseID(Callback callback) {
|
|
540
|
-
callback.success(Instance().version.database.databaseID);
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
private void getDatabaseVersion(Callback callback) {
|
|
544
|
-
callback.success(Instance().version.database.version);
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
private void getDatabaseDate(Callback callback) {
|
|
548
|
-
callback.success(Instance().version.database.date);
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
private void getDatabaseDescription(Callback callback) {
|
|
552
|
-
callback.success(Instance().version.database.databaseDescription);
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
private void getDatabaseCountriesNumber(Callback callback) {
|
|
556
|
-
callback.success(Instance().version.database.countriesNumber);
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
private void getDatabaseDocumentsNumber(Callback callback) {
|
|
560
|
-
callback.success(Instance().version.database.documentsNumber);
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
private void setTCCParams(Callback callback, final JSONObject params) {
|
|
564
|
-
Instance().setTccParams(TCCParamsFromJSON(params), getTCCParamsCompletion(callback));
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
private void deinitializeReader(Callback callback) {
|
|
568
|
-
Instance().deinitializeReader();
|
|
569
|
-
callback.success();
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
private void isAuthenticatorAvailableForUse(Callback callback) {
|
|
573
|
-
callback.success(Instance().isAuthenticatorAvailableForUse());
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
private void getConfig(Callback callback) throws JSONException {
|
|
577
|
-
callback.success(RegulaConfig.getConfig(Instance()).toString());
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
private void getRfidScenario(Callback callback) {
|
|
581
|
-
callback.success(Instance().rfidScenario().toJson());
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
private void selectedScenario(Callback callback) {
|
|
585
|
-
callback.success(generateDocumentReaderScenario(CoreScenarioUtil.getScenario(Instance().processParams().getScenario())).toString());
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
private void getLicenseExpiryDate(Callback callback) {
|
|
589
|
-
if (Instance().license().getExpiryDate() == null)
|
|
590
|
-
callback.error("null");
|
|
591
|
-
else
|
|
592
|
-
callback.success(Instance().license().getExpiryDate().toString());
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
private void getLicenseCountryFilter(Callback callback) {
|
|
596
|
-
if (Instance().license().getCountryFilter() == null)
|
|
597
|
-
callback.error("null");
|
|
598
|
-
else
|
|
599
|
-
callback.success(generateList(Instance().license().getCountryFilter()).toString());
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
private void licenseIsRfidAvailable(Callback callback) {
|
|
603
|
-
callback.success(Instance().license().isRfidAvailable());
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
private void getDocumentReaderIsReady(Callback callback) {
|
|
607
|
-
callback.success(Instance().isReady());
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
private void getDocumentReaderStatus(Callback callback) {
|
|
611
|
-
callback.success(Instance().isReady());
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
private void isRFIDAvailableForUse(Callback callback) {
|
|
615
|
-
callback.success(Instance().isRFIDAvailableForUse());
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
private void initializeReader(Callback callback, JSONObject config) {
|
|
619
|
-
if (!Instance().isReady())
|
|
620
|
-
Instance().initializeReader(getContext(), DocReaderConfigFromJSON(config), getInitCompletion(callback));
|
|
621
|
-
else
|
|
622
|
-
callback.success("already initialized");
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
private void startNewSession(Callback callback) {
|
|
626
|
-
Instance().startNewSession();
|
|
627
|
-
callback.success();
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
private void getTag(Callback callback) {
|
|
631
|
-
callback.success(Instance().tag);
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
private void setTag(Callback callback, String tag) {
|
|
635
|
-
Instance().tag = tag;
|
|
636
|
-
callback.success();
|
|
637
|
-
}
|
|
638
|
-
|
|
639
|
-
private void checkDatabaseUpdate(Callback callback, String databaseId) {
|
|
640
|
-
Instance().checkDatabaseUpdate(getContext(), databaseId, getCheckDatabaseUpdateCompletion(callback));
|
|
641
|
-
callback.success();
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
private void startNewPage(Callback callback) {
|
|
645
|
-
Instance().startNewPage();
|
|
646
|
-
callback.success();
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
private void scan(@SuppressWarnings("unused") Callback callback, JSONObject config) {
|
|
650
|
-
stopBackgroundRFID();
|
|
651
|
-
Instance().showScanner(getContext(), ScannerConfigFromJSON(config), getCompletion());
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
private void recognize(@SuppressWarnings("unused") Callback callback, JSONObject config) {
|
|
655
|
-
stopBackgroundRFID();
|
|
656
|
-
Instance().recognize(getContext(), RecognizeConfigFromJSON(config), getCompletion());
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
private void recognizeImageWithOpts(Callback callback, String base64Image, final JSONObject opts) throws JSONException {
|
|
660
|
-
RegulaConfig.setConfig(Instance(), opts, getContext());
|
|
661
|
-
recognizeImage(callback, base64Image);
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
private void recognizeImage(@SuppressWarnings("unused") Callback callback, String base64Image) {
|
|
665
|
-
stopBackgroundRFID();
|
|
666
|
-
Instance().recognizeImage(Helpers.bitmapFromBase64(base64Image), getCompletion());
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
private void recognizeData(@SuppressWarnings("unused") Callback callback, Object data) {
|
|
670
|
-
stopBackgroundRFID();
|
|
671
|
-
Instance().recognizeImage(Base64.decode(data.toString(), Base64.DEFAULT), getCompletion());
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
private void recognizeImages(@SuppressWarnings("unused") Callback callback, JSONArray base64Images) throws JSONException {
|
|
675
|
-
stopBackgroundRFID();
|
|
676
|
-
Bitmap[] images = new Bitmap[base64Images.length()];
|
|
677
|
-
for (int i = 0; i < images.length; i++)
|
|
678
|
-
images[i] = bitmapFromBase64(base64Images.getString(i));
|
|
679
|
-
Instance().recognizeImages(images, getCompletion());
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
private void recognizeImagesWithImageInputs(@SuppressWarnings("unused") Callback callback, JSONArray base64Images) throws JSONException {
|
|
683
|
-
stopBackgroundRFID();
|
|
684
|
-
ImageInputData[] images = new ImageInputData[base64Images.length()];
|
|
685
|
-
for (int i = 0; i < images.length; i++)
|
|
686
|
-
images[i] = ImageInputDataFromJSON(base64Images.getJSONObject(i));
|
|
687
|
-
Instance().recognizeImages(images, getCompletion());
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
private void removeDatabase(Callback callback) {
|
|
691
|
-
callback.success(Instance().removeDatabase(getContext()));
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
private void cancelDBUpdate(Callback callback) {
|
|
695
|
-
callback.success(Instance().cancelDBUpdate(getContext()));
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
private void resetConfiguration(Callback callback) {
|
|
699
|
-
Instance().resetConfiguration();
|
|
700
|
-
callback.success();
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
private void setEnableCoreLogs(Callback callback, boolean enableLogs) {
|
|
704
|
-
Instance().setEnableCoreLogs(enableLogs);
|
|
705
|
-
callback.success();
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
private void addPKDCertificates(Callback callback, JSONArray certificatesJSON) throws JSONException {
|
|
709
|
-
List<PKDCertificate> certificates = new ArrayList<>();
|
|
710
|
-
for (int i = 0; i < certificatesJSON.length(); i++) {
|
|
711
|
-
JSONObject certificate = certificatesJSON.getJSONObject(i);
|
|
712
|
-
certificates.add(new PKDCertificate(Base64.decode(certificate.get("binaryData").toString(), Base64.DEFAULT), certificate.getInt("resourceType"), certificate.has("privateKey") ? Base64.decode(certificate.get("privateKey").toString(), Base64.DEFAULT) : null));
|
|
713
|
-
}
|
|
714
|
-
Instance().addPKDCertificates(certificates);
|
|
715
|
-
callback.success();
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
private void clearPKDCertificates(Callback callback) {
|
|
719
|
-
Instance().clearPKDCertificates();
|
|
720
|
-
callback.success();
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
private void recognizeVideoFrame(@SuppressWarnings("unused") Callback callback, String byteString, final JSONObject opts) throws JSONException {
|
|
724
|
-
stopBackgroundRFID();
|
|
725
|
-
Instance().recognizeVideoFrame(byteString.getBytes(), new ImageInputParam(opts.getInt("width"), opts.getInt("height"), opts.getInt("type")), getCompletion());
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
private void showScannerWithCameraID(@SuppressWarnings("unused") Callback callback, int cameraID) {
|
|
729
|
-
stopBackgroundRFID();
|
|
730
|
-
Instance().showScanner(getContext(), cameraID, getCompletion());
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
private void showScanner(Callback callback) {
|
|
734
|
-
showScannerWithCameraID(callback, -1);
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
private void showScannerWithCameraIDAndOpts(@SuppressWarnings("unused") Callback callback, int cameraID, final JSONObject opts) throws JSONException {
|
|
738
|
-
stopBackgroundRFID();
|
|
739
|
-
RegulaConfig.setConfig(Instance(), opts, getContext());
|
|
740
|
-
Instance().showScanner(getContext(), cameraID, getCompletion());
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
private void stopScanner(Callback callback) {
|
|
744
|
-
Instance().stopScanner(getContext());
|
|
745
|
-
callback.success();
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
private void startRFIDReader(@SuppressWarnings("unused") Callback callback) {
|
|
749
|
-
stopBackgroundRFID();
|
|
750
|
-
Instance().startRFIDReader(getContext(), getRfidReaderCompletion(), getRfidReaderRequest());
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
private void stopRFIDReader(Callback callback) {
|
|
754
|
-
Instance().stopRFIDReader(getContext());
|
|
755
|
-
stopBackgroundRFID();
|
|
756
|
-
callback.success();
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
private void prepareDatabase(Callback callback, String dbID) {
|
|
760
|
-
Instance().prepareDatabase(getContext(), dbID, getPrepareCompletion(callback));
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
private void runAutoUpdate(Callback callback, String dbID) {
|
|
764
|
-
Instance().runAutoUpdate(getContext(), dbID, getPrepareCompletion(callback));
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
private void setRfidScenario(Callback callback, final JSONObject opts) throws JSONException {
|
|
768
|
-
RegulaConfig.setRfidScenario(opts);
|
|
769
|
-
callback.success();
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
private void getSessionLogFolder(Callback callback) {
|
|
773
|
-
callback.success(Instance().processParams().sessionLogFolder);
|
|
774
|
-
}
|
|
775
|
-
|
|
776
|
-
private void setConfig(Callback callback, final JSONObject opts) throws JSONException {
|
|
777
|
-
RegulaConfig.setConfig(Instance(), opts, getContext());
|
|
778
|
-
callback.success();
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
private void readRFID(@SuppressWarnings("unused") Callback callback) {
|
|
782
|
-
backgroundRFIDEnabled = true;
|
|
783
|
-
startForegroundDispatch(getActivity());
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
private void setLanguage(Callback callback, String language) {
|
|
787
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
788
|
-
LocaleManager localeManager = (LocaleManager) getContext().getSystemService(Context.LOCALE_SERVICE);
|
|
789
|
-
localeManager.setApplicationLocales(new LocaleList(Locale.forLanguageTag(language)));
|
|
790
|
-
} else {
|
|
791
|
-
Locale locale = new Locale(language);
|
|
792
|
-
Locale.setDefault(locale);
|
|
793
|
-
Resources resources = getContext().getResources();
|
|
794
|
-
Configuration config = resources.getConfiguration();
|
|
795
|
-
config.setLocale(locale);
|
|
796
|
-
resources.updateConfiguration(config, resources.getDisplayMetrics());
|
|
797
|
-
}
|
|
798
|
-
callback.success();
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
private void providePACertificates(Callback callback, JSONArray certificatesJSON) throws JSONException {
|
|
802
|
-
if (paCertificateCompletion == null) {
|
|
803
|
-
callback.error("paCertificateCompletion is null");
|
|
804
|
-
return;
|
|
805
|
-
}
|
|
806
|
-
PKDCertificate[] certificates = new PKDCertificate[certificatesJSON.length()];
|
|
807
|
-
for (int i = 0; i < certificatesJSON.length(); i++) {
|
|
808
|
-
JSONObject certificate = certificatesJSON.getJSONObject(i);
|
|
809
|
-
certificates[i] = new PKDCertificate(Base64.decode(certificate.get("binaryData").toString(), Base64.DEFAULT), certificate.getInt("resourceType"), certificate.has("privateKey") ? Base64.decode(certificate.get("privateKey").toString(), Base64.DEFAULT) : null);
|
|
810
|
-
}
|
|
811
|
-
paCertificateCompletion.onCertificatesReceived(certificates);
|
|
812
|
-
callback.success();
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
private void provideTACertificates(Callback callback, JSONArray certificatesJSON) throws JSONException {
|
|
816
|
-
if (taCertificateCompletion == null) {
|
|
817
|
-
callback.error("taCertificateCompletion is null");
|
|
818
|
-
return;
|
|
819
|
-
}
|
|
820
|
-
PKDCertificate[] certificates = new PKDCertificate[certificatesJSON.length()];
|
|
821
|
-
for (int i = 0; i < certificatesJSON.length(); i++) {
|
|
822
|
-
JSONObject certificate = certificatesJSON.getJSONObject(i);
|
|
823
|
-
certificates[i] = new PKDCertificate(Base64.decode(certificate.get("binaryData").toString(), Base64.DEFAULT), certificate.getInt("resourceType"), certificate.has("privateKey") ? Base64.decode(certificate.get("privateKey").toString(), Base64.DEFAULT) : null);
|
|
824
|
-
}
|
|
825
|
-
taCertificateCompletion.onCertificatesReceived(certificates);
|
|
826
|
-
callback.success();
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
private void provideTASignature(Callback callback, Object signature) {
|
|
830
|
-
if (taSignatureCompletion == null) {
|
|
831
|
-
callback.error("taSignatureCompletion is null");
|
|
832
|
-
return;
|
|
833
|
-
}
|
|
834
|
-
taSignatureCompletion.onSignatureReceived(Base64.decode(signature.toString(), Base64.DEFAULT));
|
|
835
|
-
callback.success();
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
private void setRfidDelegate(Callback callback, int delegate) {
|
|
839
|
-
rfidDelegate = delegate;
|
|
840
|
-
callback.success();
|
|
841
|
-
}
|
|
842
|
-
|
|
843
|
-
private void textFieldValueByType(Callback callback, String raw, int fieldType) {
|
|
844
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
845
|
-
callback.success(results.getTextFieldValueByType(fieldType));
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
private void textFieldValueByTypeLcid(Callback callback, String raw, int fieldType, int lcid) {
|
|
849
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
850
|
-
callback.success(results.getTextFieldValueByType(fieldType, lcid));
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
private void textFieldValueByTypeSource(Callback callback, String raw, int fieldType, int source) {
|
|
854
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
855
|
-
callback.success(results.getTextFieldValueByTypeAndSource(fieldType, source));
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
private void textFieldValueByTypeLcidSource(Callback callback, String raw, int fieldType, int lcid, int source) {
|
|
859
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
860
|
-
callback.success(results.getTextFieldValueByType(fieldType, lcid, source));
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
private void textFieldValueByTypeSourceOriginal(Callback callback, String raw, int fieldType, int source, boolean original) {
|
|
864
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
865
|
-
callback.success(results.getTextFieldValueByTypeAndSource(fieldType, source, original));
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
private void textFieldValueByTypeLcidSourceOriginal(Callback callback, String raw, int fieldType, int lcid, int source, boolean original) {
|
|
869
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
870
|
-
callback.success(results.getTextFieldValueByType(fieldType, lcid, source, original));
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
private void textFieldByType(Callback callback, String raw, int fieldType) {
|
|
874
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
875
|
-
DocumentReaderTextField result = results.getTextFieldByType(fieldType);
|
|
876
|
-
if (result == null)
|
|
877
|
-
callback.success(null);
|
|
878
|
-
else
|
|
879
|
-
callback.success(generateDocumentReaderTextField(result, getContext()).toString());
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
private void textFieldByTypeLcid(Callback callback, String raw, int fieldType, int lcid) {
|
|
883
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
884
|
-
DocumentReaderTextField result = results.getTextFieldByType(fieldType, lcid);
|
|
885
|
-
if (result == null)
|
|
886
|
-
callback.success(null);
|
|
887
|
-
else
|
|
888
|
-
callback.success(generateDocumentReaderTextField(result, getContext()).toString());
|
|
889
|
-
}
|
|
890
|
-
|
|
891
|
-
private void graphicFieldByTypeSource(Callback callback, String raw, int fieldType, int source) {
|
|
892
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
893
|
-
DocumentReaderGraphicField result = results.getGraphicFieldByType(fieldType, source);
|
|
894
|
-
if (result == null)
|
|
895
|
-
callback.success(null);
|
|
896
|
-
else
|
|
897
|
-
callback.success(generateDocumentReaderGraphicField(result, getContext()).toString());
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
private void graphicFieldByTypeSourcePageIndex(Callback callback, String raw, int fieldType, int source, int pageIndex) {
|
|
901
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
902
|
-
DocumentReaderGraphicField result = results.getGraphicFieldByType(fieldType, source, pageIndex);
|
|
903
|
-
if (result == null)
|
|
904
|
-
callback.success(null);
|
|
905
|
-
else
|
|
906
|
-
callback.success(generateDocumentReaderGraphicField(result, getContext()).toString());
|
|
907
|
-
}
|
|
908
|
-
|
|
909
|
-
private void graphicFieldByTypeSourcePageIndexLight(Callback callback, String raw, int fieldType, int source, int pageIndex, int light) {
|
|
910
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
911
|
-
DocumentReaderGraphicField result = results.getGraphicFieldByType(fieldType, source, pageIndex, light);
|
|
912
|
-
if (result == null)
|
|
913
|
-
callback.success(null);
|
|
914
|
-
else
|
|
915
|
-
callback.success(generateDocumentReaderGraphicField(result, getContext()).toString());
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
private void graphicFieldImageByType(Callback callback, String raw, int fieldType) {
|
|
919
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
920
|
-
callback.success(bitmapToBase64String(results.getGraphicFieldImageByType(fieldType)));
|
|
921
|
-
}
|
|
922
|
-
|
|
923
|
-
private void graphicFieldImageByTypeSource(Callback callback, String raw, int fieldType, int source) {
|
|
924
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
925
|
-
callback.success(bitmapToBase64String(results.getGraphicFieldImageByType(fieldType, source)));
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
private void graphicFieldImageByTypeSourcePageIndex(Callback callback, String raw, int fieldType, int source, int pageIndex) {
|
|
929
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
930
|
-
callback.success(bitmapToBase64String(results.getGraphicFieldImageByType(fieldType, source, pageIndex)));
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
private void graphicFieldImageByTypeSourcePageIndexLight(Callback callback, String raw, int fieldType, int source, int pageIndex, int light) {
|
|
934
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
935
|
-
callback.success(bitmapToBase64String(results.getGraphicFieldImageByType(fieldType, source, pageIndex, light)));
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
@SuppressLint("WrongConstant")
|
|
939
|
-
private void containers(Callback callback, String raw, JSONArray resultType) {
|
|
940
|
-
try {
|
|
941
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
942
|
-
callback.success(results.getContainers(intArrayFromJSON(resultType)));
|
|
943
|
-
} catch (JSONException e) {
|
|
944
|
-
e.printStackTrace();
|
|
945
|
-
callback.error(e.toString());
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
private void encryptedContainers(Callback callback, String raw) {
|
|
950
|
-
DocumentReaderResults results = DocumentReaderResults.fromRawResults(raw);
|
|
951
|
-
callback.success(results.getEncryptedContainers());
|
|
952
|
-
}
|
|
953
|
-
|
|
954
|
-
private void setCameraSessionIsPaused(Callback callback, @SuppressWarnings("unused") boolean ignored) {
|
|
955
|
-
callback.error("setCameraSessionIsPaused() is an ios-only method");
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
private void getCameraSessionIsPaused(Callback callback) {
|
|
959
|
-
callback.error("getCameraSessionIsPaused() is an ios-only method");
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
private void stopRFIDReaderWithErrorMessage(Callback callback, @SuppressWarnings("unused") String message) {
|
|
963
|
-
callback.error("stopRFIDReaderWithErrorMessage() is an ios-only method");
|
|
964
|
-
}
|
|
965
|
-
|
|
966
|
-
@SuppressWarnings("unused")
|
|
967
|
-
private void recognizeImageWithCameraMode(Callback callback, String base64, boolean mode) {
|
|
968
|
-
callback.error("recognizeImageWithCameraMode() is an ios-only method");
|
|
969
|
-
}
|
|
970
|
-
|
|
971
|
-
@SuppressWarnings("unused")
|
|
972
|
-
private void setRfidSessionStatus(Callback callback, String s) {
|
|
973
|
-
callback.error("setRfidSessionStatus() is an ios-only method");
|
|
974
|
-
}
|
|
975
|
-
|
|
976
|
-
private void getRfidSessionStatus(Callback callback) {
|
|
977
|
-
callback.error("getRfidSessionStatus() is an ios-only method");
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
private IDocumentReaderCompletion getCompletion() {
|
|
981
|
-
return (action, results, error) -> {
|
|
982
|
-
sendEvent(eventCompletion, generateCompletion(action, results, error, getContext()));
|
|
983
|
-
if (action == DocReaderAction.ERROR || action == DocReaderAction.CANCEL || (action == DocReaderAction.COMPLETE && results != null && results.rfidResult == 1))
|
|
984
|
-
stopBackgroundRFID();
|
|
985
|
-
};
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
private IRfidReaderCompletion getRfidReaderCompletion() {
|
|
989
|
-
return new IRfidReaderCompletion() {
|
|
990
|
-
@Override
|
|
991
|
-
public void onCompleted(int action, @Nullable DocumentReaderResults results, @Nullable DocumentReaderException error) {
|
|
992
|
-
sendEvent(eventCompletion, generateCompletion(action, results, error, getContext()));
|
|
993
|
-
if (action == DocReaderAction.ERROR || action == DocReaderAction.CANCEL || (action == DocReaderAction.COMPLETE && results != null && results.rfidResult == 1))
|
|
994
|
-
stopBackgroundRFID();
|
|
995
|
-
}
|
|
996
|
-
|
|
997
|
-
@Override
|
|
998
|
-
public void onChipDetected() {
|
|
999
|
-
sendEvent(rfidOnChipDetectedEvent, "");
|
|
1000
|
-
}
|
|
1001
|
-
|
|
1002
|
-
@Override
|
|
1003
|
-
public void onRetryReadChip(@NonNull DocReaderRfidException error) {
|
|
1004
|
-
sendEvent(rfidOnRetryReadChipEvent, generateRegulaException(error));
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
|
-
@Override
|
|
1008
|
-
public void onProgress(@Nullable DocumentReaderNotification notification) {
|
|
1009
|
-
sendEvent(rfidOnProgressEvent, generateDocumentReaderNotification(notification));
|
|
1010
|
-
}
|
|
1011
|
-
};
|
|
1012
|
-
}
|
|
1013
|
-
|
|
1014
|
-
private IDocumentReaderPrepareCompletion getPrepareCompletion(Callback callback) {
|
|
1015
|
-
return new IDocumentReaderPrepareCompletion() {
|
|
1016
|
-
@Override
|
|
1017
|
-
public void onPrepareProgressChanged(int progress) {
|
|
1018
|
-
if (progress != databaseDownloadProgress) {
|
|
1019
|
-
sendEvent(eventDatabaseProgress, progress + "");
|
|
1020
|
-
databaseDownloadProgress = progress;
|
|
1021
|
-
}
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
@Override
|
|
1025
|
-
public void onPrepareCompleted(boolean status, @Nullable DocumentReaderException error) {
|
|
1026
|
-
if (status)
|
|
1027
|
-
callback.success("database prepared");
|
|
1028
|
-
else
|
|
1029
|
-
callback.error("database preparation failed: " + error.toString());
|
|
1030
|
-
}
|
|
1031
|
-
};
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
private IDocumentReaderInitCompletion getInitCompletion(Callback callback) {
|
|
1035
|
-
return (success, error) -> {
|
|
1036
|
-
if (success) {
|
|
1037
|
-
Instance().setVideoEncoderCompletion((sessionId, file) -> sendEvent(eventVideoEncoderCompletion, generateVideoEncoderCompletion(sessionId, file)));
|
|
1038
|
-
Instance().setOnClickListener(view -> sendEvent(onCustomButtonTappedEvent, view.getTag()));
|
|
1039
|
-
callback.success("init completed");
|
|
1040
|
-
} else
|
|
1041
|
-
callback.error("Init failed:" + error);
|
|
1042
|
-
};
|
|
1043
|
-
}
|
|
1044
|
-
|
|
1045
|
-
private ICheckDatabaseUpdate getCheckDatabaseUpdateCompletion(Callback callback) {
|
|
1046
|
-
return (database) -> callback.success(generateDocReaderDocumentsDatabase(database));
|
|
1047
|
-
}
|
|
1048
|
-
|
|
1049
|
-
private ITccParamsCompletion getTCCParamsCompletion(Callback callback) {
|
|
1050
|
-
return (success, error) -> {
|
|
1051
|
-
if (success)
|
|
1052
|
-
callback.success("success");
|
|
1053
|
-
else
|
|
1054
|
-
callback.error("failed: " + error.getMessage());
|
|
1055
|
-
};
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
private IRfidReaderRequest getIRfidReaderRequest() {
|
|
1059
|
-
return new IRfidReaderRequest() {
|
|
1060
|
-
@Override
|
|
1061
|
-
public void onRequestPACertificates(byte[] serialNumber, PAResourcesIssuer issuer, @NonNull IRfidPKDCertificateCompletion completion) {
|
|
1062
|
-
paCertificateCompletion = completion;
|
|
1063
|
-
sendEvent(eventPACertificateCompletion, generatePACertificateCompletion(serialNumber, issuer));
|
|
1064
|
-
}
|
|
1065
|
-
|
|
1066
|
-
@Override
|
|
1067
|
-
public void onRequestTACertificates(String keyCAR, @NonNull IRfidPKDCertificateCompletion completion) {
|
|
1068
|
-
taCertificateCompletion = completion;
|
|
1069
|
-
sendEvent(eventTACertificateCompletion, keyCAR);
|
|
1070
|
-
}
|
|
1071
|
-
|
|
1072
|
-
@Override
|
|
1073
|
-
public void onRequestTASignature(TAChallenge challenge, @NonNull IRfidTASignatureCompletion completion) {
|
|
1074
|
-
taSignatureCompletion = completion;
|
|
1075
|
-
sendEvent(eventTASignatureCompletion, generateTAChallenge(challenge));
|
|
1076
|
-
}
|
|
1077
|
-
};
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
private IRfidReaderRequest getIRfidReaderRequestNoPA() {
|
|
1081
|
-
return new IRfidReaderRequest() {
|
|
1082
|
-
@Override
|
|
1083
|
-
public void onRequestPACertificates(byte[] serialNumber, PAResourcesIssuer issuer, @NonNull IRfidPKDCertificateCompletion completion) {
|
|
1084
|
-
paCertificateCompletion = null;
|
|
1085
|
-
completion.onCertificatesReceived(new PKDCertificate[0]);
|
|
1086
|
-
}
|
|
1087
|
-
|
|
1088
|
-
@Override
|
|
1089
|
-
public void onRequestTACertificates(String keyCAR, @NonNull IRfidPKDCertificateCompletion completion) {
|
|
1090
|
-
taCertificateCompletion = completion;
|
|
1091
|
-
sendEvent(eventTACertificateCompletion, keyCAR);
|
|
1092
|
-
}
|
|
1093
|
-
|
|
1094
|
-
@Override
|
|
1095
|
-
public void onRequestTASignature(TAChallenge challenge, @NonNull IRfidTASignatureCompletion completion) {
|
|
1096
|
-
taSignatureCompletion = completion;
|
|
1097
|
-
sendEvent(eventTASignatureCompletion, generateTAChallenge(challenge));
|
|
1098
|
-
}
|
|
1099
|
-
};
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
private IRfidReaderRequest getRfidReaderRequest() {
|
|
1103
|
-
IRfidReaderRequest delegate = null;
|
|
1104
|
-
if (rfidDelegate == RFIDDelegate.NO_PA)
|
|
1105
|
-
delegate = getIRfidReaderRequestNoPA();
|
|
1106
|
-
if (rfidDelegate == RFIDDelegate.FULL)
|
|
1107
|
-
delegate = getIRfidReaderRequest();
|
|
1108
|
-
return delegate;
|
|
1109
|
-
}
|
|
1110
|
-
|
|
1111
|
-
private static int rfidDelegate = RFIDDelegate.NULL;
|
|
1112
|
-
|
|
1113
|
-
private static class RFIDDelegate {
|
|
1114
|
-
public static final int NULL = 0;
|
|
1115
|
-
public static final int NO_PA = 1;
|
|
1116
|
-
public static final int FULL = 2;
|
|
1117
|
-
}
|
|
1118
|
-
}
|