@regulaforensics/cordova-plugin-document-reader-api 8.1.129-nightly → 8.1.131-nightly

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,591 @@
1
+ #import "RGLWMain.h"
2
+
3
+ @implementation RGLWMain
4
+
5
+ +(void)methodCall:(NSString*)method :(NSArray*)args :(RGLWCallback)callback :(RGLWEventSender)eventSender {
6
+ if(!this) this = [RGLWMain new];
7
+ sendEvent = eventSender;
8
+ NSDictionary* Switch = @{
9
+ @"getDocumentReaderIsReady": ^{ [self getDocumentReaderIsReady :callback]; },
10
+ @"getDocumentReaderStatus": ^{ [self getDocumentReaderStatus :callback]; },
11
+ @"getRfidSessionStatus": ^{ [self getRfidSessionStatus :callback]; },
12
+ @"setRfidSessionStatus": ^{ [self setRfidSessionStatus :args[0]]; },
13
+ @"getTag": ^{ [self getTag :callback]; },
14
+ @"setTag": ^{ [self setTag :args[0]]; },
15
+ @"getTenant": ^{ [self getTenant :callback]; },
16
+ @"setTenant": ^{ [self setTenant :args[0]]; },
17
+ @"getEnv": ^{ [self getEnv :callback]; },
18
+ @"setEnv": ^{ [self setEnv :args[0]]; },
19
+ @"getFunctionality": ^{ [self getFunctionality :callback]; },
20
+ @"setFunctionality": ^{ [self setFunctionality :args[0]]; },
21
+ @"getProcessParams": ^{ [self getProcessParams :callback]; },
22
+ @"setProcessParams": ^{ [self setProcessParams :args[0]]; },
23
+ @"getCustomization": ^{ [self getCustomization :callback]; },
24
+ @"setCustomization": ^{ [self setCustomization :args[0]]; },
25
+ @"getRfidScenario": ^{ [self getRfidScenario :callback]; },
26
+ @"setRfidScenario": ^{ [self setRfidScenario :args[0]]; },
27
+ @"resetConfiguration": ^{ [self resetConfiguration]; },
28
+ @"initialize": ^{ [self initialize :args[0] :callback]; },
29
+ @"initializeReader": ^{ [self initialize :args[0] :callback]; }, // deprecated
30
+ @"deinitializeReader": ^{ [self deinitializeReader]; },
31
+ @"prepareDatabase": ^{ [self prepareDatabase :args[0] :callback]; },
32
+ @"removeDatabase": ^{ [self removeDatabase :callback]; },
33
+ @"runAutoUpdate": ^{ [self runAutoUpdate :args[0] :callback]; },
34
+ @"cancelDBUpdate": ^{ [self cancelDBUpdate :callback]; },
35
+ @"checkDatabaseUpdate": ^{ [self checkDatabaseUpdate :args[0] :callback]; },
36
+ @"scan": ^{ [self scan :args[0]]; },
37
+ @"recognize": ^{ [self recognize :args[0]]; },
38
+ @"startNewPage": ^{ [self startNewPage]; },
39
+ @"stopScanner": ^{ [self stopScanner]; },
40
+ @"startRFIDReader": ^{ [self startRFIDReader :args[0] :args[1] :args[2]]; },
41
+ @"readRFID": ^{ [self readRFID :args[0] :args[1] :args[2]]; },
42
+ @"stopRFIDReader": ^{ [self stopRFIDReader]; },
43
+ @"providePACertificates": ^{ [self providePACertificates :args[0]]; },
44
+ @"provideTACertificates": ^{ [self provideTACertificates :args[0]]; },
45
+ @"provideTASignature": ^{ [self provideTASignature :args[0]]; },
46
+ @"setTCCParams": ^{ [self setTCCParams :args[0] :callback]; },
47
+ @"addPKDCertificates": ^{ [self addPKDCertificates :args[0]]; },
48
+ @"clearPKDCertificates": ^{ [self clearPKDCertificates]; },
49
+ @"startNewSession": ^{ [self startNewSession]; },
50
+ @"connectBluetoothDevice": ^{ [self connectBluetoothDevice :args[0] :callback]; },
51
+ @"setLocalizationDictionary": ^{ [self setLocalizationDictionary :args[0]]; },
52
+ @"getLicense": ^{ [self getLicense :callback]; },
53
+ @"getAvailableScenarios": ^{ [self getAvailableScenarios :callback]; },
54
+ @"getIsRFIDAvailableForUse": ^{ [self getIsRFIDAvailableForUse :callback]; },
55
+ @"isAuthenticatorRFIDAvailableForUse": ^{ [self isAuthenticatorRFIDAvailableForUse :callback]; },
56
+ @"isAuthenticatorAvailableForUse": ^{ [self isAuthenticatorAvailableForUse :callback]; },
57
+ @"getDocReaderVersion": ^{ [self getDocReaderVersion :callback]; },
58
+ @"getDocReaderDocumentsDatabase": ^{ [self getDocReaderDocumentsDatabase :callback]; },
59
+ @"finalizePackage": ^{ [self finalizePackage :callback]; },
60
+ @"endBackendTransaction": ^{ [self endBackendTransaction]; },
61
+ @"textFieldValueByType": ^{ [self textFieldValueByType :args[0] :args[1] :callback]; },
62
+ @"textFieldValueByTypeLcid": ^{ [self textFieldValueByTypeLcid :args[0] :args[1] :args[2] :callback]; },
63
+ @"textFieldValueByTypeSource": ^{ [self textFieldValueByTypeSource :args[0] :args[2] :args[3] :callback]; },
64
+ @"textFieldValueByTypeLcidSource": ^{ [self textFieldValueByTypeLcidSource :args[0] :args[1] :args[2] :args[3] :callback]; },
65
+ @"textFieldValueByTypeSourceOriginal": ^{ [self textFieldValueByTypeSourceOriginal :args[0] :args[1] :args[2] :args[3] :callback]; },
66
+ @"textFieldValueByTypeLcidSourceOriginal": ^{ [self textFieldValueByTypeLcidSourceOriginal :args[0] :args[1] :args[2] :args[3] :args[4] :callback]; },
67
+ @"textFieldByType": ^{ [self textFieldByType :args[0] :args[1] :callback]; },
68
+ @"textFieldByTypeLcid": ^{ [self textFieldByTypeLcid :args[0] :args[1] :args[2] :callback]; },
69
+ @"graphicFieldByTypeSource": ^{ [self graphicFieldByTypeSource :args[0] :args[1] :args[2] :callback]; },
70
+ @"graphicFieldByTypeSourcePageIndex": ^{ [self graphicFieldByTypeSourcePageIndex :args[0] :args[1] :args[2] :args[3] :callback]; },
71
+ @"graphicFieldByTypeSourcePageIndexLight": ^{ [self graphicFieldByTypeSourcePageIndexLight :args[0] :args[1] :args[2] :args[3] :args[4] :callback]; },
72
+ @"graphicFieldImageByType": ^{ [self graphicFieldImageByType :args[0] :args[1] :callback]; },
73
+ @"graphicFieldImageByTypeSource": ^{ [self graphicFieldImageByTypeSource :args[0] :args[1] :args[2] :callback]; },
74
+ @"graphicFieldImageByTypeSourcePageIndex": ^{ [self graphicFieldImageByTypeSourcePageIndex :args[0] :args[1] :args[2] :args[3] :callback]; },
75
+ @"graphicFieldImageByTypeSourcePageIndexLight": ^{ [self graphicFieldImageByTypeSourcePageIndexLight :args[0] :args[1] :args[2] :args[3] :args[4] :callback]; },
76
+ @"containers": ^{ [self containers :args[0] :args[1] :callback]; },
77
+ @"encryptedContainers": ^{ [self encryptedContainers :args[0] :callback]; },
78
+ @"getTranslation": ^{ [self getTranslation :args[0] :args[1] :callback]; },
79
+ };
80
+ ((void(^)(void))Switch[method])();
81
+ }
82
+
83
+ static RGLWMain* this;
84
+ static RGLWEventSender sendEvent;
85
+ static NSDictionary* headers;
86
+
87
+ +(void)getDocumentReaderIsReady:(RGLWCallback)callback {
88
+ callback([RGLDocReader.shared isDocumentReaderIsReady] ? @YES : @NO);
89
+ }
90
+
91
+ +(void)getDocumentReaderStatus:(RGLWCallback)callback {
92
+ callback(RGLDocReader.shared.documentReaderStatus);
93
+ }
94
+
95
+ +(void)getRfidSessionStatus:(RGLWCallback)callback {
96
+ callback(RGLDocReader.shared.rfidSessionStatus);
97
+ }
98
+
99
+ +(void)setRfidSessionStatus:(NSString*)status {
100
+ RGLDocReader.shared.rfidSessionStatus = status;
101
+ }
102
+
103
+ +(void)getTag:(RGLWCallback)callback {
104
+ callback([RGLDocReader.shared tag]);
105
+ }
106
+
107
+ +(void)setTag:(NSString*)tag {
108
+ [RGLDocReader.shared setTag:tag];
109
+ }
110
+
111
+ +(void)getTenant:(RGLWCallback)callback {
112
+ callback([RGLDocReader.shared tenant]);
113
+ }
114
+
115
+ +(void)setTenant:(NSString*)tag {
116
+ [RGLDocReader.shared setTenant:tag];
117
+ }
118
+
119
+ +(void)getEnv:(RGLWCallback)callback {
120
+ callback([RGLDocReader.shared env]);
121
+ }
122
+
123
+ +(void)setEnv:(NSString*)tag {
124
+ [RGLDocReader.shared setEnv:tag];
125
+ }
126
+
127
+ +(void)getFunctionality:(RGLWCallback)callback {
128
+ callback([RGLWJSONConstructor dictToString: [RGLWConfig getFunctionality: RGLDocReader.shared.functionality]]);
129
+ }
130
+
131
+ +(void)setFunctionality:(NSDictionary*)functionality {
132
+ [RGLWConfig setFunctionality:functionality :RGLDocReader.shared.functionality];
133
+ }
134
+
135
+ +(void)getProcessParams:(RGLWCallback)callback {
136
+ callback([RGLWJSONConstructor dictToString: [RGLWConfig getProcessParams:RGLDocReader.shared.processParams]]);
137
+ }
138
+
139
+ +(void)setProcessParams:(NSDictionary*)processParams {
140
+ [RGLWConfig setProcessParams:processParams :RGLDocReader.shared.processParams];
141
+ }
142
+
143
+ +(void)getCustomization:(RGLWCallback)callback {
144
+ callback([RGLWJSONConstructor dictToString: [RGLWConfig getCustomization :RGLDocReader.shared.customization]]);
145
+ }
146
+
147
+ +(void)setCustomization:(NSDictionary*)customization {
148
+ [RGLWConfig setCustomization:customization :RGLDocReader.shared.customization];
149
+ }
150
+
151
+ +(void)getRfidScenario:(RGLWCallback)callback {
152
+ callback([RGLWJSONConstructor dictToString: [RGLWConfig getRfidScenario:RGLDocReader.shared.rfidScenario]]);
153
+ }
154
+
155
+ +(void)setRfidScenario:(NSDictionary*)rfidScenario {
156
+ [RGLWConfig setRfidScenario:rfidScenario :RGLDocReader.shared.rfidScenario];
157
+ }
158
+
159
+ +(void)resetConfiguration {
160
+ RGLDocReader.shared.functionality = [RGLFunctionality new];
161
+ RGLDocReader.shared.processParams = [RGLProcessParams new];
162
+ RGLDocReader.shared.customization = [RGLCustomization new];
163
+ RGLDocReader.shared.rfidScenario = [RGLRFIDScenario new];
164
+ }
165
+
166
+ +(void)initialize:(NSDictionary*)config :(RGLWCallback)callback {
167
+ if (config[@"useBleDevice"] && [config[@"useBleDevice"] boolValue] == true)
168
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLWJSONConstructor bleDeviceConfigFromJson:config :bluetooth] completion: [self initCompletion :callback]];
169
+ else
170
+ [RGLDocReader.shared initializeReaderWithConfig:[RGLWJSONConstructor configFromJson:config] completion:[self initCompletion :callback]];
171
+ }
172
+
173
+ +(void)deinitializeReader {
174
+ [RGLDocReader.shared deinitializeReader];
175
+ }
176
+
177
+ +(void)prepareDatabase:(NSString*)databaseID :(RGLWCallback)callback {
178
+ [RGLDocReader.shared prepareDatabase:databaseID progressHandler:nil completion:[self prepareCompletion :callback]];
179
+ }
180
+
181
+ +(void)removeDatabase:(RGLWCallback)callback {
182
+ [RGLDocReader.shared removeDatabase:^(BOOL success, NSError * _Nullable error) {
183
+ callback(success ? @YES : @NO);
184
+ }];
185
+ }
186
+
187
+ +(void)runAutoUpdate:(NSString*)databaseID :(RGLWCallback)callback {
188
+ [RGLDocReader.shared runAutoUpdate:databaseID progressHandler:nil completion:[self prepareCompletion :callback]];
189
+ }
190
+
191
+ +(void)cancelDBUpdate:(RGLWCallback)callback {
192
+ [RGLDocReader.shared cancelDBUpdate];
193
+ callback(@YES);
194
+ }
195
+
196
+ +(void)checkDatabaseUpdate:(NSString*)databaseID :(RGLWCallback)callback {
197
+ [RGLDocReader.shared checkDatabaseUpdate:databaseID completion:^(RGLDocReaderDocumentsDatabase* database) {
198
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocReaderDocumentsDatabase:database]]);
199
+ }];
200
+ }
201
+
202
+ +(void)scan:(NSDictionary*)config {
203
+ dispatch_async(dispatch_get_main_queue(), ^{
204
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
205
+ [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
206
+ #pragma clang diagnostic pop
207
+ [RGLDocReader.shared showScannerFromPresenter:RGLWRootViewController() config:[RGLWJSONConstructor scannerConfigFromJson:config] completion:[self completion]];
208
+ });
209
+ }
210
+
211
+ +(void)recognize:(NSDictionary*)config {
212
+ dispatch_async(dispatch_get_main_queue(), ^{
213
+ [RGLDocReader.shared recognizeImageFromPresenter:RGLWRootViewController() config:[RGLWJSONConstructor recognizeConfigFromJson:config] completion:[self completion]];
214
+ });
215
+ }
216
+
217
+ +(void)startNewPage {
218
+ [RGLDocReader.shared startNewPage];
219
+ }
220
+
221
+ +(void)stopScanner {
222
+ dispatch_async(dispatch_get_main_queue(), ^{
223
+ [RGLDocReader.shared stopScanner:nil];
224
+ });
225
+ }
226
+
227
+ +(void)startRFIDReader:(NSNumber*)paCert :(NSNumber*)taCert :(NSNumber*)taSig {
228
+ this.doRequestPACertificates = paCert;
229
+ this.doRequestTACertificates = taCert;
230
+ this.doRequestTASignature = taSig;
231
+ dispatch_async(dispatch_get_main_queue(), ^{
232
+ [RGLDocReader.shared startRFIDReaderFromPresenter:RGLWRootViewController() completion:[self completion]];
233
+ });
234
+ }
235
+
236
+ +(void)readRFID:(NSNumber*)paCert :(NSNumber*)taCert :(NSNumber*)taSig {
237
+ this.doRequestPACertificates = paCert;
238
+ this.doRequestTACertificates = taCert;
239
+ this.doRequestTASignature = taSig;
240
+ [RGLDocReader.shared readRFID:^(RGLRFIDNotificationAction notificationAction, RGLRFIDNotify* _Nullable notification) {
241
+ if (notification != nil) sendEvent(rfidOnProgressEvent, [RGLWJSONConstructor generateDocumentReaderNotification:notification]);
242
+ } completion :^(RGLRFIDCompleteAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error, RGLRFIDErrorCodes errorCode) {
243
+ sendEvent(completionEvent, [RGLWJSONConstructor generateCompletion:[RGLWConfig generateRFIDCompleteAction: action] :results :error]);
244
+ }];
245
+ }
246
+
247
+ +(void)stopRFIDReader {
248
+ [RGLDocReader.shared stopRFIDReader:nil];
249
+ }
250
+
251
+ +(void)providePACertificates:(NSArray*)certificates {
252
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
253
+ for(NSDictionary* certificateJSON in certificates)
254
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
255
+ paCertificateCompletion(certificatesMutable);
256
+ }
257
+
258
+ +(void)provideTACertificates:(NSArray*)certificates {
259
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
260
+ for(NSDictionary* certificateJSON in certificates)
261
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
262
+ taCertificateCompletion(certificatesMutable);
263
+ }
264
+
265
+ +(void)provideTASignature:(NSString*)signature {
266
+ taSignatureCompletion([RGLWJSONConstructor base64Decode:signature]);
267
+ }
268
+
269
+ +(void)setTCCParams:(NSDictionary*)params :(RGLWCallback)callback {
270
+ [RGLDocReader.shared setTCCParams:[RGLWJSONConstructor tccParamsFromJson:params] completion:^(BOOL success, NSError * _Nullable error) {
271
+ callback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
272
+ }];
273
+ }
274
+
275
+ +(void)addPKDCertificates:(NSArray*)certificates {
276
+ NSMutableArray *certificatesMutable = [NSMutableArray new];
277
+ for(NSDictionary* certificateJSON in certificates)
278
+ [certificatesMutable addObject:[RGLWJSONConstructor pkdCertificateFromJson:certificateJSON]];
279
+ [RGLDocReader.shared addPKDCertificates:certificatesMutable];
280
+ }
281
+
282
+ +(void)clearPKDCertificates {
283
+ [RGLDocReader.shared clearPKDCertificates];
284
+ }
285
+
286
+ +(void)startNewSession {
287
+ [RGLDocReader.shared startNewSession];
288
+ }
289
+
290
+ RGLBluetooth* bluetooth;
291
+ RGLWCallback savedCallbackForBluetoothResult;
292
+
293
+ +(void)connectBluetoothDevice:(NSString*)deviceName :(RGLWCallback)callback {
294
+ // return if already connected
295
+ if (bluetooth && bluetooth.state == RGLBluetoothConnectionStateConnected) return;
296
+
297
+ // start searching devices
298
+ if (!bluetooth) {
299
+ bluetooth = [RGLBluetooth new];
300
+ bluetooth.delegate = this;
301
+ }
302
+ savedCallbackForBluetoothResult = callback;
303
+ [bluetooth connectWithDeviceName:deviceName];
304
+ }
305
+
306
+ // RGLBluetoothDelegate
307
+ - (void)didChangeConnectionState:(RGLBluetooth *)bluetooth state:(RGLBluetoothConnectionState)state {
308
+ if (state == RGLBluetoothConnectionStateNone && savedCallbackForBluetoothResult)
309
+ [RGLWMain bluetoothDeviceConnectionFailed];
310
+
311
+ // set searching timeout
312
+ if (state == RGLBluetoothConnectionStateSearching)
313
+ [self performSelector:NSSelectorFromString(@"bluetoothDeviceConnectionFailed") withObject:nil afterDelay:7.0];
314
+
315
+ if (state == RGLBluetoothConnectionStateConnected) {
316
+ savedCallbackForBluetoothResult(@YES);
317
+ savedCallbackForBluetoothResult = nil;
318
+ [NSObject cancelPreviousPerformRequestsWithTarget:self selector:NSSelectorFromString(@"bluetoothDeviceConnectionFailed") object:nil];
319
+ }
320
+ }
321
+
322
+ +(void)bluetoothDeviceConnectionFailed {
323
+ if (savedCallbackForBluetoothResult) {
324
+ savedCallbackForBluetoothResult(@NO);
325
+ savedCallbackForBluetoothResult = nil;
326
+ }
327
+ [bluetooth stopSearchDevices];
328
+ [bluetooth disconnect];
329
+ }
330
+
331
+ +(void)setLocalizationDictionary:(NSDictionary*)dictionary {
332
+ RGLDocReader.shared.localizationHandler = ^NSString * _Nullable(NSString * _Nonnull localizationKey) {
333
+ if(dictionary != nil && ![dictionary isEqual:[NSNull null]] && [dictionary valueForKey:localizationKey] != nil)
334
+ return [dictionary valueForKey:localizationKey];
335
+ return nil;
336
+ };
337
+ }
338
+
339
+ +(void)getLicense :(RGLWCallback)callback {
340
+ callback([RGLWJSONConstructor generateLicense:RGLDocReader.shared.license]);
341
+ }
342
+
343
+ +(void)getAvailableScenarios :(RGLWCallback)callback {
344
+ NSMutableArray *availableScenarios = [NSMutableArray new];
345
+ for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
346
+ [availableScenarios addObject:[RGLWJSONConstructor generateScenario:scenario]];
347
+ callback([RGLWJSONConstructor arrayToString:availableScenarios]);
348
+ }
349
+
350
+ +(void)getIsRFIDAvailableForUse :(RGLWCallback)callback {
351
+ callback(RGLDocReader.shared.isRFIDAvailableForUse ? @YES : @NO);
352
+ }
353
+
354
+ +(void)getDocReaderVersion :(RGLWCallback)callback {
355
+ callback([RGLWJSONConstructor generateDocReaderVersion:RGLDocReader.shared.version]);
356
+ }
357
+
358
+ +(void)isAuthenticatorRFIDAvailableForUse :(RGLWCallback)callback {
359
+ callback(RGLDocReader.shared.isAuthenticatorRFIDAvailableForUse ? @YES : @NO);
360
+ }
361
+
362
+ +(void)isAuthenticatorAvailableForUse :(RGLWCallback)callback {
363
+ callback(RGLDocReader.shared.isAuthenticatorAvailableForUse ? @YES : @NO);
364
+ }
365
+
366
+ +(void)getDocReaderDocumentsDatabase :(RGLWCallback)callback {
367
+ if(RGLDocReader.shared.version != nil)
368
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocReaderDocumentsDatabase:RGLDocReader.shared.version.database]]);
369
+ else callback(nil);
370
+ }
371
+
372
+ +(void)finalizePackage:(RGLWCallback)callback {
373
+ [RGLDocReader.shared finalizePackageWithCompletion:^(RGLDocReaderAction action, RGLTransactionInfo* info, NSError* error) {
374
+ callback([RGLWJSONConstructor generateFinalizePackageCompletion:[RGLWConfig generateDocReaderAction: action] :info :error]);
375
+ }];
376
+ }
377
+
378
+ +(void)endBackendTransaction {
379
+ [RGLDocReader.shared endBackendTransaction];
380
+ }
381
+
382
+ +(void)textFieldValueByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)callback {
383
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
384
+ callback([results getTextFieldValueByType:[fieldType integerValue]]);
385
+ }
386
+
387
+ +(void)textFieldValueByTypeLcid:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(RGLWCallback)callback {
388
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
389
+ callback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue]]);
390
+ }
391
+
392
+ +(void)textFieldValueByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)callback {
393
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
394
+ callback([results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue]]);
395
+ }
396
+
397
+ +(void)textFieldValueByTypeLcidSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(NSNumber*)source :(RGLWCallback)callback {
398
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
399
+ callback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue]]);
400
+ }
401
+
402
+ +(void)textFieldValueByTypeSourceOriginal:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(BOOL)original :(RGLWCallback)callback {
403
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
404
+ callback([results getTextFieldValueByType:[fieldType integerValue] source:[source integerValue] original:original]);
405
+ }
406
+
407
+ +(void)textFieldValueByTypeLcidSourceOriginal:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(NSNumber*)source :(BOOL)original :(RGLWCallback)callback {
408
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
409
+ callback([results getTextFieldValueByType:[fieldType integerValue] lcid:[lcid integerValue] source:[source integerValue] original:original]);
410
+ }
411
+
412
+ +(void)textFieldByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)callback {
413
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
414
+ RGLDocumentReaderTextField* result = [results getTextFieldByType:[fieldType integerValue]];
415
+ if (result == nil) callback(nil);
416
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderTextField:result]]);
417
+ }
418
+
419
+ +(void)textFieldByTypeLcid:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)lcid :(RGLWCallback)callback {
420
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
421
+ RGLDocumentReaderTextField* result = [results getTextFieldByType:[fieldType integerValue] lcid:[lcid integerValue]];
422
+ if (result == nil) callback(nil);
423
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderTextField:result]]);
424
+ }
425
+
426
+ +(void)graphicFieldByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)callback {
427
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
428
+ RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue]];
429
+ if (result == nil) callback(nil);
430
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
431
+ }
432
+
433
+ +(void)graphicFieldByTypeSourcePageIndex:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(RGLWCallback)callback {
434
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
435
+ RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue]];
436
+ if (result == nil) callback(nil);
437
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
438
+ }
439
+
440
+ +(void)graphicFieldByTypeSourcePageIndexLight:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(NSNumber*)light :(RGLWCallback)callback {
441
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
442
+ RGLDocumentReaderGraphicField* result = [results getGraphicFieldByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue] light:[light integerValue]];
443
+ if (result == nil) callback(nil);
444
+ callback([RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateDocumentReaderGraphicField:result]]);
445
+ }
446
+
447
+ +(void)graphicFieldImageByType:(NSString*)rawResult :(NSNumber*)fieldType :(RGLWCallback)callback {
448
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
449
+ callback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue]]]);
450
+ }
451
+
452
+ +(void)graphicFieldImageByTypeSource:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(RGLWCallback)callback {
453
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
454
+ callback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue]]]);
455
+ }
456
+
457
+ +(void)graphicFieldImageByTypeSourcePageIndex:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(RGLWCallback)callback {
458
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
459
+ callback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue]]]);
460
+ }
461
+
462
+ +(void)graphicFieldImageByTypeSourcePageIndexLight:(NSString*)rawResult :(NSNumber*)fieldType :(NSNumber*)source :(NSNumber*)pageIndex :(NSNumber*)light :(RGLWCallback)callback {
463
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
464
+ callback([RGLWJSONConstructor base64WithImage:[results getGraphicFieldImageByType:[fieldType integerValue] source:[source integerValue] pageIndex:[pageIndex integerValue] light:[light integerValue]]]);
465
+ }
466
+
467
+ +(void)containers:(NSString*)rawResult :(NSArray<NSNumber*>*)resultType :(RGLWCallback)callback {
468
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
469
+ callback([results getContainersByResultTypes:resultType]);
470
+ }
471
+
472
+ +(void)encryptedContainers:(NSString*)rawResult :(RGLWCallback)callback {
473
+ RGLDocumentReaderResults* results = [RGLDocumentReaderResults initWithRawString:rawResult];
474
+ callback([results getEncryptedContainers]);
475
+ }
476
+
477
+ +(void)getTranslation:(NSString*)className :(NSNumber*)value :(RGLWCallback)callback {
478
+ if([className isEqualToString:@"RFIDErrorCodes"])
479
+ callback(RGLRFIDErrorCodesGetStringValue([value intValue]));
480
+ else if([className isEqualToString:@"LDSParsingErrorCodes"])
481
+ callback(eLDS_ParsingErrorCodesGetStringValue([value intValue]));
482
+ else if([className isEqualToString:@"LDSParsingNotificationCodes"])
483
+ callback(eLDS_ParsingNotificationCodesGetStringValue([value intValue]));
484
+ else if([className isEqualToString:@"ImageQualityCheckType"])
485
+ callback(RGLImageQualityCheckTypeGetStringValue([RGLWConfig imageQualityCheckTypeWithNumber:value]));
486
+ else if([className isEqualToString:@"RFIDDataFileType"])
487
+ callback(RGLRFIDDataFileTypeGetStringValue([value intValue]));
488
+ else if([className isEqualToString:@"VisualFieldType"])
489
+ callback(RGLFieldTypeGetStringValue([value intValue]));
490
+ else if([className isEqualToString:@"LCID"])
491
+ callback([RGLDocumentReaderTextField lcidName:[value intValue]]);
492
+ }
493
+
494
+ +(RGLDocumentReaderCompletion _Nonnull)completion {
495
+ return ^(RGLDocReaderAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error) {
496
+ sendEvent(completionEvent, [RGLWJSONConstructor generateCompletion:[RGLWConfig generateDocReaderAction: action] :results :error]);
497
+ };
498
+ }
499
+
500
+ +(RGLDocumentReaderPrepareCompletion _Nonnull)prepareCompletion:(RGLWCallback)callback {
501
+ RGLDocReader.shared.databaseFetchDelegate = this;
502
+ return ^(BOOL success, NSError * _Nullable error) {
503
+ callback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
504
+ };
505
+ }
506
+
507
+ +(RGLDocumentReaderInitializationCompletion)initCompletion:(RGLWCallback)callback {
508
+ return ^(BOOL success, NSError * _Nullable error ) {
509
+ if (success) {
510
+ RGLDocReader.shared.rfidDelegate = this;
511
+ RGLDocReader.shared.functionality.recordScanningProcessDelegate = this;
512
+ RGLDocReader.shared.customization.actionDelegate = this;
513
+ }
514
+ callback([RGLWJSONConstructor generateSuccessCompletion:success :error]);
515
+ };
516
+ }
517
+
518
+ // RGLDocReaderDatabaseFetchDelegate
519
+ - (void)onProgressChanged:(NSNumber *)downloadedBytes totalBytes:(NSNumber *)totalBytes {
520
+ int progress = 0;
521
+ if (downloadedBytes > 0 && totalBytes > 0) {
522
+ double percent = [downloadedBytes doubleValue] / [totalBytes doubleValue];
523
+ progress = (int) (percent * 100);
524
+ }
525
+ NSDictionary* result = @{
526
+ @"downloadedBytes":downloadedBytes,
527
+ @"totalBytes":totalBytes,
528
+ @"progress":@(progress)
529
+ };
530
+ sendEvent(databaseProgressEvent, [RGLWJSONConstructor dictToString: result]);
531
+ }
532
+
533
+ // RGLCustomizationActionDelegate
534
+ - (void)onCustomButtonTappedWithTag:(NSInteger)tag {
535
+ sendEvent(onCustomButtonTappedEvent, @(tag));
536
+ }
537
+
538
+ // RGLRecordScanningProcessDelegate
539
+ - (void)didFinishRecordingToFile:(NSURL *)fileURL {
540
+ sendEvent(videoEncoderCompletionEvent, fileURL.absoluteString);
541
+ }
542
+
543
+ - (void)didFailWithError:(NSError *)error {
544
+ // ignore error to match android
545
+ }
546
+
547
+ RGLRFIDCertificatesCallback paCertificateCompletion;
548
+ RGLRFIDCertificatesCallback taCertificateCompletion;
549
+ RGLWRFIDSignatureCallback taSignatureCompletion;
550
+
551
+ - (void)onRequestPACertificatesWithSerial:(NSData *)serialNumber issuer:(RGLPAResourcesIssuer *)issuer callback:(RGLRFIDCertificatesCallback)callback {
552
+ if([self.doRequestPACertificates boolValue]) {
553
+ paCertificateCompletion = callback;
554
+ sendEvent(paCertificateCompletionEvent, [RGLWJSONConstructor generatePACertificateCompletion:serialNumber :issuer]);
555
+ } else {
556
+ paCertificateCompletion = nil;
557
+ callback(nil);
558
+ }
559
+ }
560
+
561
+ - (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
562
+ if([self.doRequestTACertificates boolValue]) {
563
+ taCertificateCompletion = callback;
564
+ sendEvent(taCertificateCompletionEvent, keyCAR);
565
+ } else {
566
+ taCertificateCompletion = nil;
567
+ callback(nil);
568
+ }
569
+ }
570
+
571
+ - (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
572
+ if([self.doRequestTASignature boolValue]) {
573
+ taSignatureCompletion = callback;
574
+ sendEvent(taSignatureCompletionEvent, [RGLWJSONConstructor dictToString: [RGLWJSONConstructor generateTAChallenge:challenge]]);
575
+ } else {
576
+ taSignatureCompletion = nil;
577
+ callback(nil);
578
+ }
579
+ }
580
+
581
+ - (void)didChipConnected {
582
+ sendEvent(rfidOnChipDetectedEvent, @"");
583
+ }
584
+
585
+ - (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
586
+ NSMutableDictionary *result = [NSMutableDictionary new];
587
+ result[@"code"] = [NSNumber numberWithInteger:errorCode];
588
+ sendEvent(rfidOnRetryReadChipEvent, [RGLWJSONConstructor dictToString:result]);
589
+ }
590
+
591
+ @end