dynamsoft-capture-vision-react-native 3.4.1300 → 3.4.3010

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.
Files changed (198) hide show
  1. package/LICENSE +4 -4
  2. package/README.md +62 -62
  3. package/android/README.md +14 -14
  4. package/android/build.gradle +167 -163
  5. package/android/gradle.properties +20 -20
  6. package/android/settings.gradle +5 -5
  7. package/android/src/main/AndroidManifest.xml +6 -6
  8. package/android/src/main/AndroidManifest_noPackage.xml +5 -5
  9. package/android/src/main/cpp/CMakeLists.txt +21 -21
  10. package/android/src/main/cpp/ImgHO.cpp +94 -94
  11. package/android/src/main/cpp/ImgHO.h +34 -34
  12. package/android/src/main/cpp/JsiCore.cpp +296 -296
  13. package/android/src/main/cpp/JsiCore.h +51 -51
  14. package/android/src/main/cpp/JsiCvr.cpp +332 -332
  15. package/android/src/main/cpp/JsiCvr.h +54 -54
  16. package/android/src/main/cpp/JsiDbr.cpp +283 -283
  17. package/android/src/main/cpp/JsiDbr.h +26 -26
  18. package/android/src/main/cpp/JsiDce.cpp +59 -59
  19. package/android/src/main/cpp/JsiDce.h +17 -17
  20. package/android/src/main/cpp/JsiDcp.cpp +51 -51
  21. package/android/src/main/cpp/JsiDcp.h +31 -31
  22. package/android/src/main/cpp/JsiDdn.cpp +50 -50
  23. package/android/src/main/cpp/JsiDdn.h +28 -28
  24. package/android/src/main/cpp/JsiDlr.cpp +60 -60
  25. package/android/src/main/cpp/JsiDlr.h +26 -26
  26. package/android/src/main/cpp/JsiUtility.cpp +604 -604
  27. package/android/src/main/cpp/JsiUtility.h +26 -26
  28. package/android/src/main/cpp/RawBuffer.cpp +23 -23
  29. package/android/src/main/cpp/RawBuffer.h +24 -24
  30. package/android/src/main/cpp/android_log.h +14 -14
  31. package/android/src/main/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +0 -0
  32. package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +0 -0
  33. package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +0 -0
  34. package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +0 -0
  35. package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +0 -0
  36. package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +0 -0
  37. package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +0 -0
  38. package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +0 -0
  39. package/android/src/main/java/com/dynamsoft/reactnativelib/CVRModule.kt +137 -137
  40. package/android/src/main/java/com/dynamsoft/reactnativelib/CameraViewManager.kt +62 -62
  41. package/android/src/main/java/com/dynamsoft/reactnativelib/DCEModule.kt +125 -125
  42. package/android/src/main/java/com/dynamsoft/reactnativelib/DynamsoftBaseModule.kt +8 -8
  43. package/android/src/main/java/com/dynamsoft/reactnativelib/ISAModule.kt +73 -73
  44. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +14 -14
  45. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +35 -35
  46. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageManagerModule.kt +15 -15
  47. package/android/src/main/java/com/dynamsoft/reactnativelib/LicenseModule.kt +29 -29
  48. package/android/src/main/java/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +83 -83
  49. package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +32 -32
  50. package/android/src/main/java/com/dynamsoft/reactnativelib/VersionsModule.kt +41 -41
  51. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/Basic.kt +44 -44
  52. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCore.kt +50 -50
  53. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCvr.kt +129 -129
  54. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDBR.kt +157 -157
  55. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCE.kt +110 -110
  56. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCP.kt +49 -49
  57. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDDN.kt +85 -85
  58. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDLR.kt +72 -72
  59. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ImageUtil.kt +58 -58
  60. package/android/src/main/java/com/dynamsoft/reactnativelib/core/ImageSourceAdapterModuleImpl.kt +120 -120
  61. package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +306 -306
  62. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +247 -247
  63. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraLifeCycleOwner.java +14 -14
  64. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraViewManagerImpl.kt +77 -77
  65. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewManagerImpl.kt +15 -15
  66. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewModuleImpl.kt +110 -110
  67. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNCameraView.kt +20 -20
  68. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNImageEditorView.kt +19 -19
  69. package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +39 -39
  70. package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +120 -120
  71. package/android/src/main/java/com/dynamsoft/reactnativelib/utility/MultiCrossFilterModuleImpl.kt +111 -111
  72. package/app.plugin.js +21 -21
  73. package/dynamsoft-capture-vision-react-native.podspec +24 -24
  74. package/ios/CPP/DSImageData+HostObject.h +18 -18
  75. package/ios/CPP/DSImageData+HostObject.mm +38 -38
  76. package/ios/CPP/ImageDataHostObject.cpp +87 -87
  77. package/ios/CPP/ImageDataHostObject.hpp +35 -35
  78. package/ios/CPP/MutableRawBuffer.cpp +23 -23
  79. package/ios/CPP/MutableRawBuffer.hpp +23 -23
  80. package/ios/CPP/RNDynamsoft+JSI.h +22 -22
  81. package/ios/CPP/RNDynamsoft+JSI.mm +303 -303
  82. package/ios/CPP/RNDynamsoft+Json.h +93 -93
  83. package/ios/CPP/RNDynamsoft+Json.m +733 -733
  84. package/ios/CPP/YeetJSIUtils.h +56 -56
  85. package/ios/CPP/YeetJSIUtils.mm +208 -208
  86. package/ios/RNDynamsoftCameraView.h +31 -31
  87. package/ios/RNDynamsoftCameraView.m +108 -108
  88. package/ios/RNDynamsoftCameraViewManager.h +14 -14
  89. package/ios/RNDynamsoftCameraViewManager.m +195 -195
  90. package/ios/RNDynamsoftCaptureVisionRouter.h +18 -18
  91. package/ios/RNDynamsoftCaptureVisionRouter.mm +532 -532
  92. package/ios/RNDynamsoftImageEditorView.h +17 -17
  93. package/ios/RNDynamsoftImageEditorView.m +25 -25
  94. package/ios/RNDynamsoftImageEditorViewManager.h +14 -14
  95. package/ios/RNDynamsoftImageEditorViewManager.mm +183 -183
  96. package/ios/RNDynamsoftImageManager.h +14 -14
  97. package/ios/RNDynamsoftImageManager.mm +369 -369
  98. package/ios/RNDynamsoftImageSourceAdapter.h +19 -19
  99. package/ios/RNDynamsoftImageSourceAdapter.mm +255 -255
  100. package/ios/RNDynamsoftLicense.h +14 -14
  101. package/ios/RNDynamsoftLicense.m +62 -62
  102. package/ios/RNDynamsoftMultiCrossFilter.h +14 -14
  103. package/ios/RNDynamsoftMultiCrossFilter.m +145 -145
  104. package/ios/RNDynamsoftVersions.h +13 -13
  105. package/ios/RNDynamsoftVersions.m +27 -27
  106. package/package.json +48 -48
  107. package/src/NativeDynamsoftVersionsModule.tsx +20 -20
  108. package/src/VersionsModule.tsx +7 -7
  109. package/src/core/CapturedResultBase.tsx +18 -18
  110. package/src/core/CapturedResultItem.tsx +23 -23
  111. package/src/core/CoreModule.tsx +9 -9
  112. package/src/core/DSRect.tsx +29 -29
  113. package/src/core/EnumCaptureResultItemType.tsx +52 -52
  114. package/src/core/EnumColourChannelUsageType.tsx +26 -26
  115. package/src/core/EnumCrossVerificationStatus.tsx +46 -46
  116. package/src/core/EnumGrayscaleEnhancementMode.tsx +46 -46
  117. package/src/core/EnumGrayscaleTransformationMode.tsx +35 -35
  118. package/src/core/EnumImageFileFormat.tsx +6 -6
  119. package/src/core/EnumPixelFormat.tsx +53 -53
  120. package/src/core/ImageData.tsx +87 -87
  121. package/src/core/ImageSourceAdapter.tsx +160 -160
  122. package/src/core/NativeDynamsoftImageSourceAdapterModule.tsx +29 -29
  123. package/src/core/Point.tsx +13 -13
  124. package/src/core/Quadrilateral.tsx +12 -12
  125. package/src/core/index.tsx +18 -18
  126. package/src/cvr/CaptureVisionRouter.tsx +683 -683
  127. package/src/cvr/CaptureVisionRouterModule.tsx +9 -9
  128. package/src/cvr/CapturedResult.tsx +123 -123
  129. package/src/cvr/CapturedResultFilter.tsx +13 -13
  130. package/src/cvr/CapturedResultReceiver.tsx +71 -71
  131. package/src/cvr/EnumPresetTemplate.tsx +81 -81
  132. package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +25 -25
  133. package/src/cvr/SimplifiedCaptureVisionSettings.tsx +61 -61
  134. package/src/cvr/index.tsx +11 -11
  135. package/src/dbr/BarcodeDetails.tsx +51 -51
  136. package/src/dbr/BarcodeReaderModule.tsx +9 -9
  137. package/src/dbr/BarcodeResultItem.tsx +65 -65
  138. package/src/dbr/DecodedBarcodesResult.tsx +14 -14
  139. package/src/dbr/ECISegment.tsx +23 -23
  140. package/src/dbr/EnumBarcodeFormat.tsx +112 -112
  141. package/src/dbr/EnumDeblurMode.tsx +29 -29
  142. package/src/dbr/EnumLocalizationMode.tsx +27 -27
  143. package/src/dbr/EnumQRCodeErrorCorrectionLevel.tsx +6 -6
  144. package/src/dbr/SimplifiedBarcodeReaderSettings.tsx +80 -80
  145. package/src/dbr/index.tsx +9 -9
  146. package/src/dce/CameraEnhancer.tsx +254 -254
  147. package/src/dce/CameraEnhancerModule.tsx +9 -9
  148. package/src/dce/CameraView.tsx +100 -100
  149. package/src/dce/DynamsoftCameraViewNativeComponent.ts +96 -96
  150. package/src/dce/DynamsoftImageEditorViewNativeComponent.ts +9 -9
  151. package/src/dce/EnumCameraPosition.tsx +25 -25
  152. package/src/dce/EnumDrawingLayerId.tsx +17 -17
  153. package/src/dce/EnumEnhancedFeatures.tsx +24 -24
  154. package/src/dce/EnumFocusMode.tsx +6 -6
  155. package/src/dce/EnumResolution.tsx +8 -8
  156. package/src/dce/EnumTorchState.tsx +10 -10
  157. package/src/dce/FeedBack.tsx +28 -28
  158. package/src/dce/ImageEditorView.tsx +131 -131
  159. package/src/dce/NativeDynamsoftCameraViewModule.tsx +47 -47
  160. package/src/dce/NativeDynamsoftImageEditorViewModule.ts +9 -9
  161. package/src/dce/index.tsx +13 -13
  162. package/src/dcp/CodeParserDedicatorModule.tsx +9 -9
  163. package/src/dcp/CodeParserModule.tsx +9 -9
  164. package/src/dcp/EnumMappingStatus.tsx +14 -14
  165. package/src/dcp/EnumValidationStatus.tsx +14 -14
  166. package/src/dcp/ParsedResult.tsx +14 -14
  167. package/src/dcp/ParsedResultItem.tsx +50 -50
  168. package/src/dcp/index.tsx +8 -8
  169. package/src/ddn/DeskewedImageResultItem.tsx +40 -40
  170. package/src/ddn/DetectedQuadResultItem.tsx +31 -31
  171. package/src/ddn/DocumentNormalizerModule.tsx +9 -9
  172. package/src/ddn/EnhancedImageResultItem.tsx +20 -20
  173. package/src/ddn/EnumImageColourMode.tsx +14 -14
  174. package/src/ddn/ProcessedDocumentResult.tsx +27 -27
  175. package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +65 -65
  176. package/src/ddn/index.tsx +11 -11
  177. package/src/dip/ImageProcessingModule.tsx +9 -9
  178. package/src/dip/index.tsx +1 -1
  179. package/src/dlr/CharacterResult.tsx +28 -28
  180. package/src/dlr/LabelRecognizerModule.tsx +9 -9
  181. package/src/dlr/RecognizedTextLinesResult.tsx +19 -19
  182. package/src/dlr/SimplifiedLabelRecognizerSettings.tsx +33 -33
  183. package/src/dlr/TextLineResultItem.tsx +41 -41
  184. package/src/dlr/index.tsx +8 -8
  185. package/src/index.tsx +13 -13
  186. package/src/license/LicenseManager.tsx +49 -49
  187. package/src/license/LicenseModule.tsx +9 -9
  188. package/src/license/NativeDynamsoftLicenseModule.tsx +7 -7
  189. package/src/license/index.tsx +7 -7
  190. package/src/utility/CrossVerificationCriteria.tsx +11 -11
  191. package/src/utility/EnumFilterType.tsx +5 -5
  192. package/src/utility/ImageManager.tsx +348 -348
  193. package/src/utility/MultiFrameResultCrossFilter.tsx +183 -183
  194. package/src/utility/NativeDynamsoftImageManagerModule.tsx +7 -7
  195. package/src/utility/NativeDynamsoftMultiCrossFilterModule.tsx +18 -18
  196. package/src/utility/UtilityModule.tsx +9 -9
  197. package/src/utility/index.tsx +4 -4
  198. package/android/.gitignore +0 -4
