@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.
@@ -1,137 +1,25 @@
1
1
  @import UIKit;
2
- #import "RGLWDocumentReader.h"
3
2
  @import DocumentReader;
4
-
5
- RGLRFIDCertificatesCallback RGLWPaCertificateCompletion;
6
- RGLRFIDCertificatesCallback RGLWTaCertificateCompletion;
7
- RGLWRFIDSignatureCallback RGLWTaSignatureCompletion;
8
-
9
- NSString* RGLWRfidOnProgressEvent = @"rfidNotificationCompletionEvent";
10
- NSString* RGLWRfidOnChipDetectedEvent = @"rfidOnChipDetectedEvent";
11
- NSString* RGLWRfidOnRetryReadChipEvent = @"rfidOnRetryReadChipEvent";
12
-
13
- NSString* RGLWPaCertificateCompletionEvent = @"paCertificateCompletionEvent";
14
- NSString* RGLWTaCertificateCompletionEvent = @"taCertificateCompletionEvent";
15
- NSString* RGLWTaSignatureCompletionEvent = @"taSignatureCompletionEvent";
16
-
17
- RGLWRFIDDelegateNoPA* RGLWRfidDelegateNoPA;
3
+ #import "RGLWDocumentReader.h"
18
4
 
19
5
  RGLWDocumentReader* RGLWPlugin;
20
6
 
21
- @implementation RGLWRFIDDelegateNoPA
22
-
23
- - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
24
- RGLWTaCertificateCompletion = callback;
25
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWTaCertificateCompletionEvent, keyCAR] :RGLWDocumentReader.command.callbackId];
26
- }
27
-
28
- - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
29
- RGLWTaSignatureCompletion = callback;
30
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWTaSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLWDocumentReader.command.callbackId];
31
- }
32
-
33
- - (void)didChipConnected {
34
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWRfidOnChipDetectedEvent, @""] :RGLWDocumentReader.command.callbackId];
35
- }
36
-
37
- - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
38
- NSMutableDictionary *result = [NSMutableDictionary new];
39
- result[@"errorCode"] = [NSNumber numberWithInteger:errorCode];
40
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWRfidOnRetryReadChipEvent, [RGLWJSONConstructor dictToString:result]] :RGLWDocumentReader.command.callbackId];
41
- }
42
-
43
- @end
44
-
45
-
46
7
  @implementation RGLWDocumentReader
47
-
48
- static NSNumber* _databasePercentageDownloaded;
49
8
  static CDVInvokedUrlCommand* _command;
50
-
51
- + (NSNumber*) databasePercentageDownloaded { return _databasePercentageDownloaded; }
52
- + (void) setDatabasePercentageDownloaded:(NSNumber*)number { _databasePercentageDownloaded = number; }
53
9
  + (CDVInvokedUrlCommand*)command { return _command; }
54
10
  + (void) setCommand:(CDVInvokedUrlCommand*)command { _command = command; }
55
11
 
56
- - (void) result:(NSString*)message :(RGLWCallback)callback {
57
- callback(message);
58
- }
12
+ RGLWEventSender sendEvent = ^(NSString* _Nonnull event, id _Nullable data) {
13
+ NSArray *skippedEvents = @[RGLWVideoEncoderCompletionEvent, RGLWOnCustomButtonTappedEvent];
14
+ if([skippedEvents containsObject:event]) return;
15
+
16
+ NSArray *singleEvents = @[RGLWCompletionEvent, RGLWDatabaseProgressEvent];
17
+ if(![singleEvents containsObject:event]) data = [NSString stringWithFormat:@"%@%@", event, data];
59
18
 
60
- - (void) sendEvent:(NSString*)data :(NSString*)callbackId {
61
19
  CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:data];
62
20
  [result setKeepCallbackAsBool:YES];
63
- [self.commandDelegate sendPluginResult:result callbackId:callbackId];
64
- }
65
-
66
- -(void (^_Nullable)(NSProgress * _Nonnull progress))getProgressHandler:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
67
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
68
- return ^(NSProgress * _Nonnull progress) {
69
- if(RGLWDocumentReader.databasePercentageDownloaded != [NSNumber numberWithDouble:progress.fractionCompleted * 100]){
70
- [self sendEvent:[NSString stringWithFormat:@"%.1f", progress.fractionCompleted * 100] :callbackId];
71
- [RGLWDocumentReader setDatabasePercentageDownloaded:[NSNumber numberWithDouble:progress.fractionCompleted * 100]];
72
- }
73
- };
74
- }
75
-
76
- -(RGLDocumentReaderCompletion _Nonnull)getCompletion {
77
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
78
- return ^(RGLDocReaderAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error) {
79
- [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateDocReaderAction: action] :results :error]] :callbackId];
80
- };
81
- }
82
-
83
- -(RGLRFIDProcessCompletion _Nonnull)getRFIDCompletion {
84
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
85
- return ^(RGLRFIDCompleteAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error, RGLRFIDErrorCodes errorCode) {
86
- [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateRFIDCompleteAction: action] :results :error]] :callbackId];
87
- };
88
- }
89
-
90
- -(RGLRFIDNotificationCallback _Nonnull)getRFIDNotificationCallback {
91
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
92
- return ^(RGLRFIDNotificationAction action, RGLRFIDNotify* _Nullable notification) {
93
- [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderNotification:notification]] :callbackId];
94
- };
95
- }
96
-
97
- - (void)didFinishRecordingToFile:(NSURL *)fileURL {
98
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
99
- [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:fileURL :nil]] :callbackId];
100
- }
101
-
102
- - (void)didFailWithError:(NSError *)error {
103
- NSString* callbackId = RGLWDocumentReader.command.callbackId;
104
- [self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:nil :error]] :callbackId];
105
- }
106
-
107
- - (void)onRequestPACertificatesWithSerial:(NSData *)serialNumber issuer:(RGLPAResourcesIssuer *)issuer callback:(RGLRFIDCertificatesCallback)callback {
108
- RGLWPaCertificateCompletion = callback;
109
- [self sendEvent:[NSString stringWithFormat:@"%@%@", RGLWPaCertificateCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generatePACertificateCompletion:serialNumber :issuer]]] :RGLWDocumentReader.command.callbackId];
110
- }
111
-
112
- - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
113
- RGLWTaCertificateCompletion = callback;
114
- [self sendEvent:[NSString stringWithFormat:@"%@%@", RGLWTaCertificateCompletionEvent, keyCAR] :RGLWDocumentReader.command.callbackId];
115
- }
116
-
117
- - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
118
- RGLWTaSignatureCompletion = callback;
119
- [self sendEvent:[NSString stringWithFormat:@"%@%@", RGLWTaSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLWDocumentReader.command.callbackId];
120
- }
121
-
122
- - (void)didChipConnected {
123
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWRfidOnChipDetectedEvent, @""] :RGLWDocumentReader.command.callbackId];
124
- }
125
-
126
- - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
127
- NSMutableDictionary *result = [NSMutableDictionary new];
128
- result[@"errorCode"] = [NSNumber numberWithInteger:errorCode];
129
- [RGLWPlugin sendEvent:[NSString stringWithFormat:@"%@%@", RGLWRfidOnRetryReadChipEvent, [RGLWJSONConstructor dictToString:result]] :RGLWDocumentReader.command.callbackId];
130
- }
131
-
132
- - (void)onCustomButtonTappedWithTag:(NSInteger)tag {
133
- [self sendEvent:[NSString stringWithFormat:@"%ld", tag] :RGLWDocumentReader.command.callbackId];
134
- }
21
+ [RGLWPlugin.commandDelegate sendPluginResult:result callbackId:RGLWDocumentReader.command.callbackId];
22
+ };
135
23
 
136
24
  - (void) exec:(CDVInvokedUrlCommand*)command {
137
25
  [RGLWDocumentReader setCommand:command];
@@ -147,146 +35,98 @@ static CDVInvokedUrlCommand* _command;
147
35
  [self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:response] callbackId:command.callbackId];
148
36
  };
149
37
 
