anyline-ocr-react-native-module 42.2.0 → 43.0.0

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 (51) hide show
  1. package/android/build.gradle +7 -3
  2. package/android/src/main/AndroidManifest.xml +9 -8
  3. package/android/src/main/assets/cow_tag_scanner.ale +46 -0
  4. package/android/src/main/java/com/anyline/reactnative/AnylinePackage.java +1 -2
  5. package/android/src/main/java/com/anyline/reactnative/AnylineSDKPlugin.java +25 -71
  6. package/android/src/main/java/com/anyline/reactnative/RotateButtonConfig.java +12 -2
  7. package/android/src/main/java/com/anyline/reactnative/ScanActivity.java +206 -0
  8. package/android/src/main/res/drawable/rotate_screen_background.xml +18 -0
  9. package/android/src/main/res/drawable/rotate_screen_white.png +0 -0
  10. package/android/src/main/res/layout/activity_scan.xml +27 -0
  11. package/android/src/main/res/values/anyline_sdk_plugin_strings.xml +2 -28
  12. package/ios/ALJsonUIConfiguration.h +29 -36
  13. package/ios/ALJsonUIConfiguration.m +136 -76
  14. package/ios/ALNFCScanViewController.h +3 -16
  15. package/ios/ALNFCScanViewController.m +361 -232
  16. package/ios/ALPluginHelper.h +19 -62
  17. package/ios/ALPluginHelper.m +208 -529
  18. package/ios/ALPluginScanViewController.h +5 -32
  19. package/ios/ALPluginScanViewController.m +339 -287
  20. package/ios/AnylineReact.podspec +4 -3
  21. package/ios/AnylineSDKPlugin.m +39 -82
  22. package/package.json +8 -8
  23. package/android/.gradle/6.7/executionHistory/executionHistory.lock +0 -0
  24. package/android/.gradle/6.7/fileChanges/last-build.bin +0 -0
  25. package/android/.gradle/6.7/fileHashes/fileHashes.bin +0 -0
  26. package/android/.gradle/6.7/fileHashes/fileHashes.lock +0 -0
  27. package/android/.gradle/6.7/gc.properties +0 -0
  28. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  29. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  30. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  31. package/android/.gradle/checksums/checksums.lock +0 -0
  32. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  33. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  34. package/android/.gradle/configuration-cache/gc.properties +0 -0
  35. package/android/.gradle/vcs-1/gc.properties +0 -0
  36. package/android/.idea/compiler.xml +0 -6
  37. package/android/.idea/gradle.xml +0 -18
  38. package/android/.idea/jarRepositories.xml +0 -35
  39. package/android/.idea/misc.xml +0 -10
  40. package/android/.idea/vcs.xml +0 -6
  41. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  42. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  43. package/android/local.properties +0 -8
  44. package/android/src/main/java/com/anyline/reactnative/Anyline4Activity.java +0 -621
  45. package/android/src/main/java/com/anyline/reactnative/AnylineBaseActivity.java +0 -267
  46. package/android/src/main/java/com/anyline/reactnative/AnylinePluginHelper.java +0 -324
  47. package/android/src/main/java/com/anyline/reactnative/AnylineUIConfig.java +0 -88
  48. package/android/src/main/java/com/anyline/reactnative/Document4Activity.java +0 -595
  49. package/android/src/main/res/layout/activity_scan_document.xml +0 -63
  50. package/android/src/main/res/layout/activity_scan_scanview.xml +0 -52
  51. package/android/src/main/res/values/com_crashlytics_export_strings.xml +0 -10
@@ -7,8 +7,8 @@ Pod::Spec.new do |s|
7
7
  s.version = package["version"]
8
8
  s.summary = "anyline-ocr-react-native-module"
9
9
  s.authors = {
10
- 'Jonas Laux' => 'jonas@anyline.com',
11
- 'Mike Chudziak' => 'mike.chudziak@callstack.io',
10
+ 'Aldrich Co' => 'aldrich.co@anyline.com',
11
+ 'Renato Neves' => 'renato.neves@anyline.com',
12
12
  }
13
13
 
14
14
  s.homepage = "https://github.com/Anyline/anyline-ocr-react-native-module"
@@ -19,6 +19,7 @@ Pod::Spec.new do |s|
19
19
  s.source = { :git => "https://github.com/Anyline/anyline-ocr-react-native-module.git", :tag => "#{s.version}" }
