dynamsoft-capture-vision-react-native 2.6.1016 → 3.0.5100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -2
- package/README.md +7 -9
- package/android/build.gradle +73 -42
- package/android/src/main/cpp/CMakeLists.txt +22 -0
- package/android/src/main/cpp/ImgHO.cpp +95 -0
- package/android/src/main/cpp/ImgHO.h +34 -0
- package/android/src/main/cpp/JsiCore.cpp +284 -0
- package/android/src/main/cpp/JsiCore.h +51 -0
- package/android/src/main/cpp/JsiCvr.cpp +327 -0
- package/android/src/main/cpp/JsiCvr.h +54 -0
- package/android/src/main/cpp/JsiDbr.cpp +38 -0
- package/android/src/main/cpp/JsiDbr.h +26 -0
- package/android/src/main/cpp/JsiDce.cpp +59 -0
- package/android/src/main/cpp/JsiDce.h +17 -0
- package/android/src/main/cpp/JsiDcp.cpp +51 -0
- package/android/src/main/cpp/JsiDcp.h +31 -0
- package/android/src/main/cpp/JsiDdn.cpp +50 -0
- package/android/src/main/cpp/JsiDdn.h +28 -0
- package/android/src/main/cpp/JsiDlr.cpp +51 -0
- package/android/src/main/cpp/JsiDlr.h +26 -0
- package/android/src/main/cpp/JsiUtility.cpp +196 -0
- package/android/src/main/cpp/JsiUtility.h +16 -0
- package/android/src/main/cpp/RawBuffer.cpp +24 -0
- package/android/src/main/cpp/RawBuffer.h +24 -0
- package/android/src/main/cpp/android_log.h +14 -0
- package/android/src/main/dysJniLibs/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86_64/librn_dys.so +0 -0
- package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/CVRModule.kt +4 -4
- package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/DCEModule.kt +10 -0
- package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +13 -85
- package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/VersionsModule.kt +2 -2
- package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +25 -25
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +23 -2
- package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +1 -1
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +19 -4
- package/android/src/main/java/com/dynamsoft/reactnativelib/utils/ForCore.kt +14 -0
- package/android/src/main/java/com/dynamsoft/reactnativelib/utils/ForCvr.kt +12 -7
- package/android/src/main/java/com/dynamsoft/reactnativelib/utils/ForDBR.kt +1 -7
- package/android/src/main/java/com/dynamsoft/reactnativelib/utils/ForDCE.kt +2 -2
- package/android/src/main/java/com/dynamsoft/reactnativelib/utils/ForDDN.kt +27 -19
- package/dynamsoft-capture-vision-react-native.podspec +9 -7
- package/ios/CPP/DSImageData+HostObject.h +1 -1
- package/ios/CPP/RNDynamsoft+JSI.h +2 -2
- package/ios/CPP/RNDynamsoft+JSI.mm +18 -10
- package/ios/CPP/RNDynamsoft+Json.h +2 -13
- package/ios/CPP/RNDynamsoft+Json.m +48 -39
- package/ios/CPP/YeetJSIUtils.h +3 -1
- package/ios/CPP/YeetJSIUtils.mm +5 -0
- package/ios/RNDynamsoftCameraView.m +1 -1
- package/ios/RNDynamsoftCameraViewManager.m +23 -8
- package/ios/RNDynamsoftCaptureVisionRouter.mm +76 -45
- package/ios/RNDynamsoftImageEditorView.m +1 -1
- package/ios/RNDynamsoftImageEditorViewManager.mm +36 -13
- package/ios/RNDynamsoftImageManager.mm +33 -4
- package/ios/RNDynamsoftImageSourceAdapter.mm +1 -1
- package/ios/RNDynamsoftLicense.m +1 -1
- package/ios/RNDynamsoftMultiCrossFilter.m +9 -9
- package/ios/RNDynamsoftVersions.m +1 -13
- package/package.json +3 -11
- package/src/core/CapturedResultBase.tsx +18 -0
- package/src/core/EnumCaptureResultItemType.tsx +12 -6
- package/src/core/EnumCrossVerificationStatus.tsx +6 -6
- package/src/core/ImageData.tsx +1 -1
- package/src/core/index.tsx +1 -0
- package/src/cvr/CaptureVisionRouter.tsx +47 -51
- package/src/cvr/CapturedResult.tsx +24 -46
- package/src/cvr/CapturedResultReceiver.tsx +12 -19
- package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +2 -2
- package/src/cvr/SimplifiedCaptureVisionSettings.tsx +4 -4
- package/src/dbr/DecodedBarcodesResult.tsx +3 -17
- package/src/dce/CameraEnhancer.tsx +9 -0
- package/src/dce/DynamsoftCameraViewNativeComponent.ts +2 -2
- package/src/dce/EnumResolution.tsx +7 -0
- package/src/dce/NativeDynamsoftCameraViewModule.tsx +4 -0
- package/src/dce/index.tsx +1 -0
- package/src/dcp/ParsedResult.tsx +3 -14
- package/src/ddn/DeskewedImageResultItem.tsx +40 -0
- package/src/ddn/DetectedQuadResultItem.tsx +3 -1
- package/src/ddn/EnhancedImageResultItem.tsx +20 -0
- package/src/ddn/ProcessedDocumentResult.tsx +27 -0
- package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +18 -3
- package/src/ddn/index.tsx +3 -3
- package/src/dlr/RecognizedTextLinesResult.tsx +2 -16
- package/src/index.tsx +0 -1
- package/src/utility/ImageManager.tsx +66 -45
- package/android/src/main/java/com/dynamsoft/reactnativelib/rtu/BarcodeScannerModuleImpl.kt +0 -80
- package/android/src/main/java/com/dynamsoft/reactnativelib/rtu/MRZScannerModuleImpl.kt +0 -77
- package/android/src/main/java/com/dynamsoft/reactnativelib/rtu/ScannerInterface.kt +0 -47
- package/android/src/main/jniLibs/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/jniLibs/x86/librn_dys.so +0 -0
- package/android/src/main/jniLibs/x86_64/librn_dys.so +0 -0
- package/android/src/newarch/com/dynamsoft/reactnativelib/BarcodeScannerModule.kt +0 -22
- package/android/src/newarch/com/dynamsoft/reactnativelib/CVRModule.kt +0 -91
- package/android/src/newarch/com/dynamsoft/reactnativelib/CameraViewManager.kt +0 -52
- package/android/src/newarch/com/dynamsoft/reactnativelib/DCEModule.kt +0 -91
- package/android/src/newarch/com/dynamsoft/reactnativelib/ISAModule.kt +0 -60
- package/android/src/newarch/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +0 -16
- package/android/src/newarch/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +0 -24
- package/android/src/newarch/com/dynamsoft/reactnativelib/ImageManagerModule.kt +0 -12
- package/android/src/newarch/com/dynamsoft/reactnativelib/LicenseModule.kt +0 -14
- package/android/src/newarch/com/dynamsoft/reactnativelib/MRZScannerModule.kt +0 -22
- package/android/src/newarch/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +0 -58
- package/android/src/newarch/com/dynamsoft/reactnativelib/VersionsModule.kt +0 -41
- package/android/src/oldarch/com/dynamsoft/reactnativelib/BarcodeScannerModule.kt +0 -24
- package/android/src/oldarch/com/dynamsoft/reactnativelib/MRZScannerModule.kt +0 -24
- package/ios/RNDynamsoftBarcodeScanner.h +0 -14
- package/ios/RNDynamsoftBarcodeScanner.m +0 -169
- package/ios/RNDynamsoftMRZScanner.h +0 -14
- package/ios/RNDynamsoftMRZScanner.m +0 -140
- package/src/ddn/DetectedQuadsResult.tsx +0 -31
- package/src/ddn/NormalizedImageResultItem.tsx +0 -32
- package/src/ddn/NormalizedImagesResult.tsx +0 -27
- package/src/rtu/BarcodeScanConfig.tsx +0 -104
- package/src/rtu/BarcodeScanResult.tsx +0 -31
- package/src/rtu/BarcodeScanner.tsx +0 -112
- package/src/rtu/EnumResultState.tsx +0 -21
- package/src/rtu/MRZScanConfig.tsx +0 -67
- package/src/rtu/MRZScanResult.tsx +0 -84
- package/src/rtu/MRZScanner.tsx +0 -90
- package/src/rtu/NativeDynamsoftBarcodeScannerModule.tsx +0 -6
- package/src/rtu/NativeDynamsoftMRZScannerModule.tsx +0 -6
- package/src/rtu/index.tsx +0 -7
- /package/android/src/main/{withNamespace/AndroidManifest.xml → AndroidManifest.xml} +0 -0
- /package/android/src/main/{withoutNamespace/AndroidManifest.xml → AndroidManifest_noPackage.xml} +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/CameraViewManager.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/ISAModule.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/ImageManagerModule.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/LicenseModule.kt +0 -0
- /package/android/src/{oldarch → main/java}/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiDdn.h"
|
|
6
|
+
|
|
7
|
+
namespace jsiConversion::ddn {
|
|
8
|
+
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
+
env->PushLocalFrame(4);
|
|
10
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DetectedQuadResultItem");
|
|
11
|
+
jmethodID me_getLocation =env->GetMethodID(clsItem, "getLocation", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
12
|
+
jmethodID me_getConfidenceAsDocumentBoundary =env->GetMethodID(clsItem, "getConfidenceAsDocumentBoundary", "()I");
|
|
13
|
+
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
14
|
+
Object jsQuad(rt);
|
|
15
|
+
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getLocation), jsQuad);
|
|
16
|
+
jsItem.setProperty(rt, "location", jsQuad);
|
|
17
|
+
jsItem.setProperty(rt, "ConfidenceAsDocumentBoundary", env->CallIntMethod(jItem, me_getConfidenceAsDocumentBoundary));
|
|
18
|
+
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
19
|
+
env->PopLocalFrame(nullptr);
|
|
20
|
+
}
|
|
21
|
+
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
22
|
+
env->PushLocalFrame(4);
|
|
23
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DeskewedImageResultItem");
|
|
24
|
+
jmethodID me_getSourceDeskewQuad = env->GetMethodID(clsItem, "getSourceDeskewQuad", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
25
|
+
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
26
|
+
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
27
|
+
Object jsQuad(rt);
|
|
28
|
+
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getSourceDeskewQuad), jsQuad);
|
|
29
|
+
jsItem.setProperty(rt, "sourceDeskewQuad", jsQuad);
|
|
30
|
+
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
31
|
+
ImageDataHostObject imgHostObject;
|
|
32
|
+
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
33
|
+
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
34
|
+
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
35
|
+
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
36
|
+
env->PopLocalFrame(nullptr);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
40
|
+
env->PushLocalFrame(4);
|
|
41
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/EnhancedImageResultItem");
|
|
42
|
+
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
43
|
+
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
44
|
+
ImageDataHostObject imgHostObject;
|
|
45
|
+
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
46
|
+
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
47
|
+
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
48
|
+
env->PopLocalFrame(nullptr);
|
|
49
|
+
}
|
|
50
|
+
}//namespace jsiConversion::ddn
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
7
|
+
|
|
8
|
+
#include "jni.h"
|
|
9
|
+
#include "jsi/jsi.h"
|
|
10
|
+
#include "JsiCore.h"
|
|
11
|
+
|
|
12
|
+
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
+
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
+
|
|
19
|
+
using namespace std;
|
|
20
|
+
using namespace facebook::jsi;
|
|
21
|
+
|
|
22
|
+
namespace jsiConversion::ddn {
|
|
23
|
+
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
+
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
25
|
+
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiDlr.h"
|
|
6
|
+
|
|
7
|
+
namespace jsiConversion::dlr {
|
|
8
|
+
void jTextLineResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
+
env->PushLocalFrame(8);
|
|
10
|
+
jclass clsItem = env->FindClass("com/dynamsoft/dlr/TextLineResultItem");
|
|
11
|
+
jmethodID getLocation = env->GetMethodID(clsItem, "getLocation", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
12
|
+
Object jsQuad(rt);
|
|
13
|
+
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, getLocation), jsQuad);
|
|
14
|
+
jsItem.setProperty(rt, "location", jsQuad);
|
|
15
|
+
|
|
16
|
+
jmethodID getConfidence = env->GetMethodID(clsItem, "getConfidence", "()I");
|
|
17
|
+
jsItem.setProperty(rt, "confidence", env->CallIntMethod(jItem, getConfidence));
|
|
18
|
+
|
|
19
|
+
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, text, getText)
|
|
20
|
+
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, specificationName, getSpecificationName)
|
|
21
|
+
|
|
22
|
+
jmethodID getCharacterResults = env->GetMethodID(clsItem, "getCharacterResults", "()[Lcom/dynamsoft/dlr/CharacterResult;");
|
|
23
|
+
auto jCharacterResults = (jobjectArray) env->CallObjectMethod(jItem, getCharacterResults);
|
|
24
|
+
int count = jCharacterResults ? env->GetArrayLength(jCharacterResults) : 0;
|
|
25
|
+
Array jsCharacterResultArray = Array(rt, count);
|
|
26
|
+
for (int i = 0; i < count; ++i) {
|
|
27
|
+
Object jsCharacterResult(rt);
|
|
28
|
+
auto jCharRes = env->GetObjectArrayElement(jCharacterResults, i);
|
|
29
|
+
jCharacterResultToJsObject(rt, env, jCharRes, jsCharacterResult);
|
|
30
|
+
env->DeleteLocalRef(jCharRes);
|
|
31
|
+
jsCharacterResultArray.setValueAtIndex(rt, i, jsCharacterResult);
|
|
32
|
+
}
|
|
33
|
+
env->PopLocalFrame(nullptr);
|
|
34
|
+
}
|
|
35
|
+
void jCharacterResultToJsObject(Runtime &rt, JNIEnv *env, jobject jCharRes, Object &jsCharRes) {
|
|
36
|
+
jclass clsResult = env->FindClass("com/dynamsoft/dlr/CharacterResult");
|
|
37
|
+
jfieldID characterH = env->GetFieldID(clsResult, "characterH", "C");
|
|
38
|
+
jfieldID characterM = env->GetFieldID(clsResult, "characterM", "C");
|
|
39
|
+
jfieldID characterL = env->GetFieldID(clsResult, "characterL", "C");
|
|
40
|
+
jsCharRes.setProperty(rt, "characterH", std::to_string(env->GetCharField(jCharRes, characterH)));
|
|
41
|
+
jsCharRes.setProperty(rt, "characterM", std::to_string(env->GetCharField(jCharRes, characterM)));
|
|
42
|
+
jsCharRes.setProperty(rt, "characterL", std::to_string(env->GetCharField(jCharRes, characterL)));
|
|
43
|
+
|
|
44
|
+
jfieldID characterHConfidence = env->GetFieldID(clsResult, "characterHConfidence", "I");
|
|
45
|
+
jfieldID characterMConfidence = env->GetFieldID(clsResult, "characterMConfidence", "I");
|
|
46
|
+
jfieldID characterLConfidence = env->GetFieldID(clsResult, "characterLConfidence", "I");
|
|
47
|
+
jsCharRes.setProperty(rt, "characterHConfidence", env->GetIntField(jCharRes, characterHConfidence));
|
|
48
|
+
jsCharRes.setProperty(rt, "characterMConfidence", env->GetIntField(jCharRes, characterMConfidence));
|
|
49
|
+
jsCharRes.setProperty(rt, "characterLConfidence", env->GetIntField(jCharRes, characterLConfidence));
|
|
50
|
+
}
|
|
51
|
+
}//namespace jsiConversion::dlr
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DLR_JSIDLR_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DLR_JSIDLR_H_
|
|
7
|
+
|
|
8
|
+
#include "jni.h"
|
|
9
|
+
#include "jsi/jsi.h"
|
|
10
|
+
#include "JsiCore.h"
|
|
11
|
+
|
|
12
|
+
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
+
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
+
|
|
19
|
+
using namespace std;
|
|
20
|
+
using namespace facebook::jsi;
|
|
21
|
+
|
|
22
|
+
namespace jsiConversion::dlr {
|
|
23
|
+
void jTextLineResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
+
void jCharacterResultToJsObject(Runtime &rt, JNIEnv *env, jobject jCharRes, Object &jsCharRes);
|
|
25
|
+
}
|
|
26
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DLR_JSIDLR_H_
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/09/23.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiUtility.h"
|
|
6
|
+
jobject jImageManagerModule = nullptr;
|
|
7
|
+
jclass jclzQuad = nullptr;
|
|
8
|
+
jclass jclzPoint = nullptr;
|
|
9
|
+
|
|
10
|
+
jobject jsPointToJobject(Runtime &rt, JNIEnv *env, Object jsPoint) {
|
|
11
|
+
if(jsPoint.hasProperty(rt,"x") && jsPoint.hasProperty(rt,"y")) {
|
|
12
|
+
int x = jsPoint.getProperty(rt,"x").asNumber();
|
|
13
|
+
int y = jsPoint.getProperty(rt,"y").asNumber();
|
|
14
|
+
jmethodID init = env->GetMethodID(jclzPoint, "<init>", "(II)V");
|
|
15
|
+
jobject jPoint = env->NewObject(jclzPoint, init, x, y);
|
|
16
|
+
return jPoint;
|
|
17
|
+
}
|
|
18
|
+
return nullptr;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
jobject jsQuadToJobject(Runtime &rt, JNIEnv *env, Object &jsQuad) {
|
|
22
|
+
if(jsQuad.hasProperty(rt,"points")) {
|
|
23
|
+
auto jsPoints = jsQuad.getProperty(rt,"points").asObject(rt).asArray(rt);
|
|
24
|
+
int count = jsPoints.length(rt);
|
|
25
|
+
auto jPoints = env->NewObjectArray(count, jclzPoint, nullptr);
|
|
26
|
+
for (int i = 0; i < count; ++i) {
|
|
27
|
+
auto jPoint = jsPointToJobject(rt, env, jsPoints.getValueAtIndex(rt, i).asObject(rt));
|
|
28
|
+
env->SetObjectArrayElement(jPoints, i, jPoint);
|
|
29
|
+
env->DeleteLocalRef(jPoint);
|
|
30
|
+
}
|
|
31
|
+
auto initQuad = env->GetMethodID(jclzQuad, "<init>", "()V");
|
|
32
|
+
auto fieldId_points = env->GetFieldID(jclzQuad, "points", "[Landroid/graphics/Point;");
|
|
33
|
+
auto jQuad = env->NewObject(jclzQuad, initQuad);
|
|
34
|
+
env->SetObjectField(jQuad, fieldId_points, jPoints);
|
|
35
|
+
return jQuad;
|
|
36
|
+
}
|
|
37
|
+
return nullptr;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
jobjectArray jsQuadArrayToJobjectArray(Runtime &rt, JNIEnv *env, Array &jsQuads) {
|
|
41
|
+
int count = jsQuads.length(rt);
|
|
42
|
+
jobjectArray jQuads = env->NewObjectArray(count, jclzQuad, nullptr);
|
|
43
|
+
for (int i = 0; i < count; ++i) {
|
|
44
|
+
auto jsQuad = jsQuads.getValueAtIndex(rt, i).asObject(rt);
|
|
45
|
+
auto jQuad = jsQuadToJobject(rt, env, jsQuad);
|
|
46
|
+
env->SetObjectArrayElement(jQuads, i, jQuad);
|
|
47
|
+
env->DeleteLocalRef(jQuad);
|
|
48
|
+
}
|
|
49
|
+
return jQuads;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void saveImageDataHOToFile(Runtime &rt, ImageDataHostObject &imageDataHO, string filePath, bool overWrite) {
|
|
53
|
+
JNIEnv *env;
|
|
54
|
+
bool needDetach = false;
|
|
55
|
+
int state = gJvm->GetEnv((void **) &env, JNI_VERSION_1_6);
|
|
56
|
+
if (state == JNI_EDETACHED || env == nullptr) {
|
|
57
|
+
gJvm->AttachCurrentThread(&env, nullptr);
|
|
58
|
+
needDetach = true;
|
|
59
|
+
}
|
|
60
|
+
jclass clz = env->GetObjectClass(jImageManagerModule);
|
|
61
|
+
jmethodID methodId = env->GetMethodID(clz, "saveToFileCalledInJsi", "(Lcom/dynamsoft/core/basic_structures/ImageData;Ljava/lang/String;Z)V");
|
|
62
|
+
auto jImageData = jsiConversion::core::getJImageDataFromHO(env, imageDataHO);
|
|
63
|
+
env->CallVoidMethod(jImageManagerModule, methodId, jImageData, env->NewStringUTF(filePath.c_str()), overWrite);
|
|
64
|
+
env->DeleteLocalRef(clz);
|
|
65
|
+
env->DeleteLocalRef(jImageData);
|
|
66
|
+
if (needDetach) {
|
|
67
|
+
gJvm->DetachCurrentThread();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
ImageDataHostObject drawOnImage(Runtime &rt, ImageDataHostObject &imageDataHO, Array &jsQuads, int color, int thickness) {
|
|
72
|
+
JNIEnv *env;
|
|
73
|
+
bool needDetach = false;
|
|
74
|
+
int state = gJvm->GetEnv((void **) &env, JNI_VERSION_1_6);
|
|
75
|
+
if (state == JNI_EDETACHED || env == nullptr) {
|
|
76
|
+
gJvm->AttachCurrentThread(&env, nullptr);
|
|
77
|
+
needDetach = true;
|
|
78
|
+
}
|
|
79
|
+
jclass clz = env->GetObjectClass(jImageManagerModule);
|
|
80
|
+
jmethodID methodId = env->GetMethodID(clz, "drawOnImageCalledInJsi",
|
|
81
|
+
"(Lcom/dynamsoft/core/basic_structures/ImageData;[Lcom/dynamsoft/core/basic_structures/Quadrilateral;II)Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
82
|
+
auto jImageData = jsiConversion::core::getJImageDataFromHO(env, imageDataHO);
|
|
83
|
+
auto jQuads = jsQuadArrayToJobjectArray(rt, env, jsQuads);
|
|
84
|
+
auto jImageDataAfterDraw = env->CallObjectMethod(jImageManagerModule, methodId, jImageData, jQuads, color, thickness);
|
|
85
|
+
ImageDataHostObject imageHOAfterDraw;
|
|
86
|
+
jsiConversion::core::getHOFromJImageData(env, jImageDataAfterDraw, imageHOAfterDraw);
|
|
87
|
+
env->DeleteLocalRef(jQuads);
|
|
88
|
+
env->DeleteLocalRef(jImageDataAfterDraw);
|
|
89
|
+
env->DeleteLocalRef(clz);
|
|
90
|
+
env->DeleteLocalRef(jImageData);
|
|
91
|
+
if (needDetach) {
|
|
92
|
+
gJvm->DetachCurrentThread();
|
|
93
|
+
}
|
|
94
|
+
return imageHOAfterDraw;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
ImageDataHostObject cropImage(Runtime &rt, ImageDataHostObject &imageDataHO, Object &jsQuad) {
|
|
98
|
+
JNIEnv *env;
|
|
99
|
+
bool needDetach = false;
|
|
100
|
+
int state = gJvm->GetEnv((void **) &env, JNI_VERSION_1_6);
|
|
101
|
+
if (state == JNI_EDETACHED || env == nullptr) {
|
|
102
|
+
gJvm->AttachCurrentThread(&env, nullptr);
|
|
103
|
+
needDetach = true;
|
|
104
|
+
}
|
|
105
|
+
jclass clz = env->GetObjectClass(jImageManagerModule);
|
|
106
|
+
jmethodID methodId = env->GetMethodID(clz, "cropImageCalledInJsi",
|
|
107
|
+
"(Lcom/dynamsoft/core/basic_structures/ImageData;Lcom/dynamsoft/core/basic_structures/Quadrilateral;)Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
108
|
+
auto jImageData = jsiConversion::core::getJImageDataFromHO(env, imageDataHO);
|
|
109
|
+
auto jQuad = jsQuadToJobject(rt, env, jsQuad);
|
|
110
|
+
auto jImageDataAfterCrop = env->CallObjectMethod(jImageManagerModule, methodId, jImageData, jQuad);
|
|
111
|
+
ImageDataHostObject imageHOAfterCrop;
|
|
112
|
+
jsiConversion::core::getHOFromJImageData(env, jImageDataAfterCrop, imageHOAfterCrop);
|
|
113
|
+
env->DeleteLocalRef(jQuad);
|
|
114
|
+
env->DeleteLocalRef(jImageDataAfterCrop);
|
|
115
|
+
env->DeleteLocalRef(clz);
|
|
116
|
+
env->DeleteLocalRef(jImageData);
|
|
117
|
+
if (needDetach) {
|
|
118
|
+
gJvm->DetachCurrentThread();
|
|
119
|
+
}
|
|
120
|
+
return imageHOAfterCrop;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
#define JSI_FUNC [](Runtime &runtime, const Value &thisValue, const Value *arguments, size_t count) -> Value
|
|
125
|
+
|
|
126
|
+
namespace jsi_install::utility {
|
|
127
|
+
void install_imageManager_saveToFile(Runtime &jsiRuntime) {
|
|
128
|
+
auto nameID = PropNameID::forAscii(jsiRuntime, "imageManager_saveToFile");
|
|
129
|
+
if(!jsiRuntime.global().hasProperty(jsiRuntime, nameID)) {
|
|
130
|
+
auto saveToFileFcn = Function::createFromHostFunction(jsiRuntime, nameID, 3, JSI_FUNC {
|
|
131
|
+
auto imageDataObj = arguments[0].asObject(runtime);
|
|
132
|
+
auto imageDataHostObject = ImageDataHostObject::getHOFromObject(runtime, std::move(imageDataObj));
|
|
133
|
+
auto filePath = arguments[1].asString(runtime).utf8(runtime);
|
|
134
|
+
bool overWrite = arguments[2].asBool();
|
|
135
|
+
saveImageDataHOToFile(runtime, imageDataHostObject, filePath, overWrite);
|
|
136
|
+
return {};
|
|
137
|
+
});
|
|
138
|
+
jsiRuntime.global().setProperty(jsiRuntime, nameID, std::move(saveToFileFcn));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
void install_imageManager_drawOnImage(Runtime &jsiRuntime){
|
|
142
|
+
auto nameID = PropNameID::forAscii(jsiRuntime, "imageManager_drawOnImage");
|
|
143
|
+
if(!jsiRuntime.global().hasProperty(jsiRuntime, nameID)) {
|
|
144
|
+
auto drawOnImageFcn = Function::createFromHostFunction(jsiRuntime, nameID, 4, JSI_FUNC {
|
|
145
|
+
auto imageDataObj = arguments[0].asObject(runtime);
|
|
146
|
+
auto imageDataHostObject = ImageDataHostObject::getHOFromObject(runtime, std::move(imageDataObj));
|
|
147
|
+
auto jsQuads = arguments[1].asObject(runtime).asArray(runtime);
|
|
148
|
+
auto color = arguments[2].asNumber();
|
|
149
|
+
auto thickness = arguments[3].asNumber();
|
|
150
|
+
ImageDataHostObject imageHOAfterDraw = drawOnImage(runtime, imageDataHostObject, jsQuads, (int) color, (int) thickness);
|
|
151
|
+
return Object::createFromHostObject(runtime, std::make_shared<ImageDataHostObject>(imageHOAfterDraw));
|
|
152
|
+
});
|
|
153
|
+
jsiRuntime.global().setProperty(jsiRuntime, nameID, std::move(drawOnImageFcn));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
void install_imageManager_cropImage(Runtime &jsiRuntime){
|
|
158
|
+
auto nameID = PropNameID::forAscii(jsiRuntime, "imageManager_cropImage");
|
|
159
|
+
if(!jsiRuntime.global().hasProperty(jsiRuntime, nameID)) {
|
|
160
|
+
auto cropImageFcn = Function::createFromHostFunction(jsiRuntime, nameID, 4, JSI_FUNC {
|
|
161
|
+
auto imageDataObj = arguments[0].asObject(runtime);
|
|
162
|
+
auto imageDataHostObject = ImageDataHostObject::getHOFromObject(runtime, std::move(imageDataObj));
|
|
163
|
+
auto jsQuads = arguments[1].asObject(runtime);
|
|
164
|
+
ImageDataHostObject imageHOAfterCrop = cropImage(runtime, imageDataHostObject, jsQuads);
|
|
165
|
+
if(imageHOAfterCrop.buffer == nullptr) {
|
|
166
|
+
return Value::undefined();
|
|
167
|
+
}
|
|
168
|
+
return Object::createFromHostObject(runtime, std::make_shared<ImageDataHostObject>(imageHOAfterCrop));
|
|
169
|
+
});
|
|
170
|
+
jsiRuntime.global().setProperty(jsiRuntime, nameID, std::move(cropImageFcn));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}//namespace jsi_install::dce
|
|
174
|
+
|
|
175
|
+
void install_imageManager_methods(Runtime &jsiRuntime) {
|
|
176
|
+
jsi_install::utility::install_imageManager_saveToFile(jsiRuntime);
|
|
177
|
+
jsi_install::utility::install_imageManager_drawOnImage(jsiRuntime);
|
|
178
|
+
jsi_install::utility::install_imageManager_cropImage(jsiRuntime);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
extern "C"
|
|
183
|
+
JNIEXPORT void JNICALL
|
|
184
|
+
Java_com_dynamsoft_reactnativelib_utility_ImageManagerModuleImpl_nativeInstall(JNIEnv *env, jobject thiz, jlong jsiPtr) {
|
|
185
|
+
if (!env->IsSameObject(jImageManagerModule, thiz)) {
|
|
186
|
+
jImageManagerModule = env->NewWeakGlobalRef(thiz);
|
|
187
|
+
}
|
|
188
|
+
if(jclzQuad == nullptr) {
|
|
189
|
+
jclzQuad = (jclass) env->NewWeakGlobalRef(env->FindClass("com/dynamsoft/core/basic_structures/Quadrilateral"));
|
|
190
|
+
}
|
|
191
|
+
if(jclzPoint == nullptr) {
|
|
192
|
+
jclzPoint = (jclass) env->NewWeakGlobalRef(env->FindClass("android/graphics/Point"));
|
|
193
|
+
}
|
|
194
|
+
auto rt = reinterpret_cast<Runtime *>(jsiPtr);
|
|
195
|
+
install_imageManager_methods(*rt);
|
|
196
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/09/23.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_UTILITY_JSIUTILITY_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_UTILITY_JSIUTILITY_H_
|
|
7
|
+
#include "JsiCore.h"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
namespace jsi_install::utility {
|
|
11
|
+
void install_imageManager_saveToFile(Runtime &jsiRuntime);
|
|
12
|
+
void install_imageManager_drawOnImage(Runtime &jsiRuntime);
|
|
13
|
+
void install_imageManager_cropImage(Runtime &jsiRuntime);
|
|
14
|
+
}//namespace jsi_install::dce
|
|
15
|
+
|
|
16
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_UTILITY_JSIUTILITY_H_
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/26.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
#include "RawBuffer.h"
|
|
7
|
+
|
|
8
|
+
MutableRawBuffer::MutableRawBuffer(uint8_t* data, size_t size, bool freeOnDealloc)
|
|
9
|
+
: _data(data), _size(size), _freeOnDealloc(freeOnDealloc) {}
|
|
10
|
+
|
|
11
|
+
MutableRawBuffer::~MutableRawBuffer() {
|
|
12
|
+
if (_freeOnDealloc && _data != nullptr) {
|
|
13
|
+
free(_data);
|
|
14
|
+
_data = nullptr;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
size_t MutableRawBuffer::size() const {
|
|
19
|
+
return _size;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
uint8_t* MutableRawBuffer::data() {
|
|
23
|
+
return _data;
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/26.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_MUTABLERAWBUFFER_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_MUTABLERAWBUFFER_H_
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
#include <jsi/jsi.h>
|
|
10
|
+
using namespace facebook::jsi;
|
|
11
|
+
|
|
12
|
+
class MutableRawBuffer : public MutableBuffer {
|
|
13
|
+
public:
|
|
14
|
+
MutableRawBuffer(uint8_t* data, size_t size, bool freeOnDealloc);
|
|
15
|
+
~MutableRawBuffer() override;
|
|
16
|
+
|
|
17
|
+
uint8_t* data() override;
|
|
18
|
+
[[nodiscard]] size_t size() const override;
|
|
19
|
+
uint8_t* _data;
|
|
20
|
+
size_t _size;
|
|
21
|
+
bool _freeOnDealloc;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_MUTABLERAWBUFFER_H_
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/05/15.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef DYNAMSOFT_CORE_REACT_NATIVE_ANDROID_SRC_MAIN_CPP_ANDROID_LOG_H_
|
|
6
|
+
#define DYNAMSOFT_CORE_REACT_NATIVE_ANDROID_SRC_MAIN_CPP_ANDROID_LOG_H_
|
|
7
|
+
|
|
8
|
+
#include "android/log.h"
|
|
9
|
+
#define LOG_TAG "Dynamsoft RN JNI"
|
|
10
|
+
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
|
11
|
+
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
|
|
12
|
+
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
|
|
13
|
+
|
|
14
|
+
#endif //DYNAMSOFT_CORE_REACT_NATIVE_ANDROID_SRC_MAIN_CPP_ANDROID_LOG_H_
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -81,13 +81,13 @@ class CVRModule(reactApplicationContext: ReactApplicationContext) : ReactContext
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
@ReactMethod
|
|
84
|
-
fun outputSettings(templateName: String, promise: Promise) {
|
|
85
|
-
impl.outputSettings(templateName, promise)
|
|
84
|
+
fun outputSettings(templateName: String, includeDefaultValues: Boolean, promise: Promise) {
|
|
85
|
+
impl.outputSettings(templateName, includeDefaultValues, promise)
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
@ReactMethod
|
|
89
|
-
fun outputSettingsToFile(file: String, templateName: String, promise: Promise) {
|
|
90
|
-
impl.outputSettingsToFile(file, templateName, promise)
|
|
89
|
+
fun outputSettingsToFile(file: String, templateName: String, includeDefaultValues: Boolean, promise: Promise) {
|
|
90
|
+
impl.outputSettingsToFile(file, templateName, includeDefaultValues, promise)
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
@ReactMethod
|
|
@@ -99,6 +99,16 @@ class DCEModule(reactApplicationContext: ReactApplicationContext) : ReactContext
|
|
|
99
99
|
impl.turnOffTorch()
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
@ReactMethod
|
|
103
|
+
fun setResolution(resolution: Int) {
|
|
104
|
+
impl.setResolution(resolution)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@ReactMethod
|
|
108
|
+
fun getResolution(promise: Promise) {
|
|
109
|
+
impl.getResolution(promise)
|
|
110
|
+
}
|
|
111
|
+
|
|
102
112
|
@ReactMethod
|
|
103
113
|
fun beep() {
|
|
104
114
|
impl.beep()
|
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
// ReactNativeDcvPackage.java
|
|
2
2
|
package com.dynamsoft.reactnativelib
|
|
3
3
|
|
|
4
|
-
import com.
|
|
5
|
-
import com.dynamsoft.reactnativelib.cvr.CaptureVisionRouterModuleImpl
|
|
6
|
-
import com.dynamsoft.reactnativelib.dce.CameraEnhancerModuleImpl
|
|
7
|
-
import com.dynamsoft.reactnativelib.dce.ImageEditorViewModuleImpl
|
|
8
|
-
import com.dynamsoft.reactnativelib.license.LicenseModuleImpl
|
|
9
|
-
import com.dynamsoft.reactnativelib.rtu.BarcodeScannerModuleImpl
|
|
10
|
-
import com.dynamsoft.reactnativelib.rtu.MRZScannerModuleImpl
|
|
11
|
-
import com.dynamsoft.reactnativelib.utility.ImageManagerModuleImpl
|
|
12
|
-
import com.dynamsoft.reactnativelib.utility.MultiCrossFilterModuleImpl
|
|
13
|
-
import com.facebook.react.TurboReactPackage
|
|
4
|
+
import com.facebook.react.ReactPackage
|
|
14
5
|
import com.facebook.react.bridge.NativeModule
|
|
15
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
16
|
-
import com.facebook.react.module.model.ReactModuleInfo
|
|
17
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
18
7
|
import com.facebook.react.uimanager.ViewManager
|
|
19
8
|
|
|
20
|
-
class ReactNativeDcvPackage :
|
|
9
|
+
class ReactNativeDcvPackage : ReactPackage {
|
|
21
10
|
companion object {
|
|
22
11
|
init {
|
|
23
12
|
System.loadLibrary("rn_dys")
|
|
@@ -28,77 +17,16 @@ class ReactNativeDcvPackage : TurboReactPackage() {
|
|
|
28
17
|
return listOf(CameraViewManager(), ImageEditorViewManager())
|
|
29
18
|
}
|
|
30
19
|
|
|
31
|
-
override fun
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
VersionsModule
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
MRZScannerModuleImpl.NAME -> MRZScannerModule(context)
|
|
43
|
-
else -> null
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
48
|
-
val isEnableNewArch = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
|
|
49
|
-
return ReactModuleInfoProvider {
|
|
50
|
-
mapOf(
|
|
51
|
-
CaptureVisionRouterModuleImpl.NAME to ReactModuleInfo(
|
|
52
|
-
CaptureVisionRouterModuleImpl.NAME,
|
|
53
|
-
CaptureVisionRouterModuleImpl.NAME,
|
|
54
|
-
false, false, true, false, isEnableNewArch
|
|
55
|
-
),
|
|
56
|
-
CameraEnhancerModuleImpl.NAME to ReactModuleInfo(
|
|
57
|
-
CameraEnhancerModuleImpl.NAME,
|
|
58
|
-
CameraEnhancerModuleImpl.NAME,
|
|
59
|
-
false, false, true, false, isEnableNewArch
|
|
60
|
-
),
|
|
61
|
-
ImageSourceAdapterModuleImpl.NAME to ReactModuleInfo(
|
|
62
|
-
ImageSourceAdapterModuleImpl.NAME,
|
|
63
|
-
ImageSourceAdapterModuleImpl.NAME,
|
|
64
|
-
false, false, true, false, isEnableNewArch
|
|
65
|
-
),
|
|
66
|
-
LicenseModuleImpl.NAME to ReactModuleInfo(
|
|
67
|
-
LicenseModuleImpl.NAME,
|
|
68
|
-
LicenseModuleImpl.NAME,
|
|
69
|
-
false, false, true, false, isEnableNewArch
|
|
70
|
-
),
|
|
71
|
-
MultiCrossFilterModuleImpl.NAME to ReactModuleInfo(
|
|
72
|
-
MultiCrossFilterModuleImpl.NAME,
|
|
73
|
-
MultiCrossFilterModuleImpl.NAME,
|
|
74
|
-
false, false, true, false, isEnableNewArch
|
|
75
|
-
),
|
|
76
|
-
VersionsModule.NAME to ReactModuleInfo(
|
|
77
|
-
VersionsModule.NAME,
|
|
78
|
-
VersionsModule.NAME,
|
|
79
|
-
false, false, true, false, isEnableNewArch
|
|
80
|
-
),
|
|
81
|
-
ImageEditorViewModuleImpl.NAME to ReactModuleInfo(
|
|
82
|
-
ImageEditorViewModuleImpl.NAME,
|
|
83
|
-
ImageEditorViewModuleImpl.NAME,
|
|
84
|
-
false, false, true, false, isEnableNewArch
|
|
85
|
-
),
|
|
86
|
-
ImageManagerModuleImpl.NAME to ReactModuleInfo(
|
|
87
|
-
ImageManagerModuleImpl.NAME,
|
|
88
|
-
ImageManagerModuleImpl.NAME,
|
|
89
|
-
false, false, true, false, isEnableNewArch
|
|
90
|
-
),
|
|
91
|
-
BarcodeScannerModuleImpl.NAME to ReactModuleInfo(
|
|
92
|
-
BarcodeScannerModuleImpl.NAME,
|
|
93
|
-
BarcodeScannerModuleImpl.NAME,
|
|
94
|
-
false, false, true, false, isEnableNewArch
|
|
95
|
-
),
|
|
96
|
-
MRZScannerModuleImpl.NAME to ReactModuleInfo(
|
|
97
|
-
MRZScannerModuleImpl.NAME,
|
|
98
|
-
MRZScannerModuleImpl.NAME,
|
|
99
|
-
false, false, true, false, isEnableNewArch
|
|
100
|
-
)
|
|
101
|
-
)
|
|
102
|
-
}
|
|
20
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
21
|
+
return mutableListOf(
|
|
22
|
+
CVRModule(reactContext),
|
|
23
|
+
DCEModule(reactContext),
|
|
24
|
+
ISAModule(reactContext),
|
|
25
|
+
LicenseModule(reactContext),
|
|
26
|
+
MultiCrossFilterModule(reactContext),
|
|
27
|
+
VersionsModule(reactContext),
|
|
28
|
+
ImageEditorViewModule(reactContext),
|
|
29
|
+
ImageManagerModule(reactContext),
|
|
30
|
+
)
|
|
103
31
|
}
|
|
104
32
|
}
|
|
@@ -5,7 +5,7 @@ import com.dynamsoft.cvr.CaptureVisionRouterModule
|
|
|
5
5
|
import com.dynamsoft.dbr.BarcodeReaderModule
|
|
6
6
|
import com.dynamsoft.dce.CameraEnhancerModule
|
|
7
7
|
import com.dynamsoft.dcp.CodeParserModule
|
|
8
|
-
import com.dynamsoft.dcp.dedicator.
|
|
8
|
+
import com.dynamsoft.dcp.dedicator.CodeParserDedicatorModule
|
|
9
9
|
import com.dynamsoft.ddn.DocumentNormalizerModule
|
|
10
10
|
import com.dynamsoft.dip.ImageProcessingModule
|
|
11
11
|
import com.dynamsoft.dlr.LabelRecognizerModule
|
|
@@ -34,7 +34,7 @@ class VersionsModule(reactContext: ReactApplicationContext) : ReactContextBaseJa
|
|
|
34
34
|
"dnn" to NeuralNetworkModule.getVersion(),
|
|
35
35
|
"utility" to UtilityModule.getVersion(),
|
|
36
36
|
"dcp" to CodeParserModule.getVersion(),
|
|
37
|
-
"dcpd" to
|
|
37
|
+
"dcpd" to CodeParserDedicatorModule.getVersion(),
|
|
38
38
|
"dip" to ImageProcessingModule.getVersion()
|
|
39
39
|
)
|
|
40
40
|
)
|