150
- if([action isEqualToString:@"initializeReaderAutomatically"])
151
- [self initializeReaderAutomatically :successCallback :errorCallback];
152
- else if([action isEqualToString:@"isBlePermissionsGranted"])
153
- [self isBlePermissionsGranted :successCallback :errorCallback];
154
- else if([action isEqualToString:@"startBluetoothService"])
155
- [self startBluetoothService :successCallback :errorCallback];
156
- else if([action isEqualToString:@"initializeReaderBleDeviceConfig"])
157
- [self initializeReaderBleDeviceConfig :successCallback :errorCallback];
158
- else if([action isEqualToString:@"getTag"])
159
- [self getTag :successCallback :errorCallback];
160
- else if([action isEqualToString:@"getAPIVersion"])
161
- [self getAPIVersion :successCallback :errorCallback];
162
- else if([action isEqualToString:@"getAvailableScenarios"])
163
- [self getAvailableScenarios :successCallback :errorCallback];
164
- else if([action isEqualToString:@"isRFIDAvailableForUse"])
165
- [self isRFIDAvailableForUse :successCallback :errorCallback];
166
- else if([action isEqualToString:@"getCoreMode"])
167
- [self getCoreMode :successCallback :errorCallback];
168
- else if([action isEqualToString:@"getCoreVersion"])
169
- [self getCoreVersion :successCallback :errorCallback];
170
- else if([action isEqualToString:@"getDatabaseDate"])
171
- [self getDatabaseDate :successCallback :errorCallback];
172
- else if([action isEqualToString:@"getDatabaseID"])
173
- [self getDatabaseID :successCallback :errorCallback];
174
- else if([action isEqualToString:@"getDatabaseVersion"])
175
- [self getDatabaseVersion :successCallback :errorCallback];
176
- else if([action isEqualToString:@"getDocumentReaderIsReady"])
38
+ if([action isEqualToString:@"getDocumentReaderIsReady"])
177
39
  [self getDocumentReaderIsReady :successCallback :errorCallback];
178
40
  else if([action isEqualToString:@"getDocumentReaderStatus"])
179
41
  [self getDocumentReaderStatus :successCallback :errorCallback];
180
- else if([action isEqualToString:@"getDatabaseCountriesNumber"])
181
- [self getDatabaseCountriesNumber :successCallback :errorCallback];
182
- else if([action isEqualToString:@"getDatabaseDocumentsNumber"])
183
- [self getDatabaseDocumentsNumber :successCallback :errorCallback];
184
- else if([action isEqualToString:@"selectedScenario"])
185
- [self selectedScenario :successCallback :errorCallback];
186
- else if([action isEqualToString:@"getSessionLogFolder"])
187
- [self getSessionLogFolder :successCallback :errorCallback];
188
- else if([action isEqualToString:@"getDatabaseDescription"])
189
- [self getDatabaseDescription :successCallback :errorCallback];
190
- else if([action isEqualToString:@"showScanner"])
191
- [self showScanner :successCallback :errorCallback];
192
- else if([action isEqualToString:@"startNewPage"])
193
- [self startNewPage :successCallback :errorCallback];
194
- else if([action isEqualToString:@"startNewSession"])
195
- [self startNewSession :successCallback :errorCallback];
196
- else if([action isEqualToString:@"startRFIDReader"])
197
- [self startRFIDReader :successCallback :errorCallback];
198
- else if([action isEqualToString:@"stopRFIDReader"])
199
- [self stopRFIDReader :successCallback :errorCallback];
200
- else if([action isEqualToString:@"stopRFIDReaderWithErrorMessage"])
201
- [self stopRFIDReaderWithErrorMessage :[args objectAtIndex:0] :successCallback :errorCallback];
202
- else if([action isEqualToString:@"stopScanner"])
203
- [self stopScanner :successCallback :errorCallback];
204
- else if([action isEqualToString:@"deinitializeReader"])
205
- [self deinitializeReader :successCallback :errorCallback];
206
42
  else if([action isEqualToString:@"isAuthenticatorAvailableForUse"])
207
43
  [self isAuthenticatorAvailableForUse :successCallback :errorCallback];
208
- else if([action isEqualToString:@"getConfig"])
209
- [self getConfig :successCallback :errorCallback];
44
+ else if([action isEqualToString:@"isBlePermissionsGranted"])
45
+ [self isBlePermissionsGranted :successCallback :errorCallback];
46
+ else if([action isEqualToString:@"getRfidSessionStatus"])
47
+ [self getRfidSessionStatus :successCallback :errorCallback];
48
+ else if([action isEqualToString:@"setRfidSessionStatus"])
49
+ [self setRfidSessionStatus :[args objectAtIndex:0] :successCallback :errorCallback];
50
+ else if([action isEqualToString:@"getTag"])
51
+ [self getTag :successCallback :errorCallback];
52
+ else if([action isEqualToString:@"setTag"])
53
+ [self setTag :[args objectAtIndex:0] :successCallback :errorCallback];
54
+ else if([action isEqualToString:@"getFunctionality"])
55
+ [self getFunctionality :successCallback :errorCallback];
56
+ else if([action isEqualToString:@"setFunctionality"])
57
+ [self setFunctionality :[args objectAtIndex:0] :successCallback :errorCallback];
58
+ else if([action isEqualToString:@"getProcessParams"])
59
+ [self getProcessParams :successCallback :errorCallback];
60
+ else if([action isEqualToString:@"setProcessParams"])
61
+ [self setProcessParams :[args objectAtIndex:0] :successCallback :errorCallback];
62
+ else if([action isEqualToString:@"getCustomization"])
63
+ [self getCustomization :successCallback :errorCallback];
64
+ else if([action isEqualToString:@"setCustomization"])
65
+ [self setCustomization :[args objectAtIndex:0] :successCallback :errorCallback];
210
66
  else if([action isEqualToString:@"getRfidScenario"])
211
67
  [self getRfidScenario :successCallback :errorCallback];
212
- else if([action isEqualToString:@"getLicenseExpiryDate"])
213
- [self getLicenseExpiryDate :successCallback :errorCallback];
214
- else if([action isEqualToString:@"getLicenseCountryFilter"])
215
- [self getLicenseCountryFilter :successCallback :errorCallback];
216
- else if([action isEqualToString:@"licenseIsRfidAvailable"])
217
- [self licenseIsRfidAvailable :successCallback :errorCallback];
218
- else if([action isEqualToString:@"getCameraSessionIsPaused"])
219
- [self getCameraSessionIsPaused :successCallback :errorCallback];
68
+ else if([action isEqualToString:@"setRfidScenario"])
69
+ [self setRfidScenario :[args objectAtIndex:0] :successCallback :errorCallback];
70
+ else if([action isEqualToString:@"resetConfiguration"])
71
+ [self resetConfiguration :successCallback :errorCallback];
72
+ else if([action isEqualToString:@"initializeReader"])
73
+ [self initializeReader :[args objectAtIndex:0] :successCallback :errorCallback];
74
+ else if([action isEqualToString:@"initializeReaderWithBleDeviceConfig"])
75
+ [self initializeReaderWithBleDeviceConfig :[args objectAtIndex:0] :successCallback :errorCallback];
76
+ else if([action isEqualToString:@"deinitializeReader"])
77
+ [self deinitializeReader :successCallback :errorCallback];
78
+ else if([action isEqualToString:@"prepareDatabase"])
79
+ [self prepareDatabase :[args objectAtIndex:0] :successCallback :errorCallback];
220
80
  else if([action isEqualToString:@"removeDatabase"])
221
81
  [self removeDatabase :successCallback :errorCallback];
82
+ else if([action isEqualToString:@"runAutoUpdate"])
83
+ [self runAutoUpdate :[args objectAtIndex:0] :successCallback :errorCallback];
222
84
  else if([action isEqualToString:@"cancelDBUpdate"])
223
85
  [self cancelDBUpdate :successCallback :errorCallback];
224
- else if([action isEqualToString:@"resetConfiguration"])
225
- [self resetConfiguration :successCallback :errorCallback];
226
- else if([action isEqualToString:@"clearPKDCertificates"])
227
- [self clearPKDCertificates :successCallback :errorCallback];
228
- else if([action isEqualToString:@"readRFID"])
229
- [self readRFID :successCallback :errorCallback];
230
- else if([action isEqualToString:@"getRfidSessionStatus"])
231
- [self getRfidSessionStatus :successCallback :errorCallback];
232
- else if([action isEqualToString:@"setRfidDelegate"])
233
- [self setRfidDelegate :[args objectAtIndex:0] :successCallback :errorCallback];
234
- else if([action isEqualToString:@"setEnableCoreLogs"])
235
- [self setEnableCoreLogs :[args objectAtIndex:0] :successCallback :errorCallback];
236
- else if([action isEqualToString:@"addPKDCertificates"])
237
- [self addPKDCertificates :[args objectAtIndex:0] :successCallback :errorCallback];
238
- else if([action isEqualToString:@"setCameraSessionIsPaused"])
239
- [self setCameraSessionIsPaused :[args objectAtIndex:0] :successCallback :errorCallback];
240
- else if([action isEqualToString:@"setTag"])
241
- [self setTag :[args objectAtIndex:0] :successCallback :errorCallback];
242
86
  else if([action isEqualToString:@"checkDatabaseUpdate"])