20
20
 
21
21
  s.source_files = "*.{h,m}"
22
- s.dependency "Anyline", "~> 42.0.0"
22
+ s.dependency "Anyline", "~> 43.0.0"
23
23
  s.dependency "React"
24
+
24
25
  end
@@ -1,12 +1,12 @@
1
- #import "AnylineSDKPlugin.h"
2
1
  #import <Anyline/Anyline.h>
2
+ #import "AnylineSDKPlugin.h"
3
3
  #import "ALJsonUIConfiguration.h"
4
4
  #import "ALPluginScanViewController.h"
5
5
  #import "ALPluginHelper.h"
6
6
 
7
7
  #import "ALNFCScanViewController.h"
8
8
 
9
- @interface AnylineSDKPlugin()<ALPluginScanViewControllerDelegate>
9
+ @interface AnylineSDKPlugin()
10
10
 
11
11
  @property (nonatomic, strong) ALScanViewPluginConfig *conf;
12
12
 
@@ -15,7 +15,7 @@
15
15
  @property (nonatomic, assign) BOOL nativeBarcodeScanning;
16
16
  @property (nonatomic, strong) NSDictionary *jsonConfigDictionary;
17
17
  @property (nonatomic, strong) NSDictionary *ocrConfigDict;
18
- @property (nonatomic, strong) ALJsonUIConfiguration *jsonUIConf;
18
+ @property (nonatomic, strong) ALJSONUIConfiguration *jsonUIConf;
19
19
 
20
20
  @property (nonatomic, strong) RCTResponseSenderBlock onResultCallback;
21
21
  @property (nonatomic, strong) RCTResponseSenderBlock onErrorCallback;
@@ -63,7 +63,7 @@ RCT_EXPORT_METHOD(setupPromise:(NSString *)config scanMode:(NSString *)scanMode
63
63
  }
64
64
 
65
65
  RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
66
- resolve(ALCoreController.versionNumber);
66
+ resolve(AnylineSDK.versionNumber);
67
67
  }
68
68
 
69
69
 
@@ -87,35 +87,24 @@ RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPro
87
87
  BOOL nativeBarcodeScanning = [[optionsDictionary objectForKey:@"nativeBarcodeEnabled"] boolValue];
88
88
  self.nativeBarcodeScanning = nativeBarcodeScanning ? nativeBarcodeScanning : NO;
89
89
 
90
- self.jsonUIConf = [[ALJsonUIConfiguration alloc] initWithDictionary:optionsDictionary];
91
- self.conf = [[ALScanViewPluginConfig alloc] initWithDictionary:optionsDictionary];
92
- self.conf.cancelOnResult = true;
90
+ self.jsonUIConf = [[ALJSONUIConfiguration alloc] initWithDictionary:optionsDictionary];
91
+ self.conf = [[ALScanViewPluginConfig alloc] initWithJSONDictionary:optionsDictionary error:&error];
93
92
  self.ocrConfigDict = [dictionary objectForKey:@"ocr"];
94
93
 
