Skip to content

Commit d05840e

Browse files
author
Jenkins
committed
6.1.0
1 parent 494f9ef commit d05840e

54 files changed

Lines changed: 2963 additions & 1484 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ If you have issues with license verification when running the application, pleas
4646
6. You placed the `license` into the correct folder as described [here](#how-to-build-demo-application).
4747

4848
## Documentation
49-
You can find documentation on API [here](https://docs.regulaforensics.com/react-native).
49+
You can find documentation on API [here](https://docs.regulaforensics.com/develop/doc-reader-sdk/mobile/react-native).
5050

5151
## Additional information
5252
If you have any technical questions, feel free to [contact](mailto:react.support@regulaforensics.com) us or create issue [here](https://github.com/regulaforensics/react-native-document-reader/issues).

RNDocumentReaderApi.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ Pod::Spec.new do |s|
1212
s.homepage = 'https://regulaforensics.com'
1313

1414
s.source = { :http => 'file:' + __dir__ }
15-
s.ios.deployment_target = '9.0.0'
15+
s.ios.deployment_target = '11.0'
1616
s.source_files = "ios/*.{h,m}"
17-
s.dependency 'DocumentReader', '5.8.2215'
17+
s.dependency 'DocumentReader', '6.1.2358'
1818
s.dependency 'React'
1919
end

android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ android {
1616
buildToolsVersion "30.0.0"
1717

1818
defaultConfig {
19-
minSdkVersion 19
19+
minSdkVersion 21
2020
targetSdkVersion 30
2121
versionCode 1
2222
versionName "1.0"
@@ -49,7 +49,7 @@ dependencies {
4949
//noinspection GradleDynamicVersion
5050
implementation 'com.facebook.react:react-native:+'
5151
//noinspection GradleDependency
52-
implementation('com.regula.documentreader:api:5.8.5196') {
52+
implementation('com.regula.documentreader:api:6.1.6564') {
5353
transitive = true
5454
}
5555
}

android/src/main/java/com/regula/documentreader/Helpers.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@
2424
class Helpers {
2525
static Bitmap bitmapFromBase64(String base64) {
2626
byte[] decodedString = Base64.decode(base64, Base64.DEFAULT);
27-
BitmapFactory.Options options = new BitmapFactory.Options();
28-
options.inPreferredConfig = Bitmap.Config.RGB_565;
29-
Bitmap result = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length, options);
27+
Bitmap result = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
3028
int sizeMultiplier = result.getByteCount() / 5000000;
3129
if (result.getByteCount() > 5000000)
3230
result = Bitmap.createScaledBitmap(result, result.getWidth() / (int) Math.sqrt(sizeMultiplier), result.getHeight() / (int) Math.sqrt(sizeMultiplier), false);

android/src/main/java/com/regula/documentreader/JSONConstructor.java

Lines changed: 110 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
package com.regula.documentreader;
22

3+
import static com.regula.documentreader.api.completions.IRfidNotificationCompletion.RFID_EXTRA_ERROR_CODE;
4+
35
import android.content.Context;
46
import android.graphics.Bitmap;
57
import android.graphics.BitmapFactory;
68
import android.graphics.Rect;
9+
import android.os.Bundle;
710
import android.util.Base64;
811

912
import com.regula.documentreader.api.enums.DocReaderAction;
1013
import com.regula.documentreader.api.enums.PDF417Info;
1114
import com.regula.documentreader.api.enums.eGraphicFieldType;
1215
import com.regula.documentreader.api.enums.eRPRM_Lights;
1316
import com.regula.documentreader.api.errors.DocumentReaderException;
17+
import com.regula.documentreader.api.internal.core.CoreDetailedScenario;
1418
import com.regula.documentreader.api.params.FaceMetaData;
1519
import com.regula.documentreader.api.params.rfid.authorization.PAAttribute;
1620
import com.regula.documentreader.api.params.rfid.authorization.PAResourcesIssuer;
1721
import com.regula.documentreader.api.params.rfid.authorization.TAChallenge;
1822
import com.regula.documentreader.api.results.Bounds;
23+
import com.regula.documentreader.api.results.BytesData;
1924
import com.regula.documentreader.api.results.Coordinate;
2025
import com.regula.documentreader.api.results.DocReaderFieldRect;
2126
import com.regula.documentreader.api.results.DocumentReaderBarcodeField;
@@ -25,14 +30,15 @@
2530
import com.regula.documentreader.api.results.DocumentReaderGraphicResult;
2631
import com.regula.documentreader.api.results.DocumentReaderNotification;
2732
import com.regula.documentreader.api.results.DocumentReaderResults;
33+
import com.regula.documentreader.api.results.DocumentReaderResultsStatus;
2834
import com.regula.documentreader.api.results.DocumentReaderScenario;
29-
import com.regula.documentreader.api.results.DocumentReaderScenarioFull;
3035
import com.regula.documentreader.api.results.DocumentReaderTextField;
3136
import com.regula.documentreader.api.results.DocumentReaderTextResult;
3237
import com.regula.documentreader.api.results.DocumentReaderValue;
3338
import com.regula.documentreader.api.results.ElementPosition;
3439
import com.regula.documentreader.api.results.ImageQuality;
3540
import com.regula.documentreader.api.results.ImageQualityGroup;
41+
import com.regula.documentreader.api.results.VDSNCData;
3642
import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityCheck;
3743
import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityElement;
3844
import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityResult;
@@ -294,6 +300,18 @@ static JSONObject generateCompletion(int action, DocumentReaderResults results,
294300
return result;
295301
}
296302

303+
static JSONObject generateRfidNotificationCompletion(int notification, Bundle value) {
304+
JSONObject result = new JSONObject();
305+
try {
306+
result.put("notification", notification);
307+
if(value != null)
308+
result.put("value", value.get(RFID_EXTRA_ERROR_CODE));
309+
} catch (JSONException ignored) {
310+
}
311+
312+
return result;
313+
}
314+
297315
static JSONObject generatePACertificateCompletion(byte[] serialNumber, PAResourcesIssuer issuer) {
298316
JSONObject result = new JSONObject();
299317
try {
@@ -335,8 +353,6 @@ static JSONObject generateDocumentReaderScenario(DocumentReaderScenario input) {
335353
JSONObject result = new JSONObject();
336354
if (input == null) return result;
337355
try {
338-
result.put("uvTorch", input.uvTorch);
339-
result.put("seriesProcessMode", input.seriesProcessMode);
340356
result.put("name", input.name);
341357
result.put("caption", input.caption);
342358
result.put("description", input.description);
@@ -346,7 +362,7 @@ static JSONObject generateDocumentReaderScenario(DocumentReaderScenario input) {
346362
return result;
347363
}
348364

349-
static JSONObject generateDocumentReaderScenarioFull(DocumentReaderScenarioFull input) {
365+
static JSONObject generateCoreDetailedScenario(CoreDetailedScenario input) {
350366
JSONObject result = new JSONObject();
351367
if (input == null) return result;
352368
try {
@@ -1039,6 +1055,92 @@ static JSONObject generateTAChallenge(TAChallenge input) {
10391055
return result;
10401056
}
10411057

1058+
static JSONObject generateDocumentReaderResultsStatus(DocumentReaderResultsStatus input) {
1059+
JSONObject result = new JSONObject();
1060+
if (input == null) return result;
1061+
try {
1062+
result.put("overallStatus", input.getOverallStatus());
1063+
result.put("optical", input.getOptical());
1064+
result.put("detailsOptical", generateDetailsOptical(input.getDetailsOptical()));
1065+
result.put("rfid", input.getRfid());
1066+
result.put("detailsRFID", generateDetailsRFID(input.getDetailsRFID()));
1067+
result.put("portrait", input.getPortrait());
1068+
result.put("stopList", input.getStopList());
1069+
} catch (JSONException e) {
1070+
e.printStackTrace();
1071+
}
1072+
return result;
1073+
}
1074+
1075+
static JSONObject generateDetailsOptical(DocumentReaderResultsStatus.DetailsOptical input) {
1076+
JSONObject result = new JSONObject();
1077+
if (input == null) return result;
1078+
try {
1079+
result.put("overallStatus", input.getOverallStatus());
1080+
result.put("mrz", input.getMrz());
1081+
result.put("text", input.getText());
1082+
result.put("docType", input.getDocType());
1083+
result.put("security", input.getSecurity());
1084+
result.put("imageQA", input.getImageQA());
1085+
result.put("expiry", input.getExpiry());
1086+
result.put("vds", input.getVds());
1087+
result.put("pagesCount", input.getPagesCount());
1088+
} catch (JSONException e) {
1089+
e.printStackTrace();
1090+
}
1091+
return result;
1092+
}
1093+
1094+
static JSONObject generateDetailsRFID(DocumentReaderResultsStatus.DetailsRFID input) {
1095+
JSONObject result = new JSONObject();
1096+
if (input == null) return result;
1097+
try {
1098+
result.put("pa", input.getPA());
1099+
result.put("ca", input.getCA());
1100+
result.put("aa", input.getAA());
1101+
result.put("ta", input.getTA());
1102+
result.put("bac", input.getBAC());
1103+
result.put("pace", input.getPACE());
1104+
result.put("overallStatus", input.getOverallStatus());
1105+
} catch (JSONException e) {
1106+
e.printStackTrace();
1107+
}
1108+
return result;
1109+
}
1110+
1111+
static JSONObject generateVDSNCData(VDSNCData input) {
1112+
JSONObject result = new JSONObject();
1113+
if (input == null) return result;
1114+
try {
1115+
result.put("type", input.getType());
1116+
result.put("version", input.getVersion());
1117+
result.put("issuingCountry", input.getIssuingCountry());
1118+
result.put("message", input.getMessage());
1119+
result.put("signatureAlgorithm", input.getSignatureAlg());
1120+
result.put("signature", generateBytesData(input.getSignature()));
1121+
result.put("certificate", generateBytesData(input.getCertificate()));
1122+
result.put("certificateChain", generateList(input.getCertificateChain(), JSONConstructor::generateCertificateChain));
1123+
result.put("notifications", generateLongArray(input.getNotifications()));
1124+
} catch (JSONException e) {
1125+
e.printStackTrace();
1126+
}
1127+
return result;
1128+
}
1129+
1130+
static JSONObject generateBytesData(BytesData input) {
1131+
JSONObject result = new JSONObject();
1132+
if (input == null) return result;
1133+
try {
1134+
result.put("data", input.getData());
1135+
result.put("length", input.getLength());
1136+
result.put("status", input.getStatus());
1137+
result.put("type", input.getType());
1138+
} catch (JSONException e) {
1139+
e.printStackTrace();
1140+
}
1141+
return result;
1142+
}
1143+
10421144
static JSONObject generateDocumentReaderResults(DocumentReaderResults input, Context context) {
10431145
JSONObject result = new JSONObject();
10441146
if (input == null) return result;
@@ -1063,6 +1165,8 @@ static JSONObject generateDocumentReaderResults(DocumentReaderResults input, Con
10631165
result.put("authenticityResult", generateDocumentReaderAuthenticityResult(input.authenticityResult, context));
10641166
result.put("barcodeResult", generateDocumentReaderBarcodeResult(input.barcodeResult));
10651167
result.put("documentType", generateList(input.documentType, JSONConstructor::generateDocumentReaderDocumentType));
1168+
result.put("status", generateDocumentReaderResultsStatus(input.status));
1169+
result.put("vdsncData", generateVDSNCData(input.vdsncData));
10661170
} catch (JSONException e) {
10671171
e.printStackTrace();
10681172
}
@@ -1074,10 +1178,6 @@ static JSONObject generateDocumentReaderResults(DocumentReaderResults input, Con
10741178
static DocumentReaderScenario DocumentReaderScenarioFromJSON(JSONObject input) {
10751179
try {
10761180
DocumentReaderScenario result = new DocumentReaderScenario();
1077-
if (input.has("uvTorch"))
1078-
result.uvTorch = input.getBoolean("uvTorch");
1079-
if (input.has("seriesProcessMode"))
1080-
result.seriesProcessMode = input.getBoolean("seriesProcessMode");
10811181
if (input.has("name"))
10821182
result.name = input.getString("name");
10831183
if (input.has("caption"))
@@ -1091,9 +1191,9 @@ static DocumentReaderScenario DocumentReaderScenarioFromJSON(JSONObject input) {
10911191
return null;
10921192
}
10931193

1094-
static DocumentReaderScenarioFull DocumentReaderScenarioFullFromJSON(JSONObject input) {
1194+
static CoreDetailedScenario CoreDetailedScenarioFromJSON(JSONObject input) {
10951195
try {
1096-
DocumentReaderScenarioFull result = new DocumentReaderScenarioFull();
1196+
CoreDetailedScenario result = new CoreDetailedScenario();
10971197
if (input.has("uvTorch"))
10981198
result.uvTorch = input.getBoolean("uvTorch");
10991199
if (input.has("frameOrientation"))

android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderModule.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.graphics.Bitmap;
1010
import android.nfc.NfcAdapter;
1111
import android.nfc.tech.IsoDep;
12+
import android.os.Bundle;
1213
import android.util.Base64;
1314

1415
import com.facebook.react.bridge.ActivityEventListener;
@@ -24,12 +25,12 @@
2425
import com.regula.documentreader.api.completions.IDocumentReaderCompletion;
2526
import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion;
2627
import com.regula.documentreader.api.completions.IDocumentReaderPrepareCompletion;
27-
import com.regula.documentreader.api.completions.IRfidNotificationCompletion;
2828
import com.regula.documentreader.api.completions.IRfidPKDCertificateCompletion;
2929
import com.regula.documentreader.api.completions.IRfidReaderRequest;
3030
import com.regula.documentreader.api.completions.IRfidTASignatureCompletion;
3131
import com.regula.documentreader.api.enums.DocReaderAction;
3232
import com.regula.documentreader.api.errors.DocumentReaderException;
33+
import com.regula.documentreader.api.internal.core.CoreScenarioUtil;
3334
import com.regula.documentreader.api.params.DocReaderConfig;
3435
import com.regula.documentreader.api.params.ImageInputParam;
3536
import com.regula.documentreader.api.params.rfid.PKDCertificate;
@@ -139,8 +140,8 @@ private void sendVideoEncoderCompletion(String sessionId, File file) {
139140
send(videoEncoderCompletionEvent, JSONConstructor.generateVideoEncoderCompletion(sessionId, file).toString());
140141
}
141142

142-
private void sendIRfidNotificationCompletion(int notification) {
143-
send(rfidNotificationCompletionEvent, notification + "");
143+
private void sendIRfidNotificationCompletion(int notification, Bundle value) {
144+
send(rfidNotificationCompletionEvent, JSONConstructor.generateRfidNotificationCompletion(notification, value).toString());
144145
}
145146

146147
private void sendPACertificateCompletion(byte[] serialNumber, PAResourcesIssuer issuer) {
@@ -481,11 +482,11 @@ private void getRfidScenario(Callback callback) {
481482
}
482483

483484
private void selectedScenario(Callback callback) {
484-
callback.success(JSONConstructor.generateDocumentReaderScenarioFull(Instance().getScenario(Instance().processParams().getScenario())).toString());
485+
callback.success(JSONConstructor.generateCoreDetailedScenario(CoreScenarioUtil.getScenario(Instance().processParams().getScenario())).toString());
485486
}
486487

487488
private void getScenario(Callback callback, String scenario) {
488-
callback.success(JSONConstructor.generateDocumentReaderScenarioFull(Instance().getScenario(scenario)).toString());
489+
callback.success(JSONConstructor.generateCoreDetailedScenario(CoreScenarioUtil.getScenario(scenario)).toString());
489490
}
490491

491492
private void getLicenseExpiryDate(Callback callback) {
@@ -633,7 +634,7 @@ private void startRFIDReader(@SuppressWarnings("unused") Callback callback) {
633634
delegate = getIRfidReaderRequestNoPA();
634635
if (rfidDelegate == RFIDDelegate.FULL)
635636
delegate = getIRfidReaderRequest();
636-
Instance().startRFIDReader(getContext(), getCompletion(), delegate, getIRfidNotificationCompletion());
637+
Instance().startRFIDReader(getContext(), getCompletion(), delegate, this::sendIRfidNotificationCompletion);
637638
}
638639

639640
private void stopRFIDReader(Callback callback) {
@@ -741,7 +742,7 @@ private void getRfidSessionStatus(Callback callback) {
741742
private IDocumentReaderCompletion getCompletion() {
742743
return (action, results, error) -> {
743744
sendCompletion(action, results, error);
744-
if (action == DocReaderAction.ERROR || action == DocReaderAction.CANCEL || (action == DocReaderAction.COMPLETE && results.rfidResult == 1))
745+
if (action == DocReaderAction.ERROR || action == DocReaderAction.CANCEL || (action == DocReaderAction.COMPLETE && results != null && results.rfidResult == 1))
745746
stopBackgroundRFID();
746747
};
747748
}
@@ -828,9 +829,4 @@ private static class RFIDDelegate {
828829
public static final int NO_PA = 1;
829830
public static final int FULL = 2;
830831
}
831-
832-
833-
private IRfidNotificationCompletion getIRfidNotificationCompletion() {
834-
return (notificationType, value) -> sendIRfidNotificationCompletion(notificationType);
835-
}
836832
}

android/src/main/java/com/regula/documentreader/RegulaConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ private static void setProcessParams(ProcessParam processParams, JSONObject opts
209209
processParams.forceReadMrzBeforeLocate = opts.getBoolean("forceReadMrzBeforeLocate");
210210
if (opts.has("parseBarcodes"))
211211
processParams.parseBarcodes = opts.getBoolean("parseBarcodes");
212+
if (opts.has("shouldReturnPackageForReprocess"))
213+
processParams.shouldReturnPackageForReprocess = opts.getBoolean("shouldReturnPackageForReprocess");
212214
}
213215

214216
private static void setCustomization(ParamsCustomization customization, JSONObject opts, Context context) throws JSONException {
@@ -477,6 +479,7 @@ private static JSONObject getProcessParams(ProcessParam processParams) throws JS
477479
object.put("mrzFormatsFilter", processParams.mrzFormatsFilter != null ? generateArray(processParams.mrzFormatsFilter) : null);
478480
object.put("forceReadMrzBeforeLocate", processParams.forceReadMrzBeforeLocate);
479481
object.put("parseBarcodes", processParams.parseBarcodes);
482+
object.put("shouldReturnPackageForReprocess", processParams.shouldReturnPackageForReprocess);
480483

481484
return object;
482485
}

example/.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Windows files
2+
[*.bat]
3+
end_of_line = crlf

0 commit comments

Comments
 (0)