243
87
  [self checkDatabaseUpdate :[args objectAtIndex:0] :successCallback :errorCallback];
244
88
  else if([action isEqualToString:@"scan"])
245
89
  [self scan :[args objectAtIndex:0] :successCallback :errorCallback];
246
90
  else if([action isEqualToString:@"recognize"])
247
91
  [self recognize :[args objectAtIndex:0] :successCallback :errorCallback];
248
- else if([action isEqualToString:@"recognizeImages"])
249
- [self recognizeImages :[args objectAtIndex:0] :successCallback :errorCallback];
250
- else if([action isEqualToString:@"showScannerWithCameraID"])
251
- [self showScannerWithCameraID :[args objectAtIndex:0] :successCallback :errorCallback];
252
- else if([action isEqualToString:@"runAutoUpdate"])
253
- [self runAutoUpdate :[args objectAtIndex:0] :successCallback :errorCallback];
254
- else if([action isEqualToString:@"setConfig"])
255
- [self setConfig :[args objectAtIndex:0] :successCallback :errorCallback];
256
- else if([action isEqualToString:@"setRfidScenario"])
257
- [self setRfidScenario :[args objectAtIndex:0] :successCallback :errorCallback];
258
- else if([action isEqualToString:@"initializeReader"])
259
- [self initializeReader :[args objectAtIndex:0] :successCallback :errorCallback];
260
- else if([action isEqualToString:@"prepareDatabase"])
261
- [self prepareDatabase :[args objectAtIndex:0] :successCallback :errorCallback];
262
- else if([action isEqualToString:@"recognizeImage"])
263
- [self recognizeImage :[args objectAtIndex:0] :successCallback :errorCallback];
264
- else if([action isEqualToString:@"recognizeData"])
265
- [self recognizeData :[args objectAtIndex:0] :successCallback :errorCallback];
266
- else if([action isEqualToString:@"setRfidSessionStatus"])
267
- [self setRfidSessionStatus :[args objectAtIndex:0] :successCallback :errorCallback];
92
+ else if([action isEqualToString:@"startNewPage"])
93
+ [self startNewPage :successCallback :errorCallback];
94
+ else if([action isEqualToString:@"stopScanner"])
95
+ [self stopScanner :successCallback :errorCallback];
96
+ else if([action isEqualToString:@"startRFIDReader"])
97
+ [self startRFIDReader :[args objectAtIndex:0] :[args objectAtIndex:1] :[args objectAtIndex:2] :successCallback :errorCallback];
98
+ else if([action isEqualToString:@"readRFID"])
99
+ [self readRFID :[args objectAtIndex:0] :[args objectAtIndex:1] :[args objectAtIndex:2] :successCallback :errorCallback];
100
+ else if([action isEqualToString:@"stopRFIDReader"])
101
+ [self stopRFIDReader :successCallback :errorCallback];
268
102
  else if([action isEqualToString:@"providePACertificates"])
269
103
  [self providePACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
270
104
  else if([action isEqualToString:@"provideTACertificates"])
271
105
  [self provideTACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
272
106
  else if([action isEqualToString:@"provideTASignature"])
273
107
  [self provideTASignature :[args objectAtIndex:0] :successCallback :errorCallback];
274
- else if([action isEqualToString:@"parseCoreResults"])
275
- [self parseCoreResults :[args objectAtIndex:0] :successCallback :errorCallback];
276
108
  else if([action isEqualToString:@"setTCCParams"])
277
109
  [self setTCCParams :[args objectAtIndex:0] :successCallback :errorCallback];
278
- else if([action isEqualToString:@"recognizeImageWithOpts"])
279
- [self recognizeImageWithOpts :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
280
- else if([action isEqualToString:@"recognizeVideoFrame"])
281
- [self recognizeVideoFrame :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
282
- else if([action isEqualToString:@"showScannerWithCameraIDAndOpts"])
283
- [self showScannerWithCameraIDAndOpts :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
284
- else if([action isEqualToString:@"recognizeImageWithCameraMode"])
285
- [self recognizeImageWithCameraMode :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
286
- else if([action isEqualToString:@"recognizeImagesWithImageInputs"])
287
- [self recognizeImagesWithImageInputs :[args objectAtIndex:0] :successCallback :errorCallback];
288
- else if([action isEqualToString:@"setLanguage"])
289
- [self setLanguage :[args objectAtIndex:0] :successCallback :errorCallback];
110
+ else if([action isEqualToString:@"addPKDCertificates"])
111
+ [self addPKDCertificates :[args objectAtIndex:0] :successCallback :errorCallback];
112
+ else if([action isEqualToString:@"clearPKDCertificates"])
113
+ [self clearPKDCertificates :successCallback :errorCallback];
114
+ else if([action isEqualToString:@"startNewSession"])
115
+ [self startNewSession :successCallback :errorCallback];
116
+ else if([action isEqualToString:@"startBluetoothService"])
117
+ [self startBluetoothService :successCallback :errorCallback];
118
+ else if([action isEqualToString:@"setLocalizationDictionary"])
119
+ [self setLocalizationDictionary :[args objectAtIndex:0] :successCallback :errorCallback];
120
+ else if([action isEqualToString:@"getLicense"])
121
+ [self getLicense :successCallback :errorCallback];
122
+ else if([action isEqualToString:@"getAvailableScenarios"])
123
+ [self getAvailableScenarios :successCallback :errorCallback];
124
+ else if([action isEqualToString:@"getIsRFIDAvailableForUse"])
125
+ [self getIsRFIDAvailableForUse :successCallback :errorCallback];
126
+ else if([action isEqualToString:@"getDocReaderVersion"])
127
+ [self getDocReaderVersion :successCallback :errorCallback];
128
+ else if([action isEqualToString:@"getDocReaderDocumentsDatabase"])
129
+ [self getDocReaderDocumentsDatabase :successCallback :errorCallback];
290
130
  else if([action isEqualToString:@"textFieldValueByType"])
291
131
  [self textFieldValueByType :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
292
132
  else if([action isEqualToString:@"textFieldValueByTypeLcid"])
@@ -321,235 +161,142 @@ static CDVInvokedUrlCommand* _command;
321
161
  [self containers :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
322
162
  else if([action isEqualToString:@"encryptedContainers"])
323
163
  [self encryptedContainers :[args objectAtIndex:0] :successCallback :errorCallback];
164
+ else if([action isEqualToString:@"finalizePackage"])
165
+ [self finalizePackage :successCallback :errorCallback];
166
+ else if([action isEqualToString:@"getTranslation"])
167
+ [self getTranslation :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
324
168
  else
325
- [self result:[NSString stringWithFormat:@"%@/%@", @"method not implemented: ", action] :errorCallback];
326
- }
327
-
328
- - (void) initializeReaderAutomatically:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
329
- NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"regula.license" ofType:nil];
330
- NSData *licenseData = [NSData dataWithContentsOfFile:dataPath];
331
- [RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:licenseData] completion:[self getInitCompletion :successCallback :errorCallback]];
332
- }
333
-
334
- - (void) isBlePermissionsGranted:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
335
- [self result:@"isBlePermissionsGranted() is an android-only method" :errorCallback];
336
- }
337
-
338
- - (void) startBluetoothService:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
339
- [self result:@"startBluetoothService() is an android-only method" :errorCallback];
340
- }
341
-
342
- - (void) initializeReaderBleDeviceConfig:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
343
- [self result:@"initializeReaderBleDeviceConfig() is an android-only method" :errorCallback];
344
- }
345
-
346
- - (void) resetConfiguration:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
347
- RGLDocReader.shared.functionality = [RGLFunctionality new];
348
- RGLDocReader.shared.processParams = [RGLProcessParams new];
349
- RGLDocReader.shared.customization = [RGLCustomization new];
350
- successCallback(@"");
351
- }
352
-
353
- - (void) setEnableCoreLogs:(BOOL)logs :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
354
- [self result:@"setEnableCoreLogs() is an android-only method" :errorCallback];
169
+ errorCallback([NSString stringWithFormat:@"%@/%@", @"method not implemented: ", action]);
355
170
  }
