@regulaforensics/cordova-plugin-document-reader-api 5.4.0 → 5.8.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.
@@ -5,6 +5,7 @@ import org.json.JSONObject;
5
5
  import org.json.JSONException;
6
6
 
7
7
  import com.regula.documentreader.api.DocumentReader;
8
+ import com.regula.documentreader.api.params.ImageQA;
8
9
  import com.regula.documentreader.api.params.ParamsCustomization;
9
10
  import com.regula.documentreader.api.params.Functionality;
10
11
  import com.regula.documentreader.api.params.ProcessParam;
@@ -18,6 +19,7 @@ import android.graphics.Typeface;
18
19
 
19
20
  import java.math.BigDecimal;
20
21
 
22
+ import static cordova.plugin.documentreader.Helpers.*;
21
23
  import static cordova.plugin.documentreader.JSONConstructor.*;
22
24
 
23
25
  class RegulaConfig {
@@ -30,11 +32,11 @@ class RegulaConfig {
30
32
  setProcessParams(reader.processParams(), opts.getJSONObject("processParams"));
31
33
  }
32
34
 
33
- static JSONObject getConfig(DocumentReader reader, Context context) throws JSONException {
35
+ static JSONObject getConfig(DocumentReader reader) throws JSONException {
34
36
  JSONObject object = new JSONObject();
35
37
  object.put("customization", getCustomization(reader.customization()));
36
38
  object.put("functionality", getFunctionality(reader.functionality()));
37
- object.put("processParams", getProcessParams(reader.processParams(), context));
39
+ object.put("processParams", getProcessParams(reader.processParams()));
38
40
 
39
41
  return object;
40
42
  }
@@ -95,6 +97,12 @@ class RegulaConfig {
95
97
  editor.setZoomFactor(BigDecimal.valueOf(opts.getDouble("zoomFactor")).floatValue());
96
98
  if (opts.has("isCameraTorchCheckDisabled"))
97
99
  editor.setIsCameraTorchCheckDisabled(opts.getBoolean("isCameraTorchCheckDisabled"));
100
+ if (opts.has("recordScanningProcess"))
101
+ editor.setDoRecordProcessingVideo(opts.getBoolean("recordScanningProcess"));
102
+ if (opts.has("manualMultipageMode"))
103
+ editor.setManualMultipageMode(opts.getBoolean("manualMultipageMode"));
104
+ if (opts.has("exposure"))
105
+ editor.setExposure(BigDecimal.valueOf(opts.getDouble("exposure")).floatValue());
98
106
 
99
107
  editor.apply();
100
108
  }
@@ -158,6 +166,49 @@ class RegulaConfig {
158
166
  processParams.returnCroppedBarcode = opts.getBoolean("returnCroppedBarcode");
159
167
  if (opts.has("checkHologram"))
160
168
  processParams.checkHologram = opts.getBoolean("checkHologram");
169
+ if (opts.has("checkRequiredTextFields"))
170
+ processParams.checkRequiredTextFields = opts.getBoolean("checkRequiredTextFields");
171
+ if (opts.has("depersonalizeLog"))
172
+ processParams.depersonalizeLog = opts.getBoolean("depersonalizeLog");
173
+ if (opts.has("resultTypeOutput"))
174
+ processParams.resultTypeOutput = intArrayFromJson(opts.getJSONArray("resultTypeOutput"));
175
+ if (opts.has("generateDoublePageSpreadImage"))
176
+ processParams.generateDoublePageSpreadImage = opts.getBoolean("generateDoublePageSpreadImage");
177
+ if (opts.has("imageDpiOutMax"))
178
+ processParams.imageDpiOutMax = opts.getInt("imageDpiOutMax");
179
+ if (opts.has("alreadyCropped"))
180
+ processParams.alreadyCropped = opts.getBoolean("alreadyCropped");
181
+ if (opts.has("forceDocID"))
182
+ processParams.forceDocID = opts.getInt("forceDocID");
183
+ if (opts.has("matchTextFieldMask"))
184
+ processParams.matchTextFieldMask = opts.getBoolean("matchTextFieldMask");
185
+ if (opts.has("fastDocDetect"))
186
+ processParams.fastDocDetect = opts.getBoolean("fastDocDetect");
187
+ if (opts.has("updateOCRValidityByGlare"))
188
+ processParams.updateOCRValidityByGlare = opts.getBoolean("updateOCRValidityByGlare");
189
+ if (opts.has("imageQA")) {
190
+ ImageQA img = new ImageQA();
191
+ img.fromJson(opts.getJSONObject("imageQA"));
192
+ processParams.imageQA = img;
193
+ }
194
+ if (opts.has("forceDocFormat"))
195
+ processParams.forceDocFormat = opts.getInt("forceDocFormat");
196
+ if (opts.has("noGraphics"))
197
+ processParams.noGraphics = opts.getBoolean("noGraphics");
198
+ if (opts.has("documentAreaMin"))
199
+ processParams.documentAreaMin = opts.getDouble("documentAreaMin");
200
+ if (opts.has("multiDocOnImage"))
201
+ processParams.multiDocOnImage = opts.getBoolean("multiDocOnImage");
202
+ if (opts.has("shiftExpiryDate"))
203
+ processParams.shiftExpiryDate = opts.getInt("shiftExpiryDate");
204
+ if (opts.has("minimalHolderAge"))
205
+ processParams.minimalHolderAge = opts.getInt("minimalHolderAge");
206
+ if (opts.has("mrzFormatsFilter"))
207
+ processParams.mrzFormatsFilter = stringArrayFromJson(opts.getJSONArray("mrzFormatsFilter"));
208
+ if (opts.has("forceReadMrzBeforeLocate"))
209
+ processParams.forceReadMrzBeforeLocate = opts.getBoolean("forceReadMrzBeforeLocate");
210
+ if (opts.has("parseBarcodes"))
211
+ processParams.parseBarcodes = opts.getBoolean("parseBarcodes");
161
212
  }
162
213
 
163
214
  private static void setCustomization(ParamsCustomization customization, JSONObject opts, Context context) throws JSONException {
@@ -248,10 +299,6 @@ class RegulaConfig {
248
299
  editor.setCameraFrameCornerRadius((float) opts.getDouble("cameraFrameCornerRadius"));
249
300
  if (opts.has("cameraFrameLineCap"))
250
301
  editor.setCameraFrameLineCap(Paint.Cap.values()[(opts.getInt("cameraFrameLineCap"))]);
251
- if (opts.has("torchImageOnImage"))
252
- editor.setTorchImageOn(drawableFromBase64(opts.getString("torchImageOnImage"), context));
253
- if (opts.has("torchImageOffImage"))
254
- editor.setTorchImageOff(drawableFromBase64(opts.getString("torchImageOffImage"), context));
255
302
  if (opts.has("closeButtonImage"))
256
303
  editor.setCloseButtonImage(drawableFromBase64(opts.getString("closeButtonImage"), context));
257
304
  if (opts.has("captureButtonImage"))
@@ -272,8 +319,10 @@ class RegulaConfig {
272
319
  editor.setChangeFrameCollapseButtonImage(drawableFromBase64(opts.getString("changeFrameButtonCollapseImage"), context));
273
320
  if (opts.has("toolbarSize"))
274
321
  editor.setToolbarSize(BigDecimal.valueOf(opts.getDouble("toolbarSize")).floatValue());
322
+ if (opts.has("statusBackgroundColor"))
323
+ editor.setStatusBackgroundColor(opts.getString("statusBackgroundColor"));
275
324
 
276
- editor.apply();
325
+ editor.applyImmediately(context);
277
326
  }
278
327
 
279
328
  private static JSONObject getFunctionality(Functionality functionality) throws JSONException {
@@ -309,6 +358,9 @@ class RegulaConfig {
309
358
  object.put("isZoomEnabled", functionality.isZoomEnabled());
310
359
  object.put("zoomFactor", functionality.getZoomFactor());
311
360
  object.put("isCameraTorchCheckDisabled", functionality.isCameraTorchCheckDisabled());
361
+ object.put("recordScanningProcess", functionality.doRecordProcessingVideo());
362
+ object.put("manualMultipageMode", functionality.isManualMultipageMode());
363
+ object.put("exposure", functionality.getExposure());
312
364
 
313
365
  return object;
314
366
  }
@@ -358,8 +410,6 @@ class RegulaConfig {
358
410
  object.put("cameraFramePortraitAspectRatio", customization.getCameraFramePortraitAspectRatio());
359
411
  object.put("cameraFrameCornerRadius", customization.getCameraFrameCornerRadius());
360
412
  object.put("cameraFrameLineCap", customization.getCameraFrameLineCap().toString());
361
- object.put("torchImageOnImage", bitmapToBase64String(bitmapFromDrawable(customization.getTorchImageOnDrawable())));
362
- object.put("torchImageOffImage", bitmapToBase64String(bitmapFromDrawable(customization.getTorchImageOffDrawable())));
363
413
  object.put("closeButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getCloseButtonDrawable())));
364
414
  object.put("captureButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getCaptureButtonDrawable())));
365
415
  object.put("changeFrameCollapseButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameCollapseButtonDrawable())));
@@ -370,12 +420,17 @@ class RegulaConfig {
370
420
  object.put("changeFrameButtonExpandImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameExpandButtonDrawable())));
371
421
  object.put("changeFrameButtonCollapseImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameCollapseButtonDrawable())));
372
422
  object.put("toolbarSize", customization.getToolbarSize());
423
+ object.put("statusBackgroundColor", customization.getStatusBackgroundColor());
373
424
 
374
425
  return object;
375
426
  }
376
427
 
377
- private static JSONObject getProcessParams(ProcessParam processParams, Context context) throws JSONException {
428
+ private static JSONObject getProcessParams(ProcessParam processParams) throws JSONException {
378
429
  JSONObject object = new JSONObject();
430
+ object.put("documentIDList", processParams.documentIDList != null ? generateIntArray(processParams.documentIDList) : null);
431
+ object.put("barcodeTypes", processParams.doBarcodes != null ? generateArray(processParams.doBarcodes) : null);
432
+ object.put("fieldTypesFilter", processParams.fieldTypesFilter != null ? generateIntArray(processParams.fieldTypesFilter) : null);
433
+ object.put("faceMetaData", processParams.faceMetaData != null ? generateArray(processParams.faceMetaData, JSONConstructor::generateFaceMetaData) : null);
379
434
  object.put("scenario", processParams.scenario);
380
435
  object.put("measureSystem", processParams.measureSystem);
381
436
  object.put("uvTorchEnabled", processParams.uvTorchEnabled);
@@ -402,14 +457,26 @@ class RegulaConfig {
402
457
  object.put("logs", processParams.isLogEnable());
403
458
  object.put("returnCroppedBarcode", processParams.returnCroppedBarcode);
404
459
  object.put("checkHologram", processParams.checkHologram);
405
- if (processParams.documentIDList != null)
406
- object.put("documentIDList", generateIntArray(processParams.documentIDList));
407
- if (processParams.doBarcodes != null)
408
- object.put("barcodeTypes", generateArray(processParams.doBarcodes));
409
- if (processParams.fieldTypesFilter != null)
410
- object.put("fieldTypesFilter", generateIntArray(processParams.fieldTypesFilter));
411
- if (processParams.faceMetaData != null)
412
- object.put("faceMetaData", generateArray(processParams.faceMetaData, JSONConstructor::generateFaceMetaData, context));
460
+ object.put("checkRequiredTextFields", processParams.checkRequiredTextFields);
461
+ object.put("depersonalizeLog", processParams.depersonalizeLog);
462
+ object.put("resultTypeOutput", processParams.resultTypeOutput);
463
+ object.put("generateDoublePageSpreadImage", processParams.generateDoublePageSpreadImage);
464
+ object.put("imageDpiOutMax", processParams.imageDpiOutMax);
465
+ object.put("alreadyCropped", processParams.alreadyCropped);
466
+ object.put("forceDocID", processParams.forceDocID);
467
+ object.put("matchTextFieldMask", processParams.matchTextFieldMask);
468
+ object.put("fastDocDetect", processParams.fastDocDetect);
469
+ object.put("updateOCRValidityByGlare", processParams.updateOCRValidityByGlare);
470
+ object.put("imageQA", processParams.imageQA != null ? processParams.imageQA.toJsonObject() : null);
471
+ object.put("forceDocFormat", processParams.forceDocFormat);
472
+ object.put("noGraphics", processParams.noGraphics);
473
+ object.put("documentAreaMin", processParams.documentAreaMin);
474
+ object.put("multiDocOnImage", processParams.multiDocOnImage);
475
+ object.put("shiftExpiryDate", processParams.shiftExpiryDate);
476
+ object.put("minimalHolderAge", processParams.minimalHolderAge);
477
+ object.put("mrzFormatsFilter", processParams.mrzFormatsFilter != null ? generateArray(processParams.mrzFormatsFilter) : null);
478
+ object.put("forceReadMrzBeforeLocate", processParams.forceReadMrzBeforeLocate);
479
+ object.put("parseBarcodes", processParams.parseBarcodes);
413
480
 
414
481
  return object;
415
482
  }
@@ -1,18 +1,18 @@
1
1
  repositories {
2
- jcenter()
3
- maven{
4
- url "https://maven.google.com"
5
- }
6
- maven{
7
- url "http://maven.regulaforensics.com/RegulaDocumentReader"
8
- }
9
- maven {
10
- url "http://maven.regulaforensics.com/RegulaDocumentReader/Beta"
11
- }
2
+ jcenter()
3
+ maven{
4
+ url "https://maven.google.com"
12
5
  }
6
+ maven{
7
+ url "https://maven.regulaforensics.com/RegulaDocumentReader"
8
+ }
9
+ maven {
10
+ url "https://maven.regulaforensics.com/RegulaDocumentReader/Beta"
11
+ }
12
+ }
13
13
 
14
14
  dependencies {
15
- implementation ('com.regula.documentreader:api:5.4.3934'){
15
+ implementation ('com.regula.documentreader:api:5.8.5196'){
16
16
  transitive = true
17
17
  }
18
18
  }
@@ -1,14 +1,19 @@
1
1
  #import <Cordova/CDVPlugin.h>
2
2
  #import <Foundation/Foundation.h>
3
- #import "JSONConstructor.h"
3
+ #import "RGLWJSONConstructor.h"
4
4
  #import "RegulaConfig.h"
5
5
  #import <DocumentReader/DocumentReader.h>
6
6
 
7
7
  @class DocReader;
8
8
 
9
- @interface RGLDocumentReader : CDVPlugin
9
+ @interface RGLDocumentReader : CDVPlugin<RGLRecordScanningProcessDelegate, RGLDocReaderRFIDDelegate>
10
10
 
11
11
  @property (class) CDVInvokedUrlCommand* _Nullable command;
12
12
  @property (class) NSNumber* _Nullable databasePercentageDownloaded;
13
13
 
14
- @end
14
+ - (void) sendEvent:(NSString*_Nullable)data :(NSString*_Nonnull)callbackId;
15
+
16
+ @end
17
+
18
+ @interface RFIDDelegateNoPA : NSObject<RGLDocReaderRFIDDelegate>
19
+ @end
@@ -2,6 +2,40 @@
2
2
  #import "RGLDocumentReader.h"
3
3
  @import DocumentReader;
4
4
 
5
+ RGLRFIDCertificatesCallback paCertificateCompletion;
6
+ RGLRFIDCertificatesCallback taCertificateCompletion;
7
+ typedef void (^RGLRFIDSignatureCallback)(NSData *signature);
8
+ RGLRFIDSignatureCallback taSignatureCompletion;
9
+ RFIDDelegateNoPA* rfidDelegateNoPA;
10
+ RGLDocumentReader* plugin;
11
+ NSString* rfidNotificationCompletionEvent = @"rfidNotificationCompletionEvent";
12
+ NSString* paCertificateCompletionEvent = @"paCertificateCompletionEvent";
13
+ NSString* taCertificateCompletionEvent = @"taCertificateCompletionEvent";
14
+ NSString* taSignatureCompletionEvent = @"taSignatureCompletionEvent";
15
+
16
+ @implementation RFIDDelegateNoPA
17
+
18
+ - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
19
+ taCertificateCompletion = callback;
20
+ [plugin sendEvent:[NSString stringWithFormat:@"%@%@", taCertificateCompletionEvent, keyCAR] :RGLDocumentReader.command.callbackId];
21
+ }
22
+
23
+ - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
24
+ taSignatureCompletion = callback;
25
+ [plugin sendEvent:[NSString stringWithFormat:@"%@%@", taSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLDocumentReader.command.callbackId];
26
+ }
27
+
28
+ - (void)didChipConnected {
29
+ [plugin sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"1"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_CHIP_DETECTED = 1;
30
+ }
31
+
32
+ - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
33
+ [plugin sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"2"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_READING_ERROR = 2;
34
+ }
35
+
36
+ @end
37
+
38
+
5
39
  @implementation RGLDocumentReader
6
40
 
7
41
  static NSNumber* _databasePercentageDownloaded;
@@ -37,26 +71,60 @@ typedef void (^Callback)(NSString* response);
37
71
  -(RGLDocumentReaderCompletion _Nonnull)getCompletion {
38
72
  NSString* callbackId = RGLDocumentReader.command.callbackId;
39
73
  return ^(RGLDocReaderAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error) {
40
- [self sendEvent:[JSONConstructor generateCompletion:[JSONConstructor generateDocReaderAction: action] :results :error :nil] :callbackId];
74
+ [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateDocReaderAction: action] :results :error :nil]] :callbackId];
41
75
  };
42
76
  }
43
77
 
44
78
  -(RGLRFIDProcessCompletion _Nonnull)getRFIDCompletion {
45
79
  NSString* callbackId = RGLDocumentReader.command.callbackId;
46
80
  return ^(RGLRFIDCompleteAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error, RGLRFIDErrorCodes errorCode) {
47
- [self sendEvent:[JSONConstructor generateCompletion:[JSONConstructor generateRFIDCompleteAction: action] :results :error :nil] :callbackId];
81
+ [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateRFIDCompleteAction: action] :results :error :nil]] :callbackId];
48
82
  };
49
83
  }
50
84
 
51
85
  -(RGLRFIDNotificationCallback _Nonnull)getRFIDNotificationCallback {
52
86
  NSString* callbackId = RGLDocumentReader.command.callbackId;
53
87
  return ^(RGLRFIDNotificationAction notificationAction, RGLRFIDNotify* _Nullable notify) {
54
- [self sendEvent:[JSONConstructor generateCompletion:[JSONConstructor generateRFIDNotificationAction:notificationAction] :nil :nil :notify] :callbackId];
88
+ [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateRFIDNotificationAction:notificationAction] :nil :nil :notify]] :callbackId];
55
89
  };
56
90
  }
57
91
 
92
+ - (void)didFinishRecordingToFile:(NSURL *)fileURL {
93
+ NSString* callbackId = RGLDocumentReader.command.callbackId;
94
+ [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:fileURL :nil]] :callbackId];
95
+ }
96
+
97
+ - (void)didFailWithError:(NSError *)error {
98
+ NSString* callbackId = RGLDocumentReader.command.callbackId;
99
+ [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:nil :error]] :callbackId];
100
+ }
101
+
102
+ - (void)onRequestPACertificatesWithSerial:(NSData *)serialNumber issuer:(RGLPAResourcesIssuer *)issuer callback:(RGLRFIDCertificatesCallback)callback {
103
+ paCertificateCompletion = callback;
104
+ [self sendEvent:[NSString stringWithFormat:@"%@%@", paCertificateCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generatePACertificateCompletion:serialNumber :issuer]]] :RGLDocumentReader.command.callbackId];
105
+ }
106
+
107
+ - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
108
+ taCertificateCompletion = callback;
109
+ [self sendEvent:[NSString stringWithFormat:@"%@%@", taCertificateCompletionEvent, keyCAR] :RGLDocumentReader.command.callbackId];
110
+ }
111
+
112
+ - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
113
+ taSignatureCompletion = callback;
114
+ [self sendEvent:[NSString stringWithFormat:@"%@%@", taSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLDocumentReader.command.callbackId];
115
+ }
116
+
117
+ - (void)didChipConnected {
118
+ [self sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"1"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_CHIP_DETECTED = 1;
119
+ }
120
+
121
+ - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
122
+ [self sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"2"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_READING_ERROR = 2;
123
+ }
124
+
58
125
  - (void) exec:(CDVInvokedUrlCommand*)command {
59
126
  [RGLDocumentReader setCommand:command];
127
+ plugin = self;
60
128
  NSMutableArray* args = [[NSMutableArray alloc] init];
61
129
  NSString* action = [[command arguments] objectAtIndex:0];
62
130
  for(int i = 1;i<[command arguments].count;i++)
@@ -68,7 +136,9 @@ typedef void (^Callback)(NSString* response);
68
136
  [self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:response] callbackId:command.callbackId];
69
137
  };
