Skip to content

Commit

Permalink
Merge pull request #243 from BlinkID/release/5.10.0
Browse files Browse the repository at this point in the history
Release/5.10.0
  • Loading branch information
i1E authored Feb 19, 2021
2 parents 9e2ccdc + 9155d4f commit 04d5af0
Show file tree
Hide file tree
Showing 65 changed files with 7,026 additions and 1,023 deletions.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public String getTitle() {
}

@NonNull
Runnable getOnClickAction() {
public Runnable getOnClickAction() {
return mOnClickAction;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import android.content.Intent;
import android.widget.Toast;

import com.microblink.menu.BaseMenuActivity;

public abstract class ResultHandlerMenuActivity extends BaseMenuActivity {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ protected void add(int key, DateResult date) {

protected void addIfNotEmpty(int key, DateResult dateResult) {
Date date = dateResult.getDate();
if (date != null && date.getDay() > 0) {
mExtractedData.add(mBuilder.build(key, date));
if (date != null) {
add(key, dateResult);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import com.microblink.entities.recognizers.blinkid.generic.barcode.BarcodeResult;
import com.microblink.entities.recognizers.blinkid.generic.classinfo.ClassInfo;
import com.microblink.entities.recognizers.blinkid.generic.viz.VizResult;
import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElementKey;
import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElements;
import com.microblink.entities.recognizers.blinkid.mrtd.MrzResult;
import com.microblink.libutils.R;
import com.microblink.result.ResultSource;
Expand Down Expand Up @@ -92,6 +94,10 @@ private void extractMixedResults(BlinkIdCombinedRecognizer.Result result) {
add(R.string.PPClassInfoCountry, classInfo.getCountry().name());
add(R.string.PPClassInfoRegion, classInfo.getRegion().name());
add(R.string.PPClassInfoType, classInfo.getType().name());
add(R.string.PPClassInfoCountryName, classInfo.getCountryName());
add(R.string.PPClassInfoIsoNumericCountryCode, classInfo.getIsoNumericCountryCode());
add(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
add(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());

add(R.string.MBDocumentFrontImageBlurred, result.getFrontImageAnalysisResult().isBlurred());
add(R.string.MBDocumentFrontImageColorStatus, result.getFrontImageAnalysisResult().getDocumentImageColorStatus().name());
Expand Down Expand Up @@ -202,6 +208,16 @@ private void extractBarcodeResults(BarcodeResult result) {
addIfNotEmpty(R.string.PPConditions, driverLicenseInfo.getConditions());
}

BarcodeElements extendedElements = result.getExtendedElements();
if (!extendedElements.isEmpty()) {
for (BarcodeElementKey key: BarcodeElementKey.values()) {
String barcodeElement = extendedElements.getValue(key);
if (!barcodeElement.isEmpty()) {
add(R.string.PPExtendedBarcodeData, key.name() + ": " + barcodeElement);
}
}
}

addIfNotEmpty(R.string.PPBarcodeType, result.getBarcodeType().name());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import com.microblink.entities.recognizers.blinkid.generic.barcode.BarcodeResult;
import com.microblink.entities.recognizers.blinkid.generic.classinfo.ClassInfo;
import com.microblink.entities.recognizers.blinkid.generic.viz.VizResult;
import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElementKey;
import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElements;
import com.microblink.entities.recognizers.blinkid.mrtd.MrzResult;
import com.microblink.libutils.R;
import com.microblink.result.ResultSource;
Expand Down Expand Up @@ -92,6 +94,10 @@ private void extractMixedResults(BlinkIdRecognizer.Result result) {
add(R.string.PPClassInfoCountry, classInfo.getCountry().name());
add(R.string.PPClassInfoRegion, classInfo.getRegion().name());
add(R.string.PPClassInfoType, classInfo.getType().name());
add(R.string.PPClassInfoCountryName, classInfo.getCountryName());
add(R.string.PPClassInfoIsoNumericCountryCode, classInfo.getIsoNumericCountryCode());
add(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
add(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());

add(R.string.MBDocumentImageBlurred, result.getImageAnalysisResult().isBlurred());
add(R.string.MBDocumentImageColorStatus, result.getImageAnalysisResult().getDocumentImageColorStatus().name());
Expand Down Expand Up @@ -193,6 +199,16 @@ private void extractBarcodeResults(BarcodeResult result) {
addIfNotEmpty(R.string.PPConditions, driverLicenseInfo.getConditions());
}

BarcodeElements extendedElements = result.getExtendedElements();
if (!extendedElements.isEmpty()) {
for (BarcodeElementKey key: BarcodeElementKey.values()) {
String barcodeElement = extendedElements.getValue(key);
if (!barcodeElement.isEmpty()) {
add(R.string.PPExtendedBarcodeData, key.name() + ": " + barcodeElement);
}
}
}

addIfNotEmpty(R.string.PPBarcodeType, result.getBarcodeType().name());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.microblink.result.extract.blinkid.idbarcode;

import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElementKey;
import com.microblink.entities.recognizers.blinkid.idbarcode.BarcodeElements;
import com.microblink.entities.recognizers.blinkid.idbarcode.IdBarcodeRecognizer;
import com.microblink.libutils.R;
import com.microblink.result.extract.BaseResultExtractor;
Expand Down Expand Up @@ -50,6 +52,16 @@ protected void extractData(IdBarcodeRecognizer.Result result) {
add(R.string.PPBarcodeData, result.getStringData());
byte[] rawDataBytes = result.getRawData();
add(R.string.PPBarcodeRawData, Arrays.toString(rawDataBytes));

BarcodeElements extendedElements = result.getExtendedElements();
if (!extendedElements.isEmpty()) {
for (BarcodeElementKey key: BarcodeElementKey.values()) {
String barcodeElement = extendedElements.getValue(key);
if (!barcodeElement.isEmpty()) {
add(R.string.PPExtendedBarcodeData, key.name() + ": " + barcodeElement);
}
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,10 @@
<string name="PPClassInfoCountry">Country</string>
<string name="PPClassInfoRegion">Region</string>
<string name="PPClassInfoType">Type</string>
<string name="PPClassInfoCountryName">Country name</string>
<string name="PPClassInfoIsoNumericCountryCode">ISO numeric country code</string>
<string name="PPClassInfoIsoAlpha2CountryCode">ISO two letter country code</string>
<string name="PPClassInfoIsoAlpha3CountryCode">ISO three letter country code</string>

<string name="MBRecognitionStatus">Recognition status</string>
<string name="MBFullDocumentImage">Full document image</string>
Expand Down
4 changes: 2 additions & 2 deletions BlinkIDSample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ allprojects {
// versions of libraries that all modules require

project.ext {
blinkIdVersion = '5.9.0'
blinkIdVersion = '5.10.0'
compileSdkVersion = 30
targetSdkVersion = 30
appCompatVersion = '1.1.0'
appCompatVersion = '1.2.0'
}
Binary file modified LibBlinkID-javadoc.jar
Binary file not shown.
Binary file modified LibBlinkID.aar
Binary file not shown.
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Add _BlinkID_ as a dependency and make sure `transitive` is set to true

```
dependencies {
implementation('com.microblink:blinkid:5.9.0@aar') {
implementation('com.microblink:blinkid:5.10.0@aar') {
transitive = true
}
}
Expand All @@ -127,7 +127,7 @@ Android studio 3.0 should automatically import javadoc from maven dependency. If

1. In Android Studio project sidebar, ensure [project view is enabled](https://developer.android.com/sdk/installing/studio-androidview.html)
2. Expand `External Libraries` entry (usually this is the last entry in project view)
3. Locate `blinkid-5.9.0` entry, right click on it and select `Library Properties...`
3. Locate `blinkid-5.10.0` entry, right click on it and select `Library Properties...`
4. A `Library Properties` pop-up window will appear
5. Click the second `+` button in bottom left corner of the window (the one that contains `+` with little globe)
6. Window for defining documentation URL will appear
Expand Down Expand Up @@ -296,26 +296,26 @@ The `ScanningOverlayBinder` is responsible for returning `non-null` implementati
Here is the minimum example for activity that hosts the `RecognizerRunnerFragment`:

```java
public class MyActivity extends Activity implements RecognizerRunnerFragment.ScanningOverlayBinder {
public class MyActivity extends AppCompatActivity implements RecognizerRunnerFragment.ScanningOverlayBinder {
private BlinkIdCombinedRecognizer mRecognizer;
private RecognizerBundle mRecognizerBundle;
private BlinkIdOverlayController mScanOverlay = createOverlay();
private BlinkIdOverlayController mScanOverlay;
private RecognizerRunnerFragment mRecognizerRunnerFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate();
setContentView(R.layout.activity_my_activity);

mScanOverlay = createOverlay();
if (null == savedInstanceState) {
// create fragment transaction to replace R.id.recognizer_runner_view_container with RecognizerRunnerFragment
mRecognizerRunnerFragment = new RecognizerRunnerFragment();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.recognizer_runner_view_container, mRecognizerRunnerFragment);
fragmentTransaction.commit();
} else {
// obtain reference to fragment restored by Android within super.onCreate() call
mRecognizerRunnerFragment = (RecognizerRunnerFragment) getFragmentManager().findFragmentById(R.id.recognizer_runner_view_container);
mRecognizerRunnerFragment = (RecognizerRunnerFragment) getSupportFragmentManager().findFragmentById(R.id.recognizer_runner_view_container);
}
}

Expand Down Expand Up @@ -352,6 +352,9 @@ public class MyActivity extends Activity implements RecognizerRunnerFragment.Sca
// and beginning of execution of the transaction. So to ensure result within mRecognizer
// does not get mutated, ensure calling pauseScanning() as shown above.
}
@Override
public void onUnrecoverableError(@NonNull Throwable throwable) {
}
};

}
Expand Down
55 changes: 55 additions & 0 deletions Release notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,60 @@
# Release notes

## 5.10.0

### Improvements

- **Newly supported identity documents**

- Saudi Arabia - DL (front)
- Saudi Arabia - Resident ID (front)

- We've introduced another variant of `resetRecognitionState` method that lets you reset the scanning process in different recognition stages:
- If you’re using our Direct API, call `RecognizerRunner.resetRecognitionState(false)` to clear the scanning cache as well as results gathered in a specific recognition step, i.e. after scanning the back side of a document.
- If you’re using our built-in UI to scan IDs from the camera stream, call `RecognizerRunnerView.resetRecognitionState(false)` to do the same.

### Changes to the BlinkId(Combined)Recognizer:

- We're now able to extract the additional address on Hungary Address Cards
- We've improved data extraction through the MRZ:
- We now return the document type through `ClassInfo`, regardless of the `RecognitionMode` you're using (`MrzId`, `MrzPassport` or `MrzVisa`).
- This means you can now use `ClassFilter` to filter these documents by their type.
- We now return the document number on Nigeria IDs complete with its check digit.
- We now support Italy Residence Permits with a *CR* document code.
- We've extended the `ClassInfo` structure with helper methods so you can filter documents by country more easily:
- Use `countryName`, `isoNumericCountryCode`, `isoAlpha2CountryCode` and `isoAlpha3CountryCode` to get the full country names or their representative codes defined by [ISO](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).
- We've extended the `BarcodeResult` structure with `extendedElements`
- You can find all data from AAMVA-compliant barcodes under their respective `BarcodeElementKey` in the `BarcodeElements` structure
- For a full list of keys please see `BarcodeElementKey` enum
- We've added another `ProcessingStatus` called `AwaitingOtherSide`
- This status is triggered once BlinkID has finished with the first side of a document and expects the other side, too.
- We're now able to extract the date of birth from the CURP field on Mexico Voter IDs
- Direct API:
- We've added a new recognition mode for recognizing still images of documents that have already been cropped:
- Set the `scanCroppedDocumentImage` to true when you're feeding BlinkID images of documents that have already been cropped and don't require detection.
- Keep in mind that this setting won't work on document images that haven't been properly cropped.


### Changes to the IdBarcodeRecognizer:

- We've extended the results with `extendedElements`
- You can find all data from AAMVA-compliant barcodes under their respective `BarcodeElementKey` in the `BarcodeElements` structure
- For a full list of keys please see `BarcodeElementKey` enum

### Deprecated recognizers:

- We've deprecated `UsdlRecognizer`. Please use `IdBarcodeRecognizer` instead.

### Minor API changes

- We've replaced `Using time-limited license!` warning with `Using trial license!` warning. The warning message is displayed when using a trial license key. To disable it, use `MicroblinkSDK.setShowTrialLicenseWarning(false)`.
- We’ve renamed `MrtdDocumentType.MRTD_TYPE_IDENITY_CARD` enum member to `MrtdDocumentType.MRTD_TYPE_IDENTITY_CARD`.

### Fixes:

- We've fixed the front-facing camera error on `Oukitel WP8 Pro`.
- We've fixed a rare crash in `BlinkIdOverlayController`, which happened as a result of rapidly launching the scanning process multiple times in a row.

## 5.9.0

### New features:
Expand Down
2 changes: 1 addition & 1 deletion builtFromCommit.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Built from commit faa4406a58628cbb784a7e89a3f71e67d5dd68e1
Built from commit 657d7b6e30c57f1c07853a57ac0e688ef15da474
3 changes: 3 additions & 0 deletions docs/allclasses-frame.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/microblink/entities/recognizers/blinkid/AgeLimitStatus.html" title="class in com.microblink.entities.recognizers.blinkid" target="classFrame">AgeLimitStatus</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/AnonymizationMode.html" title="class in com.microblink.entities.recognizers.blinkid.generic" target="classFrame">AnonymizationMode</a></li>
<li><a href="com/microblink/hardware/camera/AutofocusListener.html" title="interface in com.microblink.hardware.camera" target="classFrame"><span class="interfaceName">AutofocusListener</span></a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/idbarcode/BarcodeElementKey.html" title="class in com.microblink.entities.recognizers.blinkid.idbarcode" target="classFrame">BarcodeElementKey</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/idbarcode/BarcodeElements.html" title="class in com.microblink.entities.recognizers.blinkid.idbarcode" target="classFrame">BarcodeElements</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/barcode/BarcodeResult.html" title="class in com.microblink.entities.recognizers.blinkid.generic.barcode" target="classFrame">BarcodeResult</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/BarcodeScanningStartedCallback.html" title="interface in com.microblink.entities.recognizers.blinkid.generic" target="classFrame"><span class="interfaceName">BarcodeScanningStartedCallback</span></a></li>
<li><a href="com/microblink/entities/recognizers/blinkbarcode/BarcodeType.html" title="class in com.microblink.entities.recognizers.blinkbarcode" target="classFrame">BarcodeType</a></li>
Expand Down Expand Up @@ -63,6 +65,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/microblink/image/DebugImageListener.html" title="interface in com.microblink.image" target="classFrame"><span class="interfaceName">DebugImageListener</span></a></li>
<li><a href="com/microblink/uisettings/options/DebugImageListenerUIOptions.html" title="interface in com.microblink.uisettings.options" target="classFrame"><span class="interfaceName">DebugImageListenerUIOptions</span></a></li>
<li><a href="com/microblink/metadata/text/DebugTextCallback.html" title="interface in com.microblink.metadata.text" target="classFrame"><span class="interfaceName">DebugTextCallback</span></a></li>
<li><a href="com/microblink/fragment/overlay/components/debug/DebugViewHandler.html" title="class in com.microblink.fragment.overlay.components.debug" target="classFrame">DebugViewHandler</a></li>
<li><a href="com/microblink/view/recognition/DetectionStatus.html" title="class in com.microblink.view.recognition" target="classFrame">DetectionStatus</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/DewarpedImageCallback.html" title="interface in com.microblink.entities.recognizers.blinkid.generic" target="classFrame"><span class="interfaceName">DewarpedImageCallback</span></a></li>
<li><a href="com/microblink/entities/recognizers/templating/DewarpPolicy.html" title="class in com.microblink.entities.recognizers.templating" target="classFrame">DewarpPolicy</a></li>
Expand Down
3 changes: 3 additions & 0 deletions docs/allclasses-noframe.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/microblink/entities/recognizers/blinkid/AgeLimitStatus.html" title="class in com.microblink.entities.recognizers.blinkid">AgeLimitStatus</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/AnonymizationMode.html" title="class in com.microblink.entities.recognizers.blinkid.generic">AnonymizationMode</a></li>
<li><a href="com/microblink/hardware/camera/AutofocusListener.html" title="interface in com.microblink.hardware.camera"><span class="interfaceName">AutofocusListener</span></a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/idbarcode/BarcodeElementKey.html" title="class in com.microblink.entities.recognizers.blinkid.idbarcode">BarcodeElementKey</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/idbarcode/BarcodeElements.html" title="class in com.microblink.entities.recognizers.blinkid.idbarcode">BarcodeElements</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/barcode/BarcodeResult.html" title="class in com.microblink.entities.recognizers.blinkid.generic.barcode">BarcodeResult</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/BarcodeScanningStartedCallback.html" title="interface in com.microblink.entities.recognizers.blinkid.generic"><span class="interfaceName">BarcodeScanningStartedCallback</span></a></li>
<li><a href="com/microblink/entities/recognizers/blinkbarcode/BarcodeType.html" title="class in com.microblink.entities.recognizers.blinkbarcode">BarcodeType</a></li>
Expand Down Expand Up @@ -63,6 +65,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/microblink/image/DebugImageListener.html" title="interface in com.microblink.image"><span class="interfaceName">DebugImageListener</span></a></li>
<li><a href="com/microblink/uisettings/options/DebugImageListenerUIOptions.html" title="interface in com.microblink.uisettings.options"><span class="interfaceName">DebugImageListenerUIOptions</span></a></li>
<li><a href="com/microblink/metadata/text/DebugTextCallback.html" title="interface in com.microblink.metadata.text"><span class="interfaceName">DebugTextCallback</span></a></li>
<li><a href="com/microblink/fragment/overlay/components/debug/DebugViewHandler.html" title="class in com.microblink.fragment.overlay.components.debug">DebugViewHandler</a></li>
<li><a href="com/microblink/view/recognition/DetectionStatus.html" title="class in com.microblink.view.recognition">DetectionStatus</a></li>
<li><a href="com/microblink/entities/recognizers/blinkid/generic/DewarpedImageCallback.html" title="interface in com.microblink.entities.recognizers.blinkid.generic"><span class="interfaceName">DewarpedImageCallback</span></a></li>
<li><a href="com/microblink/entities/recognizers/templating/DewarpPolicy.html" title="class in com.microblink.entities.recognizers.templating">DewarpPolicy</a></li>
Expand Down
Loading

0 comments on commit 04d5af0

Please sign in to comment.