356
171
 
357
- - (void) showScannerWithCameraID:(NSNumber*)cameraID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
358
- [self result:@"showScannerWithCameraID() is an android-only method" :errorCallback];
359
- }
360
-
361
- - (void) stopRFIDReaderWithErrorMessage:(NSMutableString*)message :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
362
- [RGLDocReader.shared stopRFIDReaderWithErrorMessage:message completion:^() {
363
- [self result:@"" :successCallback];
364
- }];
365
- }
366
-
367
- - (void) recognizeImageWithOpts:(NSString*)base64 :(NSDictionary*)opts :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
368
- [self result:@"recognizeImageWithOpts() is an android-only method" :errorCallback];
369
- }
370
-
371
- - (void) recognizeVideoFrame:(NSString*)byteString :(NSDictionary*)opts :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
372
- [self result:@"recognizeVideoFrame() is an android-only method" :errorCallback];
373
- }
374
-
375
- - (void) showScannerWithCameraIDAndOpts:(NSNumber*)cameraID :(NSDictionary*)opts :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
376
- [self result:@"showScannerWithCameraIDAndOpts() is an android-only method" :errorCallback];
377
- }
378
-
379
- - (void) getLicenseMessage:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
380
- [self result:@"getLicenseMessage() is an android-only method" :successCallback];
381
- }
382
-
383
- - (void) setLanguage:(NSString*)language :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
384
- RGLDocReader.shared.localizationHandler = ^NSString * _Nullable(NSString * _Nonnull localizationKey) {
385
- NSString *result = NSLocalizedStringFromTable(localizationKey, language, @"");
386
- if (![result isEqualToString:localizationKey])
387
- return result;
388
- return nil;
389
- };
390
- [self result:@"" :successCallback];
391
- }
172
+ NSString* RGLWCompletionEvent = @"completion";
173
+ NSString* RGLWDatabaseProgressEvent = @"database_progress";
392
174
 
393
- - (void) initializeReader:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
394
- [RGLDocReader.shared initializeReaderWithConfig:[RGLWJSONConstructor RGLConfigFromJson:config] completion:[self getInitCompletion :successCallback :errorCallback]];
395
- }
175
+ NSString* RGLWRfidOnProgressEvent = @"rfidOnProgressCompletion";
176
+ NSString* RGLWRfidOnChipDetectedEvent = @"rfidOnChipDetectedEvent";
177
+ NSString* RGLWRfidOnRetryReadChipEvent = @"rfidOnRetryReadChipEvent";
396
178
 
397
- - (void) parseCoreResults:(NSString*)json :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
398
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderResults:[RGLDocumentReaderResults initWithRawString: json]]] :successCallback];
399
- }
179
+ NSString* RGLWPaCertificateCompletionEvent = @"pa_certificate_completion";
180
+ NSString* RGLWTaCertificateCompletionEvent = @"ta_certificate_completion";
181
+ NSString* RGLWTaSignatureCompletionEvent = @"ta_signature_completion";
400
182
 
401
- - (void) startRFIDReader:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
402
- dispatch_async(dispatch_get_main_queue(), ^{
403
- [RGLDocReader.shared startRFIDReaderFromPresenter:[[[UIApplication sharedApplication] keyWindow] rootViewController] completion:[self getCompletion]];
404
- });
405
- }
183
+ NSString* RGLWBleOnServiceConnectedEvent = @"bleOnServiceConnectedEvent";
184
+ NSString* RGLWBleOnServiceDisconnectedEvent = @"bleOnServiceDisconnectedEvent";
185
+ NSString* RGLWBleOnDeviceReadyEvent = @"bleOnDeviceReadyEvent";
406
186
 
407
- - (void) prepareDatabase:(NSString*)dbID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
408
- [RGLDocReader.shared prepareDatabase:dbID progressHandler:[self getProgressHandler :successCallback :errorCallback] completion:[self getPrepareCompletion :successCallback :errorCallback]];
409
- }
187
+ NSString* RGLWVideoEncoderCompletionEvent = @"video_encoder_completion";
188
+ NSString* RGLWOnCustomButtonTappedEvent = @"onCustomButtonTappedEvent";
410
189
 
411
- - (void) removeDatabase:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
412
- [RGLDocReader.shared removeDatabase:^(BOOL successful, NSError * _Nullable error) {
413
- if (successful)
414
- [self result:@"database removed" :successCallback];
415
- else
416
- [self result:[NSString stringWithFormat:@"%@/%@", @"database removal failed: ", error.description] :errorCallback];
417
- }];
418
- }
419
-
420
- - (void) cancelDBUpdate:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
421
- [RGLDocReader.shared cancelDBUpdate];
422
- [self result:@"" :successCallback];
423
- }
424
-
425
- -(void) runAutoUpdate:(NSString*)dbID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
426
- [RGLDocReader.shared runAutoUpdate:dbID progressHandler:[self getProgressHandler :successCallback :errorCallback] completion:[self getPrepareCompletion :successCallback :errorCallback]];
190
+ - (void) getDocumentReaderIsReady:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
191
+ successCallback([RGLDocReader.shared isDocumentReaderIsReady] ? @YES : @NO);
427
192
  }
428
193
 
429
- - (void) showScanner:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
430
- dispatch_async(dispatch_get_main_queue(), ^{
431
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
432
- [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
433
- #pragma clang diagnostic pop
434
- UIViewController *currentViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
435
- [RGLDocReader.shared showScanner:currentViewController completion:[self getCompletion]];
436
- });
194
+ - (void) getDocumentReaderStatus:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
195
+ successCallback(RGLDocReader.shared.documentReaderStatus);
437
196
  }
438
197
 
439
- - (void) recognizeImage:(NSMutableString*)base64 :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
440
- [self recognizeImageWith :base64 :false :successCallback :errorCallback];
198
+ - (void) isAuthenticatorAvailableForUse:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
199
+ successCallback(RGLDocReader.shared.isAuthenticatorAvailableForUse ? @YES : @NO);
441
200
  }
442
201
 
443
- - (void) recognizeData:(NSString*)data :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
444
- [RGLDocReader.shared recognizeData :[[NSData alloc] initWithBase64EncodedString:data options:0] completion:[self getCompletion]];
202
+ - (void) isBlePermissionsGranted:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
203
+ errorCallback(@"isBlePermissionsGranted() is an android-only method");
445
204
  }
446
205
 
447
- - (void) recognizeImages:(NSArray*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
448
- NSMutableArray<UIImage*>* images = [[NSMutableArray alloc] init];
449
- for(__strong NSMutableString* base64 in input)
450
- [images addObject:[RGLWJSONConstructor imageWithBase64:base64]];
451
- dispatch_async(dispatch_get_main_queue(), ^{
452
- [RGLDocReader.shared recognizeImages:images completion:[self getCompletion]];
453
- });
454
-
206
+ - (void) getRfidSessionStatus:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
207
+ successCallback(RGLDocReader.shared.rfidSessionStatus);
455
208
  }
456
209
 
457
- - (void) recognizeImagesWithImageInputs:(NSArray*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
458
- NSMutableArray<RGLImageInput*>* images = [[NSMutableArray alloc] init];
459
- for(__strong NSDictionary* image in input)
460
- [images addObject:[RGLWJSONConstructor RGLImageInputFromJson: image]];
461
- dispatch_async(dispatch_get_main_queue(), ^{
462
- [RGLDocReader.shared recognizeImagesWithImageInputs:images completion:[self getCompletion]];
463
- });
210
+ - (void) setRfidSessionStatus:(NSString*)status :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
211
+ RGLDocReader.shared.rfidSessionStatus = status;
464
212
  }
465
213
 
466
- - (void) recognizeImageWithCameraMode:(NSMutableString*)base64 :(BOOL)cameraMode :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
467
- [self recognizeImageWith :base64 :cameraMode :successCallback :errorCallback];
214
+ - (void) getTag:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
215
+ successCallback([RGLDocReader.shared tag]);
468
216
  }
469
217
 