70
138
 
71
- if([action isEqualToString:@"getAPIVersion"])
139
+ if([action isEqualToString:@"initializeReaderAutomatically"])
140
+ [self initializeReaderAutomatically :successCallback :errorCallback];
141
+ else if([action isEqualToString:@"getAPIVersion"])
72
142
  [self getAPIVersion :successCallback :errorCallback];
73
143
  else if([action isEqualToString:@"getAvailableScenarios"])
74
144
  [self getAvailableScenarios :successCallback :errorCallback];
@@ -138,6 +208,8 @@ typedef void (^Callback)(NSString* response);
138
208
  [self readRFID :successCallback :errorCallback];
139
209
  else if([action isEqualToString:@"getRfidSessionStatus"])
140
210
  [self getRfidSessionStatus :successCallback :errorCallback];
211
+ else if([action isEqualToString:@"setRfidDelegate"])
212
+ [self setRfidDelegate :[args objectAtIndex:0] :successCallback :errorCallback];
141
213
  else if([action isEqualToString:@"setEnableCoreLogs"])
142
214
  [self setEnableCoreLogs :[args objectAtIndex:0] :successCallback :errorCallback];
143
215
  else if([action isEqualToString:@"addPKDCertificates"])
@@ -164,8 +236,18 @@ typedef void (^Callback)(NSString* response);
164
236
  [self recognizeImage :[args objectAtIndex:0] :successCallback :errorCallback];
