Skip to content

Commit 6309c6e

Browse files
authored
Merge pull request #72 from BlinkID/release/6.10
Release/6.10
2 parents 5b63ede + 77a9319 commit 6309c6e

17 files changed

Lines changed: 157 additions & 19 deletions

BlinkID/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ android {
3838
}
3939

4040
dependencies {
41-
implementation('com.microblink:blinkid:6.9.0@aar') {
41+
implementation('com.microblink:blinkid:6.10.0@aar') {
4242
transitive = true
4343
}
4444
}

BlinkID/android/src/main/java/com/microblink/blinkid/flutter/recognizers/serialization/BlinkIDSerializationUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,14 @@ public static JSONObject serializeAdditionalProcessingInfo(AdditionalProcessingI
197197
for (int i = 0; i < additionalProcessingInfo.getExtraPresentFields().length; ++i) {
198198
extraPresentFieldsArr.put(SerializationUtils.serializeEnum(additionalProcessingInfo.getExtraPresentFields()[i]));
199199
}
200+
JSONArray imageExtractionFailuresArr = new JSONArray();
201+
for (int i = 0; i < additionalProcessingInfo.getImageExtractionFailures().length; ++i) {
202+
imageExtractionFailuresArr.put(SerializationUtils.serializeEnum(additionalProcessingInfo.getImageExtractionFailures()[i]));
203+
}
200204
jsonAdditionalProcessingInfo.put("missingMandatoryFields", missingMandatoryFieldsArr);
201205
jsonAdditionalProcessingInfo.put("invalidCharacterFields", invalidCharacterFieldsArr);
202206
jsonAdditionalProcessingInfo.put("extraPresentFields", extraPresentFieldsArr);
207+
jsonAdditionalProcessingInfo.put("imageExtractionFailures", imageExtractionFailuresArr);
203208
return jsonAdditionalProcessingInfo;
204209
}
205210

BlinkID/android/src/main/java/com/microblink/blinkid/flutter/recognizers/serialization/BlinkIdMultiSideRecognizerSerialization.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ public final class BlinkIdMultiSideRecognizerSerialization implements Recognizer
1313
public Recognizer<?> createRecognizer(JSONObject jsonObject) {
1414
com.microblink.blinkid.entities.recognizers.blinkid.generic.BlinkIdMultiSideRecognizer recognizer = new com.microblink.blinkid.entities.recognizers.blinkid.generic.BlinkIdMultiSideRecognizer();
1515
recognizer.setAdditionalAnonymization(BlinkIDSerializationUtils.deserializeClassAnonymizationSettings(jsonObject.optJSONArray("additionalAnonymization")));
16+
recognizer.setAllowBarcodeScanOnly(jsonObject.optBoolean("allowBarcodeScanOnly", false));
1617
recognizer.setAllowUncertainFrontSideScan(jsonObject.optBoolean("allowUncertainFrontSideScan", false));
1718
recognizer.setAllowUnparsedMrzResults(jsonObject.optBoolean("allowUnparsedMrzResults", false));
1819
recognizer.setAllowUnverifiedMrzResults(jsonObject.optBoolean("allowUnverifiedMrzResults", true));
1920
recognizer.setAnonymizationMode(com.microblink.blinkid.entities.recognizers.blinkid.generic.AnonymizationMode.values()[jsonObject.optInt("anonymizationMode", 3)]);
2021
recognizer.setBlurStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonObject.optInt("blurStrictnessLevel", 1)]);
22+
recognizer.setCombineFrameResults(jsonObject.optBoolean("combineFrameResults", true));
2123
recognizer.setCustomClassRules(BlinkIDSerializationUtils.deserializeCustomClassRules(jsonObject.optJSONArray("customClassRules")));
2224
recognizer.setEnableBlurFilter(jsonObject.optBoolean("enableBlurFilter", true));
2325
recognizer.setEnableGlareFilter(jsonObject.optBoolean("enableGlareFilter", true));
@@ -57,6 +59,7 @@ public JSONObject serializeResult(Recognizer<?> recognizer) {
5759
jsonResult.put("backVizResult", BlinkIDSerializationUtils.serializeVizResult(result.getBackVizResult()));
5860
jsonResult.put("barcodeCameraFrame", SerializationUtils.encodeImageBase64(result.getBarcodeCameraFrame()));
5961
jsonResult.put("barcodeResult", BlinkIDSerializationUtils.serializeBarcodeResult(result.getBarcodeResult()));
62+
jsonResult.put("barcodeStepUsed", result.isBarcodeStepUsed());
6063
jsonResult.put("bloodType", BlinkIDSerializationUtils.serializeStringResult(result.getBloodType()));
6164
jsonResult.put("classInfo", BlinkIDSerializationUtils.serializeClassInfo(result.getClassInfo()));
6265
jsonResult.put("dataMatch", BlinkIDSerializationUtils.serializeDataMatchResult(result.getDataMatch()));

BlinkID/android/src/main/java/com/microblink/blinkid/flutter/recognizers/serialization/BlinkIdSingleSideRecognizerSerialization.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ public final class BlinkIdSingleSideRecognizerSerialization implements Recognize
1313
public Recognizer<?> createRecognizer(JSONObject jsonObject) {
1414
com.microblink.blinkid.entities.recognizers.blinkid.generic.BlinkIdSingleSideRecognizer recognizer = new com.microblink.blinkid.entities.recognizers.blinkid.generic.BlinkIdSingleSideRecognizer();
1515
recognizer.setAdditionalAnonymization(BlinkIDSerializationUtils.deserializeClassAnonymizationSettings(jsonObject.optJSONArray("additionalAnonymization")));
16+
recognizer.setAllowBarcodeScanOnly(jsonObject.optBoolean("allowBarcodeScanOnly", false));
1617
recognizer.setAllowUnparsedMrzResults(jsonObject.optBoolean("allowUnparsedMrzResults", false));
1718
recognizer.setAllowUnverifiedMrzResults(jsonObject.optBoolean("allowUnverifiedMrzResults", true));
1819
recognizer.setAnonymizationMode(com.microblink.blinkid.entities.recognizers.blinkid.generic.AnonymizationMode.values()[jsonObject.optInt("anonymizationMode", 3)]);
1920
recognizer.setBlurStrictnessLevel(com.microblink.blinkid.entities.recognizers.blinkid.generic.imageanalysis.StrictnessLevel.values()[jsonObject.optInt("blurStrictnessLevel", 1)]);
21+
recognizer.setCombineFrameResults(jsonObject.optBoolean("combineFrameResults", true));
2022
recognizer.setCustomClassRules(BlinkIDSerializationUtils.deserializeCustomClassRules(jsonObject.optJSONArray("customClassRules")));
2123
recognizer.setEnableBlurFilter(jsonObject.optBoolean("enableBlurFilter", true));
2224
recognizer.setEnableGlareFilter(jsonObject.optBoolean("enableGlareFilter", true));
@@ -50,6 +52,7 @@ public JSONObject serializeResult(Recognizer<?> recognizer) {
5052
jsonResult.put("age", result.getAge());
5153
jsonResult.put("barcodeCameraFrame", SerializationUtils.encodeImageBase64(result.getBarcodeCameraFrame()));
5254
jsonResult.put("barcodeResult", BlinkIDSerializationUtils.serializeBarcodeResult(result.getBarcodeResult()));
55+
jsonResult.put("barcodeStepUsed", result.isBarcodeStepUsed());
5356
jsonResult.put("bloodType", BlinkIDSerializationUtils.serializeStringResult(result.getBloodType()));
5457
jsonResult.put("cameraFrame", SerializationUtils.encodeImageBase64(result.getCameraFrame()));
5558
jsonResult.put("classInfo", BlinkIDSerializationUtils.serializeClassInfo(result.getClassInfo()));

BlinkID/ios/Classes/MicroblinkModule/MBBlinkIDSerializationUtils.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,8 @@ +(NSDictionary *)serializeAdditionalProcessingInfo:(MBAdditionalProcessingInfo *
332332
return @{
333333
@"missingMandatoryFields": additionalProcessingInfo.missingMandatoryFields,
334334
@"invalidCharacterFields" : additionalProcessingInfo.invalidCharacterFields,
335-
@"extraPresentFields": additionalProcessingInfo.extraPresentFields
335+
@"extraPresentFields": additionalProcessingInfo.extraPresentFields,
336+
@"imageExtractionFailures": additionalProcessingInfo.imageExtractionFailures
336337
};
337338
}
338339

BlinkID/ios/Classes/MicroblinkModule/Recognizers/Wrappers/MBBlinkIdMultiSideRecognizerWrapper.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ -(MBRecognizer *) createRecognizer:(NSDictionary*) jsonRecognizer {
2727
}
2828
}
2929
}
30+
{
31+
id allowBarcodeScanOnly = [jsonRecognizer valueForKey:@"allowBarcodeScanOnly"];
32+
if (allowBarcodeScanOnly != nil) {
33+
recognizer.allowBarcodeScanOnly = [(NSNumber *)allowBarcodeScanOnly boolValue];
34+
}
35+
}
3036
{
3137
id allowUncertainFrontSideScan = [jsonRecognizer valueForKey:@"allowUncertainFrontSideScan"];
3238
if (allowUncertainFrontSideScan != nil) {
@@ -57,6 +63,12 @@ -(MBRecognizer *) createRecognizer:(NSDictionary*) jsonRecognizer {
5763
recognizer.blurStrictnessLevel = [(NSNumber *)blurStrictnessLevel unsignedIntegerValue];
5864
}
5965
}
66+
{
67+
id combineFrameResults = [jsonRecognizer valueForKey:@"combineFrameResults"];
68+
if (combineFrameResults != nil) {
69+
recognizer.combineFrameResults = [(NSNumber *)combineFrameResults boolValue];
70+
}
71+
}
6072
{
6173
id customClassRules = [jsonRecognizer valueForKey:@"customClassRules"];
6274
if (customClassRules != nil) {
@@ -194,6 +206,7 @@ -(NSDictionary *) serializeResult {
194206
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeVizResult:self.result.backVizResult] forKey:@"backVizResult"];
195207
[jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.barcodeCameraFrame] forKey:@"barcodeCameraFrame"];
196208
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeBarcodeResult:self.result.barcodeResult] forKey:@"barcodeResult"];
209+
[jsonResult setValue:[NSNumber numberWithBool:self.result.barcodeStepUsed] forKey:@"barcodeStepUsed"];
197210
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.bloodType] forKey:@"bloodType"];
198211
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeClassInfo:self.result.classInfo] forKey:@"classInfo"];
199212
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeDataMatchResult:self.result.dataMatchResult] forKey:@"dataMatch"];