470
- - (void) recognizeImageWith:(NSMutableString*)base64 :(BOOL)cameraMode :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
471
- dispatch_async(dispatch_get_main_queue(), ^{
472
- [RGLDocReader.shared recognizeImage:[RGLWJSONConstructor imageWithBase64:base64] cameraMode:cameraMode completion:[self getCompletion]];
473
- });
218
+ - (void) setTag:(NSString*)tag :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
219
+ [RGLDocReader.shared setTag:tag];
474
220
  }
475
221
 
476
- - (void) setConfig:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
477
- [RGLWRegulaConfig setConfig:config :RGLDocReader.shared];
478
- [self result:@"" :successCallback];
222
+ - (void) getFunctionality:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
223
+ successCallback([RGLWJSONConstructor dictToString: [RGLWConfig getFunctionality: RGLDocReader.shared.functionality]]);
479
224
  }
480
225
 
481
- - (void) getConfig:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
482
- [self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:[RGLWRegulaConfig getConfig:RGLDocReader.shared] options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
226
+ - (void) setFunctionality:(NSDictionary*)functionality :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
227
+ [RGLWConfig setFunctionality:functionality :RGLDocReader.shared.functionality];
228
+ successCallback(@"");
483
229
  }
484
230
 
485
- - (void) checkDatabaseUpdate:(NSString*)databaseId :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
486
- [RGLDocReader.shared checkDatabaseUpdate:databaseId completion:[self getCheckDatabaseUpdateCompletion: successCallback: errorCallback]];
231
+ - (void) getProcessParams:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
232
+ successCallback([RGLWJSONConstructor dictToString: [RGLWConfig getProcessParams:RGLDocReader.shared.processParams]]);
487
233
  }
488
234
 
489
- - (void) getTag:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
490
- [self result:[RGLDocReader.shared tag] :successCallback];
235
+ - (void) setProcessParams:(NSDictionary*)processParams :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
236
+ [RGLWConfig setProcessParams:processParams :RGLDocReader.shared.processParams];
237
+ successCallback(@"");
491
238
  }
492
239
 
493
- - (void) setTag:(NSString*)tag :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
494
- [RGLDocReader.shared setTag:tag];
495
- [self result:@"" :successCallback];
240
+ - (void) getCustomization:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
241
+ successCallback([RGLWJSONConstructor dictToString: [RGLWConfig getCustomization :RGLDocReader.shared.customization]]);
496
242
  }
497
243
 
498
- - (void) setRfidScenario:(NSDictionary*)rfidScenario :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
499
- [RGLWRegulaConfig setRfidScenario:rfidScenario :RGLDocReader.shared.rfidScenario];
500
- [self result:@"" :successCallback];
244
+ - (void) setCustomization:(NSDictionary*)customization :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
245
+ [RGLWConfig setCustomization:customization :RGLDocReader.shared.customization];
246
+ successCallback(@"");
501
247
  }
502
248
 
503
249
  - (void) getRfidScenario:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
504
- [self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:RGLDocReader.shared.rfidScenario.rfidScenarioDictionary options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
250
+ successCallback([RGLWJSONConstructor dictToString: [RGLWConfig getRfidScenario:RGLDocReader.shared.rfidScenario]]);
505
251
  }
506
252
 
507
- - (void) readRFID:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
508
- [RGLDocReader.shared readRFID:[self getRFIDNotificationCallback] completion:[self getRFIDCompletion]];
253
+ - (void) setRfidScenario:(NSDictionary*)rfidScenario :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
254
+ [RGLWConfig setRfidScenario:rfidScenario :RGLDocReader.shared.rfidScenario];
509
255
  }
510
256
 
511
- - (void) stopRFIDReader:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
512
- [RGLDocReader.shared stopRFIDReader:^(){[self result:@"" :successCallback];}];
257
+ - (void) resetConfiguration:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
258
+ RGLDocReader.shared.functionality = [RGLFunctionality new];
259
+ RGLDocReader.shared.processParams = [RGLProcessParams new];
260
+ RGLDocReader.shared.customization = [RGLCustomization new];
261
+ RGLDocReader.shared.rfidScenario = [RGLRFIDScenario new];
513
262
  }
514
263
 
515
- - (void) clearPKDCertificates:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
516
- [RGLDocReader.shared clearPKDCertificates];
517
- [self result:@"" :successCallback];
264
+ - (void) initializeReader:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
265
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLWJSONConstructor configFromJson:config] completion:[self getInitCompletion :successCallback :errorCallback]];
518
266
  }
519
267
 
520
- - (void) addPKDCertificates:(NSArray*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
521
- NSMutableArray *certificates = [[NSMutableArray alloc] init];
522
- for(NSDictionary* certificateJSON in input)
523
- [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
524
- [RGLDocReader.shared addPKDCertificates:certificates];
525
- [self result:@"" :successCallback];
268
+ - (void) initializeReaderWithBleDeviceConfig:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
269
+ errorCallback(@"initializeReaderWithBleDeviceConfig() is an android-only method");
526
270
  }
527
271
 
528
272
  - (void) deinitializeReader:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
529
273
  [RGLDocReader.shared deinitializeReader];
530
- [self result:@"" :successCallback];
274
+ successCallback(@"");
531
275
  }
532
276
 
533
- - (void) selectedScenario:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
534
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:RGLDocReader.shared.selectedScenario]] :successCallback];
277
+ - (void) prepareDatabase:(NSString*)databaseID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
278
+ [RGLDocReader.shared prepareDatabase:databaseID progressHandler:nil completion:[self getPrepareCompletion :successCallback :errorCallback]];
535
279
  }
536
280
 
537
- - (void) stopScanner:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
538
- dispatch_async(dispatch_get_main_queue(), ^{
539
- [RGLDocReader.shared stopScanner:^(){
540
- [self result:@"" :successCallback];
541
- }];
542
- });
281
+ - (void) removeDatabase:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
282
+ [RGLDocReader.shared removeDatabase:^(BOOL success, NSError * _Nullable error) {
283
+ successCallback(success ? @YES : @NO);
284
+ }];
543
285
  }
544
286
 
545
- - (void) startNewSession:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
546
- [RGLDocReader.shared startNewSession];
547
- [self result:@"" :successCallback];
287
+ -(void) runAutoUpdate:(NSString*)databaseID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
288
+ [RGLDocReader.shared runAutoUpdate:databaseID progressHandler:nil completion:[self getPrepareCompletion :successCallback :errorCallback]];
548
289
  }
549
290
 
550
- - (void) startNewPage:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
551
- [RGLDocReader.shared startNewPage];
552
- [self result:@"" :successCallback];
291
+ - (void) cancelDBUpdate:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
292
+ [RGLDocReader.shared cancelDBUpdate];
293
+ successCallback(@"");
294
+ }
295
+
296
+ - (void) checkDatabaseUpdate:(NSString*)databaseID :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
297
+ [RGLDocReader.shared checkDatabaseUpdate:databaseID completion:^(RGLDocReaderDocumentsDatabase* database) {
298
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocReaderDocumentsDatabase:database]]);
299
+ }];
553
300
  }
554
301
 
555
302
  - (void) scan:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
@@ -558,310 +305,368 @@ static CDVInvokedUrlCommand* _command;
558
305
  [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
559
306
  #pragma clang diagnostic pop
560
307
  UIViewController *currentViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
561
- [RGLDocReader.shared showScannerFromPresenter:currentViewController config:[RGLWJSONConstructor RGLScannerConfigFromJson:config] completion:[self getCompletion]];
308
+ [RGLDocReader.shared showScannerFromPresenter:currentViewController config:[RGLWJSONConstructor scannerConfigFromJson:config] completion:[self getCompletion]];
562
309
  });
563
310
  }
564
311
 
565
312
  - (void) recognize:(NSDictionary*)config :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