165
237
  else if([action isEqualToString:@"setRfidSessionStatus"])
166
238
  [self setRfidSessionStatus :[args objectAtIndex:0] :successCallback :errorCallback];
239
+ else if([action isEqualToString:@"providePACertificates"])
240
+ [self providePACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
241
+ else if([action isEqualToString:@"provideTACertificates"])
242
+ [self provideTACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
243
+ else if([action isEqualToString:@"provideTASignature"])
244
+ [self provideTASignature :[args objectAtIndex:0] :successCallback :errorCallback];
245
+ else if([action isEqualToString:@"parseCoreResults"])
246
+ [self parseCoreResults :[args objectAtIndex:0] :successCallback :errorCallback];
167
247
  else if([action isEqualToString:@"initializeReaderWithDatabasePath"])
168
248
  [self initializeReaderWithDatabasePath :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
249
+ else if([action isEqualToString:@"initializeReaderWithDatabase"])
250
+ [self initializeReaderWithDatabase :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
169
251
  else if([action isEqualToString:@"recognizeImageFrame"])
170
252
  [self recognizeImageFrame :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
171
253
  else if([action isEqualToString:@"recognizeImageWithOpts"])
@@ -182,6 +264,12 @@ typedef void (^Callback)(NSString* response);
182
264
  [self result:[NSString stringWithFormat:@"%@/%@", @"method not implemented: ", action] :errorCallback];
183
265
  }
184
266
 
267
+ - (void) initializeReaderAutomatically:(Callback)successCallback :(Callback)errorCallback{
268
+ NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"regula.license" ofType:nil];
269
+ NSData *licenseData = [NSData dataWithContentsOfFile:dataPath];
270
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:licenseData] completion:[self getInitCompletion :successCallback :errorCallback]];
271
+ }
272
+
185
273
  - (void) resetConfiguration:(Callback)successCallback :(Callback)errorCallback{
186
274
  [self result:@"resetConfiguration() is an android-only method" :errorCallback];
187
275
  }
@@ -218,8 +306,16 @@ typedef void (^Callback)(NSString* response);
218
306
  [self result:@"getLicenseMessage() is an android-only method" :successCallback];
219
307
  }
