dynamsoft-capture-vision-react-native 3.4.1200 → 3.4.3000
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 +5 -5
- package/README.md +62 -66
- package/android/README.md +14 -14
- package/android/build.gradle +167 -163
- package/android/gradle.properties +20 -20
- package/android/settings.gradle +5 -5
- package/android/src/main/AndroidManifest.xml +6 -6
- package/android/src/main/AndroidManifest_noPackage.xml +5 -5
- package/android/src/main/cpp/CMakeLists.txt +21 -21
- package/android/src/main/cpp/ImgHO.cpp +94 -94
- package/android/src/main/cpp/ImgHO.h +34 -34
- package/android/src/main/cpp/JsiCore.cpp +296 -296
- package/android/src/main/cpp/JsiCore.h +51 -51
- package/android/src/main/cpp/JsiCvr.cpp +332 -332
- package/android/src/main/cpp/JsiCvr.h +54 -54
- package/android/src/main/cpp/JsiDbr.cpp +283 -283
- package/android/src/main/cpp/JsiDbr.h +26 -26
- package/android/src/main/cpp/JsiDce.cpp +59 -59
- package/android/src/main/cpp/JsiDce.h +17 -17
- package/android/src/main/cpp/JsiDcp.cpp +51 -51
- package/android/src/main/cpp/JsiDcp.h +31 -31
- package/android/src/main/cpp/JsiDdn.cpp +50 -50
- package/android/src/main/cpp/JsiDdn.h +28 -28
- package/android/src/main/cpp/JsiDlr.cpp +60 -60
- package/android/src/main/cpp/JsiDlr.h +26 -26
- package/android/src/main/cpp/JsiUtility.cpp +604 -604
- package/android/src/main/cpp/JsiUtility.h +26 -26
- package/android/src/main/cpp/RawBuffer.cpp +23 -23
- package/android/src/main/cpp/RawBuffer.h +24 -24
- package/android/src/main/cpp/android_log.h +14 -14
- 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/main/dysJniLibsFor81/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +3 -0
- package/android/src/main/java/com/dynamsoft/reactnativelib/CVRModule.kt +137 -137
- package/android/src/main/java/com/dynamsoft/reactnativelib/CameraViewManager.kt +62 -62
- package/android/src/main/java/com/dynamsoft/reactnativelib/DCEModule.kt +125 -125
- package/android/src/main/java/com/dynamsoft/reactnativelib/DynamsoftBaseModule.kt +8 -8
- package/android/src/main/java/com/dynamsoft/reactnativelib/ISAModule.kt +73 -73
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +35 -35
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageManagerModule.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/LicenseModule.kt +29 -29
- package/android/src/main/java/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +83 -83
- package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +32 -32
- package/android/src/main/java/com/dynamsoft/reactnativelib/VersionsModule.kt +41 -41
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/Basic.kt +44 -44
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCore.kt +50 -50
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCvr.kt +129 -129
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDBR.kt +157 -157
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCE.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCP.kt +49 -49
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDDN.kt +85 -85
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDLR.kt +72 -72
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ImageUtil.kt +58 -58
- package/android/src/main/java/com/dynamsoft/reactnativelib/core/ImageSourceAdapterModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +306 -306
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +247 -247
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraLifeCycleOwner.java +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraViewManagerImpl.kt +77 -77
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewManagerImpl.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewModuleImpl.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNCameraView.kt +20 -20
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNImageEditorView.kt +19 -19
- package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +39 -39
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/MultiCrossFilterModuleImpl.kt +111 -111
- package/app.plugin.js +21 -21
- package/dynamsoft-capture-vision-react-native.podspec +24 -24
- package/ios/CPP/DSImageData+HostObject.h +18 -18
- package/ios/CPP/DSImageData+HostObject.mm +38 -38
- package/ios/CPP/ImageDataHostObject.cpp +87 -87
- package/ios/CPP/ImageDataHostObject.hpp +35 -35
- package/ios/CPP/MutableRawBuffer.cpp +23 -23
- package/ios/CPP/MutableRawBuffer.hpp +23 -23
- package/ios/CPP/RNDynamsoft+JSI.h +22 -22
- package/ios/CPP/RNDynamsoft+JSI.mm +303 -303
- package/ios/CPP/RNDynamsoft+Json.h +93 -93
- package/ios/CPP/RNDynamsoft+Json.m +733 -733
- package/ios/CPP/YeetJSIUtils.h +56 -56
- package/ios/CPP/YeetJSIUtils.mm +208 -208
- package/ios/RNDynamsoftCameraView.h +31 -31
- package/ios/RNDynamsoftCameraView.m +108 -108
- package/ios/RNDynamsoftCameraViewManager.h +14 -14
- package/ios/RNDynamsoftCameraViewManager.m +195 -195
- package/ios/RNDynamsoftCaptureVisionRouter.h +18 -18
- package/ios/RNDynamsoftCaptureVisionRouter.mm +532 -532
- package/ios/RNDynamsoftImageEditorView.h +17 -17
- package/ios/RNDynamsoftImageEditorView.m +25 -25
- package/ios/RNDynamsoftImageEditorViewManager.h +14 -14
- package/ios/RNDynamsoftImageEditorViewManager.mm +183 -183
- package/ios/RNDynamsoftImageManager.h +14 -14
- package/ios/RNDynamsoftImageManager.mm +369 -369
- package/ios/RNDynamsoftImageSourceAdapter.h +19 -19
- package/ios/RNDynamsoftImageSourceAdapter.mm +255 -255
- package/ios/RNDynamsoftLicense.h +14 -14
- package/ios/RNDynamsoftLicense.m +62 -62
- package/ios/RNDynamsoftMultiCrossFilter.h +14 -14
- package/ios/RNDynamsoftMultiCrossFilter.m +145 -145
- package/ios/RNDynamsoftVersions.h +13 -13
- package/ios/RNDynamsoftVersions.m +27 -27
- package/package.json +48 -48
- package/src/NativeDynamsoftVersionsModule.tsx +20 -20
- package/src/VersionsModule.tsx +7 -7
- package/src/core/CapturedResultBase.tsx +18 -18
- package/src/core/CapturedResultItem.tsx +23 -23
- package/src/core/CoreModule.tsx +9 -9
- package/src/core/DSRect.tsx +29 -29
- package/src/core/EnumCaptureResultItemType.tsx +52 -52
- package/src/core/EnumColourChannelUsageType.tsx +26 -26
- package/src/core/EnumCrossVerificationStatus.tsx +46 -46
- package/src/core/EnumGrayscaleEnhancementMode.tsx +46 -46
- package/src/core/EnumGrayscaleTransformationMode.tsx +35 -35
- package/src/core/EnumImageFileFormat.tsx +6 -6
- package/src/core/EnumPixelFormat.tsx +53 -53
- package/src/core/ImageData.tsx +87 -87
- package/src/core/ImageSourceAdapter.tsx +160 -160
- package/src/core/NativeDynamsoftImageSourceAdapterModule.tsx +29 -29
- package/src/core/Point.tsx +13 -13
- package/src/core/Quadrilateral.tsx +12 -12
- package/src/core/index.tsx +18 -18
- package/src/cvr/CaptureVisionRouter.tsx +683 -683
- package/src/cvr/CaptureVisionRouterModule.tsx +9 -9
- package/src/cvr/CapturedResult.tsx +123 -123
- package/src/cvr/CapturedResultFilter.tsx +13 -13
- package/src/cvr/CapturedResultReceiver.tsx +71 -71
- package/src/cvr/EnumPresetTemplate.tsx +81 -81
- package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +25 -25
- package/src/cvr/SimplifiedCaptureVisionSettings.tsx +61 -61
- package/src/cvr/index.tsx +11 -11
- package/src/dbr/BarcodeDetails.tsx +51 -51
- package/src/dbr/BarcodeReaderModule.tsx +9 -9
- package/src/dbr/BarcodeResultItem.tsx +65 -65
- package/src/dbr/DecodedBarcodesResult.tsx +14 -14
- package/src/dbr/ECISegment.tsx +23 -23
- package/src/dbr/EnumBarcodeFormat.tsx +112 -112
- package/src/dbr/EnumDeblurMode.tsx +29 -29
- package/src/dbr/EnumLocalizationMode.tsx +27 -27
- package/src/dbr/EnumQRCodeErrorCorrectionLevel.tsx +6 -6
- package/src/dbr/SimplifiedBarcodeReaderSettings.tsx +80 -80
- package/src/dbr/index.tsx +9 -9
- package/src/dce/CameraEnhancer.tsx +254 -254
- package/src/dce/CameraEnhancerModule.tsx +9 -9
- package/src/dce/CameraView.tsx +100 -100
- package/src/dce/DynamsoftCameraViewNativeComponent.ts +96 -96
- package/src/dce/DynamsoftImageEditorViewNativeComponent.ts +9 -9
- package/src/dce/EnumCameraPosition.tsx +25 -25
- package/src/dce/EnumDrawingLayerId.tsx +17 -17
- package/src/dce/EnumEnhancedFeatures.tsx +24 -24
- package/src/dce/EnumFocusMode.tsx +6 -6
- package/src/dce/EnumResolution.tsx +8 -8
- package/src/dce/EnumTorchState.tsx +10 -10
- package/src/dce/FeedBack.tsx +28 -28
- package/src/dce/ImageEditorView.tsx +131 -131
- package/src/dce/NativeDynamsoftCameraViewModule.tsx +47 -47
- package/src/dce/NativeDynamsoftImageEditorViewModule.ts +9 -9
- package/src/dce/index.tsx +13 -13
- package/src/dcp/CodeParserDedicatorModule.tsx +9 -9
- package/src/dcp/CodeParserModule.tsx +9 -9
- package/src/dcp/EnumMappingStatus.tsx +14 -14
- package/src/dcp/EnumValidationStatus.tsx +14 -14
- package/src/dcp/ParsedResult.tsx +14 -14
- package/src/dcp/ParsedResultItem.tsx +50 -50
- package/src/dcp/index.tsx +8 -8
- package/src/ddn/DeskewedImageResultItem.tsx +40 -40
- package/src/ddn/DetectedQuadResultItem.tsx +31 -31
- package/src/ddn/DocumentNormalizerModule.tsx +9 -9
- package/src/ddn/EnhancedImageResultItem.tsx +20 -20
- package/src/ddn/EnumImageColourMode.tsx +14 -14
- package/src/ddn/ProcessedDocumentResult.tsx +27 -27
- package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +65 -65
- package/src/ddn/index.tsx +11 -11
- package/src/dip/ImageProcessingModule.tsx +9 -9
- package/src/dip/index.tsx +1 -1
- package/src/dlr/CharacterResult.tsx +28 -28
- package/src/dlr/LabelRecognizerModule.tsx +9 -9
- package/src/dlr/RecognizedTextLinesResult.tsx +19 -19
- package/src/dlr/SimplifiedLabelRecognizerSettings.tsx +33 -33
- package/src/dlr/TextLineResultItem.tsx +41 -41
- package/src/dlr/index.tsx +8 -8
- package/src/index.tsx +13 -13
- package/src/license/LicenseManager.tsx +49 -49
- package/src/license/LicenseModule.tsx +9 -9
- package/src/license/NativeDynamsoftLicenseModule.tsx +7 -7
- package/src/license/index.tsx +7 -7
- package/src/utility/CrossVerificationCriteria.tsx +11 -11
- package/src/utility/EnumFilterType.tsx +5 -5
- package/src/utility/ImageManager.tsx +348 -348
- package/src/utility/MultiFrameResultCrossFilter.tsx +183 -183
- package/src/utility/NativeDynamsoftImageManagerModule.tsx +7 -7
- package/src/utility/NativeDynamsoftMultiCrossFilterModule.tsx +18 -18
- package/src/utility/UtilityModule.tsx +9 -9
- package/src/utility/index.tsx +4 -4
- package/android/.gitignore +0 -4
|
@@ -1,129 +1,129 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
import android.util.Log
|
|
4
|
-
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
5
|
-
import com.dynamsoft.core.basic_structures.CompletionListener
|
|
6
|
-
import com.dynamsoft.core.basic_structures.EnumCapturedResultItemType
|
|
7
|
-
import com.dynamsoft.cvr.CaptureVisionRouter
|
|
8
|
-
import com.dynamsoft.cvr.CapturedResult
|
|
9
|
-
import com.dynamsoft.cvr.SimplifiedCaptureVisionSettings
|
|
10
|
-
import com.dynamsoft.dbr.BarcodeResultItem
|
|
11
|
-
import com.dynamsoft.dcp.ParsedResultItem
|
|
12
|
-
import com.dynamsoft.ddn.DeskewedImageResultItem
|
|
13
|
-
import com.dynamsoft.ddn.DetectedQuadResultItem
|
|
14
|
-
import com.dynamsoft.ddn.EnhancedImageResultItem
|
|
15
|
-
import com.dynamsoft.dlr.TextLineResultItem
|
|
16
|
-
import com.facebook.react.bridge.Arguments
|
|
17
|
-
import com.facebook.react.bridge.ReadableMap
|
|
18
|
-
import com.facebook.react.bridge.WritableArray
|
|
19
|
-
import com.facebook.react.bridge.WritableMap
|
|
20
|
-
|
|
21
|
-
fun CaptureVisionRouter.startCapturingWithCallback(template: String, logTag: String) {
|
|
22
|
-
startCapturing(template, object : CompletionListener {
|
|
23
|
-
override fun onSuccess() {
|
|
24
|
-
Log.i(logTag, "onSuccess: startCapturing($template)")
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
override fun onFailure(errorCode: Int, errorString: String?) {
|
|
28
|
-
Log.e(logTag, "onFailure: startCapturing($template). ErrorCode: $errorCode. ErrorString: $errorString")
|
|
29
|
-
}
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
private fun Array<out CapturedResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
34
|
-
forEach {
|
|
35
|
-
when (it.type) {
|
|
36
|
-
EnumCapturedResultItemType.CRIT_BARCODE -> {
|
|
37
|
-
pushMap((it as BarcodeResultItem).toWritableMap())
|
|
38
|
-
}
|
|
39
|
-
EnumCapturedResultItemType.CRIT_TEXT_LINE -> {
|
|
40
|
-
pushMap((it as TextLineResultItem).toWritableMap())
|
|
41
|
-
}
|
|
42
|
-
EnumCapturedResultItemType.CRIT_DETECTED_QUAD -> {
|
|
43
|
-
pushMap((it as DetectedQuadResultItem).toWritableMap())
|
|
44
|
-
}
|
|
45
|
-
EnumCapturedResultItemType.CRIT_DESKEWED_IMAGE -> {
|
|
46
|
-
pushMap((it as DeskewedImageResultItem).toWritableMap())
|
|
47
|
-
}
|
|
48
|
-
EnumCapturedResultItemType.CRIT_ENHANCED_IMAGE -> {
|
|
49
|
-
pushMap((it as EnhancedImageResultItem).toWritableMap())
|
|
50
|
-
}
|
|
51
|
-
EnumCapturedResultItemType.CRIT_PARSED_RESULT -> {
|
|
52
|
-
pushMap((it as ParsedResultItem).toWritableMap())
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
fun CapturedResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
59
|
-
putInt("errorCode", errorCode)
|
|
60
|
-
putString("errorMessage", errorMessage)
|
|
61
|
-
putString("originalImageHashId",originalImageHashId)
|
|
62
|
-
putArray("items", items.toWritableArray())
|
|
63
|
-
putArray("rotationTransformMatrix",FloatArray(9).apply { rotationTransformMatrix.getValues(this) }.toWritableArray())
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
fun SimplifiedCaptureVisionSettings.toWritableMap() = Arguments.createMap().apply {
|
|
67
|
-
putMap("roi", roi.toWritableMap())
|
|
68
|
-
putBoolean("roiMeasuredInPercentage", roiMeasuredInPercentage)
|
|
69
|
-
putInt("maxParallelTasks", maxParallelTasks)
|
|
70
|
-
putInt("timeout", timeout)
|
|
71
|
-
putInt("minImageCaptureInterval", minImageCaptureInterval)
|
|
72
|
-
try {
|
|
73
|
-
Class.forName("com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings")
|
|
74
|
-
putMap("barcodeSettings", barcodeSettings?.toWritableMap())
|
|
75
|
-
} catch (e: ClassNotFoundException) {
|
|
76
|
-
/* no-op */
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
Class.forName("com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings")
|
|
81
|
-
putMap("labelSettings", labelSettings?.toWritableMap())
|
|
82
|
-
} catch (e: ClassNotFoundException) {
|
|
83
|
-
/* no-op */
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
Class.forName("com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings")
|
|
88
|
-
putMap("documentSettings", documentSettings?.toWritableMap())
|
|
89
|
-
} catch (e: ClassNotFoundException) {
|
|
90
|
-
/* no-op */
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
fun SimplifiedCaptureVisionSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
95
|
-
roi = if (newSettings.hasKey("roi")) newSettings.getMap("roi")!!.toQuad() else roi
|
|
96
|
-
roiMeasuredInPercentage =
|
|
97
|
-
if (newSettings.hasKey("roiMeasuredInPercentage")) newSettings.getBoolean("roiMeasuredInPercentage") else roiMeasuredInPercentage
|
|
98
|
-
maxParallelTasks = if (newSettings.hasKey("maxParallelTasks")) newSettings.getInt("maxParallelTasks") else maxParallelTasks
|
|
99
|
-
timeout = if (newSettings.hasKey("timeout")) newSettings.getInt("timeout") else timeout
|
|
100
|
-
minImageCaptureInterval =
|
|
101
|
-
if (newSettings.hasKey("minImageCaptureInterval")) newSettings.getInt("minImageCaptureInterval") else minImageCaptureInterval
|
|
102
|
-
try {
|
|
103
|
-
Class.forName("com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings")
|
|
104
|
-
newSettings.getMap("barcodeSettings")?.let {
|
|
105
|
-
barcodeSettings?.updateFromReadableMap(it)
|
|
106
|
-
}
|
|
107
|
-
} catch (e: ClassNotFoundException) {
|
|
108
|
-
//keep
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
Class.forName("com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings")
|
|
112
|
-
newSettings.getMap("labelSettings")?.let {
|
|
113
|
-
labelSettings?.updateFromReadableMap(it)
|
|
114
|
-
}
|
|
115
|
-
} catch (e: ClassNotFoundException) {
|
|
116
|
-
//keep
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
try {
|
|
121
|
-
Class.forName("com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings")
|
|
122
|
-
newSettings.getMap("documentSettings")?.let {
|
|
123
|
-
documentSettings?.updateFromReadableMap(it)
|
|
124
|
-
}
|
|
125
|
-
} catch (e: ClassNotFoundException) {
|
|
126
|
-
Log.e("TAG", "updateFromReadableMap: No DDN")
|
|
127
|
-
/* no-op */
|
|
128
|
-
}
|
|
129
|
-
}
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
import android.util.Log
|
|
4
|
+
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
5
|
+
import com.dynamsoft.core.basic_structures.CompletionListener
|
|
6
|
+
import com.dynamsoft.core.basic_structures.EnumCapturedResultItemType
|
|
7
|
+
import com.dynamsoft.cvr.CaptureVisionRouter
|
|
8
|
+
import com.dynamsoft.cvr.CapturedResult
|
|
9
|
+
import com.dynamsoft.cvr.SimplifiedCaptureVisionSettings
|
|
10
|
+
import com.dynamsoft.dbr.BarcodeResultItem
|
|
11
|
+
import com.dynamsoft.dcp.ParsedResultItem
|
|
12
|
+
import com.dynamsoft.ddn.DeskewedImageResultItem
|
|
13
|
+
import com.dynamsoft.ddn.DetectedQuadResultItem
|
|
14
|
+
import com.dynamsoft.ddn.EnhancedImageResultItem
|
|
15
|
+
import com.dynamsoft.dlr.TextLineResultItem
|
|
16
|
+
import com.facebook.react.bridge.Arguments
|
|
17
|
+
import com.facebook.react.bridge.ReadableMap
|
|
18
|
+
import com.facebook.react.bridge.WritableArray
|
|
19
|
+
import com.facebook.react.bridge.WritableMap
|
|
20
|
+
|
|
21
|
+
fun CaptureVisionRouter.startCapturingWithCallback(template: String, logTag: String) {
|
|
22
|
+
startCapturing(template, object : CompletionListener {
|
|
23
|
+
override fun onSuccess() {
|
|
24
|
+
Log.i(logTag, "onSuccess: startCapturing($template)")
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun onFailure(errorCode: Int, errorString: String?) {
|
|
28
|
+
Log.e(logTag, "onFailure: startCapturing($template). ErrorCode: $errorCode. ErrorString: $errorString")
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private fun Array<out CapturedResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
34
|
+
forEach {
|
|
35
|
+
when (it.type) {
|
|
36
|
+
EnumCapturedResultItemType.CRIT_BARCODE -> {
|
|
37
|
+
pushMap((it as BarcodeResultItem).toWritableMap())
|
|
38
|
+
}
|
|
39
|
+
EnumCapturedResultItemType.CRIT_TEXT_LINE -> {
|
|
40
|
+
pushMap((it as TextLineResultItem).toWritableMap())
|
|
41
|
+
}
|
|
42
|
+
EnumCapturedResultItemType.CRIT_DETECTED_QUAD -> {
|
|
43
|
+
pushMap((it as DetectedQuadResultItem).toWritableMap())
|
|
44
|
+
}
|
|
45
|
+
EnumCapturedResultItemType.CRIT_DESKEWED_IMAGE -> {
|
|
46
|
+
pushMap((it as DeskewedImageResultItem).toWritableMap())
|
|
47
|
+
}
|
|
48
|
+
EnumCapturedResultItemType.CRIT_ENHANCED_IMAGE -> {
|
|
49
|
+
pushMap((it as EnhancedImageResultItem).toWritableMap())
|
|
50
|
+
}
|
|
51
|
+
EnumCapturedResultItemType.CRIT_PARSED_RESULT -> {
|
|
52
|
+
pushMap((it as ParsedResultItem).toWritableMap())
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
fun CapturedResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
59
|
+
putInt("errorCode", errorCode)
|
|
60
|
+
putString("errorMessage", errorMessage)
|
|
61
|
+
putString("originalImageHashId",originalImageHashId)
|
|
62
|
+
putArray("items", items.toWritableArray())
|
|
63
|
+
putArray("rotationTransformMatrix",FloatArray(9).apply { rotationTransformMatrix.getValues(this) }.toWritableArray())
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fun SimplifiedCaptureVisionSettings.toWritableMap() = Arguments.createMap().apply {
|
|
67
|
+
putMap("roi", roi.toWritableMap())
|
|
68
|
+
putBoolean("roiMeasuredInPercentage", roiMeasuredInPercentage)
|
|
69
|
+
putInt("maxParallelTasks", maxParallelTasks)
|
|
70
|
+
putInt("timeout", timeout)
|
|
71
|
+
putInt("minImageCaptureInterval", minImageCaptureInterval)
|
|
72
|
+
try {
|
|
73
|
+
Class.forName("com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings")
|
|
74
|
+
putMap("barcodeSettings", barcodeSettings?.toWritableMap())
|
|
75
|
+
} catch (e: ClassNotFoundException) {
|
|
76
|
+
/* no-op */
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
try {
|
|
80
|
+
Class.forName("com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings")
|
|
81
|
+
putMap("labelSettings", labelSettings?.toWritableMap())
|
|
82
|
+
} catch (e: ClassNotFoundException) {
|
|
83
|
+
/* no-op */
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
Class.forName("com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings")
|
|
88
|
+
putMap("documentSettings", documentSettings?.toWritableMap())
|
|
89
|
+
} catch (e: ClassNotFoundException) {
|
|
90
|
+
/* no-op */
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
fun SimplifiedCaptureVisionSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
95
|
+
roi = if (newSettings.hasKey("roi")) newSettings.getMap("roi")!!.toQuad() else roi
|
|
96
|
+
roiMeasuredInPercentage =
|
|
97
|
+
if (newSettings.hasKey("roiMeasuredInPercentage")) newSettings.getBoolean("roiMeasuredInPercentage") else roiMeasuredInPercentage
|
|
98
|
+
maxParallelTasks = if (newSettings.hasKey("maxParallelTasks")) newSettings.getInt("maxParallelTasks") else maxParallelTasks
|
|
99
|
+
timeout = if (newSettings.hasKey("timeout")) newSettings.getInt("timeout") else timeout
|
|
100
|
+
minImageCaptureInterval =
|
|
101
|
+
if (newSettings.hasKey("minImageCaptureInterval")) newSettings.getInt("minImageCaptureInterval") else minImageCaptureInterval
|
|
102
|
+
try {
|
|
103
|
+
Class.forName("com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings")
|
|
104
|
+
newSettings.getMap("barcodeSettings")?.let {
|
|
105
|
+
barcodeSettings?.updateFromReadableMap(it)
|
|
106
|
+
}
|
|
107
|
+
} catch (e: ClassNotFoundException) {
|
|
108
|
+
//keep
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
Class.forName("com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings")
|
|
112
|
+
newSettings.getMap("labelSettings")?.let {
|
|
113
|
+
labelSettings?.updateFromReadableMap(it)
|
|
114
|
+
}
|
|
115
|
+
} catch (e: ClassNotFoundException) {
|
|
116
|
+
//keep
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
Class.forName("com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings")
|
|
122
|
+
newSettings.getMap("documentSettings")?.let {
|
|
123
|
+
documentSettings?.updateFromReadableMap(it)
|
|
124
|
+
}
|
|
125
|
+
} catch (e: ClassNotFoundException) {
|
|
126
|
+
Log.e("TAG", "updateFromReadableMap: No DDN")
|
|
127
|
+
/* no-op */
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import android.util.Base64
|
|
5
|
-
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
6
|
-
import com.dynamsoft.dbr.AztecDetails
|
|
7
|
-
import com.dynamsoft.dbr.BarcodeDetails
|
|
8
|
-
import com.dynamsoft.dbr.BarcodeResultItem
|
|
9
|
-
import com.dynamsoft.dbr.DataMatrixDetails
|
|
10
|
-
import com.dynamsoft.dbr.DecodedBarcodesResult
|
|
11
|
-
import com.dynamsoft.dbr.ECISegment
|
|
12
|
-
import com.dynamsoft.dbr.OneDCodeDetails
|
|
13
|
-
import com.dynamsoft.dbr.PDF417Details
|
|
14
|
-
import com.dynamsoft.dbr.QRCodeDetails
|
|
15
|
-
import com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings
|
|
16
|
-
import com.facebook.react.bridge.Arguments
|
|
17
|
-
import com.facebook.react.bridge.ReadableMap
|
|
18
|
-
import com.facebook.react.bridge.WritableArray
|
|
19
|
-
import com.facebook.react.bridge.WritableMap
|
|
20
|
-
|
|
21
|
-
fun BarcodeResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
22
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
23
|
-
// putInt("format0_31", format.toInt())
|
|
24
|
-
// putInt("format32_63", (format shr (32)).toInt())
|
|
25
|
-
putString("_formatNumberString", format.toULong().toString())
|
|
26
|
-
putString("formatString", formatString)
|
|
27
|
-
putString("text", text)
|
|
28
|
-
putString("bytes", Base64.encodeToString(bytes ?: byteArrayOf(), Base64.NO_WRAP))
|
|
29
|
-
putMap("location", location.toWritableMap())
|
|
30
|
-
putInt("confidence", confidence)
|
|
31
|
-
putInt("angle", angle)
|
|
32
|
-
putInt("moduleSize", moduleSize)
|
|
33
|
-
putBoolean("isMirrored", isMirrored)
|
|
34
|
-
putBoolean("isDPM", isDPM)
|
|
35
|
-
when (details) {
|
|
36
|
-
is QRCodeDetails -> putMap("qrCodeDetails", details.toWritableMap())
|
|
37
|
-
is AztecDetails -> putMap("aztecDetails", details.toWritableMap())
|
|
38
|
-
is OneDCodeDetails -> putMap("oneDCodeDetails", details.toWritableMap())
|
|
39
|
-
is DataMatrixDetails -> putMap("dataMatrixDetails", details.toWritableMap())
|
|
40
|
-
is PDF417Details -> putMap("pdf417Details", details.toWritableMap())
|
|
41
|
-
else -> Unit
|
|
42
|
-
}
|
|
43
|
-
putArray("eciSegments", eciSegments?.toWritableArray())
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
fun Array<out BarcodeResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
47
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
fun DecodedBarcodesResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
51
|
-
merge(this@toWritableMap.toSharedWritableMap())
|
|
52
|
-
putArray("items", items.toWritableArray())
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
fun SimplifiedBarcodeReaderSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
56
|
-
// putInt("barcodeFormatIds0_31", barcodeFormatIds.toInt())
|
|
57
|
-
// putInt("barcodeFormatIds32_63", barcodeFormatIds.shr(32).toInt())
|
|
58
|
-
putString("_barcodeFormatIdsNumberString", barcodeFormatIds.toULong().toString())
|
|
59
|
-
putInt("expectedBarcodesCount", expectedBarcodesCount)
|
|
60
|
-
putInt("minResultConfidence", minResultConfidence)
|
|
61
|
-
putInt("minBarcodeTextLength", minBarcodeTextLength)
|
|
62
|
-
putString("barcodeTextRegExPattern", barcodeTextRegExPattern)
|
|
63
|
-
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
64
|
-
putArray("localizationModes", localizationModes.toWritableArray())
|
|
65
|
-
putArray("deblurModes", deblurModes.toWritableArray())
|
|
66
|
-
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
67
|
-
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
68
|
-
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
fun SimplifiedBarcodeReaderSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
72
|
-
if (newSettings.hasKey("_barcodeFormatIdsNumberString"))
|
|
73
|
-
barcodeFormatIds = (newSettings.getString("_barcodeFormatIdsNumberString") ?: "0").toULong().toLong()
|
|
74
|
-
// barcodeFormatIds = barcodeFormatIds0_31.toLong() or barcodeFormatIds32_63.toLong().shl(32)
|
|
75
|
-
// val barcodeFormatIds0_31 = if (newSettings.hasKey("barcodeFormatIds0_31")) newSettings.getInt("barcodeFormatIds0_31") else 0
|
|
76
|
-
// val barcodeFormatIds32_63 = if (newSettings.hasKey("barcodeFormatIds32_63")) newSettings.getInt("barcodeFormatIds32_63") else 0
|
|
77
|
-
if (newSettings.hasKey("expectedBarcodesCount")) expectedBarcodesCount = newSettings.getInt("expectedBarcodesCount")
|
|
78
|
-
if (newSettings.hasKey("minResultConfidence")) minResultConfidence = newSettings.getInt("minResultConfidence")
|
|
79
|
-
if (newSettings.hasKey("minBarcodeTextLength")) minBarcodeTextLength = newSettings.getInt("minBarcodeTextLength")
|
|
80
|
-
if (newSettings.hasKey("barcodeTextRegExPattern"))
|
|
81
|
-
barcodeTextRegExPattern = newSettings.getString("barcodeTextRegExPattern")
|
|
82
|
-
if (newSettings.hasKey("localizationModes"))
|
|
83
|
-
localizationModes = newSettings.getArray("localizationModes")?.toIntArray()
|
|
84
|
-
if (newSettings.hasKey("deblurModes"))
|
|
85
|
-
deblurModes = newSettings.getArray("deblurModes")?.toIntArray()
|
|
86
|
-
if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
87
|
-
grayscaleTransformationModes = newSettings.getArray("grayscaleTransformationModes")?.toIntArray()
|
|
88
|
-
if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
89
|
-
grayscaleEnhancementModes = newSettings.getArray("grayscaleEnhancementModes")?.toIntArray()
|
|
90
|
-
if (newSettings.hasKey("scaleDownThreshold")) scaleDownThreshold = newSettings.getInt("scaleDownThreshold")
|
|
91
|
-
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
fun BarcodeDetails.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
95
|
-
when (this) {
|
|
96
|
-
is QRCodeDetails -> {
|
|
97
|
-
putInt("columns", columns)
|
|
98
|
-
putInt("errorCorrectionLevel", errorCorrectionLevel)
|
|
99
|
-
putInt("version", version)
|
|
100
|
-
putInt("model", model)
|
|
101
|
-
putInt("mode", mode)
|
|
102
|
-
putInt("page", page)
|
|
103
|
-
putInt("totalPage", totalPage)
|
|
104
|
-
putInt("parityData", parityData.toInt())
|
|
105
|
-
putInt("dataMaskPattern", dataMaskPattern)
|
|
106
|
-
putArray("codewords", Arguments.fromArray(codewords))
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
is AztecDetails -> {
|
|
110
|
-
putInt("rows", rows)
|
|
111
|
-
putInt("columns", columns)
|
|
112
|
-
putInt("layerNumber", layerNumber)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
is OneDCodeDetails -> {
|
|
116
|
-
putArray("startCharsBytes", Arguments.fromArray(startCharsBytes))
|
|
117
|
-
putArray("stopCharsBytes", Arguments.fromArray(stopCharsBytes))
|
|
118
|
-
putArray("checkDigitBytes", Arguments.fromArray(checkDigitBytes))
|
|
119
|
-
putDouble("startPatternRange_lower", startPatternRange.lower.toDouble())
|
|
120
|
-
putDouble("middlePatternRange_lower", middlePatternRange.lower.toDouble())
|
|
121
|
-
putDouble("endPatternRange_lower", endPatternRange.lower.toDouble())
|
|
122
|
-
putDouble("startPatternRange_upper", startPatternRange.upper.toDouble())
|
|
123
|
-
putDouble("middlePatternRange_upper", middlePatternRange.upper.toDouble())
|
|
124
|
-
putDouble("endPatternRange_upper", endPatternRange.upper.toDouble())
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
is DataMatrixDetails -> {
|
|
128
|
-
putInt("rows", rows)
|
|
129
|
-
putInt("columns", columns)
|
|
130
|
-
putInt("dataRegionRows", dataRegionRows)
|
|
131
|
-
putInt("dataRegionColumns", dataRegionColumns)
|
|
132
|
-
putInt("dataRegionNumber", dataRegionNumber)
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
is PDF417Details -> {
|
|
136
|
-
putInt("rows", rows)
|
|
137
|
-
putInt("columns", columns)
|
|
138
|
-
putInt("errorCorrectionLevel", errorCorrectionLevel)
|
|
139
|
-
putBoolean("hasLeftRowIndicator", hasLeftRowIndicator())
|
|
140
|
-
putBoolean("hasRightRowIndicator", hasRightRowIndicator())
|
|
141
|
-
putArray("codewords", Arguments.fromArray(codewords))
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
else -> Unit
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
fun Array<out ECISegment>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
149
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
fun ECISegment.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
153
|
-
putInt("eciValue", eciValue)
|
|
154
|
-
putString("charsetEncoding", charsetEncoding)
|
|
155
|
-
putInt("startIndex", startIndex)
|
|
156
|
-
putInt("length", length)
|
|
157
|
-
}
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import android.util.Base64
|
|
5
|
+
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
6
|
+
import com.dynamsoft.dbr.AztecDetails
|
|
7
|
+
import com.dynamsoft.dbr.BarcodeDetails
|
|
8
|
+
import com.dynamsoft.dbr.BarcodeResultItem
|
|
9
|
+
import com.dynamsoft.dbr.DataMatrixDetails
|
|
10
|
+
import com.dynamsoft.dbr.DecodedBarcodesResult
|
|
11
|
+
import com.dynamsoft.dbr.ECISegment
|
|
12
|
+
import com.dynamsoft.dbr.OneDCodeDetails
|
|
13
|
+
import com.dynamsoft.dbr.PDF417Details
|
|
14
|
+
import com.dynamsoft.dbr.QRCodeDetails
|
|
15
|
+
import com.dynamsoft.dbr.SimplifiedBarcodeReaderSettings
|
|
16
|
+
import com.facebook.react.bridge.Arguments
|
|
17
|
+
import com.facebook.react.bridge.ReadableMap
|
|
18
|
+
import com.facebook.react.bridge.WritableArray
|
|
19
|
+
import com.facebook.react.bridge.WritableMap
|
|
20
|
+
|
|
21
|
+
fun BarcodeResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
22
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
23
|
+
// putInt("format0_31", format.toInt())
|
|
24
|
+
// putInt("format32_63", (format shr (32)).toInt())
|
|
25
|
+
putString("_formatNumberString", format.toULong().toString())
|
|
26
|
+
putString("formatString", formatString)
|
|
27
|
+
putString("text", text)
|
|
28
|
+
putString("bytes", Base64.encodeToString(bytes ?: byteArrayOf(), Base64.NO_WRAP))
|
|
29
|
+
putMap("location", location.toWritableMap())
|
|
30
|
+
putInt("confidence", confidence)
|
|
31
|
+
putInt("angle", angle)
|
|
32
|
+
putInt("moduleSize", moduleSize)
|
|
33
|
+
putBoolean("isMirrored", isMirrored)
|
|
34
|
+
putBoolean("isDPM", isDPM)
|
|
35
|
+
when (details) {
|
|
36
|
+
is QRCodeDetails -> putMap("qrCodeDetails", details.toWritableMap())
|
|
37
|
+
is AztecDetails -> putMap("aztecDetails", details.toWritableMap())
|
|
38
|
+
is OneDCodeDetails -> putMap("oneDCodeDetails", details.toWritableMap())
|
|
39
|
+
is DataMatrixDetails -> putMap("dataMatrixDetails", details.toWritableMap())
|
|
40
|
+
is PDF417Details -> putMap("pdf417Details", details.toWritableMap())
|
|
41
|
+
else -> Unit
|
|
42
|
+
}
|
|
43
|
+
putArray("eciSegments", eciSegments?.toWritableArray())
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
fun Array<out BarcodeResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
47
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
fun DecodedBarcodesResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
51
|
+
merge(this@toWritableMap.toSharedWritableMap())
|
|
52
|
+
putArray("items", items.toWritableArray())
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
fun SimplifiedBarcodeReaderSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
56
|
+
// putInt("barcodeFormatIds0_31", barcodeFormatIds.toInt())
|
|
57
|
+
// putInt("barcodeFormatIds32_63", barcodeFormatIds.shr(32).toInt())
|
|
58
|
+
putString("_barcodeFormatIdsNumberString", barcodeFormatIds.toULong().toString())
|
|
59
|
+
putInt("expectedBarcodesCount", expectedBarcodesCount)
|
|
60
|
+
putInt("minResultConfidence", minResultConfidence)
|
|
61
|
+
putInt("minBarcodeTextLength", minBarcodeTextLength)
|
|
62
|
+
putString("barcodeTextRegExPattern", barcodeTextRegExPattern)
|
|
63
|
+
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
64
|
+
putArray("localizationModes", localizationModes.toWritableArray())
|
|
65
|
+
putArray("deblurModes", deblurModes.toWritableArray())
|
|
66
|
+
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
67
|
+
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
68
|
+
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
fun SimplifiedBarcodeReaderSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
72
|
+
if (newSettings.hasKey("_barcodeFormatIdsNumberString"))
|
|
73
|
+
barcodeFormatIds = (newSettings.getString("_barcodeFormatIdsNumberString") ?: "0").toULong().toLong()
|
|
74
|
+
// barcodeFormatIds = barcodeFormatIds0_31.toLong() or barcodeFormatIds32_63.toLong().shl(32)
|
|
75
|
+
// val barcodeFormatIds0_31 = if (newSettings.hasKey("barcodeFormatIds0_31")) newSettings.getInt("barcodeFormatIds0_31") else 0
|
|
76
|
+
// val barcodeFormatIds32_63 = if (newSettings.hasKey("barcodeFormatIds32_63")) newSettings.getInt("barcodeFormatIds32_63") else 0
|
|
77
|
+
if (newSettings.hasKey("expectedBarcodesCount")) expectedBarcodesCount = newSettings.getInt("expectedBarcodesCount")
|
|
78
|
+
if (newSettings.hasKey("minResultConfidence")) minResultConfidence = newSettings.getInt("minResultConfidence")
|
|
79
|
+
if (newSettings.hasKey("minBarcodeTextLength")) minBarcodeTextLength = newSettings.getInt("minBarcodeTextLength")
|
|
80
|
+
if (newSettings.hasKey("barcodeTextRegExPattern"))
|
|
81
|
+
barcodeTextRegExPattern = newSettings.getString("barcodeTextRegExPattern")
|
|
82
|
+
if (newSettings.hasKey("localizationModes"))
|
|
83
|
+
localizationModes = newSettings.getArray("localizationModes")?.toIntArray()
|
|
84
|
+
if (newSettings.hasKey("deblurModes"))
|
|
85
|
+
deblurModes = newSettings.getArray("deblurModes")?.toIntArray()
|
|
86
|
+
if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
87
|
+
grayscaleTransformationModes = newSettings.getArray("grayscaleTransformationModes")?.toIntArray()
|
|
88
|
+
if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
89
|
+
grayscaleEnhancementModes = newSettings.getArray("grayscaleEnhancementModes")?.toIntArray()
|
|
90
|
+
if (newSettings.hasKey("scaleDownThreshold")) scaleDownThreshold = newSettings.getInt("scaleDownThreshold")
|
|
91
|
+
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
fun BarcodeDetails.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
95
|
+
when (this) {
|
|
96
|
+
is QRCodeDetails -> {
|
|
97
|
+
putInt("columns", columns)
|
|
98
|
+
putInt("errorCorrectionLevel", errorCorrectionLevel)
|
|
99
|
+
putInt("version", version)
|
|
100
|
+
putInt("model", model)
|
|
101
|
+
putInt("mode", mode)
|
|
102
|
+
putInt("page", page)
|
|
103
|
+
putInt("totalPage", totalPage)
|
|
104
|
+
putInt("parityData", parityData.toInt())
|
|
105
|
+
putInt("dataMaskPattern", dataMaskPattern)
|
|
106
|
+
putArray("codewords", Arguments.fromArray(codewords))
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
is AztecDetails -> {
|
|
110
|
+
putInt("rows", rows)
|
|
111
|
+
putInt("columns", columns)
|
|
112
|
+
putInt("layerNumber", layerNumber)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
is OneDCodeDetails -> {
|
|
116
|
+
putArray("startCharsBytes", Arguments.fromArray(startCharsBytes))
|
|
117
|
+
putArray("stopCharsBytes", Arguments.fromArray(stopCharsBytes))
|
|
118
|
+
putArray("checkDigitBytes", Arguments.fromArray(checkDigitBytes))
|
|
119
|
+
putDouble("startPatternRange_lower", startPatternRange.lower.toDouble())
|
|
120
|
+
putDouble("middlePatternRange_lower", middlePatternRange.lower.toDouble())
|
|
121
|
+
putDouble("endPatternRange_lower", endPatternRange.lower.toDouble())
|
|
122
|
+
putDouble("startPatternRange_upper", startPatternRange.upper.toDouble())
|
|
123
|
+
putDouble("middlePatternRange_upper", middlePatternRange.upper.toDouble())
|
|
124
|
+
putDouble("endPatternRange_upper", endPatternRange.upper.toDouble())
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
is DataMatrixDetails -> {
|
|
128
|
+
putInt("rows", rows)
|
|
129
|
+
putInt("columns", columns)
|
|
130
|
+
putInt("dataRegionRows", dataRegionRows)
|
|
131
|
+
putInt("dataRegionColumns", dataRegionColumns)
|
|
132
|
+
putInt("dataRegionNumber", dataRegionNumber)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
is PDF417Details -> {
|
|
136
|
+
putInt("rows", rows)
|
|
137
|
+
putInt("columns", columns)
|
|
138
|
+
putInt("errorCorrectionLevel", errorCorrectionLevel)
|
|
139
|
+
putBoolean("hasLeftRowIndicator", hasLeftRowIndicator())
|
|
140
|
+
putBoolean("hasRightRowIndicator", hasRightRowIndicator())
|
|
141
|
+
putArray("codewords", Arguments.fromArray(codewords))
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
else -> Unit
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
fun Array<out ECISegment>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
149
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
fun ECISegment.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
153
|
+
putInt("eciValue", eciValue)
|
|
154
|
+
putString("charsetEncoding", charsetEncoding)
|
|
155
|
+
putInt("startIndex", startIndex)
|
|
156
|
+
putInt("length", length)
|
|
157
|
+
}
|