566
- UIViewController *currentViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
567
- [RGLDocReader.shared recognizeImageFromPresenter:currentViewController config:[RGLWJSONConstructor RGLRecognizeConfigFromJson:config] completion:[self getCompletion]];
568
- }
569
-
570
- - (void) getDocumentReaderIsReady:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
571
- [self result:[RGLDocReader.shared isDocumentReaderIsReady] ? @YES : @NO :successCallback];
572
- }
573
-
574
- - (void) getAPIVersion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
575
- [self result:RGLDocReader.shared.version.api :successCallback];
576
- }
577
-
578
- - (void) getCoreVersion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
579
- [self result:RGLDocReader.shared.version.core :successCallback];
580
- }
581
-
582
- - (void) getCoreMode:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
583
- [self result:RGLDocReader.shared.version.coreMode :successCallback];
584
- }
585
-
586
- - (void) getDatabaseID:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
587
- [self result:RGLDocReader.shared.version.database.databaseID :successCallback];
588
- }
589
-
590
- - (void) getDatabaseVersion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
591
- [self result:RGLDocReader.shared.version.database.version :successCallback];
313
+ dispatch_async(dispatch_get_main_queue(), ^{
314
+ UIViewController *currentViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
315
+ [RGLDocReader.shared recognizeImageFromPresenter:currentViewController config:[RGLWJSONConstructor recognizeConfigFromJson:config] completion:[self getCompletion]];
316
+ });
592
317
  }
593
318
 
594
- - (void) getDatabaseDate:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
595
- [self result:RGLDocReader.shared.version.database.date :successCallback];
319
+ - (void) startNewPage:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
320
+ [RGLDocReader.shared startNewPage];
321
+ successCallback(@"");
596
322
  }
597
323
 
598
- - (void) getDatabaseDescription:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
599
- [self result:RGLDocReader.shared.version.database.databaseDescription :successCallback];
324
+ - (void) stopScanner:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
325
+ dispatch_async(dispatch_get_main_queue(), ^{
326
+ [RGLDocReader.shared stopScanner:^(){
327
+ successCallback(@"");
328
+ }];
329
+ });
600
330
  }
601
331
 
602
- - (void) getDatabaseCountriesNumber:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
603
- [self result:[NSNumber numberWithInteger:RGLDocReader.shared.version.database.countriesNumber] :successCallback];
332
+ - (void) startRFIDReader:(NSNumber*)paCert :(NSNumber*)taCert :(NSNumber*)taSig :(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
333
+ self.doRequestPACertificates = paCert;
334
+ self.doRequestTACertificates = taCert;
335
+ self.doRequestTASignature = taSig;
336
+ dispatch_async(dispatch_get_main_queue(), ^{
337
+ [RGLDocReader.shared startRFIDReaderFromPresenter:UIApplication.sharedApplication.keyWindow.rootViewController completion:[self getCompletion]];
338
+ });
604
339
  }
605
340
 
606
- - (void) getDatabaseDocumentsNumber:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
607
- [self result:[NSNumber numberWithInteger:RGLDocReader.shared.version.database.documentsNumber] :successCallback];
341
+ - (void) readRFID:(NSNumber*)paCert :(NSNumber*)taCert :(NSNumber*)taSig :(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
342
+ self.doRequestPACertificates = paCert;
343
+ self.doRequestTACertificates = taCert;
344
+ self.doRequestTASignature = taSig;
345
+ [RGLDocReader.shared readRFID:^(RGLRFIDNotificationAction notificationAction, RGLRFIDNotify* _Nullable notification) {
346
+ if(notification != nil) sendEvent(RGLWRfidOnProgressEvent, [RGLWJSONConstructor generateDocumentReaderNotification:notification]);
347
+ } completion:^(RGLRFIDCompleteAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error, RGLRFIDErrorCodes errorCode) {
348
+ sendEvent(RGLWCompletionEvent, [RGLWJSONConstructor generateCompletion:[RGLWConfig generateRFIDCompleteAction: action] :results :error]);
349
+ }];
608
350
  }
609
351
 
610
- - (void) getLicenseExpiryDate:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
611
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
612
- [formatter setFormatterBehavior:NSDateFormatterBehaviorDefault];
613
- [formatter setDateStyle:NSDateFormatterShortStyle];
614
- [formatter setTimeStyle:NSDateFormatterNoStyle];
615
- [self result:[formatter stringFromDate:RGLDocReader.shared.license.expiryDate] :successCallback];
352
+ - (void) stopRFIDReader:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
353
+ [RGLDocReader.shared stopRFIDReader:^(){successCallback(@"");}];
616
354
  }
617
355
 
618
- - (void) getLicenseCountryFilter:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
619
- if(RGLDocReader.shared.license.countryFilter == nil)
620
- [self result:@"nil" :successCallback];
621
- else
622
- [self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:RGLDocReader.shared.license.countryFilter options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
356
+ - (void) providePACertificates:(NSArray*)certificates :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
357
+ if(paCertificateCompletion == nil) {
358
+ errorCallback(@"paCertificateCompletion is nil");
359
+ return;
360
+ }
361
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
362
+ for(NSDictionary* certificateJSON in certificates)
363
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
364
+ paCertificateCompletion(certificatesMutable);
365
+ successCallback(@"");
623
366
  }
624
367
 
625
- - (void) licenseIsRfidAvailable:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
626
- [self result:RGLDocReader.shared.license.isRfidAvailable ? @YES : @NO :successCallback];
368
+ - (void) provideTACertificates:(NSArray*)certificates :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
369
+ if(taCertificateCompletion == nil) {
370
+ errorCallback(@"taCertificateCompletion is nil");
371
+ return;
372
+ }
373
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
374
+ for(NSDictionary* certificateJSON in certificates)
375
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
376
+ taCertificateCompletion(certificatesMutable);
377
+ successCallback(@"");
627
378
  }
628
379
 
629
- - (void) getDocumentReaderStatus:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
630
- [self result:RGLDocReader.shared.documentReaderStatus :successCallback];
380
+ - (void) provideTASignature:(NSString*)signature :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
381
+ if(taSignatureCompletion == nil) {
382
+ errorCallback(@"taSignatureCompletion is nil");
383
+ return;
384
+ }
385
+ taSignatureCompletion([RGLWJSONConstructor base64Decode:signature]);
386
+ successCallback(@"");
631
387
  }
632
388
 
633
389
  - (void) setTCCParams:(NSDictionary*)params :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
634
- [RGLDocReader.shared setTCCParams:[RGLWJSONConstructor RGLTCCParamsFromJson:params] completion:[self getTCCParamsCompletion:successCallback :errorCallback]];
635
- }
636
-
637
- - (void) getRfidSessionStatus:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
638
- [self result:RGLDocReader.shared.rfidSessionStatus :successCallback];
390
+ [RGLDocReader.shared setTCCParams:[RGLWJSONConstructor tccParamsFromJson:params] completion:^(BOOL success, NSError * _Nullable error) {
391
+ successCallback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
392
+ }];
639
393
  }
640
394
 
641
- - (void) setRfidSessionStatus:(NSString*)status :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
642
- RGLDocReader.shared.rfidSessionStatus = status;
643
- [self result:@"" :successCallback];
395
+ - (void) addPKDCertificates:(NSArray*)certificates :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
396
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
397
+ for(NSDictionary* certificateJSON in certificates)
398
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
399
+ [RGLDocReader.shared addPKDCertificates:certificatesMutable];
400
+ successCallback(@"");
644
401
  }
645
402
 
646
- - (void) getCurrentScenario:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
647
- [self result:RGLDocReader.shared.processParams.scenario :successCallback];
403
+ - (void) clearPKDCertificates:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
404
+ [RGLDocReader.shared clearPKDCertificates];
405
+ successCallback(@"");
648
406
  }
649
407
 
650
- - (void) getCameraSessionIsPaused:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
651
- [self result:RGLDocReader.shared.isCameraSessionIsPaused ? @YES : @NO :successCallback];
408
+ - (void) startNewSession:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
409
+ [RGLDocReader.shared startNewSession];
410
+ successCallback(@"");
652
411
  }
653
412
 
654
- - (void) setCameraSessionIsPaused:(BOOL)paused :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
655
- RGLDocReader.shared.cameraSessionIsPaused = paused;
656
- [self result:@"" :successCallback];
413
+ - (void) startBluetoothService:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
414
+ errorCallback(@"startBluetoothService() is an android-only method");
657
415
  }
658
416
 
659
- - (void) isRFIDAvailableForUse:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
660
- [self result:RGLDocReader.shared.isRFIDAvailableForUse ? @YES : @NO :successCallback];
417
+ - (void) setLocalizationDictionary:(NSDictionary*)dictionary :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
418
+ RGLDocReader.shared.localizationHandler = ^NSString * _Nullable(NSString * _Nonnull localizationKey) {
419
+ if(dictionary != nil && ![dictionary isEqual:[NSNull null]] && [dictionary valueForKey:localizationKey] != nil)
420
+ return [dictionary valueForKey:localizationKey];
421
+ return nil;
422
+ };
423
+ successCallback(@"");
661
424
  }