220
308
 
309
+ - (void) initializeReaderWithDatabase:(NSString*)licenseString :(NSString*)databaseString :(Callback)successCallback :(Callback)errorCallback{
310
+ [self result:@"initializeReaderWithDatabase() is an android-only method" :successCallback];
311
+ }
312
+
221
313
  - (void) initializeReader:(NSString*)licenseString :(Callback)successCallback :(Callback)errorCallback{
222
- [RGLDocReader.shared initializeReader:[[NSData alloc] initWithBase64EncodedString:licenseString options:0] completion:[self getInitCompletion :successCallback :errorCallback]];
314
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:[[NSData alloc] initWithBase64EncodedString:licenseString options:0]] completion:[self getInitCompletion :successCallback :errorCallback]];
315
+ }
316
+
317
+ - (void) parseCoreResults:(NSString*)json :(Callback)successCallback :(Callback)errorCallback{
318
+ [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderResults:[RGLDocumentReaderResults initWithRawString: json]]] :successCallback];
223
319
  }
224
320
 
225
321
  - (void) startRFIDReader:(Callback)successCallback :(Callback)errorCallback{
@@ -229,7 +325,7 @@ typedef void (^Callback)(NSString* response);
229
325
  }
230
326
 
231
327
  - (void) initializeReaderWithDatabasePath:(NSString*)licenseString :(NSString*)databasePath :(Callback)successCallback :(Callback)errorCallback{
232
- [RGLDocReader.shared initializeReader:[[NSData alloc] initWithBase64EncodedString:licenseString options:0] databasePath:databasePath completion:[self getInitCompletion :successCallback :errorCallback]];
328
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:[[NSData alloc] initWithBase64EncodedString:licenseString options:0] licenseUpdateCheck:true databasePath:databasePath] completion:[self getInitCompletion :successCallback :errorCallback]];
233
329
  }