package/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
- License Notice
2
-
3
- The source code of the Dynamsoft Capture Vision (DCV) React Native Edition published here is released under the Apache 2.0 license: http://www.apache.org/licenses/LICENSE-2.0. Dynamsoft Barcode Reader (DBR), Dynamsoft Label Recognizer (DLR), Dynamsoft Document Normalizer (DDN), Dynamsoft Code Parser (DCP) and Dynamsoft Camera Enhancer (DCE) SDK upon which Dynamsoft Capture Vision (DCV) React Native Edition depends are provided under a commercial license from https://www.dynamsoft.com/company/license-agreement/. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4
-
1
+ License Notice
2
+
3
+ The source code of the Dynamsoft Capture Vision (DCV) React Native Edition published here is released under the Apache 2.0 license: http://www.apache.org/licenses/LICENSE-2.0. Dynamsoft Barcode Reader (DBR), Dynamsoft Label Recognizer (DLR), Dynamsoft Document Normalizer (DDN), Dynamsoft Code Parser (DCP) and Dynamsoft Camera Enhancer (DCE) SDK upon which Dynamsoft Capture Vision (DCV) React Native Edition depends are provided under a commercial license from https://www.dynamsoft.com/company/license-agreement/. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4
+
5
5
  Copyright © 2003– Dynamsoft. All Rights Reserved.