662
425
 
663
- - (void) isAuthenticatorAvailableForUse:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
664
- [self result:RGLDocReader.shared.isAuthenticatorAvailableForUse ? @YES : @NO :successCallback];
426
+ - (void) getLicense:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
427
+ successCallback([RGLWJSONConstructor generateLicense:RGLDocReader.shared.license]);
665
428
  }
666
429
 
667
- - (void) getSessionLogFolder:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
668
- [self result:RGLDocReader.shared.processParams.sessionLogFolder :successCallback];
430
+ - (void) getAvailableScenarios:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
431
+ NSMutableArray *availableScenarios = [NSMutableArray new];
432
+ for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
433
+ [availableScenarios addObject:[RGLWJSONConstructor generateScenario:scenario]];
434
+ successCallback([RGLWJSONConstructor arrayToString:availableScenarios]);
669
435
  }
670
436
 
671
- - (void) providePACertificates:(NSArray*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
672
- if(RGLWPaCertificateCompletion == nil){
673
- [self result:@"paCertificateCompletion is nil" :errorCallback];
674
- return;
675
- }
676
- NSMutableArray *certificates = [[NSMutableArray alloc] init];
677
- for(NSDictionary* certificateJSON in input)
678
- [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
679
- RGLWPaCertificateCompletion(certificates);
680
- [self result:@"" :successCallback];
437
+ - (void) getIsRFIDAvailableForUse:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
438
+ successCallback(RGLDocReader.shared.isRFIDAvailableForUse ? @YES : @NO);
681
439
  }
682
440
 
683
- - (void) provideTACertificates:(NSArray*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
684
- if(RGLWTaCertificateCompletion == nil){
685
- [self result:@"taCertificateCompletion is nil" :errorCallback];
686
- return;
687
- }
688
- NSMutableArray *certificates = [[NSMutableArray alloc] init];
689
- for(NSDictionary* certificateJSON in input)
690
- [certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
691
- RGLWTaCertificateCompletion(certificates);
692
- [self result:@"" :successCallback];
441
+ - (void) getDocReaderVersion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
442
+ successCallback([RGLWJSONConstructor generateDocReaderVersion:RGLDocReader.shared.version]);
693
443
  }
694
444
 
695
- - (void) provideTASignature:(NSString*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
696
- if(RGLWTaSignatureCompletion == nil){
697
- [self result:@"taSignatureCompletion is nil" :errorCallback];
698
- return;
699
- }
700
- RGLWTaSignatureCompletion([[NSData alloc] initWithBase64EncodedString:input options:0]);
701
- [self result:@"" :successCallback];
702
- }
703
-
704
- - (void) setRfidDelegate:(NSNumber*)input :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
705
- switch([input integerValue]){
706
- case 0:
707
- [RGLDocReader shared].rfidDelegate = nil;
708
- break;
709
- case 1:
710
- if(RGLWRfidDelegateNoPA == nil)
711
- RGLWRfidDelegateNoPA = [RGLWRFIDDelegateNoPA new];
712
- [RGLDocReader shared].rfidDelegate = RGLWRfidDelegateNoPA;
713
- break;
714
- case 2:
715
- [RGLDocReader shared].rfidDelegate = self;
716
- break;
717
- default:
718
- [self result:@"wrong input" :errorCallback];
719
- return;
720
- }
721
-
722
- [self result:@"" :successCallback];
723
- }
724
-
725
- - (void) getAvailableScenarios:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
726
- NSMutableArray *availableScenarios = [[NSMutableArray alloc] init];
727
- for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
728
- [availableScenarios addObject:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:scenario]]];
729
- [self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:availableScenarios options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
445
+ - (void) getDocReaderDocumentsDatabase:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
446
+ if(RGLDocReader.shared.version != nil)
447
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocReaderDocumentsDatabase:RGLDocReader.shared.version.database]]);
448
+ else
449
+ successCallback(nil);
730
450
  }
731
451
 
732
452
  - (void) textFieldValueByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
733
453
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
734
- [self result:[results getTextFieldValueByType:[fieldType integerValue]] :successCallback];
454
+ successCallback([results getTextFieldValueByType:[fieldType integerValue]]);
735
455
  }
736
456
 
737
457
  - (void) textFieldValueByTypeLcid:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
738
458
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
739
- [self result:[results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue]] :successCallback];
459
+ successCallback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue]]);
740
460
  }
741
461
 
742
462
  - (void) textFieldValueByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
743
463
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
744
- [self result:[results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue]] :successCallback];
464
+ successCallback([results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue]]);
745
465
  }
746
466
 
747
467
  - (void) textFieldValueByTypeLcidSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(NSNumber*)source :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
748
468
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
749
- [self result:[results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue]] :successCallback];
469
+ successCallback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue]]);
750
470
  }
751
471
 
752
472
  - (void) textFieldValueByTypeSourceOriginal:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(BOOL)original :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
753
473
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
754
- [self result:[results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue] original:original] :successCallback];
474
+ successCallback([results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue] original:original]);
755
475
  }
756
476
 
757
477
  - (void) textFieldValueByTypeLcidSourceOriginal:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(NSNumber*)source :(BOOL)original :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
758
478
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
759
- [self result:[results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue] original:original] :successCallback];
479
+ successCallback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue] original:original]);
760
480
  }
761
481
 
762
482
  - (void) textFieldByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
763
483
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
764
484
  RGLDocumentReaderTextField* result = [results getTextFieldByType:[fieldType integerValue]];
765
485
  if(result == nil)
766
- [self result:nil :successCallback];
767
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderTextField:result]] :successCallback];
486
+ successCallback(nil);
487
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderTextField:result]]);
768
488
  }
769
489
 
770
490
  - (void) textFieldByTypeLcid:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
771
491
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
772
492
  RGLDocumentReaderTextField* result = [results getTextFieldByType:[fieldType integerValue] lcid:[lcid integerValue]];
773
493
  if(result == nil)
774
- [self result:nil :successCallback];
775
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderTextField:result]] :successCallback];
494
+ successCallback(nil);
495
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderTextField:result]]);
776
496
  }
777
497
 
778
498
  - (void) graphicFieldByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
779
499
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
780
500
  RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue]];
781
501
  if(result == nil)
782
- [self result:nil :successCallback];
783
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderGraphicField:result]] :successCallback];
502
+ successCallback(nil);
503
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
784
504
  }
785
505
 
786
506
  - (void) graphicFieldByTypeSourcePageIndex:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
787
507
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
788
508
  RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue]];
789
509
  if(result == nil)
790
- [self result:nil :successCallback];
791
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderGraphicField:result]] :successCallback];
510
+ successCallback(nil);
511
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
792
512
  }
793
513
 
794
514
  - (void) graphicFieldByTypeSourcePageIndexLight:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(NSNumber*)light :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
795
515
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
796
516
  RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue] light:[light integerValue]];
797
517
  if(result == nil)
798
- [self result:nil :successCallback];
799
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderGraphicField:result]] :successCallback];
518
+ successCallback(nil);
519
+ successCallback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
800
520
  }
801
521
 
802
522
  - (void) graphicFieldImageByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
803
523
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
804
- [self result:[RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue]]] :successCallback];
524
+ successCallback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue]]]);
805
525
  }
806
526
 
807
527
  - (void) graphicFieldImageByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
808
528
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
809
- [self result:[RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue]]] :successCallback];
529
+ successCallback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue]]]);
810
530
  }
811
531
 
812
532
  - (void) graphicFieldImageByTypeSourcePageIndex:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
813
533
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
814
- [self result:[RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue]]] :successCallback];
534
+ successCallback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue]]]);
815
535
  }
816
536
 
817
537
  - (void) graphicFieldImageByTypeSourcePageIndexLight:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(NSNumber*)light :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
818
538
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
819
- [self result:[RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue] light:[light integerValue]]] :successCallback];
539
+ successCallback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue] light:[light integerValue]]]);
820
540
  }
821
541
 
822
542
  - (void) containers:(NSString*)rawResult :(NSArray<NSNumber*>*)resultType :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