234
330
 
235
331
  - (void) prepareDatabase:(NSString*)dbID :(Callback)successCallback :(Callback)errorCallback{
@@ -319,7 +415,7 @@ typedef void (^Callback)(NSString* response);
319
415
  - (void) addPKDCertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
320
416
  NSMutableArray *certificates = [[NSMutableArray alloc] init];
321
417
  for(NSDictionary* certificateJSON in input)
322
- [certificates addObject:[JSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
418
+ [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
323
419
  [RGLDocReader.shared addPKDCertificates:certificates];
324
420
  [self result:@"" :successCallback];
325
421
  }
@@ -330,7 +426,7 @@ typedef void (^Callback)(NSString* response);
330
426
  }
331
427
 
332
428
  - (void) selectedScenario:(Callback)successCallback :(Callback)errorCallback{
333
- [self result:[JSONConstructor generateScenario:RGLDocReader.shared.selectedScenario] :successCallback];
429
+ [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:RGLDocReader.shared.selectedScenario]] :successCallback];
334
430
  }
335
431
 
336
432
  - (void) stopScanner:(Callback)successCallback :(Callback)errorCallback{
@@ -452,7 +548,7 @@ typedef void (^Callback)(NSString* response);
452
548
  BOOL success = false;
453
549
  for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
454
550
  if([scenario.identifier isEqualToString:scenarioID]){
455
- [self result:[JSONConstructor generateScenario:scenario] :successCallback];
551
+ [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:scenario]] :successCallback];
456
552
  success = true;