BlinkID/ios/Classes/MicroblinkModule/Recognizers/Wrappers/MBBlinkIdSingleSideRecognizerWrapper.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ -(MBRecognizer *) createRecognizer:(NSDictionary*) jsonRecognizer {
2727
}
2828
}
2929
}
30+
{
31+
id allowBarcodeScanOnly = [jsonRecognizer valueForKey:@"allowBarcodeScanOnly"];
32+
if (allowBarcodeScanOnly != nil) {
33+
recognizer.allowBarcodeScanOnly = [(NSNumber *)allowBarcodeScanOnly boolValue];
34+
}
35+
}
3036
{
3137
id allowUnparsedMrzResults = [jsonRecognizer valueForKey:@"allowUnparsedMrzResults"];
3238
if (allowUnparsedMrzResults != nil) {
@@ -51,6 +57,12 @@ -(MBRecognizer *) createRecognizer:(NSDictionary*) jsonRecognizer {
5157
recognizer.blurStrictnessLevel = [(NSNumber *)blurStrictnessLevel unsignedIntegerValue];
5258
}
5359
}
60+
{
61+
id combineFrameResults = [jsonRecognizer valueForKey:@"combineFrameResults"];
62+
if (combineFrameResults != nil) {
63+
recognizer.combineFrameResults = [(NSNumber *)combineFrameResults boolValue];
64+
}
65+
}
5466
{
5567
id customClassRules = [jsonRecognizer valueForKey:@"customClassRules"];
5668
if (customClassRules != nil) {
@@ -172,6 +184,7 @@ -(NSDictionary *) serializeResult {
172184
[jsonResult setValue:[NSNumber numberWithInteger:self.result.age] forKey:@"age"];
173185
[jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.barcodeCameraFrame] forKey:@"barcodeCameraFrame"];
174186
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeBarcodeResult:self.result.barcodeResult] forKey:@"barcodeResult"];
187+
[jsonResult setValue:[NSNumber numberWithBool:self.result.barcodeStepUsed] forKey:@"barcodeStepUsed"];
175188
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeMBStringResult:self.result.bloodType] forKey:@"bloodType"];
176189
[jsonResult setValue:[MBSerializationUtils encodeMBImage:self.result.cameraFrame] forKey:@"cameraFrame"];
177190
[jsonResult setValue:[MBBlinkIDSerializationUtils serializeClassInfo:self.result.classInfo] forKey:@"classInfo"];