823
543
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
824
- [self result:[results getContainersByResultTypes:resultType] :successCallback];
544
+ successCallback([results getContainersByResultTypes:resultType]);
825
545
  }
826
546
 
827
547
  - (void) encryptedContainers:(NSString*)rawResult :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
828
548
  RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
829
- [self result:[results getEncryptedContainers] :successCallback];
549
+ successCallback([results getEncryptedContainers]);
830
550
  }
831
551
 
832
- -(RGLDocumentReaderInitializationCompletion)getInitCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
833
- return ^(BOOL successful, NSError * _Nullable error ) {
834
- if (successful){
835
- [RGLDocReader shared].functionality.recordScanningProcessDelegate = self;
836
- RGLDocReader.shared.customization.actionDelegate = self;
837
- [self result:@"init complete" :successCallback];
838
- }else
839
- [self result:[NSString stringWithFormat:@"%@/%@", @"init failed: ", error.description] :errorCallback];
552
+ - (void) finalizePackage:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
553
+ [RGLDocReader.shared finalizePackageWithCompletion:^(RGLDocReaderAction action, RGLTransactionInfo* info, NSError* error){
554
+ successCallback([RGLWJSONConstructor generateFinalizePackageCompletion:[RGLWConfig generateDocReaderAction: action] :info :error]);
555
+ }];
556
+ }
557
+
558
+ - (void) getTranslation:(NSString*)className :(NSNumber*)value :(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
559
+ if([className isEqualToString:@"RFIDErrorCodes"])
560
+ successCallback(RGLRFIDErrorCodesGetStringValue([value intValue]));
561
+ else if([className isEqualToString:@"LDSParsingErrorCodes"])
562
+ successCallback(eLDS_ParsingErrorCodesGetStringValue([value intValue]));
563
+ else if([className isEqualToString:@"LDSParsingNotificationCodes"])
564
+ successCallback(eLDS_ParsingNotificationCodesGetStringValue([value intValue]));
565
+ else if([className isEqualToString:@"ImageQualityCheckType"])
566
+ successCallback(RGLImageQualityCheckTypeGetStringValue([RGLWConfig imageQualityCheckTypeWithNumber:value]));
567
+ else if([className isEqualToString:@"RFIDDataFileType"])
568
+ successCallback(RGLRFIDDataFileTypeGetStringValue([value intValue]));
569
+ else if([className isEqualToString:@"VisualFieldType"])
570
+ successCallback(RGLFieldTypeGetStringValue([value intValue]));
571
+ else if([className isEqualToString:@"LCID"])
572
+ successCallback([RGLDocumentReaderTextField lcidName:[value intValue]]);
573
+ }
574
+
575
+ -(RGLDocumentReaderCompletion _Nonnull)getCompletion {
576
+ return ^(RGLDocReaderAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error) {
577
+ sendEvent(RGLWCompletionEvent, [RGLWJSONConstructor generateCompletion:[RGLWConfig generateDocReaderAction: action] :results :error]);
840
578
  };
841
579
  }
842
580
 
843
- -(RGLDocumentReaderPrepareCompletion _Nonnull)getPrepareCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
844
- return ^(BOOL successful, NSError * _Nullable error) {
845
- if (successful)
846
- [self result:@"database prepared" :successCallback];
847
- else
848
- [self result:[NSString stringWithFormat:@"%@/%@", @"database preparation failed: ", error.description] :errorCallback];
581
+ -(RGLDocumentReaderPrepareCompletion _Nonnull)getPrepareCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
582
+ RGLDocReader.shared.databaseFetchDelegate = self;
583
+ return ^(BOOL success, NSError * _Nullable error) {
584
+ successCallback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
849
585
  };
850
586
  }
851
587
 
852
- -(void (^_Nullable)(BOOL success, NSError * _Nullable error))getTCCParamsCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
853
- return ^(BOOL success, NSError * _Nullable error) {
854
- if (success)
855
- [self result:@"success" :successCallback];
856
- else
857
- [self result:[NSString stringWithFormat:@"%@/%@", @"failed: ", error.description] :errorCallback];
588
+ -(RGLDocumentReaderInitializationCompletion)getInitCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback {
589
+ return ^(BOOL success, NSError * _Nullable error ) {
590
+ if (success) {
591
+ RGLDocReader.shared.rfidDelegate = self;
592
+ RGLDocReader.shared.functionality.recordScanningProcessDelegate = self;
593
+ RGLDocReader.shared.customization.actionDelegate = self;
594
+ }
595
+ successCallback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
858
596
  };
859
597
  }
860
598
 
861
- -(RGLDocumentReaderCheckUpdateCompletion)getCheckDatabaseUpdateCompletion:(RGLWCallback)successCallback :(RGLWCallback)errorCallback{
862
- return ^(RGLDocReaderDocumentsDatabase* database) {
863
- [self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocReaderDocumentsDatabase:database]] :successCallback];
599
+ // RGLDocReaderDatabaseFetchDelegate
600
+ - (void)onProgressChanged:(NSNumber *)downloadedBytes totalBytes:(NSNumber *)totalBytes {
601
+ int progress = 0;
602
+ if (downloadedBytes > 0 && totalBytes > 0) {
603
+ double percent = [downloadedBytes doubleValue] / [totalBytes doubleValue];
604
+ progress = (int) (percent * 100);
605
+ }
606
+ NSDictionary* result = @{
607
+ @"downloadedBytes":downloadedBytes,
608
+ @"totalBytes":totalBytes,
609
+ @"progress":@(progress)
864
610
  };
611
+ sendEvent(RGLWDatabaseProgressEvent, [RGLWJSONConstructor dictToString: result]);
612
+ }
613
+
614
+ // RGLCustomizationActionDelegate
615
+ - (void)onCustomButtonTappedWithTag:(NSInteger)tag {
616
+ sendEvent(RGLWOnCustomButtonTappedEvent, @(tag));
617
+ }
618
+
619
+ // RGLRecordScanningProcessDelegate
620
+ - (void)didFinishRecordingToFile:(NSURL *)fileURL {
621
+ sendEvent(RGLWVideoEncoderCompletionEvent, fileURL.absoluteString);
622
+ }
623
+
624
+ - (void)didFailWithError:(NSError *)error {
625
+ // ignore error to match android
626
+ }
627
+
628
+ RGLRFIDCertificatesCallback paCertificateCompletion;
629
+ RGLRFIDCertificatesCallback taCertificateCompletion;
630
+ RGLWRFIDSignatureCallback taSignatureCompletion;
631
+
632
+ - (void)onRequestPACertificatesWithSerial:(NSData *)serialNumber issuer:(RGLPAResourcesIssuer *)issuer callback:(RGLRFIDCertificatesCallback)callback {
633
+ if([self.doRequestPACertificates boolValue]) {
634
+ paCertificateCompletion = callback;
635
+ sendEvent(RGLWPaCertificateCompletionEvent, [RGLWJSONConstructor generatePACertificateCompletion:serialNumber :issuer]);
636
+ } else {
637
+ paCertificateCompletion = nil;
638
+ callback(nil);
639
+ }
640
+ }
641
+
642
+ - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
643
+ if([self.doRequestTACertificates boolValue]) {
644
+ taCertificateCompletion = callback;
645
+ sendEvent(RGLWTaCertificateCompletionEvent, keyCAR);
646
+ } else {
647
+ taCertificateCompletion = nil;
648
+ callback(nil);
649
+ }
650
+ }
651
+
652
+ - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
653
+ if([self.doRequestTASignature boolValue]) {
654
+ taSignatureCompletion = callback;
655
+ sendEvent(RGLWTaSignatureCompletionEvent, [RGLWJSONConstructor dictToString: [RGLWJSONConstructor generateTAChallenge:challenge]]);
656
+ } else {
657
+ taSignatureCompletion = nil;
658
+ callback(nil);
659
+ }
660
+ }
661
+
662
+ - (void)didChipConnected {
663
+ sendEvent(RGLWRfidOnChipDetectedEvent, @"");
664
+ }
665
+
666
+ - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
667
+ NSMutableDictionary *result = [NSMutableDictionary new];
668
+ result[@"code"] = [NSNumber numberWithInteger:errorCode];
669
+ sendEvent(RGLWRfidOnRetryReadChipEvent, [RGLWJSONConstructor dictToString:result]);
865
670
  }
866
671
 
867
672
  @end