95
94
  dispatch_async(dispatch_get_main_queue(), ^{
96
95
  [[UIApplication sharedApplication] keyWindow].rootViewController.modalPresentationStyle = UIModalPresentationFullScreen;
97
96
 
98
97
  if ([[scanMode uppercaseString] isEqualToString:[@"scan" uppercaseString]]) {
99
- NSString *customCmdFile = [[dictionary objectForKey:@"options"] valueForKeyPath:@"viewPlugin.plugin.nfcPlugin"];
100
- if (customCmdFile) {
98
+ BOOL isNFC = [optionsDictionary objectForKey:@"enableNFCWithMRZ"];
99
+ if (isNFC) {
101
100
  if (@available(iOS 13.0, *)) {
102
101
  if ([ALNFCDetector readingAvailable]) {
103
102
  ALNFCScanViewController *nfcScanViewController = [[ALNFCScanViewController alloc] initWithLicensekey:self.appKey
104
- configuration:[dictionary objectForKey:@"options"]
105
- uiConfig:self.jsonUIConf
106
- delegate:self];
107
- if([self.jsonConfigDictionary valueForKey:@"quality"]){
108
- nfcScanViewController.quality = [[self.jsonConfigDictionary valueForKey:@"quality"] integerValue];
109
- }
110
-
111
- if([self.jsonConfigDictionary valueForKey:@"cropAndTransformErrorMessage"]){
112
- NSString *str = [self.jsonConfigDictionary objectForKey:@"cropAndTransformErrorMessage"];
113
- nfcScanViewController.cropAndTransformErrorMessage = str;
114
- }
115
-
116
- if ([optionsDictionary valueForKey:@"nativeBarcodeEnabled"]) {
117
- nfcScanViewController.nativeBarcodeEnabled = [[self.jsonConfigDictionary objectForKey:@"nativeBarcodeEnabled"] boolValue];
118
- }
103
+ configuration:dictionary
104
+ uiConfig:self.jsonUIConf
105
+ finished:^(id _Nullable callbackObj, NSString * _Nullable errorString) {
106
+ [self returnCallback:callbackObj andErrorString:errorString];
107
+ }];
119
108
 
120
109
  if(nfcScanViewController != nil){
121
110
  [nfcScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
@@ -130,22 +119,10 @@ RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPro
130
119
  } else {
131
120
  ALPluginScanViewController *pluginScanViewController =
132
121
  [[ALPluginScanViewController alloc] initWithLicensekey:self.appKey
133
- configuration:[dictionary objectForKey:@"options"]
134
- uiConfiguration:self.jsonUIConf
135
- delegate:self];
136
-
137
- if([self.jsonConfigDictionary valueForKey:@"quality"]){
138
- pluginScanViewController.quality = [[self.jsonConfigDictionary valueForKey:@"quality"] integerValue];
139
- }
140
-
141
- if([self.jsonConfigDictionary valueForKey:@"cropAndTransformErrorMessage"]){
142
- NSString *str = [self.jsonConfigDictionary objectForKey:@"cropAndTransformErrorMessage"];
143
- pluginScanViewController.cropAndTransformErrorMessage = str;
144
- }
145
-
146
- if ([optionsDictionary valueForKey:@"nativeBarcodeEnabled"]) {
147
- pluginScanViewController.nativeBarcodeEnabled = [[self.jsonConfigDictionary objectForKey:@"nativeBarcodeEnabled"] boolValue];
148
- }
122
+ configuration:dictionary
123
+ uiConfiguration:self.jsonUIConf finished:^(id _Nullable callbackObj, NSString * _Nullable errorString) {
124
+ [self returnCallback:callbackObj andErrorString:errorString];
125
+ }];
149
126
 
150
127
  if(pluginScanViewController != nil){
151
128
  [pluginScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
@@ -155,22 +132,10 @@ RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPro
155
132
  } else {
156
133
  ALPluginScanViewController *pluginScanViewController =
157
134
  [[ALPluginScanViewController alloc] initWithLicensekey:self.appKey
158
- configuration:[dictionary objectForKey:@"options"]
159
- uiConfiguration:self.jsonUIConf
160
- delegate:self];
161
-
162
- if([self.jsonConfigDictionary valueForKey:@"quality"]){
163
- pluginScanViewController.quality = [[self.jsonConfigDictionary valueForKey:@"quality"] integerValue];
164
- }
165
-
166
- if([self.jsonConfigDictionary valueForKey:@"cropAndTransformErrorMessage"]){
167
- NSString *str = [self.jsonConfigDictionary objectForKey:@"cropAndTransformErrorMessage"];
168
- pluginScanViewController.cropAndTransformErrorMessage = str;
169
- }
170
-
171
- if ([optionsDictionary valueForKey:@"nativeBarcodeEnabled"]) {
172
- pluginScanViewController.nativeBarcodeEnabled = [[self.jsonConfigDictionary objectForKey:@"nativeBarcodeEnabled"] boolValue];
173
- }
135
+ configuration:dictionary
136
+ uiConfiguration:self.jsonUIConf finished:^(id _Nullable callbackObj, NSString * _Nullable errorString) {
137
+ [self returnCallback:callbackObj andErrorString:errorString];
138
+ }];
174
139
 
175
140
  if(pluginScanViewController != nil){
176
141
  [pluginScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
@@ -207,32 +172,6 @@ RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPro
207
172
  [self returnError:error.debugDescription];
208
173
  }
209
174
 
210
- - (ALScanMode)energyScanModeFromString:(NSString *)scanMode{
211
-
212
- if ([[scanMode uppercaseString] isEqualToString:@"ANALOG_METER"]) {
213
- return ALAnalogMeter;
214
- } else if ([[scanMode uppercaseString] isEqualToString:@"DIGITAL_METER"]){
215
- return ALDigitalMeter;
216
- } else if ([[scanMode uppercaseString] isEqualToString:@"AUTO_ANALOG_DIGITAL_METER"]){
217
- return ALAutoAnalogDigitalMeter;
218
- } else if ([[scanMode uppercaseString] isEqualToString:@"DIAL_METER"]){
219
- return ALDialMeter;
220
- } else if ([[scanMode uppercaseString] isEqualToString:@"SERIAL_NUMBER"]){
221
- return ALSerialNumber;
222
- } else if ([[scanMode uppercaseString] isEqualToString:@"HEAT_METER_4"]){
223
- return ALHeatMeter4;
224
- } else if ([[scanMode uppercaseString] isEqualToString:@"HEAT_METER_5"]){
225
- return ALHeatMeter5;
226
- } else if ([[scanMode uppercaseString] isEqualToString:@"HEAT_METER_6"]){
227
- return ALHeatMeter6;
228
- } else if ([[scanMode uppercaseString] isEqualToString:@"DOT_MATRIX_METER"]){
229
- return ALDotMatrixMeter;
230
- } else {
231
- return ALAutoAnalogDigitalMeter;
232
- }
233
-
234
- }
235
-
236
175
  - (BOOL)scanModeIndex:(NSString *)scanMode{
237
176
 
238
177
  NSArray *possibleScanModes = @[@"DOCUMENT", @"MRZ", @"BARCODE", @"LICENSE_PLATE", @"LICENSE_PLATE_US", @"ANYLINE_OCR", @"TIRE", @"ANALOG_METER", @"DIGITAL_METER", @"AUTO_ANALOG_DIGITAL_METER",
@@ -242,6 +181,24 @@ RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPro
242
181
 
243
182
  }
244
183
 
184
+ //(id _Nullable callbackObj, NSString * _Nullable errorString)
185
+ - (void)returnCallback:(id _Nullable)callbackObj andErrorString:(NSString * _Nullable)errorString {
186
+ NSString *resultStr;
187
+ NSError *error;
188
+ if (errorString) {
189
+ [self returnError:errorString];
190
+ } else if ([NSJSONSerialization isValidJSONObject:callbackObj]) {
191
+ resultStr = [(NSDictionary *)callbackObj toJSONStringPretty:YES error:&error];
192
+ if (error) {
193
+ [self returnError:error.debugDescription];
194
+ }
195
+ [self returnSuccess:resultStr];
196
+ } else {
197
+ resultStr = @"callback object should be of JSON type";
198
+ [self returnError:resultStr];
199
+ }
200
+ }
201
+
245
202
  - (void)returnSuccess:(NSString *)result{
246
203
  if([self.returnMethod isEqualToString:@"callback"]) {
247
204
  self.onResultCallback(@[result]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "_from": "anyline-ocr-react-native-module@^42.2.0",
3
- "_id": "anyline-ocr-react-native-module@^42.2.0",
2
+ "_from": "anyline-ocr-react-native-module@^43.0.0",
3
+ "_id": "anyline-ocr-react-native-module@^43.0.0",
4
4
  "_inBundle": false,
5
5
  "_integrity": "sha512-BGi9zNkSsoxXywDBIqzgBRvKUBniQOJHDKBrozZubKthZNRBAj8Ry5tW0Me0yLXt/fauME//hbC0wsenfPJZqw==",
6
6
  "_location": "/anyline-ocr-react-native-module",
@@ -8,19 +8,19 @@
8
8
  "_requested": {
9
9
  "type": "range",
10
10
  "registry": true,
11
- "raw": "anyline-ocr-react-native-module@^42.2.0",
11
+ "raw": "anyline-ocr-react-native-module@^43.0.0",
12
12
  "name": "anyline-ocr-react-native-module",
13
13
  "escapedName": "anyline-ocr-react-native-module",
14
- "rawSpec": "^42.2.0",
14
+ "rawSpec": "^43.0.0",
15
15
  "saveSpec": null,
16
- "fetchSpec": "^42.2.0"
16
+ "fetchSpec": "^43.0.0"
17
17
  },
18
18
  "_requiredBy": [
19
19
  "/"
20
20
  ],
21
- "_resolved": "https://registry.npmjs.org/anyline-ocr-react-native-module/-/anyline-ocr-react-native-module-42.2.0.tgz",
21
+ "_resolved": "https://registry.npmjs.org/anyline-ocr-react-native-module/-/anyline-ocr-react-native-module-43.0.0.tgz",
22
22
  "_shasum": "bacbcd260cc662244f59393ed81a6edba009b52c",
23
- "_spec": "anyline-ocr-react-native-module@^42.2.0",
23
+ "_spec": "anyline-ocr-react-native-module@^43.0.0",
24
24
  "_where": "/Users/amiransari/Projects/anyline-ocr-react-native-module1/example/RNExampleApp",
25
25
  "bugs": {
26
26
  "url": "https://github.com/Anyline/anyline-ocr-react-native-module/issues"
@@ -47,5 +47,5 @@
47
47
  "type": "git",
48
48
  "url": "git+https://github.com/Anyline/anyline-ocr-react-native-module.git"
49
49
  },
50
- "version": "42.2.0"
50
+ "version": "43.0.0"
51
51
  }
File without changes
@@ -1,2 +0,0 @@
1
- #Wed Nov 16 08:16:14 CET 2022
2
- gradle.version=6.7
File without changes
File without changes
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="CompilerConfiguration">
4
- <bytecodeTargetLevel target="11" />
5
- </component>
6
- </project>
@@ -1,18 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GradleMigrationSettings" migrationVersion="1" />
4
- <component name="GradleSettings">
5
- <option name="linkedExternalProjectsSettings">
6
- <GradleProjectSettings>
7
- <option name="testRunner" value="GRADLE" />
8
- <option name="distributionType" value="DEFAULT_WRAPPED" />
9
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
10
- <option name="modules">
11
- <set>
12
- <option value="$PROJECT_DIR$" />
13
- </set>
14
- </option>
15
- </GradleProjectSettings>
16
- </option>
17
- </component>
18
- </project>
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RemoteRepositoriesConfiguration">
4
- <remote-repository>
5
- <option name="id" value="central" />
6
- <option name="name" value="Maven Central repository" />
7
- <option name="url" value="https://repo1.maven.org/maven2" />
8
- </remote-repository>
9
- <remote-repository>
10
- <option name="id" value="jboss.community" />
11
- <option name="name" value="JBoss Community repository" />
12
- <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
13
- </remote-repository>
14
- <remote-repository>
15
- <option name="id" value="maven" />
16
- <option name="name" value="maven" />
17
- <option name="url" value="https://anylinesdk.blob.core.windows.net/testing/" />
18
- </remote-repository>
19
- <remote-repository>
20
- <option name="id" value="BintrayJCenter" />
21
- <option name="name" value="BintrayJCenter" />
22
- <option name="url" value="https://jcenter.bintray.com/" />
23
- </remote-repository>
24
- <remote-repository>
25
- <option name="id" value="Google" />
26
- <option name="name" value="Google" />
27
- <option name="url" value="https://dl.google.com/dl/android/maven2/" />
28
- </remote-repository>
29
- <remote-repository>
30
- <option name="id" value="maven" />
31
- <option name="name" value="maven" />
32
- <option name="url" value="https://anylinesdk.blob.core.windows.net/maven/" />
33
- </remote-repository>
34
- </component>
35
- </project>
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ExternalStorageConfigurationManager" enabled="true" />
4
- <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
5
- <output url="file://$PROJECT_DIR$/build/classes" />
6
- </component>
7
- <component name="ProjectType">
8
- <option name="id" value="Android" />
9
- </component>
10
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
5
- </component>
6
- </project>
@@ -1,13 +0,0 @@
1
- arguments=
2
- auto.sync=false
3
- build.scans.enabled=false
4
- connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
5
- connection.project.dir=
6
- eclipse.preferences.version=1
7
- gradle.user.home=
8
- java.home=/Library/Java/JavaVirtualMachines/jdk-15.jdk/Contents/Home
9
- jvm.arguments=
10
- offline.mode=false
11
- override.workspace.settings=true
12
- show.console.view=true
13
- show.executions.view=true
@@ -1,8 +0,0 @@
1
- ## This file must *NOT* be checked into Version Control Systems,
2
- # as it contains information specific to your local configuration.
3
- #
4
- # Location of the SDK. This is only used by Gradle.
5
- # For customization when using a Version Control System, please read the
6
- # header note.
7
- #Wed Nov 16 08:15:22 CET 2022
8
- sdk.dir=/Users/patrickfekete/Library/Android/sdk