Launch Week Day 3: Introducing Organization Notifications in Socket.Learn More
Socket
Book a DemoSign in
Socket

blinkid-react-native

Package Overview
Dependencies
Maintainers
9
Versions
64
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

blinkid-react-native - npm Package Compare versions

Comparing version
6.7.0
to
6.9.0
+36
-1
overlays/blinkidOverlays.js
import { OverlaySettings } from '../overlaySettings'
import { AndroidCameraResolutionPreset,
iOSCameraResolutionPreset
} from '../types'
/**

@@ -170,2 +172,35 @@ * Class for setting up document overlay.

this.showCancelButton = true;
/**
* String: instructions for the user when blur has been detected on the document.
* If null, default value will be used.
*/
this.errorBlurDetected = null;
/**
* String: instructions for the user when glare has been detected on the document.
* If null, default value will be used.
*/
this.errorGlareDetected = null;
/**
* Defines possible Android device camera video resolution preset.
*
* Default: PresetDefault
*/
this.androidCameraResolutionPreset = AndroidCameraResolutionPreset.PresetDefault;
/**
* Defines possible iOS device camera video resolution preset.
*
* Default: PresetOptimal
*/
this.iosCameraResolutionPreset = iOSCameraResolutionPreset.PresetOptimal;
/**
* Option to set whether legacy camera API should be used even on Lollipop devices that support newer Camera2 API.
* WARNING: This setting should only be used if the new Camera2 API is not working on the device. This setting should not be applied on all devices.
* Default: false
*/
this.enableAndroidLegacyCameraApi = false;
}

@@ -172,0 +207,0 @@ }