457
553
  break;
458
554
  }
@@ -460,18 +556,73 @@ typedef void (^Callback)(NSString* response);
460
556
  [self result:@"Scenario unavailable" :errorCallback];
461
557
  }
462
558
 
559
+ - (void) providePACertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
560
+ if(paCertificateCompletion == nil){
561
+ [self result:@"paCertificateCompletion is nil" :errorCallback];
562
+ return;
563
+ }
564
+ NSMutableArray *certificates = [[NSMutableArray alloc] init];
565
+ for(NSDictionary* certificateJSON in input)
566
+ [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
567
+ paCertificateCompletion(certificates);
568
+ [self result:@"" :successCallback];
569
+ }
570
+
571
+ - (void) provideTACertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
572
+ if(taCertificateCompletion == nil){
573
+ [self result:@"taCertificateCompletion is nil" :errorCallback];
574
+ return;
575
+ }
576
+ NSMutableArray *certificates = [[NSMutableArray alloc] init];
577
+ for(NSDictionary* certificateJSON in input)
578
+ [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
579
+ taCertificateCompletion(certificates);
580
+ [self result:@"" :successCallback];
581
+ }
582
+
583
+ - (void) provideTASignature:(NSString*)input :(Callback)successCallback :(Callback)errorCallback{
584
+ if(taSignatureCompletion == nil){
585
+ [self result:@"taSignatureCompletion is nil" :errorCallback];
586
+ return;
587
+ }
588
+ taSignatureCompletion([[NSData alloc] initWithBase64EncodedString:input options:0]);
589
+ [self result:@"" :successCallback];
590
+ }
591
+
592
+ - (void) setRfidDelegate:(NSNumber*)input :(Callback)successCallback :(Callback)errorCallback{
593
+ switch([input integerValue]){
594
+ case 0:
595
+ [RGLDocReader shared].rfidDelegate = nil;
596
+ break;
597
+ case 1:
598
+ if(rfidDelegateNoPA == nil)
599
+ rfidDelegateNoPA = [RFIDDelegateNoPA new];
600
+ [RGLDocReader shared].rfidDelegate = rfidDelegateNoPA;
601
+ break;
602
+ case 2:
603
+ [RGLDocReader shared].rfidDelegate = self;
604
+ break;
605
+ default:
606
+ [self result:@"wrong input" :errorCallback];
607
+ return;
608
+ }
609
+
610
+ [self result:@"" :successCallback];
611
+ }
612
+
463
613
  - (void) getAvailableScenarios:(Callback)successCallback :(Callback)errorCallback{
464
614
  NSMutableArray *availableScenarios = [[NSMutableArray alloc] init];
465
615
  for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
466
- [availableScenarios addObject:[JSONConstructor generateScenario:scenario]];
616
+ [availableScenarios addObject:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:scenario]]];
467
617
  [self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:availableScenarios options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
468
618
  }