package/README.md CHANGED
@@ -1,62 +1,62 @@
1
- # Dynamsoft Capture Vision React-Native Edition
2
-
3
- Dynamsoft Capture Vision (DCV) is an aggregating SDK of a series of specific functional products, which cover image capturing, content understanding, result parsing, and interactive workflow.
4
-
5
- 1. With the implementation of the Image Source Adapter (ISA) interface, a seamless integration with DCV is possible, allowing easy access to various image sources.
6
- 2. Dynamsoft Barcode Reader (DBR), Dynamsoft Document Normalizer (DDN), and Dynamsoft Label Recognizer (DLR) play crucial roles in reading barcodes, structures, and texts from images.
7
- 3. Dynamsoft Code Parser (DCP) is utilized to extract meaningful fields from text/bytes results, ensuring optimal data parsing capabilities.
8
- 4. To seamlessly access intermediate and final results within the DCV SDK, the Capture Result Receiver (CRR) and Intermediate Result Receiver (IRR) interfaces are provided. After users implement these interfaces and register with DCV, they can obtain the results efficiently and conveniently.
9
- 5. To view and edit the output results, Dynamsoft Camera Enhancer (DCE) provide a suite of robust viewing and editing functions.
10
-
11
- DCV powers your software development through the following aspects:
12
-
13
- 1. Simplicity with Packable Scenarios
14
- 2. Scalability with Pluggable Components
15
- 3. Flexibility With Customizable Workflows
16
- 4. High Performance With Shared Computations
17
- 5. Bidirectional Interactivity with Intermediate Results
18
-
19
- DCV enables you to develop highly customizable applications for barcode reading, label recognition, document board detection, and result parsing. These applications offer enterprise-grade performance and can be tailored to meet your specific business needs.
20
-
21
- ## System Requirements
22
-
23
- ### React Native
24
-
25
- - Supported Version: 0.71.0 or higher (0.75.0+ recommended)
26
-
27
- ### Android
28
-
29
- - Supported OS: Android 5.0 (API Level 21) or higher.
30
- - Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64.
31
- - Development Environment:
32
- - IDE: Android Studio 2024.3.2 suggested.
33
- - JDK: Java 17 or higher.
34
- - Gradle: 8.0 or higher.
35
-
36
- ### iOS
37
-
38
- - Supported OS: iOS 13+.
39
- - Supported ABI: arm64 and x86_64.
40
- - Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
41
-
42
- ### Others
43
-
44
- - Node: 18 or higher
45
-
46
- ## User Guide
47
-
48
- - [Document Scanner Integration Guide](https://github.com/Dynamsoft/capture-vision-react-native-samples/blob/main/guide-scan-document.md)
49
-
50
- ## Samples
51
-
52
- You can view all the DCV React Native samples via the following links:
53
-
54
- - [ScanDocument](https://github.com/Dynamsoft/capture-vision-react-native-samples/tree/main/ScanDocument)
55
-
56
- ## License
57
-
58
- - You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dcv&utm_source=npm&package=mobile) link.
59
-
60
- ## Contact
61
-
62
- https://www.dynamsoft.com/company/contact/
1
+ # Dynamsoft Capture Vision React-Native Edition
2
+
3
+ Dynamsoft Capture Vision (DCV) is an aggregating SDK of a series of specific functional products, which cover image capturing, content understanding, result parsing, and interactive workflow.
4
+
5
+ 1. With the implementation of the Image Source Adapter (ISA) interface, a seamless integration with DCV is possible, allowing easy access to various image sources.
6
+ 2. Dynamsoft Barcode Reader (DBR), Dynamsoft Document Normalizer (DDN), and Dynamsoft Label Recognizer (DLR) play crucial roles in reading barcodes, structures, and texts from images.
7
+ 3. Dynamsoft Code Parser (DCP) is utilized to extract meaningful fields from text/bytes results, ensuring optimal data parsing capabilities.
8
+ 4. To seamlessly access intermediate and final results within the DCV SDK, the Capture Result Receiver (CRR) and Intermediate Result Receiver (IRR) interfaces are provided. After users implement these interfaces and register with DCV, they can obtain the results efficiently and conveniently.
9
+ 5. To view and edit the output results, Dynamsoft Camera Enhancer (DCE) provide a suite of robust viewing and editing functions.
10
+
11
+ DCV powers your software development through the following aspects:
12
+
13
+ 1. Simplicity with Packable Scenarios
14
+ 2. Scalability with Pluggable Components
15
+ 3. Flexibility With Customizable Workflows
16
+ 4. High Performance With Shared Computations
17
+ 5. Bidirectional Interactivity with Intermediate Results
18
+
19
+ DCV enables you to develop highly customizable applications for barcode reading, label recognition, document board detection, and result parsing. These applications offer enterprise-grade performance and can be tailored to meet your specific business needs.
20
+
21
+ ## System Requirements
22
+
23
+ ### React Native
24
+
25
+ - Supported Version: 0.71.0 or higher (0.75.0+ recommended)
26
+
27
+ ### Android
28
+
29
+ - Supported OS: Android 5.0 (API Level 21) or higher.
30
+ - Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64.
31
+ - Development Environment:
32
+ - IDE: Android Studio 2024.3.2 suggested.
33
+ - JDK: Java 17 or higher.
34
+ - Gradle: 8.0 or higher.
35
+
36
+ ### iOS
37
+
38
+ - Supported OS: iOS 13+.
39
+ - Supported ABI: arm64 and x86_64.
40
+ - Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
41
+
42
+ ### Others
43
+
44
+ - Node: 18 or higher
45
+
46
+ ## User Guide
47
+
48
+ - [Document Scanner Integration Guide](https://github.com/Dynamsoft/capture-vision-react-native-samples/blob/main/guide-scan-document.md)
49
+
50
+ ## Samples
51
+
52
+ You can view all the DCV React Native samples via the following links:
53
+
54
+ - [ScanDocument](https://github.com/Dynamsoft/capture-vision-react-native-samples/tree/main/ScanDocument)
55
+
56
+ ## License
57
+
58
+ - You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dcv&utm_source=npm&package=mobile) link.
59
+
60
+ ## Contact
61
+
62
+ https://www.dynamsoft.com/company/contact/
package/android/README.md CHANGED
@@ -1,14 +1,14 @@
1
- README
2
- ======
3
-
4
- If you want to publish the lib as a maven dependency, follow these steps before publishing a new version to npm:
5
-
6
- 1. Be sure to have the Android [SDK](https://developer.android.com/studio/index.html) and [NDK](https://developer.android.com/ndk/guides/index.html) installed
7
- 2. Be sure to have a `local.properties` file in this folder that points to the Android SDK and NDK
8
- ```
9
- ndk.dir=/Users/{username}/Library/Android/sdk/ndk-bundle
10
- sdk.dir=/Users/{username}/Library/Android/sdk
11
- ```
12
- 3. Delete the `maven` folder
13
- 4. Run `./gradlew installArchives`
14
- 5. Verify that latest set of generated files is in the maven folder with the correct version number
1
+ README
2
+ ======
3
+
4
+ If you want to publish the lib as a maven dependency, follow these steps before publishing a new version to npm:
5
+
6
+ 1. Be sure to have the Android [SDK](https://developer.android.com/studio/index.html) and [NDK](https://developer.android.com/ndk/guides/index.html) installed
7
+ 2. Be sure to have a `local.properties` file in this folder that points to the Android SDK and NDK
8
+ ```
9
+ ndk.dir=/Users/{username}/Library/Android/sdk/ndk-bundle
10
+ sdk.dir=/Users/{username}/Library/Android/sdk
11
+ ```
12
+ 3. Delete the `maven` folder
13
+ 4. Run `./gradlew installArchives`
14
+ 5. Verify that latest set of generated files is in the maven folder with the correct version number
@@ -1,163 +1,167 @@
1
- def DEFAULT_COMPILE_SDK_VERSION = 34
2
- def DEFAULT_MIN_SDK_VERSION = 21
3
- def DEFAULT_TARGET_SDK_VERSION = 34
4
-
5
- def safeExtGet(prop, fallback) {
6
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
7
- }
8
-
9
- apply plugin: 'com.android.library'
10
- apply plugin: "kotlin-android"
11
-
12
- buildscript {
13
- def kotlinVersion = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["kotlinVersion"]
14
- repositories {
15
- google()
16
- mavenCentral()
17
- }
18
- dependencies {
19
- classpath 'com.android.tools.build:gradle:8.5.1'
20
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
21
- }
22
- }
23
-
24
- static def supportsNamespace() {
25
- def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
26
- def major = parsed[0].toInteger()
27
- def minor = parsed[1].toInteger()
28
- return (major == 7 && minor >= 3) || major >= 8
29
- }
30
-
31
-
32
- def getReactNativeVersion() {
33
- def packageJsonFile = file("$rootDir/../node_modules/react-native/package.json")
34
- if (packageJsonFile.exists()) {
35
- def packageJson = new groovy.json.JsonSlurper().parseText(packageJsonFile.text)
36
- return packageJson.version
37
- }
38
- return "0.82.0"
39
- }
40
-
41
- static def getMajor(String version) {
42
- if (version == "unknown") return 0
43
- def parts = version.tokenize('.')
44
- return parts.size() > 0 ? parts[0].toInteger() : 0
45
- }
46
-
47
- static def getMinor(String version) {
48
- if (version == "unknown") return 0
49
- def parts = version.tokenize('.')
50
- return parts.size() > 1 ? parts[1].toInteger() : 0
51
- }
52
-
53
- android {
54
- def reactNativeVersion = getReactNativeVersion()
55
- def versionNumber = getMajor(reactNativeVersion) * 100 + getMinor(reactNativeVersion)
56
-
57
- if (supportsNamespace()) {
58
- namespace "com.dynamsoft.reactnativelib"
59
- sourceSets {
60
- main {
61
- manifest.srcFile "src/main/AndroidManifest_noPackage.xml"
62
- }
63
- }
64
- }
65
-
66
- compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
67
- defaultConfig {
68
- minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
69
- targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
70
- versionCode 1
71
- versionName "1.0"
72
-
73
- if (versionNumber < 79) {
74
- externalNativeBuild {
75
- cmake {
76
- arguments "-DANDROID_STL=c++_shared"
77
- }
78
- }
79
- }
80
- }
81
- lintOptions {
82
- abortOnError false
83
- }
84
-
85
- if (versionNumber < 79) {
86
- buildFeatures {
87
- prefab true
88
- buildConfig true
89
- }
90
- externalNativeBuild {
91
- cmake {
92
- path "src/main/cpp/CMakeLists.txt"
93
- }
94
- }
95
- } else {
96
- buildTypes {
97
- release {
98
- sourceSets {
99
- main {
100
- if (versionNumber >= 82) {
101
- jniLibs.srcDirs = ["src/main/dysJniLibsFor82/release"]
102
- } else if (versionNumber >= 81) {
103
- jniLibs.srcDirs = ["src/main/dysJniLibsFor81/release"]
104
- } else {
105
- jniLibs.srcDirs = ["src/main/dysJniLibs/release"]
106
- }
107
- }
108
- }
109
- }
110
- debug {
111
- sourceSets {
112
- main {
113
- if (versionNumber >= 82) {
114
- jniLibs.srcDirs = ["src/main/dysJniLibsFor82/debug"]
115
- } else if (versionNumber >= 81) {
116
- jniLibs.srcDirs = ["src/main/dysJniLibsFor81/debug"]
117
- } else {
118
- jniLibs.srcDirs = ["src/main/dysJniLibs/debug"]
119
- }
120
- }
121
- }
122
- }
123
- }
124
- }
125
-
126
- }
127
-
128
- repositories {
129
- google()
130
- mavenCentral()
131
- maven {
132
- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
133
- url "$rootDir/../node_modules/react-native/android"
134
- }
135
- maven {
136
- // Android JSC is installed from npm
137
- url "$rootDir/../node_modules/jsc-android/dist"
138
- }
139
- }
140
-
141
- rootProject.allprojects {
142
- repositories {
143
- maven {
144
- url "https://download2.dynamsoft.com/maven/aar"
145
- }
146
- }
147
- }
148
-
149
-
150
- dependencies {
151
- def kotlinVersion = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["kotlinVersion"]
152
-
153
- //noinspection GradleDynamicVersion
154
- implementation 'com.facebook.react:react-native:+'
155
- compileOnly "com.facebook.react:react-android:+"
156
-
157
- //noinspection GradleDependency
158
-
159
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
160
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
161
-
162
- implementation "com.dynamsoft:capturevisionbundle:3.4.1300"
163
- }
1
+ def DEFAULT_COMPILE_SDK_VERSION = 34
2
+ def DEFAULT_MIN_SDK_VERSION = 21
3
+ def DEFAULT_TARGET_SDK_VERSION = 34
4
+
5
+ def safeExtGet(prop, fallback) {
6
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
7
+ }
8
+
9
+ apply plugin: 'com.android.library'
10
+ apply plugin: "kotlin-android"
11
+
12
+ buildscript {
13
+ def kotlinVersion = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["kotlinVersion"]
14
+ repositories {
15
+ google()
16
+ mavenCentral()
17
+ }
18
+ dependencies {
19
+ classpath 'com.android.tools.build:gradle:8.5.1'
20
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
21
+ }
22
+ }
23
+
24
+ static def supportsNamespace() {
25
+ def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
26
+ def major = parsed[0].toInteger()
27
+ def minor = parsed[1].toInteger()
28
+ return (major == 7 && minor >= 3) || major >= 8
29
+ }
30
+
31
+
32
+ def getReactNativeVersion() {
33
+ def packageJsonFile = file("$rootDir/../node_modules/react-native/package.json")
34
+ if (packageJsonFile.exists()) {
35
+ def packageJson = new groovy.json.JsonSlurper().parseText(packageJsonFile.text)
36
+ return packageJson.version
37
+ }
38
+ return "0.82.0"
39
+ }
40
+
41
+ static def getMajor(String version) {
42
+ if (version == "unknown") return 0
43
+ def parts = version.tokenize('.')
44
+ return parts.size() > 0 ? parts[0].toInteger() : 0
45
+ }
46
+
47
+ static def getMinor(String version) {
48
+ if (version == "unknown") return 0
49
+ def parts = version.tokenize('.')
50
+ return parts.size() > 1 ? parts[1].toInteger() : 0
51
+ }
52
+
53
+ android {
54
+ def reactNativeVersion = getReactNativeVersion()
55
+ def versionNumber = getMajor(reactNativeVersion) * 100 + getMinor(reactNativeVersion)
56
+
57
+ if (supportsNamespace()) {
58
+ namespace "com.dynamsoft.reactnativelib"
59
+ sourceSets {
60
+ main {
61
+ manifest.srcFile "src/main/AndroidManifest_noPackage.xml"
62
+ }
63
+ }
64
+ }
65
+
66
+ compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
67
+ defaultConfig {
68
+ minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
69
+ targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
70
+ versionCode 1
71
+ versionName "1.0"
72
+
73
+ if (versionNumber < 79) {
74
+ externalNativeBuild {
75
+ cmake {
76
+ arguments "-DANDROID_STL=c++_shared"
77
+ }
78
+ }
79
+ }
80
+ }
81
+ lintOptions {
82
+ abortOnError false
83
+ }
84
+
85
+ if (versionNumber < 79) {
86
+ buildFeatures {
87
+ prefab true
88
+ buildConfig true
89
+ }
90
+ externalNativeBuild {
91
+ cmake {
92
+ path "src/main/cpp/CMakeLists.txt"
93
+ }
94
+ }
95
+ } else {
96
+ buildTypes {
97
+ release {
98
+ sourceSets {
99
+ main {
100
+ if(versionNumber >= 86) {
101
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor86/release"]
102
+ } else if (versionNumber >= 82) {
103
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor82/release"]
104
+ } else if (versionNumber >= 81) {
105
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor81/release"]
106
+ } else {
107
+ jniLibs.srcDirs = ["src/main/dysJniLibs/release"]
108
+ }
109
+ }
110
+ }
111
+ }
112
+ debug {
113
+ sourceSets {
114
+ main {
115
+ if(versionNumber >= 86) {
116
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor86/debug"]
117
+ } else if (versionNumber >= 82) {
118
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor82/debug"]
119
+ } else if (versionNumber >= 81) {
120
+ jniLibs.srcDirs = ["src/main/dysJniLibsFor81/debug"]
121
+ } else {
122
+ jniLibs.srcDirs = ["src/main/dysJniLibs/debug"]
123
+ }
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ }
131
+
132
+ repositories {
133
+ google()
134
+ mavenCentral()
135
+ maven {
136
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
137
+ url "$rootDir/../node_modules/react-native/android"
138
+ }
139
+ maven {
140
+ // Android JSC is installed from npm
141
+ url "$rootDir/../node_modules/jsc-android/dist"
142
+ }
143
+ }
144
+
145
+ rootProject.allprojects {
146
+ repositories {
147
+ maven {
148
+ url "https://download2.dynamsoft.com/maven/aar"
149
+ }
150
+ }
151
+ }
152
+
153
+
154
+ dependencies {
155
+ def kotlinVersion = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["kotlinVersion"]
156
+
157
+ //noinspection GradleDynamicVersion
158
+ implementation 'com.facebook.react:react-native:+'
159
+ compileOnly "com.facebook.react:react-android:+"
160
+
161
+ //noinspection GradleDependency
162
+
163
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
164
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
165
+
166
+ implementation "com.dynamsoft:capturevisionbundle:3.4.3000"
167
+ }
@@ -1,21 +1,21 @@
1
- # Project-wide Gradle settings.
2
- # IDE (e.g. Android Studio) users:
3
- # Gradle settings configured through the IDE *will override*
4
- # any settings specified in this file.
5
- # For more details on how to configure your build environment visit
6
- # http://www.gradle.org/docs/current/userguide/build_environment.html
7
- # Specifies the JVM arguments used for the daemon process.
8
- # The setting is particularly useful for tweaking memory settings.
9
- org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10
- # When configured, Gradle will run in incubating parallel mode.
11
- # This option should only be used with decoupled projects. More details, visit
12
- # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13
- # org.gradle.parallel=true
14
- android.useAndroidX=true
15
- android.enableJetifier=true
16
-
17
- kotlinVersion=1.8.22
18
- minSdk=21
19
- targetSdk=36
20
- compileSdk=36
1
+ # Project-wide Gradle settings.
2
+ # IDE (e.g. Android Studio) users:
3
+ # Gradle settings configured through the IDE *will override*
4
+ # any settings specified in this file.
5
+ # For more details on how to configure your build environment visit
6
+ # http://www.gradle.org/docs/current/userguide/build_environment.html
7
+ # Specifies the JVM arguments used for the daemon process.
8
+ # The setting is particularly useful for tweaking memory settings.
9
+ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10
+ # When configured, Gradle will run in incubating parallel mode.
11
+ # This option should only be used with decoupled projects. More details, visit
12
+ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13
+ # org.gradle.parallel=true
14
+ android.useAndroidX=true
15
+ android.enableJetifier=true
16
+
17
+ kotlinVersion=1.8.22
18
+ minSdk=21
19
+ targetSdk=36
20
+ compileSdk=36
21
21
  ndkversion=21.4.7075529
@@ -1,6 +1,6 @@
1
- rootProject.name = "react-native-dcv-android"
2
-
3
- if(file("$rootDir/../node_modules/@react-native-community/cli-platform-android/native_modules.gradle").exists()) {
4
- apply from: file("$rootDir/../node_modules/@react-native-community/cli-platform-android/native_modules.gradle")
5
- applyNativeModulesSettingsGradle(settings)
1
+ rootProject.name = "react-native-dcv-android"
2
+
3
+ if(file("$rootDir/../node_modules/@react-native-community/cli-platform-android/native_modules.gradle").exists()) {
4
+ apply from: file("$rootDir/../node_modules/@react-native-community/cli-platform-android/native_modules.gradle")
5
+ applyNativeModulesSettingsGradle(settings)
6
6
  }
@@ -1,6 +1,6 @@
1
- <!-- AndroidManifest.xml -->
2
-
3
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
4
- package="com.dynamsoft.reactnativelib">
5
-
6
- </manifest>
1
+ <!-- AndroidManifest.xml -->
2
+
3
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
4
+ package="com.dynamsoft.reactnativelib">
5
+
6
+ </manifest>
@@ -1,5 +1,5 @@
1
- <!-- AndroidManifest.xml -->
2
-
3
- <manifest xmlns:android="http://schemas.android.com/apk/res/android">
4
-
5
- </manifest>
1
+ <!-- AndroidManifest.xml -->
2
+
3
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
4
+
5
+ </manifest>
@@ -1,22 +1,22 @@
1
- cmake_minimum_required(VERSION 3.22.1)
2
-
3
- project("rn_dys")
4
-
5
- file(GLOB SRC_FILES "*.cpp")
6
-
7
- add_library(${CMAKE_PROJECT_NAME} SHARED
8
- ${SRC_FILES})
9
-
10
- find_package(ReactAndroid REQUIRED CONFIG)
11
-
12
- target_link_libraries(${CMAKE_PROJECT_NAME}
13
- ReactAndroid::jsi # <-- RN: JSI
14
- android
15
- log)
16
-
17
- target_link_options(${CMAKE_PROJECT_NAME} PRIVATE
18
- "-Wl,-z,max-page-size=16384"
19
- "-Wl,--gc-sections"
20
- "-Wl,--strip-all"
21
- "-s"
1
+ cmake_minimum_required(VERSION 3.22.1)
2
+
3
+ project("rn_dys")
4
+
5
+ file(GLOB SRC_FILES "*.cpp")
6
+
7
+ add_library(${CMAKE_PROJECT_NAME} SHARED
8
+ ${SRC_FILES})
9
+
10
+ find_package(ReactAndroid REQUIRED CONFIG)
11
+
12
+ target_link_libraries(${CMAKE_PROJECT_NAME}
13
+ ReactAndroid::jsi # <-- RN: JSI
14
+ android
15
+ log)
16
+
17
+ target_link_options(${CMAKE_PROJECT_NAME} PRIVATE
18
+ "-Wl,-z,max-page-size=16384"
19
+ "-Wl,--gc-sections"
20
+ "-Wl,--strip-all"
21
+ "-s"
22
22
  )