+1
-1
{
"name": "blinkid-react-native",
"version": "6.7.0",
"version": "6.9.0",
"description": "A small and powerful ID card scanning library. Powered by Microblink (www.microblink.com).",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -25,3 +25,3 @@ # BlinkID SDK wrapper for React Native

BlinkID React Native was built and tested with [React Native v0.71.2](https://github.com/facebook/react-native/releases/tag/v0.71.2)
BlinkID React Native was built and tested with [React Native v0.74.0](https://github.com/facebook/react-native/releases/tag/v0.74.0)

@@ -28,0 +28,0 @@ ## Installation

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -151,2 +152,7 @@

/**
* The transcription of the document subtype.
*/
this.documentSubtype = nativeResult.documentSubtype;
/**
* The driver license detailed info.

@@ -308,2 +314,12 @@ */

/**
* The remarks on the residence permit.
*/
this.remarks = nativeResult.remarks;
/**
* The residence permit type.
*/
this.residencePermitType = nativeResult.residencePermitType;
/**
* The residential stauts of the document owner.

@@ -334,2 +350,7 @@ */

/**
* The visa type.
*/
this.visaType = nativeResult.visaType;
}

@@ -351,9 +372,2 @@ }

/**
* Defines whether blured frames filtering is allowed
*
*
*/
this.allowBlurFilter = true;
/**
* Proceed with scanning the back side even if the front side result is uncertain.

@@ -390,2 +404,28 @@ * This only works for still images - video feeds will ignore this setting.

/**
* Strictness level for blur detection.
*
*
*/
this.blurStrictnessLevel = StrictnessLevel.Normal;
/**
* Get custom class rules.
*/
this.customClassRules = [];
/**
* Skip processing of the blurred frames.
*
*
*/
this.enableBlurFilter = true;
/**
* Skip processing of the glared frames.
*
*
*/
this.enableGlareFilter = true;
/**
* Property for setting DPI for face images

@@ -415,2 +455,9 @@ * Valid ranges are [100,400]. Setting DPI out of valid ranges throws an exception

/**
* Strictness level for glare detection.
*
*
*/
this.glareStrictnessLevel = StrictnessLevel.Normal;
/**
* Configure the number of characters per field that are allowed to be inconsistent in data match.

@@ -417,0 +464,0 @@ *

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -123,2 +124,7 @@

/**
* The transcription of the document subtype.
*/
this.documentSubtype = nativeResult.documentSubtype;
/**
* The driver license detailed info.

@@ -255,2 +261,12 @@ */

/**
* The remarks on the residence permit.
*/
this.remarks = nativeResult.remarks;
/**
* The residence permit type.
*/
this.residencePermitType = nativeResult.residencePermitType;
/**
* The residential stauts of the document owner.

@@ -276,2 +292,7 @@ */

/**
* The visa type.
*/
this.visaType = nativeResult.visaType;
/**
* Defines the data extracted from the visual inspection zone

@@ -297,9 +318,2 @@ */

/**
* Defines whether blured frames filtering is allowed
*
*
*/
this.allowBlurFilter = true;
/**
* Defines whether returning of unparsed MRZ (Machine Readable Zone) results is allowed

@@ -328,2 +342,28 @@ *

/**
* Strictness level for blur detection.
*
*
*/
this.blurStrictnessLevel = StrictnessLevel.Normal;
/**
* Get custom class rules.
*/
this.customClassRules = [];
/**
* Skip processing of the blurred frames.
*
*
*/
this.enableBlurFilter = true;
/**
* Skip processing of the glared frames.
*
*
*/
this.enableGlareFilter = true;
/**
* Property for setting DPI for face images

@@ -353,2 +393,9 @@ * Valid ranges are [100,400]. Setting DPI out of valid ranges throws an exception

/**
* Strictness level for glare detection.
*
*
*/
this.glareStrictnessLevel = StrictnessLevel.Normal;
/**
* Pading is a minimum distance from the edge of the frame and is defined as a percentage of the frame width. Default value is 0.0f and in that case

@@ -355,0 +402,0 @@ * padding edge and image edge are the same.

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -16,2 +16,3 @@ import { Recognizer, RecognizerResult } from '../recognizer'

RecognitionModeFilter,
StrictnessLevel,

@@ -18,0 +19,0 @@

@@ -28,5 +28,5 @@ rootProject.allprojects {

implementation 'com.facebook.react:react-native:+'
implementation('com.microblink:blinkid:6.7.0@aar') {
implementation('com.microblink:blinkid:6.9.0@aar') {
transitive = true
}
}

@@ -34,2 +34,3 @@ package com.microblink.blinkid.reactnative;

import com.microblink.blinkid.view.recognition.ScanResultListener;
import com.microblink.blinkid.licence.exception.LicenceKeyException;

@@ -79,11 +80,12 @@ import com.microblink.blinkid.uisettings.UISettings;

public void scanWithCamera(ReadableMap jsonOverlaySettings, ReadableMap jsonRecognizerCollection, ReadableMap license, Promise promise) {
prepareScanning(license, promise);
try {
LanguageUtils.setLanguageAndCountry(jsonOverlaySettings.getString("language"),
jsonOverlaySettings.getString("country"),
getCurrentActivity());
} catch (Exception e) {}
mRecognizerBundle = RecognizerSerializers.INSTANCE.deserializeRecognizerCollection(jsonRecognizerCollection);
UISettings overlaySettings = OverlaySettingsSerializers.INSTANCE.getOverlaySettings(getReactApplicationContext(), jsonOverlaySettings, mRecognizerBundle);
ActivityRunner.startActivityForResult(getCurrentActivity(), REQUEST_CODE, overlaySettings);
if(prepareScanning(license, promise)) {
try {
LanguageUtils.setLanguageAndCountry(jsonOverlaySettings.getString("language"),
jsonOverlaySettings.getString("country"),
getCurrentActivity());
} catch (Exception e) {}
mRecognizerBundle = RecognizerSerializers.INSTANCE.deserializeRecognizerCollection(jsonRecognizerCollection);
UISettings overlaySettings = OverlaySettingsSerializers.INSTANCE.getOverlaySettings(getReactApplicationContext(), jsonOverlaySettings, mRecognizerBundle);
ActivityRunner.startActivityForResult(getCurrentActivity(), REQUEST_CODE, overlaySettings);
}
}

@@ -95,67 +97,67 @@

mScanPromise = promise;
prepareScanning(license, promise);
if(prepareScanning(license, promise)) {
ScanResultListener mScanResultListenerBackSide = new ScanResultListener() {
@Override
public void onScanningDone(@NonNull RecognitionSuccessType recognitionSuccessType) {
mFirstSideScanned = false;
handleDirectApiResult(recognitionSuccessType);
}
@Override
public void onUnrecoverableError(@NonNull Throwable throwable) {
promise.reject(throwable);
}
};
ScanResultListener mScanResultListenerBackSide = new ScanResultListener() {
@Override
public void onScanningDone(@NonNull RecognitionSuccessType recognitionSuccessType) {
mFirstSideScanned = false;
handleDirectApiResult(recognitionSuccessType);
}
@Override
public void onUnrecoverableError(@NonNull Throwable throwable) {
promise.reject(throwable);
}
};
FirstSideRecognitionCallback mFirstSideRecognitionCallback = new FirstSideRecognitionCallback() {
@Override
public void onFirstSideRecognitionFinished() {
mFirstSideScanned = true;
}
};
FirstSideRecognitionCallback mFirstSideRecognitionCallback = new FirstSideRecognitionCallback() {
@Override
public void onFirstSideRecognitionFinished() {
mFirstSideScanned = true;
}
};
ScanResultListener mScanResultListenerFrontSide = new ScanResultListener() {
@Override
public void onScanningDone(@NonNull RecognitionSuccessType recognitionSuccessType) {
if (mFirstSideScanned == true) {
//multiside recognizer used
try {
if (backImage != null) {
processImage(backImage.getString(PARAM_BACK_IMAGE), mScanResultListenerBackSide);
} else if (recognitionSuccessType != RecognitionSuccessType.UNSUCCESSFUL) {
handleDirectApiResult(recognitionSuccessType);
} else {
handleDirectApiError("Could not extract the information from the front side and back side is empty!", promise);
ScanResultListener mScanResultListenerFrontSide = new ScanResultListener() {
@Override
public void onScanningDone(@NonNull RecognitionSuccessType recognitionSuccessType) {
if (mFirstSideScanned == true) {
//multiside recognizer used
try {
if (backImage != null) {
processImage(backImage.getString(PARAM_BACK_IMAGE), mScanResultListenerBackSide);
} else if (recognitionSuccessType != RecognitionSuccessType.UNSUCCESSFUL) {
handleDirectApiResult(recognitionSuccessType);
} else {
handleDirectApiError("Could not extract the information from the front side and back side is empty!", promise);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
} catch (Exception e) {
throw new RuntimeException(e);
} else if (mFirstSideScanned == false && recognitionSuccessType != RecognitionSuccessType.UNSUCCESSFUL){
//singleside recognizer used
handleDirectApiResult(recognitionSuccessType);
} else {
mFirstSideScanned = false;
handleDirectApiError("Could not extract the information with DirectAPI!", promise);
}
} else if (mFirstSideScanned == false && recognitionSuccessType != RecognitionSuccessType.UNSUCCESSFUL){
//singleside recognizer used
handleDirectApiResult(recognitionSuccessType);
} else {
mFirstSideScanned = false;
handleDirectApiError("Could not extract the information with DirectAPI!", promise);
}
}
@Override
public void onUnrecoverableError(@NonNull Throwable throwable) {
promise.reject(throwable);
}
};
@Override
public void onUnrecoverableError(@NonNull Throwable throwable) {
promise.reject(throwable);
}
};
setupRecognizerRunner(jsonRecognizerCollection, mFirstSideRecognitionCallback, promise);
setupRecognizerRunner(jsonRecognizerCollection, mFirstSideRecognitionCallback, promise);
if (frontImage != null) {
processImage(frontImage.getString(PARAM_FRONT_IMAGE), mScanResultListenerFrontSide);
} else {
handleDirectApiError("The provided image for the 'frontImage' parameter is empty!", promise);
if (frontImage != null) {
processImage(frontImage.getString(PARAM_FRONT_IMAGE), mScanResultListenerFrontSide);
} else {
handleDirectApiError("The provided image for the 'frontImage' parameter is empty!", promise);
}
}
}
private void prepareScanning(ReadableMap license, Promise promise) {
private boolean prepareScanning(ReadableMap license, Promise promise) {
Activity currentActivity = getCurrentActivity();
if (currentActivity == null) {
promise.reject(ERROR_ACTIVITY_DOES_NOT_EXIST, "Activity does not exist");
return;
return false;
}

@@ -167,3 +169,3 @@

promise.reject(ERROR_LICENSE_KEY_NOT_SET, "License key is not set");
return;
return false;
}

@@ -179,3 +181,4 @@ String licenseKey = license.getString(PARAM_LICENSE_KEY);

}
setLicense(licenseKey, licensee, showTrialLicenseKeyWarning);
return setLicense(licenseKey, licensee, showTrialLicenseKeyWarning);
}

@@ -241,3 +244,3 @@

private void setLicense( String licenseKey, String licensee, Boolean showTrialLicenseKeyWarning ) {
private boolean setLicense( String licenseKey, String licensee, Boolean showTrialLicenseKeyWarning ) {
if (showTrialLicenseKeyWarning != null) {

@@ -247,7 +250,18 @@ MicroblinkSDK.setShowTrialLicenseWarning(showTrialLicenseKeyWarning);

if (licensee != null) {
MicroblinkSDK.setLicenseKey(licenseKey, licensee, this.getCurrentActivity());
try {
MicroblinkSDK.setLicenseKey(licenseKey, licensee, this.getCurrentActivity());
} catch (LicenceKeyException licenceKeyException) {
mScanPromise.reject("Android license key error: " + licenceKeyException.toString());
return false;
}
} else {
MicroblinkSDK.setLicenseKey(licenseKey, this.getCurrentActivity());
try {
MicroblinkSDK.setLicenseKey(licenseKey, this.getCurrentActivity());
} catch (LicenceKeyException licenceKeyException) {
mScanPromise.reject("Android license key error: " + licenceKeyException.toString());
return false;
}
}
MicroblinkSDK.setIntentDataTransferMode(IntentDataTransferMode.PERSISTED_OPTIMISED);
return true;
}

@@ -254,0 +268,0 @@

@@ -12,3 +12,6 @@ package com.microblink.blinkid.reactnative.overlays.serialization;

import com.microblink.blinkid.locale.LanguageUtils;
import com.microblink.blinkid.hardware.camera.VideoResolutionPreset;
import com.microblink.blinkid.uisettings.CameraSettings;
import static com.microblink.blinkid.reactnative.SerializationUtils.getStringFromMap;

@@ -21,4 +24,5 @@

OverlaySerializationUtils.extractCommonUISettings(jsonUISettings, settings);
BlinkIDOverlaySerializationUtils.extractCommonBlinkIdUiSettings(jsonUISettings, settings);
Boolean requireDocumentSidesDataMatch = getBooleanFromMap(jsonUISettings, "requireDocumentSidesDataMatch");

@@ -78,2 +82,17 @@ if (requireDocumentSidesDataMatch != null) {

VideoResolutionPreset videoResolutionPreset = VideoResolutionPreset.values()[0];
if (jsonUISettings.hasKey("androidCameraResolutionPreset")) {
videoResolutionPreset = VideoResolutionPreset.values()[jsonUISettings.getInt("androidCameraResolutionPreset")];
}
Boolean androidLegacyCameraApi = false;
if (jsonUISettings.hasKey("enableAndroidLegacyCameraApi")) {
androidLegacyCameraApi = jsonUISettings.getBoolean("enableAndroidLegacyCameraApi");
}
settings.setCameraSettings(new CameraSettings.Builder()
.setVideoResolutionPreset(videoResolutionPreset)
.setForceLegacyApi(androidLegacyCameraApi)
.build());
ReticleOverlayStrings.Builder overlasStringsBuilder = new ReticleOverlayStrings.Builder(context);

@@ -133,2 +152,10 @@

}
String errorBlurDetected = getStringFromMap(jsonUISettings, "errorBlurDetected");
if (errorBlurDetected != null) {
overlasStringsBuilder.setErrorBlurDetected(errorBlurDetected);
}
String errorGlareDetected = getStringFromMap(jsonUISettings, "errorGlareDetected");
if (errorGlareDetected != null) {
overlasStringsBuilder.setErrorGlareDetected(errorGlareDetected);
}

@@ -135,0 +162,0 @@ settings.setStrings(overlasStringsBuilder.build());

@@ -17,5 +17,2 @@ package com.microblink.blinkid.reactnative.recognizers.serialization;

}
if (jsonMap.hasKey("allowBlurFilter")) {
recognizer.setAllowBlurFilter(jsonMap.getBoolean("allowBlurFilter"));
}
if (jsonMap.hasKey("allowUncertainFrontSideScan")) {

@@ -33,2 +30,14 @@ recognizer.setAllowUncertainFrontSideScan(jsonMap.getBoolean("allowUncertainFrontSideScan"));

}
if (jsonMap.hasKey("blurStrictnessLevel")) {
recognizer.setBlurStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonMap.getInt("blurStrictnessLevel")]);
}
if (jsonMap.hasKey("customClassRules")) {
recognizer.setCustomClassRules(BlinkIDSerializationUtils.deserializeCustomClassRules(jsonMap.getArray("customClassRules")));
}
if (jsonMap.hasKey("enableBlurFilter")) {
recognizer.setEnableBlurFilter(jsonMap.getBoolean("enableBlurFilter"));
}
if (jsonMap.hasKey("enableGlareFilter")) {
recognizer.setEnableGlareFilter(jsonMap.getBoolean("enableGlareFilter"));
}
if (jsonMap.hasKey("faceImageDpi")) {

@@ -43,2 +52,5 @@ recognizer.setFaceImageDpi(jsonMap.getInt("faceImageDpi"));

}
if (jsonMap.hasKey("glareStrictnessLevel")) {
recognizer.setGlareStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonMap.getInt("glareStrictnessLevel")]);
}
if (jsonMap.hasKey("maxAllowedMismatchesPerField")) {

@@ -107,2 +119,3 @@ recognizer.setMaxAllowedMismatchesPerField(jsonMap.getInt("maxAllowedMismatchesPerField"));

jsonResult.putMap("documentOptionalAdditionalNumber", BlinkIDSerializationUtils.serializeStringResult(result.getDocumentOptionalAdditionalNumber()));
jsonResult.putMap("documentSubtype", BlinkIDSerializationUtils.serializeStringResult(result.getDocumentSubtype()));
jsonResult.putMap("driverLicenseDetailedInfo", BlinkIDSerializationUtils.serializeDriverLicenseDetailedInfo(result.getDriverLicenseDetailedInfo()));

@@ -138,2 +151,4 @@ jsonResult.putMap("employer", BlinkIDSerializationUtils.serializeStringResult(result.getEmployer()));

jsonResult.putMap("religion", BlinkIDSerializationUtils.serializeStringResult(result.getReligion()));
jsonResult.putMap("remarks", BlinkIDSerializationUtils.serializeStringResult(result.getRemarks()));
jsonResult.putMap("residencePermitType", BlinkIDSerializationUtils.serializeStringResult(result.getResidencePermitType()));
jsonResult.putMap("residentialStatus", BlinkIDSerializationUtils.serializeStringResult(result.getResidentialStatus()));

@@ -144,2 +159,3 @@ jsonResult.putBoolean("scanningFirstSideDone", result.isScanningFirstSideDone());

jsonResult.putMap("sponsor", BlinkIDSerializationUtils.serializeStringResult(result.getSponsor()));
jsonResult.putMap("visaType", BlinkIDSerializationUtils.serializeStringResult(result.getVisaType()));
return jsonResult;

@@ -146,0 +162,0 @@ }

@@ -37,5 +37,5 @@ package com.microblink.blinkid.reactnative.recognizers.serialization;

import com.microblink.blinkid.entities.recognizers.blinkid.generic.DocumentNumberAnonymizationSettings;
import com.microblink.blinkid.entities.recognizers.blinkid.generic.CustomClassRules;
import com.microblink.blinkid.entities.recognizers.blinkid.generic.DetailedFieldType;
public abstract class BlinkIDSerializationUtils {

@@ -206,3 +206,2 @@ public static WritableMap serializeMrzResult(MrzResult mrzResult) {

WritableMap jsonImageAnalysis = new WritableNativeMap();
jsonImageAnalysis.putBoolean("blurred", imageAnalysisResult.isBlurred());
jsonImageAnalysis.putInt("documentImageColorStatus", SerializationUtils.serializeEnum(imageAnalysisResult.getDocumentImageColorStatus()));

@@ -216,2 +215,4 @@ jsonImageAnalysis.putInt("documentImageMoireStatus", SerializationUtils.serializeEnum(imageAnalysisResult.getDocumentImageMoireStatus()));

jsonImageAnalysis.putInt("realIdDetectionStatus", SerializationUtils.serializeEnum(imageAnalysisResult.getRealIdDetectionStatus()));
jsonImageAnalysis.putBoolean("blurDetected", imageAnalysisResult.isBlurDetected());
jsonImageAnalysis.putBoolean("glareDetected", imageAnalysisResult.isGlareDetected());
return jsonImageAnalysis;

@@ -385,2 +386,51 @@ }

}
public static CustomClassRules[] deserializeCustomClassRules(ReadableArray jsonArray) {
if (jsonArray != null && jsonArray.size() > 0) {
CustomClassRules[] customClassRulesArray = new CustomClassRules[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++) {
DetailedFieldType[] detailedFieldTypes = new DetailedFieldType[0];
Country country = Country.NONE;
Region region = Region.NONE;
Type type = Type.NONE;
try {
ReadableMap jsonCustomClassRulesArray = jsonArray.getMap(i);
ReadableArray detailedFieldTypeJsonArray = jsonCustomClassRulesArray.getArray("detailedFieldTypes");
detailedFieldTypes = new DetailedFieldType[detailedFieldTypeJsonArray.size()];
for (int x = 0; x < detailedFieldTypeJsonArray.size(); x++) {
FieldType fieldType = FieldType.values()[detailedFieldTypeJsonArray.getMap(x).getInt("fieldType")];
AlphabetType alphabetType = AlphabetType.values()[detailedFieldTypeJsonArray.getMap(x).getInt("alphabetType")];
detailedFieldTypes[x] = new DetailedFieldType(fieldType, alphabetType);
}
try {
country = Country.values()[jsonCustomClassRulesArray.getInt("country")];
} catch (Exception e) {
country = null;
}
try {
region = Region.values()[jsonCustomClassRulesArray.getInt("region")];
} catch (Exception e) {
region = null;
}
try {
type = Type.values()[jsonCustomClassRulesArray.getInt("type")];
} catch (Exception e) {
type = null;
}
CustomClassRules customClassRules = new CustomClassRules(country, region, type, detailedFieldTypes);
customClassRulesArray[i] = customClassRules;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return customClassRulesArray;
} else {
return new CustomClassRules[]{};
}
}
}

@@ -17,5 +17,2 @@ package com.microblink.blinkid.reactnative.recognizers.serialization;

}
if (jsonMap.hasKey("allowBlurFilter")) {
recognizer.setAllowBlurFilter(jsonMap.getBoolean("allowBlurFilter"));
}
if (jsonMap.hasKey("allowUnparsedMrzResults")) {

@@ -30,2 +27,14 @@ recognizer.setAllowUnparsedMrzResults(jsonMap.getBoolean("allowUnparsedMrzResults"));

}
if (jsonMap.hasKey("blurStrictnessLevel")) {
recognizer.setBlurStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonMap.getInt("blurStrictnessLevel")]);
}
if (jsonMap.hasKey("customClassRules")) {
recognizer.setCustomClassRules(BlinkIDSerializationUtils.deserializeCustomClassRules(jsonMap.getArray("customClassRules")));
}
if (jsonMap.hasKey("enableBlurFilter")) {
recognizer.setEnableBlurFilter(jsonMap.getBoolean("enableBlurFilter"));
}
if (jsonMap.hasKey("enableGlareFilter")) {
recognizer.setEnableGlareFilter(jsonMap.getBoolean("enableGlareFilter"));
}
if (jsonMap.hasKey("faceImageDpi")) {

@@ -40,2 +49,5 @@ recognizer.setFaceImageDpi(jsonMap.getInt("faceImageDpi"));

}
if (jsonMap.hasKey("glareStrictnessLevel")) {
recognizer.setGlareStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonMap.getInt("glareStrictnessLevel")]);
}
if (jsonMap.hasKey("paddingEdge")) {

@@ -94,2 +106,3 @@ recognizer.setPaddingEdge((float)jsonMap.getDouble("paddingEdge"));

jsonResult.putMap("documentOptionalAdditionalNumber", BlinkIDSerializationUtils.serializeStringResult(result.getDocumentOptionalAdditionalNumber()));
jsonResult.putMap("documentSubtype", BlinkIDSerializationUtils.serializeStringResult(result.getDocumentSubtype()));
jsonResult.putMap("driverLicenseDetailedInfo", BlinkIDSerializationUtils.serializeDriverLicenseDetailedInfo(result.getDriverLicenseDetailedInfo()));

@@ -120,2 +133,4 @@ jsonResult.putMap("employer", BlinkIDSerializationUtils.serializeStringResult(result.getEmployer()));

jsonResult.putMap("religion", BlinkIDSerializationUtils.serializeStringResult(result.getReligion()));
jsonResult.putMap("remarks", BlinkIDSerializationUtils.serializeStringResult(result.getRemarks()));
jsonResult.putMap("residencePermitType", BlinkIDSerializationUtils.serializeStringResult(result.getResidencePermitType()));
jsonResult.putMap("residentialStatus", BlinkIDSerializationUtils.serializeStringResult(result.getResidentialStatus()));

@@ -125,2 +140,3 @@ jsonResult.putMap("sex", BlinkIDSerializationUtils.serializeStringResult(result.getSex()));

jsonResult.putMap("sponsor", BlinkIDSerializationUtils.serializeStringResult(result.getSponsor()));
jsonResult.putMap("visaType", BlinkIDSerializationUtils.serializeStringResult(result.getVisaType()));
jsonResult.putMap("vizResult", BlinkIDSerializationUtils.serializeVizResult(result.getVizResult()));

@@ -127,0 +143,0 @@ return jsonResult;

@@ -34,3 +34,5 @@ #import "MBOverlayViewControllerDelegate.h"

@property (class, nonatomic, readonly) NSString *STATUS_NO_DATA;
@property (class, nonatomic, readonly) NSString *STATUS_INVALID_LICENSE_KEY;
@property (nonatomic, strong) RCTPromiseResolveBlock promiseResolve;

@@ -81,16 +83,17 @@ @property (nonatomic, strong) RCTPromiseRejectBlock promiseReject;

[self setupLicense:jsonLicense];
[self setupLanguage:jsonOverlaySettings];
if([self setupLicense:jsonLicense]) {
[self setupLanguage:jsonOverlaySettings];
self.recognizerCollection = [[MBRecognizerSerializers sharedInstance] deserializeRecognizerCollection:jsonRecognizerCollection];
self.recognizerCollection = [[MBRecognizerSerializers sharedInstance] deserializeRecognizerCollection:jsonRecognizerCollection];
dispatch_sync(dispatch_get_main_queue(), ^{
MBOverlayViewController *overlayVC = [[MBOverlaySettingsSerializers sharedInstance] createOverlayViewController:jsonOverlaySettings recognizerCollection:self.recognizerCollection delegate:self];
dispatch_sync(dispatch_get_main_queue(), ^{
MBOverlayViewController *overlayVC = [[MBOverlaySettingsSerializers sharedInstance] createOverlayViewController:jsonOverlaySettings recognizerCollection:self.recognizerCollection delegate:self];
UIViewController<MBRecognizerRunnerViewController>* recognizerRunnerViewController = [MBViewControllerFactory recognizerRunnerViewControllerWithOverlayViewController:overlayVC];
self.scanningViewController = recognizerRunnerViewController;
UIViewController<MBRecognizerRunnerViewController>* recognizerRunnerViewController = [MBViewControllerFactory recognizerRunnerViewControllerWithOverlayViewController:overlayVC];
self.scanningViewController = recognizerRunnerViewController;
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
[rootViewController presentViewController:self.scanningViewController animated:YES completion:nil];
});
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
[rootViewController presentViewController:self.scanningViewController animated:YES completion:nil];
});
}
}

@@ -108,15 +111,14 @@

[self setupLicense:jsonLicense];
[self setupRecognizerRunner:jsonRecognizerCollection];
[self setupRecognizerRunner:jsonRecognizerCollection];
if (jsonFrontImage[@"frontImage"] != nil) {
UIImage *frontImage = [self convertbase64ToImage:jsonFrontImage[@"frontImage"]];
if (!CGSizeEqualToSize(frontImage.size, CGSizeZero)) {
[self processImage:frontImage];
if( [self setupLicense:jsonLicense]) {
[self setupRecognizerRunner:jsonRecognizerCollection];
if (jsonFrontImage[@"frontImage"] != nil) {
UIImage *frontImage = [self convertbase64ToImage:jsonFrontImage[@"frontImage"]];
if (!CGSizeEqualToSize(frontImage.size, CGSizeZero)) {
[self processImage:frontImage];
} else {
[self handleDirectApiError:MBBlinkIDModule.STATUS_BASE64_ERROR errorMessaege:@"Could not decode Base64 image!"];
}
} else {
[self handleDirectApiError:MBBlinkIDModule.STATUS_BASE64_ERROR errorMessaege:@"Could not decode Base64 image!"];
[self handleDirectApiError:MBBlinkIDModule.STATUS_FRONTSIDE_EMPTY errorMessaege:@"The provided image for the 'frontImage' parameter is empty!"];
}
} else {
[self handleDirectApiError:MBBlinkIDModule.STATUS_FRONTSIDE_EMPTY errorMessaege:@"The provided image for the 'frontImage' parameter is empty!"];
}

@@ -254,3 +256,4 @@ }

- (void) setupLicense:(NSDictionary *)jsonLicense {
- (BOOL) setupLicense:(NSDictionary *)jsonLicense {
__block BOOL isLicenseKeyValid = YES;
if ([jsonLicense objectForKey:@"showTrialLicenseWarning"] != nil) {

@@ -265,2 +268,7 @@ BOOL showTrialLicenseWarning = [[jsonLicense objectForKey:@"showTrialLicenseWarning"] boolValue];

[[MBMicroblinkSDK sharedInstance] setLicenseKey:iosLicense andLicensee:licensee errorCallback:^(MBLicenseError licenseError) {
NSError *error = [NSError errorWithDomain:MBErrorDomain
code:-58
userInfo:nil];
self.promiseReject(MBBlinkIDModule.STATUS_INVALID_LICENSE_KEY, [self licenseErrorToString:licenseError], error);
isLicenseKeyValid = NO;
}];

@@ -270,4 +278,10 @@ }

[[MBMicroblinkSDK sharedInstance] setLicenseKey:iosLicense errorCallback:^(MBLicenseError licenseError) {
NSError *error = [NSError errorWithDomain:MBErrorDomain
code:-58
userInfo:nil];
self.promiseReject(MBBlinkIDModule.STATUS_INVALID_LICENSE_KEY, [self licenseErrorToString:licenseError], error);
isLicenseKeyValid = NO;
}];
}
return isLicenseKeyValid;
}

@@ -285,2 +299,34 @@

- (NSString *)licenseErrorToString:(MBLicenseError)licenseError {
switch(licenseError) {
case MBLicenseErrorNetworkRequired:
return @"License error network required";
break;
case MBLicenseErrorUnableToDoRemoteLicenceCheck:
return @"License error unable to do remote licence check";
break;
case MBLicenseErrorLicenseIsLocked:
return @"License error license is locked";
break;
case MBLicenseErrorLicenseCheckFailed:
return @"License error license check failed";
break;
case MBLicenseErrorInvalidLicense:
return @"License error invalid license";
break;
case MBLicenseErrorPermissionExpired:
return @"License error permission expired";
break;
case MBLicenseErrorPayloadCorrupted:
return @"License error payload corrupted";
break;
case MBLicenseErrorPayloadSignatureVerificationFailed:
return @"License error payload signature verification failed";
break;
case MBLicenseErrorIncorrectTokenState:
return @"License error incorrect token state";
break;
}
}
+ (NSString *)STATUS_FRONTSIDE_EMPTY {

@@ -302,2 +348,6 @@ return @"STATUS_FRONTSIDE_EMPTY";

+ (NSString *)STATUS_INVALID_LICENSE_KEY {
return @"STATUS_INVALID_LICENSE_KEY";
}
@end

@@ -33,2 +33,3 @@ //

+(NSDictionary * _Nonnull) serializeNSDate:(NSDate * _Nullable) value;
+(MBCustomClassRules * _Nonnull) deserializeMBCustomClassRules:(NSDictionary * _Nullable)jsonCustomClassRules;
@end

@@ -211,3 +211,2 @@ //

return @{
@"blurred" : [NSNumber numberWithBool:imageAnalysisResult.blurred],
@"documentImageColorStatus" : [NSNumber numberWithInteger:(imageAnalysisResult.documentImageColorStatus)],

@@ -220,3 +219,6 @@ @"documentImageMoireStatus" : [NSNumber numberWithInteger:(imageAnalysisResult.documentImageMoireStatus)],

@"cardOrientation" : [NSNumber numberWithInteger:(imageAnalysisResult.cardOrientation)],
@"realIdDetectionStatus" : [NSNumber numberWithInteger:(imageAnalysisResult.realIDDetectionStatus)]
@"realIdDetectionStatus" : [NSNumber numberWithInteger:(imageAnalysisResult.realIDDetectionStatus)],
@"blurDetected" : [NSNumber numberWithBool:imageAnalysisResult.blurDetected],
@"glareDetected" : [NSNumber numberWithBool:imageAnalysisResult.glareDetected],
};

@@ -242,57 +244,76 @@ }

+(MBClassAnonymizationSettings *) deserializeMBClassAnonymizationSettings:(NSDictionary *)jsonClassAnonymizationSettings {
if (jsonClassAnonymizationSettings == nil) {
return [[MBClassAnonymizationSettings alloc] init];
if (jsonClassAnonymizationSettings == nil) {
return [[MBClassAnonymizationSettings alloc] init];
}
NSArray<NSNumber *> *fields = [jsonClassAnonymizationSettings objectForKey:@"fields"];
NSMutableArray<NSNumber *> *newFields = [[NSMutableArray alloc] init];
for (NSNumber *field in fields) {
[newFields addObject:field];
}
NSDictionary *jsonDocumentNumberAnonymizationSettings = [jsonClassAnonymizationSettings valueForKey:@"documentNumberAnonymizationSettings"];
if (jsonDocumentNumberAnonymizationSettings != nil && ![jsonDocumentNumberAnonymizationSettings isEqual:[NSNull null]]) {
MBDocumentNumberAnonymizationSettings *documentNumberAnonymizationSettings = [[MBDocumentNumberAnonymizationSettings alloc] initWithPrefixDigitsVisible:[[jsonDocumentNumberAnonymizationSettings valueForKey:@"prefixDigitsVisible"] integerValue] suffixDigitsVisible:[[jsonDocumentNumberAnonymizationSettings valueForKey:@"suffixDigitsVisible"] integerValue]];
if ([jsonClassAnonymizationSettings valueForKey:@"country"] != nil||
[jsonClassAnonymizationSettings valueForKey:@"region"] != nil ||
[jsonClassAnonymizationSettings valueForKey:@"type"] != nil) {
MBClassFilter *classInfoFilter = [self deserializeClassInfoFilter:jsonClassAnonymizationSettings];
return [[MBClassAnonymizationSettings alloc] initWithClassFilter:classInfoFilter documentNumberAnonymizationSettings:documentNumberAnonymizationSettings fields:newFields];
} else {
return [[MBClassAnonymizationSettings alloc] initWithFields:newFields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
}
} else {
NSArray<NSNumber *> *fields = [jsonClassAnonymizationSettings objectForKey:@"fields"];
NSMutableArray<NSNumber *> *newFields = [[NSMutableArray alloc] init];
return [[MBClassAnonymizationSettings alloc] initWithFields:newFields documentNumberAnonymizationSettings:nil];
}
}
for (NSNumber *field in fields) {
[newFields addObject:field];
+(MBCustomClassRules *) deserializeMBCustomClassRules:(NSDictionary *)jsonCustomClassRules {
if (jsonCustomClassRules == nil) {
return [[MBCustomClassRules alloc] initWithClassFilter:nil fields:nil];
} else {
NSArray<NSNumber *> *detailedFieldTypes = [jsonCustomClassRules objectForKey:@"detailedFieldTypes"];
NSMutableArray<MBDetailedFieldType *> *newDetailedFieldTypes = [[NSMutableArray alloc] init];
for (NSNumber *detailedfield in detailedFieldTypes) {
NSNumber *fieldType = [detailedfield valueForKey:@"fieldType"];
NSNumber *alphabetType = [detailedfield valueForKey:@"alphabetType"];
MBDetailedFieldType *detailedFieldType = [[MBDetailedFieldType alloc] initWithFieldType:[fieldType integerValue] alphabetType: [alphabetType integerValue]];
[newDetailedFieldTypes addObject:detailedFieldType];
}
NSNumber *country = [jsonClassAnonymizationSettings valueForKey:@"country"];
NSNumber *region = [jsonClassAnonymizationSettings valueForKey:@"region"];
NSNumber *type = [jsonClassAnonymizationSettings valueForKey:@"type"];
NSDictionary *jsonDocumentNumberAnonymizationSettings = [jsonClassAnonymizationSettings valueForKey:@"documentNumberAnonymizationSettings"];
if (![jsonDocumentNumberAnonymizationSettings isEqual:[NSNull null]] && jsonDocumentNumberAnonymizationSettings != nil) {
MBDocumentNumberAnonymizationSettings *documentNumberAnonymizationSettings = [[MBDocumentNumberAnonymizationSettings alloc] initWithPrefixDigitsVisible:[[jsonDocumentNumberAnonymizationSettings valueForKey:@"prefixDigitsVisible"] integerValue] suffixDigitsVisible:[[jsonDocumentNumberAnonymizationSettings valueForKey:@"suffixDigitsVisible"] integerValue]];
if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![region isEqual:[NSNull null]] && region.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue region:region.integerValue type:type.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil){
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue type:type.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![region isEqual:[NSNull null]] && region.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue region:region.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![region isEqual:[NSNull null]] && region.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithRegion:region.integerValue type:type.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![region isEqual:[NSNull null]] && region.integerValue != nil) {
return [[MBClassAnonymizationSettings alloc] initWithRegion:region.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else if (![type isEqual:[NSNull null]] && type.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithType:type.integerValue fields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
}
return [[MBClassAnonymizationSettings alloc] initWithFields:fields documentNumberAnonymizationSettings:documentNumberAnonymizationSettings];
} else {
if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![region isEqual:[NSNull null]] && region.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue region:region.integerValue type:type.integerValue fields:fields];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil){
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue type:type.integerValue fields:fields];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil && ![region isEqual:[NSNull null]] && region.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue region:region.integerValue fields:fields];
} else if (![region isEqual:[NSNull null]] && region.integerValue != nil && ![type isEqual:[NSNull null]] && type.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithRegion:region.integerValue type:type.integerValue fields:fields];
} else if (![country isEqual:[NSNull null]] && country.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithCountry:country.integerValue fields:fields];
} else if (![region isEqual:[NSNull null]] && region.integerValue != nil) {
return [[MBClassAnonymizationSettings alloc] initWithRegion:region.integerValue fields:fields];
} else if (![type isEqual:[NSNull null]] && type.integerValue != nil ) {
return [[MBClassAnonymizationSettings alloc] initWithType:type.integerValue fields:fields];
}
}
return [[MBClassAnonymizationSettings alloc] initWithFields:fields];
MBClassFilter *classFilter = [self deserializeClassInfoFilter:jsonCustomClassRules];
return [[MBCustomClassRules alloc] initWithClassFilter:classFilter fields:newDetailedFieldTypes];
}
}
+(MBClassFilter *)deserializeClassInfoFilter:(NSDictionary *)jsonClassInfoFilter {
if (jsonClassInfoFilter == nil) {
return [[MBClassFilter alloc] init];
}
NSNumber *country = [jsonClassInfoFilter valueForKey:@"country"];
NSNumber *region = [jsonClassInfoFilter valueForKey:@"region"];
NSNumber *type = [jsonClassInfoFilter valueForKey:@"type"];
MBClassFilterBuilder *classFilterBuilder = [[MBClassFilterBuilder alloc] init];
if (![country isEqual:[NSNull null]] && country.integerValue != nil ) {
[classFilterBuilder withCountry:country.integerValue];
}
if (![region isEqual:[NSNull null]] && region.integerValue != nil ) {
[classFilterBuilder withRegion:region.integerValue];
}
if (![type isEqual:[NSNull null]] && type.integerValue != nil ) {
[classFilterBuilder withType:type.integerValue];
}
return [classFilterBuilder build];
}
+(NSDictionary * _Nonnull) serializeBarcodeElements:(MBBarcodeElements * _Nonnull)extendedElements {

@@ -299,0 +320,0 @@ return @{

@@ -216,2 +216,23 @@ //

}
{
id iOSCameraResolutionPreset = [jsonOverlaySettings valueForKey: @"iosCameraResolutionPreset"];
if (iOSCameraResolutionPreset != nil) {
sett.cameraSettings.cameraPreset = [iOSCameraResolutionPreset integerValue];
}
}
{
id errorBlurDetected = [jsonOverlaySettings valueForKey:@"errorBlurDetected"];
if (errorBlurDetected != nil) {
sett.blurDetectedMessage = (NSString *)errorBlurDetected;
}
}
{
id errorGlareDetected = [jsonOverlaySettings valueForKey:@"errorGlareDetected"];
if (errorGlareDetected != nil) {
sett.glareDetectedMessage = (NSString *)errorGlareDetected;
}
}

@@ -218,0 +239,0 @@ return [[MBBlinkIdOverlayViewController alloc] initWithSettings:sett recognizerCollection:recognizerCollection delegate:self];

@@ -31,8 +31,2 @@ #import "MBBlinkIdMultiSideRecognizerWrapper.h"

{
id allowBlurFilter = [jsonRecognizer valueForKey:@"allowBlurFilter"];
if (allowBlurFilter != nil) {
recognizer.allowBlurFilter = [(NSNumber *)allowBlurFilter boolValue];
}
}
{
id allowUncertainFrontSideScan = [jsonRecognizer valueForKey:@"allowUncertainFrontSideScan"];

@@ -62,2 +56,30 @@ if (allowUncertainFrontSideScan != nil) {

{
id blurStrictnessLevel = [jsonRecognizer valueForKey:@"blurStrictnessLevel"];
if (blurStrictnessLevel != nil) {
recognizer.blurStrictnessLevel = (MBStrictnessLevel)[(NSNumber *)blurStrictnessLevel unsignedIntegerValue];
}
}
{
id customClassRules = [jsonRecognizer valueForKey:@"customClassRules"];
if (customClassRules != nil) {
NSArray<NSDictionary *> *ruleClasses = customClassRules;
for (NSDictionary *class in ruleClasses) {
MBCustomClassRules *rule = [MBBlinkIDSerializationUtils deserializeMBCustomClassRules:(NSDictionary*)class];
[recognizer recognizerAddClassRulesToCustomClassRules:rule];
}
}
}
{
id enableBlurFilter = [jsonRecognizer valueForKey:@"enableBlurFilter"];
if (enableBlurFilter != nil) {
recognizer.enableBlurFilter = [(NSNumber *)enableBlurFilter boolValue];
}
}
{
id enableGlareFilter = [jsonRecognizer valueForKey:@"enableGlareFilter"];
if (enableGlareFilter != nil) {
recognizer.enableGlareFilter = [(NSNumber *)enableGlareFilter boolValue];
}
}
{
id faceImageDpi = [jsonRecognizer valueForKey:@"faceImageDpi"];

@@ -81,2 +103,8 @@ if (faceImageDpi != nil) {

{
id glareStrictnessLevel = [jsonRecognizer valueForKey:@"glareStrictnessLevel"];
if (glareStrictnessLevel != nil) {
recognizer.glareStrictnessLevel = (MBStrictnessLevel)[(NSNumber *)glareStrictnessLevel unsignedIntegerValue];
}
}
{
id maxAllowedMismatchesPerField = [jsonRecognizer valueForKey:@"maxAllowedMismatchesPerField"];

@@ -183,2 +211,3 @@ if (maxAllowedMismatchesPerField != nil) {

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.documentOptionalAdditionalNumber] forKey:@"documentOptionalAdditionalNumber"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.documentSubtype] forKey:@"documentSubtype"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeDriverLicenseDetailedInfo:self.result.driverLicenseDetailedInfo] forKey:@"driverLicenseDetailedInfo"];

@@ -214,2 +243,4 @@ [jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.employer] forKey:@"employer"];

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.religion] forKey:@"religion"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.remarks] forKey:@"remarks"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.residencePermitType] forKey:@"residencePermitType"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.residentialStatus] forKey:@"residentialStatus"];

@@ -220,2 +251,3 @@ [jsonResult setValue:[NSNumber numberWithBool:self.result.scanningFirstSideDone] forKey:@"scanningFirstSideDone"];

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.sponsor] forKey:@"sponsor"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.visaType] forKey:@"visaType"];

@@ -222,0 +254,0 @@ return jsonResult;

@@ -31,8 +31,2 @@ #import "MBBlinkIdSingleSideRecognizerWrapper.h"

{
id allowBlurFilter = [jsonRecognizer valueForKey:@"allowBlurFilter"];
if (allowBlurFilter != nil) {
recognizer.allowBlurFilter = [(NSNumber *)allowBlurFilter boolValue];
}
}
{
id allowUnparsedMrzResults = [jsonRecognizer valueForKey:@"allowUnparsedMrzResults"];

@@ -56,2 +50,30 @@ if (allowUnparsedMrzResults != nil) {

{
id blurStrictnessLevel = [jsonRecognizer valueForKey:@"blurStrictnessLevel"];
if (blurStrictnessLevel != nil) {
recognizer.blurStrictnessLevel = (MBStrictnessLevel)[(NSNumber *)blurStrictnessLevel unsignedIntegerValue];
}
}
{
id customClassRules = [jsonRecognizer valueForKey:@"customClassRules"];
if (customClassRules != nil) {
NSArray<NSDictionary *> *ruleClasses = customClassRules;
for (NSDictionary *class in ruleClasses) {
MBCustomClassRules *rule = [MBBlinkIDSerializationUtils deserializeMBCustomClassRules:(NSDictionary*)class];
[recognizer recognizerAddClassRulesToCustomClassRules:rule];
}
}
}
{
id enableBlurFilter = [jsonRecognizer valueForKey:@"enableBlurFilter"];
if (enableBlurFilter != nil) {
recognizer.enableBlurFilter = [(NSNumber *)enableBlurFilter boolValue];
}
}
{
id enableGlareFilter = [jsonRecognizer valueForKey:@"enableGlareFilter"];
if (enableGlareFilter != nil) {
recognizer.enableGlareFilter = [(NSNumber *)enableGlareFilter boolValue];
}
}
{
id faceImageDpi = [jsonRecognizer valueForKey:@"faceImageDpi"];

@@ -75,2 +97,8 @@ if (faceImageDpi != nil) {

{
id glareStrictnessLevel = [jsonRecognizer valueForKey:@"glareStrictnessLevel"];
if (glareStrictnessLevel != nil) {
recognizer.glareStrictnessLevel = (MBStrictnessLevel)[(NSNumber *)glareStrictnessLevel unsignedIntegerValue];
}
}
{
id paddingEdge = [jsonRecognizer valueForKey:@"paddingEdge"];

@@ -160,2 +188,3 @@ if (paddingEdge != nil) {

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.documentOptionalAdditionalNumber] forKey:@"documentOptionalAdditionalNumber"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.documentSubtype] forKey:@"documentSubtype"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeDriverLicenseDetailedInfo:self.result.driverLicenseDetailedInfo] forKey:@"driverLicenseDetailedInfo"];

@@ -186,2 +215,4 @@ [jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.employer] forKey:@"employer"];

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.religion] forKey:@"religion"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.remarks] forKey:@"remarks"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.residencePermitType] forKey:@"residencePermitType"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.residentialStatus] forKey:@"residentialStatus"];

@@ -191,2 +222,3 @@ [jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.sex] forKey:@"sex"];

[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.sponsor] forKey:@"sponsor"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.visaType] forKey:@"visaType"];
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeVizResult:self.result.vizResult] forKey:@"vizResult"];

@@ -193,0 +225,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display