469
619
 
470
620
  -(RGLDocumentReaderInitializationCompletion)getInitCompletion:(Callback)successCallback :(Callback)errorCallback{
471
621
  return ^(BOOL successful, NSError * _Nullable error ) {
472
- if (successful)
622
+ if (successful){
623
+ [RGLDocReader shared].functionality.recordScanningProcessDelegate = self;
473
624
  [self result:@"init complete" :successCallback];
474
- else
625
+ }else
475
626
  [self result:[NSString stringWithFormat:@"%@/%@", @"init failed: ", error.description] :errorCallback];
476
627
  };
477
628
  }
@@ -0,0 +1,60 @@
1
+ #ifndef RGLWJSONConstructor_h
2
+ #define RGLWJSONConstructor_h
3
+
4
+ #import <DocumentReader/DocumentReader.h>
5
+ @import CoreGraphics;
6
+ @import UIKit;
7
+
8
+ @interface RGLWJSONConstructor : NSObject
9
+ +(NSString* _Nonnull)dictToString:(NSMutableDictionary* _Nonnull)input;
10
+ +(NSMutableDictionary* _Nonnull)generateNSDictionary:(NSDictionary<NSNumber*, NSNumber*>* _Nullable)input;
11
+ +(RGLPKDCertificate* _Nullable)RGLPKDCertificateFromJson:(NSDictionary* _Nullable) dict;
12
+ +(NSInteger)generateDocReaderAction:(RGLDocReaderAction)action;
13
+ +(NSInteger)generateRFIDCompleteAction:(RGLRFIDCompleteAction)action;
14
+ +(NSInteger)generateRFIDNotificationAction:(RGLRFIDNotificationAction)action;
15
+ +(NSMutableDictionary* _Nullable)generateCompletion:(NSInteger)action :(RGLDocumentReaderResults*_Nullable)results :(NSError*_Nullable)error :(RGLRFIDNotify*_Nullable)notify;
16
+ +(NSMutableDictionary* _Nonnull)generateVideoEncoderCompletion:(NSURL* _Nullable)input :(NSError* _Nullable)error;
17
+ +(NSString*_Nonnull)generateNSData:(NSData *_Nullable)input;
18
+ +(NSMutableDictionary* _Nonnull)generatePACertificateCompletion:(NSData *_Nullable)serialNumber :(RGLPAResourcesIssuer *_Nullable)issuer;
19
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderResults:(RGLDocumentReaderResults* _Nullable)input;
20
+ +(NSMutableDictionary* _Nonnull)generateRGLPosition:(RGLPosition* _Nullable)input;
21
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeResult:(RGLDocumentReaderBarcodeResult* _Nullable)input;
22
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeField:(RGLDocumentReaderBarcodeField* _Nullable)input;
23
+ +(NSMutableDictionary* _Nonnull)generateRGLPDF417Info:(RGLPDF417Info* _Nullable)input;
24
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderAuthenticityResult:(RGLDocumentReaderAuthenticityResult* _Nullable)input;
25
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthenticityCheck:(RGLAuthenticityCheck* _Nullable)input;
26
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthenticityElement:(RGLAuthenticityElement* _Nullable)input;
27
+ +(NSMutableDictionary* _Nonnull)generateRGLImageQualityGroup:(RGLImageQualityGroup* _Nullable)input;
28
+ +(NSMutableDictionary* _Nonnull)generateRGLImageQuality:(RGLImageQuality* _Nullable)input;
29
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicResult:(RGLDocumentReaderGraphicResult* _Nullable)input;
30
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicField:(RGLDocumentReaderGraphicField* _Nullable)input;
31
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextResult:(RGLDocumentReaderTextResult* _Nullable)input;
32
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextField:(RGLDocumentReaderTextField* _Nullable)input;
33
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderValue:(RGLDocumentReaderValue* _Nullable)input;
34
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderDocumentType:(RGLDocumentReaderDocumentType* _Nullable)input;
35
+ +(NSMutableDictionary* _Nonnull)generateRGLScenario:(RGLScenario* _Nullable)input;
36
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionData:(RGLRFIDSessionData* _Nullable)input;
37
+ +(NSMutableDictionary* _Nonnull)generateRGLCardProperties:(RGLCardProperties* _Nullable)input;
38
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionDataStatus:(RGLRFIDSessionDataStatus* _Nullable)input;
39
+ +(NSMutableDictionary* _Nonnull)generateRGLAccessControlProcedureType:(RGLAccessControlProcedureType* _Nullable)input;
40
+ +(NSMutableDictionary* _Nonnull)generateRGLApplication:(RGLApplication* _Nullable)input;
41
+ +(NSMutableDictionary* _Nonnull)generateRGLFile:(RGLFile* _Nullable)input;
42
+ +(NSMutableDictionary* _Nonnull)generateRGLFileData:(RGLFileData* _Nullable)input;
43
+ +(NSMutableDictionary* _Nonnull)generateRGLSecurityObjectCertificates:(RGLSecurityObjectCertificates* _Nullable)input;
44
+ +(NSMutableDictionary* _Nonnull)generateRGLCertificateData:(RGLCertificateData* _Nullable)input;
45
+ +(NSMutableDictionary* _Nonnull)generateRGLSecurityObject:(RGLSecurityObject* _Nullable)input;
46
+ +(NSMutableDictionary* _Nonnull)generateRGLSignerInfo:(RGLSignerInfo* _Nullable)input;
47
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthority:(RGLAuthority* _Nullable)input;
48
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDValue:(RGLRFIDValue* _Nullable)input;
49
+ +(NSMutableDictionary* _Nonnull)generateRGLAttribute:(RGLAttribute* _Nullable)input;
50
+ +(NSMutableDictionary* _Nonnull)generateRGLExtension:(RGLExtension* _Nullable)input;
51
+ +(NSMutableDictionary* _Nonnull)generateRGLCertificateChain:(RGLCertificateChain* _Nullable)input;
52
+ +(NSMutableDictionary* _Nonnull)generateRGLValidity:(RGLValidity* _Nullable)input;
53
+ +(NSMutableDictionary* _Nonnull)generateNSError:(NSError* _Nullable)input;
54
+ +(NSMutableDictionary* _Nonnull)generateRGLPAResourcesIssuer:(RGLPAResourcesIssuer* _Nullable)input;
55
+ +(NSMutableDictionary* _Nonnull)generateRGLPAAttribute:(RGLPAAttribute* _Nullable)input;
56
+ +(NSMutableDictionary* _Nonnull)generateRGLTAChallenge:(RGLTAChallenge* _Nullable)input;
57
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDNotify:(RGLRFIDNotify* _Nullable)input;
58
+
59
+ @end
60
+ #endif