BlinkID/ios/blinkid_flutter.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
Pod::Spec.new do |s|
66
s.name = 'blinkid_flutter'
7-
s.version = '6.9.0'
7+
s.version = '6.10.0'
88
s.summary = 'A new flutter plugin project.'
99
s.description = <<-DESC
1010
A new flutter plugin project.
@@ -18,7 +18,7 @@ A new flutter plugin project.
1818
s.dependency 'Flutter'
1919
s.platform = :ios, '13.0'
2020

21-
s.dependency 'PPBlinkID', '~> 6.9.0'
21+
s.dependency 'PPBlinkID', '~> 6.10.1'
2222

2323
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
2424
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }

BlinkID/lib/recognizers/blink_id_multi_side_recognizer.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ class BlinkIdMultiSideRecognizerResult extends RecognizerResult {
4545
///Defines the data extracted from the barcode.
4646
BarcodeResult? barcodeResult;
4747

48+
///This member indicates whether the barcode scanning step was utilized during the
49+
/// process.
50+
/// If the barcode scanning step was executed: a parsable barcode image will be stored in the
51+
/// `barcodeCameraFrame`.
52+
/// If the barcode scanning step was not executed: a parsable barcode image will be stored in the
53+
/// `fullDocumentImage`.
54+
bool? barcodeStepUsed;
55+
4856
///The blood type of the document owner.
4957
StringResult? bloodType;
5058

@@ -231,6 +239,8 @@ class BlinkIdMultiSideRecognizerResult extends RecognizerResult {
231239

232240
this.barcodeResult = nativeResult["barcodeResult"] != null ? BarcodeResult(Map<String, dynamic>.from(nativeResult["barcodeResult"])) : null;
233241

242+
this.barcodeStepUsed = nativeResult["barcodeStepUsed"];
243+
234244
this.bloodType = nativeResult["bloodType"] != null ? StringResult(Map<String, dynamic>.from(nativeResult["bloodType"])) : null;
235245

236246
this.classInfo = nativeResult["classInfo"] != null ? ClassInfo(Map<String, dynamic>.from(nativeResult["classInfo"])) : null;
@@ -343,6 +353,15 @@ class BlinkIdMultiSideRecognizer extends Recognizer {
343353
344354
List<ClassAnonymizationSettings> additionalAnonymization = [];
345355

356+
///Allows barcode recognition to proceed even if the initial extraction fails.
357+
/// This only works for still images - video feeds will ignore this setting.
358+
/// If the barcode recognition is successful, the recognizer will still end in a valid state.
359+
/// This setting is applicable only to photo frames. For multi-side recognizers, it is permitted only for the back side.
360+
///
361+
///
362+
363+
bool allowBarcodeScanOnly = false;
364+
346365
///Proceed with scanning the back side even if the front side result is uncertain.
347366
/// This only works for still images - video feeds will ignore this setting.
348367
///
@@ -376,6 +395,14 @@ class BlinkIdMultiSideRecognizer extends Recognizer {
376395
377396
StrictnessLevel blurStrictnessLevel = StrictnessLevel.Normal;
378397

398+
///Enables the aggregation of data from multiple frames.
399+
/// Disabling this setting will yield higher-quality captured images, but it may slow down the scanning process due to the additional effort required to find the optimal frame.
400+
/// Enabling this setting will simplify the extraction process, but the extracted data will be aggregated from multiple frames instead of being sourced from a single frame.
401+
///
402+
///
403+
404+
bool combineFrameResults = true;
405+
379406
///Get custom class rules.
380407
381408
List<CustomClassRules> customClassRules = [];

BlinkID/lib/recognizers/blink_id_multi_side_recognizer.g.dart

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)