assentify-sdk-react-native 0.0.42 → 1.0.0-Beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/android/build.gradle +29 -32
- package/android/gradle.properties +2 -2
- package/android/src/main/java/com/assentifysdk/AssentifySdkModule.kt +81 -118
- package/android/src/main/java/com/assentifysdk/FaceMatchActivity.kt +27 -24
- package/android/src/main/java/com/assentifysdk/FlowActivity.kt +191 -0
- package/android/src/main/java/com/assentifysdk/QrActivity.kt +10 -11
- package/android/src/main/java/com/assentifysdk/ScanIDActivity.kt +83 -98
- package/android/src/main/java/com/assentifysdk/ScanOtherActivity.kt +7 -6
- package/android/src/main/java/com/assentifysdk/ScanPassportActivity.kt +8 -13
- package/android/src/main/res/layout/activity_face_scan.xml +1 -1
- package/android/src/main/res/layout/activity_flow.xml +9 -0
- package/android/src/main/res/layout/activity_scan.xml +1 -1
- package/assentify-sdk.podspec +2 -1
- package/ios/NativeAssentifySdk.mm +24 -4
- package/ios/NativeAssentifySdk.swift +229 -30
- package/ios/UIComponents/RNPassportScanner.swift +4 -3
- package/ios/View/FaceMatchController.swift +131 -124
- package/ios/View/IDCardController.swift +48 -35
- package/ios/View/OtherController.swift +9 -18
- package/ios/View/PassportController.swift +82 -121
- package/ios/View/QrController.swift +9 -6
- package/lib/commonjs/AssentifyProvider.js +88 -101
- package/lib/commonjs/AssentifyProvider.js.map +1 -1
- package/lib/commonjs/AssentifyWrapper.js +11 -17
- package/lib/commonjs/AssentifyWrapper.js.map +1 -1
- package/lib/commonjs/BackgroundType.js +11 -0
- package/lib/commonjs/BackgroundType.js.map +1 -0
- package/lib/commonjs/helpers/parsers/FlowCompletedModelParser.js +26 -0
- package/lib/commonjs/helpers/parsers/FlowCompletedModelParser.js.map +1 -0
- package/lib/commonjs/index.js +4 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/AssentifyProvider.js +86 -98
- package/lib/module/AssentifyProvider.js.map +1 -1
- package/lib/module/AssentifyWrapper.js +11 -17
- package/lib/module/AssentifyWrapper.js.map +1 -1
- package/lib/module/BackgroundType.js +5 -0
- package/lib/module/BackgroundType.js.map +1 -0
- package/lib/module/helpers/parsers/FlowCompletedModelParser.js +20 -0
- package/lib/module/helpers/parsers/FlowCompletedModelParser.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/example/babel.config.d.ts +153 -1
- package/lib/typescript/example/babel.config.d.ts.map +1 -1
- package/lib/typescript/example/metro.config.d.ts +2 -2
- package/lib/typescript/example/metro.config.d.ts.map +1 -1
- package/lib/typescript/example/react-native.config.d.ts +153 -1
- package/lib/typescript/example/react-native.config.d.ts.map +1 -1
- package/lib/typescript/example/src/App.d.ts.map +1 -1
- package/lib/typescript/example/src/Home.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/AssentifyProvider.d.ts +3 -1
- package/lib/typescript/lib/commonjs/AssentifyProvider.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/AssentifyWrapper.d.ts +4 -6
- package/lib/typescript/lib/commonjs/AssentifyWrapper.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/BackgroundType.d.ts +6 -0
- package/lib/typescript/lib/commonjs/BackgroundType.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/helpers/parsers/FlowCompletedModelParser.d.ts +11 -0
- package/lib/typescript/lib/commonjs/helpers/parsers/FlowCompletedModelParser.d.ts.map +1 -0
- package/lib/typescript/lib/module/AssentifyProvider.d.ts +4 -2
- package/lib/typescript/lib/module/AssentifyProvider.d.ts.map +1 -1
- package/lib/typescript/lib/module/AssentifyWrapper.d.ts +4 -6
- package/lib/typescript/lib/module/AssentifyWrapper.d.ts.map +1 -1
- package/lib/typescript/lib/module/BackgroundType.d.ts +5 -0
- package/lib/typescript/lib/module/BackgroundType.d.ts.map +1 -0
- package/lib/typescript/lib/module/helpers/parsers/FlowCompletedModelParser.d.ts +10 -0
- package/lib/typescript/lib/module/helpers/parsers/FlowCompletedModelParser.d.ts.map +1 -0
- package/lib/typescript/lib/module/index.d.ts +5 -7
- package/lib/typescript/lib/module/index.d.ts.map +1 -1
- package/lib/typescript/src/AssentifyProvider.d.ts +5 -2
- package/lib/typescript/src/AssentifyProvider.d.ts.map +1 -1
- package/lib/typescript/src/AssentifyWrapper.d.ts +6 -7
- package/lib/typescript/src/AssentifyWrapper.d.ts.map +1 -1
- package/lib/typescript/src/BackgroundType.d.ts +6 -0
- package/lib/typescript/src/BackgroundType.d.ts.map +1 -0
- package/lib/typescript/src/helpers/parsers/FaceMatchParser.d.ts.map +1 -1
- package/lib/typescript/src/helpers/parsers/FlowCompletedModelParser.d.ts +4 -0
- package/lib/typescript/src/helpers/parsers/FlowCompletedModelParser.d.ts.map +1 -0
- package/lib/typescript/src/helpers/parsers/IDCardParser.d.ts.map +1 -1
- package/lib/typescript/src/helpers/parsers/OtherIDParser.d.ts.map +1 -1
- package/lib/typescript/src/helpers/parsers/PassportParser.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -7
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +11 -2
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +14 -10
- package/src/AssentifyProvider.tsx +196 -147
- package/src/AssentifyWrapper.ts +55 -27
- package/src/BackgroundType.ts +7 -0
- package/src/helpers/parsers/FlowCompletedModelParser.ts +31 -0
- package/src/index.ts +1 -1
- package/src/types.ts +13 -2
- package/lib/commonjs/DoneFlags.js +0 -14
- package/lib/commonjs/DoneFlags.js.map +0 -1
- package/lib/module/DoneFlags.js +0 -8
- package/lib/module/DoneFlags.js.map +0 -1
- package/lib/typescript/lib/commonjs/DoneFlags.d.ts +0 -9
- package/lib/typescript/lib/commonjs/DoneFlags.d.ts.map +0 -1
- package/lib/typescript/lib/module/DoneFlags.d.ts +0 -8
- package/lib/typescript/lib/module/DoneFlags.d.ts.map +0 -1
- package/lib/typescript/src/DoneFlags.d.ts +0 -9
- package/lib/typescript/src/DoneFlags.d.ts.map +0 -1
- package/src/DoneFlags.ts +0 -11
|
@@ -8,6 +8,14 @@ class FaceMAtchController: UIViewController ,FaceMatchDelegate
|
|
|
8
8
|
{
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
func onUploadingProgress(progress: Double) {
|
|
12
|
+
// NOTHING TODO
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
func onCollectingManualImages(){
|
|
16
|
+
// NOTHING TODO
|
|
17
|
+
}
|
|
18
|
+
|
|
11
19
|
|
|
12
20
|
private var assentifySdk:AssentifySdk?;
|
|
13
21
|
private var secondImage:String = "";
|
|
@@ -182,7 +190,7 @@ class FaceMAtchController: UIViewController ,FaceMatchDelegate
|
|
|
182
190
|
|
|
183
191
|
|
|
184
192
|
|
|
185
|
-
func onComplete(dataModel: FaceResponseModel
|
|
193
|
+
func onComplete(dataModel: FaceResponseModel) {
|
|
186
194
|
|
|
187
195
|
if let outputProperties = try? JSONSerialization.data(withJSONObject: dataModel.faceExtractedModel?.outputProperties, options: []) {
|
|
188
196
|
if UserDefaults.standard.object(forKey: String(self.stepID)) != nil {
|
|
@@ -191,7 +199,7 @@ class FaceMAtchController: UIViewController ,FaceMatchDelegate
|
|
|
191
199
|
UserDefaults.standard.set(nil, forKey:String(self.stepID))
|
|
192
200
|
UserDefaults.standard.set(outputProperties, forKey: String(self.stepID))
|
|
193
201
|
}
|
|
194
|
-
triggerCompleteEvent(eventName:"onComplete",dataModel:dataModel.faceExtractedModel
|
|
202
|
+
triggerCompleteEvent(eventName:"onComplete",dataModel:dataModel.faceExtractedModel)
|
|
195
203
|
|
|
196
204
|
DispatchQueue.main.async {
|
|
197
205
|
self.faceMatch?.stopScanning()
|
|
@@ -248,119 +256,131 @@ class FaceMAtchController: UIViewController ,FaceMatchDelegate
|
|
|
248
256
|
triggerEvent(eventName:"onUploadFailed",dataModel:dataModel)
|
|
249
257
|
}
|
|
250
258
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
259
|
+
func onEnvironmentalConditionsChange( brightnessEvents: BrightnessEvents,
|
|
260
|
+
motion: MotionType,
|
|
261
|
+
faceEvents: FaceEvents,
|
|
262
|
+
zoom: ZoomType,
|
|
263
|
+
detectedFaces:Int,
|
|
264
|
+
isCentered: Bool,) {
|
|
265
|
+
DispatchQueue.main.async {
|
|
266
|
+
if self.start == false && self.currentActiveLiveEvents == ActiveLiveEvents.GOOD {
|
|
267
|
+
// Fetected Faces Handling
|
|
255
268
|
if (detectedFaces > 1 ) {
|
|
256
|
-
|
|
269
|
+
self.infoLabel?.text = "We detected more than one face.\nPlease keep just your face in view."
|
|
270
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
271
|
+
}
|
|
272
|
+
// Zoom Type Handling
|
|
273
|
+
else if (zoom != ZoomType.SENDING && zoom != ZoomType.NO_DETECT) {
|
|
274
|
+
if (zoom == ZoomType.ZOOM_IN) {
|
|
275
|
+
self.infoLabel?.text = "Please Move Closer"
|
|
276
|
+
self.infoImage!.image = UIImage(named: "zoom_in")
|
|
277
|
+
}
|
|
278
|
+
if (zoom == ZoomType.ZOOM_OUT) {
|
|
279
|
+
self.infoLabel?.text = "Please Move Further"
|
|
280
|
+
self.infoImage!.image = UIImage(named: "zoom_out")
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Motion Type Handling
|
|
284
|
+
else if (motion != MotionType.SENDING && motion != MotionType.NO_DETECT) {
|
|
285
|
+
self.infoLabel?.text = "Please Hold Your Hand"
|
|
286
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
287
|
+
}
|
|
288
|
+
// Brightness Events Handling
|
|
289
|
+
else if (brightnessEvents != BrightnessEvents.Good) {
|
|
290
|
+
if (brightnessEvents == BrightnessEvents.TooDark) {
|
|
291
|
+
self.infoLabel?.text = "Please increase the lighting"
|
|
292
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
293
|
+
}
|
|
294
|
+
if (brightnessEvents == BrightnessEvents.TooBright) {
|
|
295
|
+
self.infoLabel?.text = "Please reduce the lighting"
|
|
257
296
|
self.infoImage!.image = UIImage(named: "info_icon")
|
|
297
|
+
}
|
|
258
298
|
}
|
|
259
|
-
|
|
260
|
-
else if (
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
self.infoImage!.image = UIImage(named: "info_icon")
|
|
303
|
-
}
|
|
304
|
-
if (faceEvents == FaceEvents.PITCH_UP) {
|
|
305
|
-
self.infoLabel?.text = "Please lower your head"
|
|
306
|
-
self.infoImage!.image = UIImage(named: "info_icon")
|
|
307
|
-
}
|
|
308
|
-
if (faceEvents == FaceEvents.PITCH_DOWN) {
|
|
309
|
-
self.infoLabel?.text = "Please raise your head"
|
|
310
|
-
self.infoImage!.image = UIImage(named: "info_icon")
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// Final Conditions
|
|
314
|
-
else {
|
|
315
|
-
if (motion == MotionType.SENDING && zoom == ZoomType.SENDING && brightnessEvents == BrightnessEvents.Good && faceEvents == FaceEvents.GOOD) {
|
|
316
|
-
self.infoLabel?.text = "Hold Steady"
|
|
317
|
-
self.infoImage!.image = UIImage(named: "info_icon")
|
|
318
|
-
}
|
|
319
|
-
if (motion == MotionType.NO_DETECT && zoom == ZoomType.NO_DETECT && faceEvents == FaceEvents.NO_DETECT) {
|
|
320
|
-
self.infoLabel?.text = "Please face within circle"
|
|
321
|
-
self.infoImage!.image = UIImage(named: "info_icon")
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
} else {
|
|
299
|
+
// Face Events Handling
|
|
300
|
+
else if (faceEvents != FaceEvents.GOOD && faceEvents != FaceEvents.NO_DETECT) {
|
|
301
|
+
if (faceEvents == FaceEvents.ROLL_LEFT) {
|
|
302
|
+
self.infoLabel?.text = "Please tilt your head to the right"
|
|
303
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
304
|
+
}
|
|
305
|
+
if (faceEvents == FaceEvents.ROLL_RIGHT) {
|
|
306
|
+
self.infoLabel?.text = "Please tilt your head to the left"
|
|
307
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
308
|
+
}
|
|
309
|
+
if (faceEvents == FaceEvents.YAW_LEFT) {
|
|
310
|
+
self.infoLabel?.text = "Please turn your head to the right"
|
|
311
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
312
|
+
}
|
|
313
|
+
if (faceEvents == FaceEvents.YAW_RIGHT) {
|
|
314
|
+
self.infoLabel?.text = "Please turn your head to the left"
|
|
315
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
316
|
+
}
|
|
317
|
+
if (faceEvents == FaceEvents.PITCH_UP) {
|
|
318
|
+
self.infoLabel?.text = "Please lower your head"
|
|
319
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
320
|
+
}
|
|
321
|
+
if (faceEvents == FaceEvents.PITCH_DOWN) {
|
|
322
|
+
self.infoLabel?.text = "Please raise your head"
|
|
323
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Final Conditions
|
|
327
|
+
else {
|
|
328
|
+
if (motion == MotionType.SENDING && zoom == ZoomType.SENDING && brightnessEvents == BrightnessEvents.Good && faceEvents == FaceEvents.GOOD) {
|
|
329
|
+
self.infoLabel?.text = "Hold Steady"
|
|
330
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
331
|
+
}
|
|
332
|
+
if (motion == MotionType.NO_DETECT && zoom == ZoomType.NO_DETECT && faceEvents == FaceEvents.NO_DETECT) {
|
|
333
|
+
self.infoLabel?.text = "Please face within circle"
|
|
334
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
335
|
+
} else if(!isCentered){
|
|
336
|
+
self.start = false
|
|
337
|
+
self.infoLabel?.text = " Please center your face"
|
|
338
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
} else {
|
|
325
342
|
if(self.currentActiveLiveEvents == ActiveLiveEvents.GOOD){
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
343
|
+
self.infoLabel?.removeFromSuperview()
|
|
344
|
+
self.infoImage?.removeFromSuperview()
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
func onCurrentLiveMoveChange(activeLiveEvents: ActiveLiveEvents) {
|
|
352
|
+
DispatchQueue.main.async {
|
|
353
|
+
self.currentActiveLiveEvents = activeLiveEvents
|
|
354
|
+
switch activeLiveEvents {
|
|
355
|
+
case .YAW_LEFT:
|
|
356
|
+
self.infoLabel?.text = "Please move your face left"
|
|
357
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
358
|
+
case .YAW_RIGHT:
|
|
359
|
+
self.infoLabel?.text = "Please move your face right"
|
|
360
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
361
|
+
case .PITCH_UP:
|
|
362
|
+
self.infoLabel?.text = "Please move your face up"
|
|
363
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
364
|
+
case .PITCH_DOWN:
|
|
365
|
+
self.infoLabel?.text = "Please move your face down"
|
|
366
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
367
|
+
case .GOOD:
|
|
368
|
+
break
|
|
369
|
+
case .WINK_LEFT:
|
|
370
|
+
self.infoLabel?.text = "Please wink with your left eye"
|
|
371
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
372
|
+
case .WINK_RIGHT:
|
|
373
|
+
self.infoLabel?.text = "Please wink with your right eye"
|
|
374
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
375
|
+
case .BLINK:
|
|
376
|
+
self.infoLabel?.text = "Please blink your eyes"
|
|
377
|
+
self.infoImage?.image = UIImage(named: "info_icon")
|
|
360
378
|
}
|
|
379
|
+
|
|
380
|
+
}
|
|
381
|
+
}
|
|
361
382
|
|
|
362
|
-
|
|
363
|
-
}
|
|
383
|
+
|
|
364
384
|
|
|
365
385
|
func onHasTemplates(templates: [TemplatesByCountry]){
|
|
366
386
|
}
|
|
@@ -377,24 +397,11 @@ class FaceMAtchController: UIViewController ,FaceMatchDelegate
|
|
|
377
397
|
|
|
378
398
|
}
|
|
379
399
|
|
|
380
|
-
func triggerCompleteEvent(eventName:String, dataModel: FaceExtractedModel
|
|
400
|
+
func triggerCompleteEvent(eventName:String, dataModel: FaceExtractedModel?){
|
|
381
401
|
var eventResultMap: [String: Any] = [:]
|
|
382
402
|
if(dataModel != nil){
|
|
383
403
|
|
|
384
|
-
|
|
385
|
-
switch doneFlag {
|
|
386
|
-
case .Success:
|
|
387
|
-
doneFlagValue = "Success";
|
|
388
|
-
case .LivenessFailed:
|
|
389
|
-
doneFlagValue = "LivenessFailed";
|
|
390
|
-
case .ExtractFailed:
|
|
391
|
-
doneFlagValue = "ExtractFailed";
|
|
392
|
-
case .MatchFailed:
|
|
393
|
-
doneFlagValue = "MatchFailed";
|
|
394
|
-
case .WrongTemplate:
|
|
395
|
-
doneFlagValue = "WrongTemplate";
|
|
396
|
-
}
|
|
397
|
-
eventResultMap = ["FaceMatchDataModel": faceModelToJsonString(dataModel: dataModel) as Any,"DoneFlag":doneFlagValue]
|
|
404
|
+
eventResultMap = ["FaceMatchDataModel": faceModelToJsonString(dataModel: dataModel) as Any]
|
|
398
405
|
}
|
|
399
406
|
DispatchQueue.main.async {
|
|
400
407
|
self.nativeAssentifySdk?.sendEvent(withName: eventName, body: eventResultMap)
|
|
@@ -6,6 +6,11 @@ import AssentifySdk
|
|
|
6
6
|
|
|
7
7
|
class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControllerDelegate
|
|
8
8
|
{
|
|
9
|
+
|
|
10
|
+
func onUploadingProgress(progress: Double) {
|
|
11
|
+
// NOTHING TODO
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
private var imageUrl: String? = "";
|
|
10
15
|
private var apiKey: String? = "";
|
|
11
16
|
private var isDone:Bool = false;
|
|
@@ -19,7 +24,7 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
19
24
|
private var language: String;
|
|
20
25
|
private var flippingCard:Bool = false;
|
|
21
26
|
private var showCountDown:Bool = true;
|
|
22
|
-
private var
|
|
27
|
+
private var templatesByCountry: TemplatesByCountry;
|
|
23
28
|
private var titleID:String? = "";
|
|
24
29
|
private var nativeAssentifySdk:NativeAssentifySdk?;
|
|
25
30
|
private var outputResultProperties: [String: Any]? = [:];
|
|
@@ -29,12 +34,12 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
29
34
|
private var takePhotoButton: UIButton?;
|
|
30
35
|
private var backIDPage: UIView?;
|
|
31
36
|
|
|
32
|
-
init(assentifySdk: AssentifySdk,nativeAssentifySdk:NativeAssentifySdk,holdHandColor: String,processingColor: String,
|
|
37
|
+
init(assentifySdk: AssentifySdk,nativeAssentifySdk:NativeAssentifySdk,holdHandColor: String,processingColor: String,templatesByCountry:TemplatesByCountry,language:String,flippingCard:Bool,titleID:String,showCountDown:Bool,apiKey:String,stepID:Int,manualClickColor:String) {
|
|
33
38
|
self.assentifySdk = assentifySdk
|
|
34
39
|
self.nativeAssentifySdk = nativeAssentifySdk
|
|
35
40
|
self.holdHandColor = holdHandColor
|
|
36
41
|
self.processingColor = processingColor
|
|
37
|
-
self.
|
|
42
|
+
self.templatesByCountry = templatesByCountry
|
|
38
43
|
self.language = language
|
|
39
44
|
self.flippingCard = flippingCard
|
|
40
45
|
self.titleID = titleID
|
|
@@ -56,7 +61,7 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
56
61
|
self.view.backgroundColor = .clear
|
|
57
62
|
UIApplication.shared.isStatusBarHidden = false;
|
|
58
63
|
DispatchQueue.main.async {
|
|
59
|
-
self.scanID = self.assentifySdk?.startScanID(scanIDCardDelegate: self,
|
|
64
|
+
self.scanID = self.assentifySdk?.startScanID(scanIDCardDelegate: self, templatesByCountry: self.templatesByCountry,language:self.language,stepId:self.stepID)
|
|
60
65
|
self.addChild( self.scanID!)
|
|
61
66
|
self.view.addSubview( self.scanID!.view)
|
|
62
67
|
self.scanID!.view.translatesAutoresizingMaskIntoConstraints = false
|
|
@@ -196,9 +201,10 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
196
201
|
|
|
197
202
|
|
|
198
203
|
|
|
199
|
-
|
|
204
|
+
func onComplete(dataModel: IDResponseModel ,isFrontPage:Bool,isLastPage:Bool,classifiedTemplate: String) {
|
|
205
|
+
|
|
206
|
+
self.triggerCompleteEvent(eventName:"onComplete",dataModel:dataModel.iDExtractedModel,isFrontPage:isFrontPage,isLastPage: isLastPage ,classifiedTemplate:classifiedTemplate)
|
|
200
207
|
|
|
201
|
-
self.triggerCompleteEvent(eventName:"onComplete",dataModel: dataModel.iDExtractedModel,doneFlag:doneFlag)
|
|
202
208
|
|
|
203
209
|
outputResultProperties!.merge((dataModel.iDExtractedModel?.transformedProperties)!) { (_, new) in new }
|
|
204
210
|
|
|
@@ -206,14 +212,11 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
206
212
|
DispatchQueue.main.async {
|
|
207
213
|
self.popUpMessage!.removeFromSuperview();
|
|
208
214
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if(self._kycDocumentDetails.count == 1){
|
|
215
|
+
|
|
216
|
+
if(isFrontPage){
|
|
212
217
|
self.imageUrl = dataModel.iDExtractedModel?.imageUrl;
|
|
213
218
|
}
|
|
214
|
-
|
|
215
|
-
if(order == self._kycDocumentDetails.count-1 ){
|
|
216
|
-
|
|
219
|
+
if(isLastPage){
|
|
217
220
|
self.mergeAndStoreOutputProperties(stepID: self.stepID, newProperties: self.outputResultProperties ?? [:])
|
|
218
221
|
|
|
219
222
|
DispatchQueue.main.async {
|
|
@@ -223,12 +226,26 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
223
226
|
self.scanID?.removeFromParent()
|
|
224
227
|
self.scanID = nil
|
|
225
228
|
self.dismiss(animated: false)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
+
}
|
|
229
230
|
}else{
|
|
230
231
|
if(self.flippingCard){
|
|
231
232
|
self.popUpMessage!.removeFromSuperview();
|
|
233
|
+
var imageURLString = ""
|
|
234
|
+
if !classifiedTemplate.isEmpty {
|
|
235
|
+
for template in self.templatesByCountry.templates {
|
|
236
|
+
for detail in template.kycDocumentDetails {
|
|
237
|
+
if detail.templateProcessingKeyInformation == classifiedTemplate {
|
|
238
|
+
|
|
239
|
+
if let other = template.kycDocumentDetails.first(where: {
|
|
240
|
+
$0.templateProcessingKeyInformation != classifiedTemplate
|
|
241
|
+
}) {
|
|
242
|
+
imageURLString = other.templateSpecimen
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
232
249
|
self.backIDPage = showBackIDPage(
|
|
233
250
|
on: self.view,
|
|
234
251
|
backgroundHex: self.holdHandColor,
|
|
@@ -236,7 +253,7 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
236
253
|
title: "Please flip the card provided to take the back of the card.",
|
|
237
254
|
subtitle: "Expected Card Type",
|
|
238
255
|
buttonTitle: "Next",
|
|
239
|
-
imageURLString:
|
|
256
|
+
imageURLString: imageURLString,
|
|
240
257
|
initialBackgroundColorHex:self.manualClickColor,
|
|
241
258
|
onBack: {
|
|
242
259
|
self.backButtonTapped()
|
|
@@ -246,7 +263,7 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
246
263
|
(self.infoLabel, self.infoImage) = showInfo(view: self.view, text: "Please Present Your ID",initialTextColorHex:self.processingColor,initialBackgroundColorHex:self.holdHandColor,initialImageName:"info_icon")
|
|
247
264
|
}
|
|
248
265
|
|
|
249
|
-
self.scanID?.changeTemplateId(
|
|
266
|
+
self.scanID?.changeTemplateId()
|
|
250
267
|
self.backIDPage?.removeFromSuperview()
|
|
251
268
|
}
|
|
252
269
|
)
|
|
@@ -254,7 +271,7 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
254
271
|
}else{
|
|
255
272
|
(self.infoLabel, self.infoImage) = showInfo(view: self.view, text: "Please Present Your ID",initialTextColorHex:self.processingColor,initialBackgroundColorHex:self.holdHandColor,initialImageName:"info_icon")
|
|
256
273
|
}
|
|
257
|
-
if(
|
|
274
|
+
if(isFrontPage){
|
|
258
275
|
self.imageUrl = dataModel.iDExtractedModel?.imageUrl;
|
|
259
276
|
}
|
|
260
277
|
|
|
@@ -308,7 +325,10 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
308
325
|
triggerEvent(eventName:"onUploadFailed",dataModel:dataModel)
|
|
309
326
|
}
|
|
310
327
|
|
|
311
|
-
|
|
328
|
+
func onEnvironmentalConditionsChange( brightnessEvents: BrightnessEvents,
|
|
329
|
+
motion: MotionType,
|
|
330
|
+
zoom: ZoomType,
|
|
331
|
+
isCentered: Bool,) {
|
|
312
332
|
DispatchQueue.main.async {
|
|
313
333
|
if self.start == false {
|
|
314
334
|
if (zoom != ZoomType.SENDING && zoom != ZoomType.NO_DETECT) {
|
|
@@ -347,6 +367,10 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
347
367
|
self.start = false
|
|
348
368
|
self.infoLabel?.text = "Please present ID"
|
|
349
369
|
self.infoImage!.image = UIImage(named: "info_icon")
|
|
370
|
+
} else if(!isCentered){
|
|
371
|
+
self.start = false
|
|
372
|
+
self.infoLabel?.text = " Please center your card"
|
|
373
|
+
self.infoImage!.image = UIImage(named: "info_icon")
|
|
350
374
|
}
|
|
351
375
|
}
|
|
352
376
|
} else {
|
|
@@ -354,26 +378,15 @@ class IDCardController: UIViewController ,ScanIDCardDelegate , ChildViewControll
|
|
|
354
378
|
self.infoImage?.removeFromSuperview()
|
|
355
379
|
}
|
|
356
380
|
}
|
|
357
|
-
|
|
381
|
+
|
|
358
382
|
}
|
|
383
|
+
|
|
359
384
|
|
|
360
|
-
|
|
385
|
+
func triggerCompleteEvent(eventName:String, dataModel: IDExtractedModel?,isFrontPage:Bool,isLastPage:Bool,classifiedTemplate: String){
|
|
361
386
|
var eventResultMap: [String: Any] = [:]
|
|
362
387
|
if(dataModel != nil){
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
case .Success:
|
|
366
|
-
doneFlagValue = "Success";
|
|
367
|
-
case .LivenessFailed:
|
|
368
|
-
doneFlagValue = "LivenessFailed";
|
|
369
|
-
case .ExtractFailed:
|
|
370
|
-
doneFlagValue = "ExtractFailed";
|
|
371
|
-
case .MatchFailed:
|
|
372
|
-
doneFlagValue = "MatchFailed";
|
|
373
|
-
case .WrongTemplate:
|
|
374
|
-
doneFlagValue = "WrongTemplate";
|
|
375
|
-
}
|
|
376
|
-
eventResultMap = ["IdDataModel": iDModelToJsonString(dataModel:dataModel) as Any,"DoneFlag":doneFlagValue]
|
|
388
|
+
|
|
389
|
+
eventResultMap = ["IdDataModel": iDModelToJsonString(dataModel:dataModel) as Any, "isFrontPage":isFrontPage.description,"isLastPage":isLastPage.description]
|
|
377
390
|
}
|
|
378
391
|
|
|
379
392
|
DispatchQueue.main.async {
|
|
@@ -8,7 +8,10 @@ class OtherController: UIViewController ,ScanOtherDelegate , ChildViewController
|
|
|
8
8
|
{
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
func onUploadingProgress(progress: Double) {
|
|
12
|
+
// NOTHING TODO
|
|
13
|
+
}
|
|
14
|
+
|
|
12
15
|
|
|
13
16
|
private var isDone:Bool = false;
|
|
14
17
|
private var assentifySdk:AssentifySdk?;
|
|
@@ -183,7 +186,7 @@ class OtherController: UIViewController ,ScanOtherDelegate , ChildViewController
|
|
|
183
186
|
}
|
|
184
187
|
|
|
185
188
|
|
|
186
|
-
func onComplete(dataModel: OtherResponseModel
|
|
189
|
+
func onComplete(dataModel: OtherResponseModel) {
|
|
187
190
|
if(!isDone){
|
|
188
191
|
isDone = true;
|
|
189
192
|
if let outputProperties = try? JSONSerialization.data(withJSONObject: dataModel.otherExtractedModel?.transformedProperties, options: []) {
|
|
@@ -193,7 +196,7 @@ class OtherController: UIViewController ,ScanOtherDelegate , ChildViewController
|
|
|
193
196
|
UserDefaults.standard.set(nil, forKey:String(self.stepID))
|
|
194
197
|
UserDefaults.standard.set(outputProperties, forKey: String(self.stepID))
|
|
195
198
|
}
|
|
196
|
-
triggerCompleteEvent(eventName:"onComplete",dataModel:dataModel.otherExtractedModel
|
|
199
|
+
triggerCompleteEvent(eventName:"onComplete",dataModel:dataModel.otherExtractedModel)
|
|
197
200
|
DispatchQueue.main.async {
|
|
198
201
|
self.scanOther?.stopScanning();
|
|
199
202
|
self.scanOther?.willMove(toParent: nil)
|
|
@@ -305,24 +308,12 @@ class OtherController: UIViewController ,ScanOtherDelegate , ChildViewController
|
|
|
305
308
|
|
|
306
309
|
|
|
307
310
|
|
|
308
|
-
func triggerCompleteEvent(eventName:String, dataModel: OtherExtractedModel
|
|
311
|
+
func triggerCompleteEvent(eventName:String, dataModel: OtherExtractedModel?){
|
|
309
312
|
var eventResultMap: [String: Any] = [:]
|
|
310
313
|
if(dataModel != nil){
|
|
311
|
-
|
|
312
|
-
switch doneFlag {
|
|
313
|
-
case .Success:
|
|
314
|
-
doneFlagValue = "Success";
|
|
315
|
-
case .LivenessFailed:
|
|
316
|
-
doneFlagValue = "LivenessFailed";
|
|
317
|
-
case .ExtractFailed:
|
|
318
|
-
doneFlagValue = "ExtractFailed";
|
|
319
|
-
case .MatchFailed:
|
|
320
|
-
doneFlagValue = "MatchFailed";
|
|
321
|
-
case .WrongTemplate:
|
|
322
|
-
doneFlagValue = "WrongTemplate";
|
|
323
|
-
}
|
|
314
|
+
|
|
324
315
|
eventResultMap = [
|
|
325
|
-
"OtherDataModel": otherModelToJsonString(dataModel: dataModel) as Any
|
|
316
|
+
"OtherDataModel": otherModelToJsonString(dataModel: dataModel) as Any
|
|
326
317
|
]
|
|
327
318
|
}
|
|
328
319
|
DispatchQueue.main.async {
|