react-native-okaycam 1.1.10 → 1.1.22

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 (138) hide show
  1. package/README.md +15 -1
  2. package/android/.DS_Store +0 -0
  3. package/android/.gradle/6.8/executionHistory/executionHistory.bin +0 -0
  4. package/android/.gradle/6.8/executionHistory/executionHistory.lock +0 -0
  5. package/android/.gradle/6.8/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/6.8/fileHashes/fileHashes.bin +0 -0
  7. package/android/.gradle/6.8/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/6.8/fileHashes/resourceHashesCache.bin +0 -0
  9. package/android/.gradle/6.8/gc.properties +0 -0
  10. package/android/.gradle/6.8/javaCompile/classAnalysis.bin +0 -0
  11. package/android/.gradle/6.8/javaCompile/jarAnalysis.bin +0 -0
  12. package/android/.gradle/6.8/javaCompile/javaCompile.lock +0 -0
  13. package/android/.gradle/6.8/javaCompile/taskHistory.bin +0 -0
  14. package/android/.gradle/7.1.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  15. package/android/.gradle/7.1.1/executionHistory/executionHistory.lock +0 -0
  16. package/android/.gradle/7.1.1/fileHashes/fileHashes.lock +0 -0
  17. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  18. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  19. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  20. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  21. package/android/.gradle/7.2/gc.properties +0 -0
  22. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  23. package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
  24. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  25. package/android/.gradle/checksums/checksums.lock +0 -0
  26. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  27. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  28. package/android/.idea/.gitignore +3 -0
  29. package/android/.idea/compiler.xml +6 -0
  30. package/android/.idea/gradle.xml +8 -4
  31. package/android/.idea/jarRepositories.xml +40 -0
  32. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml +13 -0
  33. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml +11 -0
  34. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_1_0_aar.xml +16 -0
  35. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_1_0_aar.xml +13 -0
  36. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
  37. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
  38. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +13 -0
  39. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
  40. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +16 -0
  41. package/android/.idea/libraries/Gradle__androidx_core_core_1_3_1_aar.xml +16 -0
  42. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
  43. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
  44. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +13 -0
  45. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
  46. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml +16 -0
  47. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
  48. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +13 -0
  49. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +13 -0
  50. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml +13 -0
  51. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml +11 -0
  52. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_1_0_aar.xml +13 -0
  53. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_1_0_aar.xml +13 -0
  54. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml +13 -0
  55. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml +13 -0
  56. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
  57. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +13 -0
  58. package/android/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml +16 -0
  59. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +16 -0
  60. package/android/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml +16 -0
  61. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml +13 -0
  62. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +13 -0
  63. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
  64. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
  65. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
  66. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +13 -0
  67. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
  68. package/android/.idea/libraries/Gradle__com_caverock_androidsvg_aar_1_4_aar.xml +15 -0
  69. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_0_8_1_aar.xml +15 -0
  70. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_0_8_1_aar.xml +15 -0
  71. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_0_8_1_aar.xml +15 -0
  72. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_0_8_1_aar.xml +16 -0
  73. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp_0_8_1_aar.xml +15 -0
  74. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_20_1_aar.xml +19 -0
  75. package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_1_2_0.xml +13 -0
  76. package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_okhttp_1_2_0.xml +13 -0
  77. package/android/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_2_3.xml +13 -0
  78. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_0.xml +13 -0
  79. package/android/.idea/libraries/Gradle__com_googlecode_json_simple_json_simple_1_1_1.xml +13 -0
  80. package/android/.idea/libraries/Gradle__com_innov8tif_okaycam_OkayCam_1_1_9_aar.xml +15 -0
  81. package/android/.idea/libraries/Gradle__com_nineoldandroids_library_2_4_0.xml +13 -0
  82. package/android/.idea/libraries/Gradle__com_parse_bolts_bolts_android_1_1_4.xml +13 -0
  83. package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_5_0.xml +13 -0
  84. package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_ws_2_5_0.xml +13 -0
  85. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_6_0.xml +13 -0
  86. package/android/.idea/libraries/Gradle__commons_cli_commons_cli_1_2.xml +13 -0
  87. package/android/.idea/libraries/Gradle__junit_junit_4_10.xml +13 -0
  88. package/android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml +11 -0
  89. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +13 -0
  90. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_21.xml +13 -0
  91. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_21.xml +13 -0
  92. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_21.xml +13 -0
  93. package/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650_aar.xml +11 -0
  94. package/android/.idea/misc.xml +1 -1
  95. package/android/.idea/modules/android.iml +93 -6
  96. package/android/build/generated/source/buildConfig/debug/com/innov8tif/RNOkayCam/BuildConfig.java +12 -0
  97. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +11 -0
  98. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +27 -0
  99. package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
  100. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  101. package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
  102. package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
  103. package/android/build/intermediates/compile_symbol_list/debug/R.txt +3230 -0
  104. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  105. package/android/build/intermediates/incremental/debug-mergeNativeLibs/merge-state +0 -0
  106. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  107. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  108. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  109. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +1 -0
  110. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +2 -0
  111. package/android/build/intermediates/javac/debug/classes/com/innov8tif/RNOkayCam/BuildConfig.class +0 -0
  112. package/android/build/intermediates/javac/debug/classes/com/innov8tif/RNOkayCam/RNOkayCamModule.class +0 -0
  113. package/android/build/intermediates/javac/debug/classes/com/innov8tif/RNOkayCam/RNOkayCamPackage.class +0 -0
  114. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +11 -0
  115. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  116. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +13 -0
  117. package/android/build/intermediates/merged_java_res/debug/out.jar +0 -0
  118. package/android/build/intermediates/merged_manifests/debug/output.json +27 -0
  119. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +2248 -0
  120. package/android/build/outputs/aar/android-debug.aar +0 -0
  121. package/android/build/outputs/logs/manifest-merger-debug-report.txt +37 -0
  122. package/android/build/tmp/compileDebugJavaWithJavac/source-classes-mapping.txt +6 -0
  123. package/android/build.gradle +13 -5
  124. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  125. package/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  126. package/android/gradle.properties +2 -0
  127. package/android/gradlew +185 -0
  128. package/android/gradlew.bat +89 -0
  129. package/android/src/main/java/com/innov8tif/RNOkayCam/RNOkayCamModule.java +355 -248
  130. package/index.ts +182 -152
  131. package/ios/RNOkayCam.swift +49 -0
  132. package/ios/RNOkayCam.xcodeproj/project.pbxproj +55 -2
  133. package/ios/RNOkayCam.xcodeproj/xcuserdata/thet.xcuserdatad/xcschemes/xcschememanagement.plist +1 -1
  134. package/ios/RNOkayCam.xcworkspace/contents.xcworkspacedata +3 -0
  135. package/ios/RNOkayCam.xcworkspace/xcuserdata/thet.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  136. package/package.json +1 -1
  137. package/react-native-okaycam.podspec +1 -1
  138. package/android/.idea/workspace.xml +0 -44
@@ -27,6 +27,7 @@ import com.innov8tif.okaycam.config.OkayCamCaptureConfig;
27
27
  import com.innov8tif.okaycam.config.OkayCamConfig;
28
28
  import com.innov8tif.okaycam.config.OkayCamFrameConfig;
29
29
  import com.innov8tif.okaycam.config.OkayCamLabelConfig;
30
+ import com.innov8tif.okaycam.config.OkayCamPreviewConfig;
30
31
  import com.innov8tif.okaycam.config.OkayCamTimerConfig;
31
32
  import com.innov8tif.okaycam.config.OkaySelfieConfig;
32
33
  import com.innov8tif.okaycam.config.OkaySelfieLabelConfig;
@@ -46,310 +47,416 @@ import java.net.URL;
46
47
 
47
48
  public class RNOkayCamModule extends ReactContextBaseJavaModule {
48
49
 
49
- private final ReactApplicationContext reactContext;
50
+ private final ReactApplicationContext reactContext;
50
51
 
51
- public RNOkayCamModule(ReactApplicationContext reactContext) {
52
- super(reactContext);
53
- this.reactContext = reactContext;
54
- }
52
+ public RNOkayCamModule(ReactApplicationContext reactContext) {
53
+ super(reactContext);
54
+ this.reactContext = reactContext;
55
+ }
56
+
57
+ @Override
58
+ public String getName() {
59
+ return "RNOkayCam";
60
+ }
55
61
 
56
- @Override
57
- public String getName() {
58
- return "RNOkayCam";
59
- }
62
+ @ReactMethod
63
+ public void captureDocument(ReadableMap configs, Promise promise) {
64
+ String LICENSE_KEY = configs.getString("license");
60
65
 
61
- @ReactMethod
62
- public void captureDocument(ReadableMap configs, Promise promise) {
63
- String LICENSE_KEY = configs.getString("license");
66
+ Boolean base64 = configs.getBoolean("base64");
64
67
 
65
- Boolean base64 = configs.getBoolean("base64");
68
+ ReadableMap userConfig = configs.getMap("config");
69
+ ReadableMap topLabel = userConfig.getMap("topLabel");
70
+ ReadableMap bottomLabel = userConfig.getMap("bottomLabel");
71
+ ReadableMap frame = userConfig.getMap("frame");
72
+ ReadableMap timer = userConfig.getMap("timer");
73
+ ReadableMap confirmBtnConfig = userConfig.getMap("confirmBtnConfig");
74
+ ReadableMap retakeBtnConfig = userConfig.getMap("retakeBtnConfig");
75
+ ReadableMap captureConfigPair = userConfig.getMap("captureConfigPair");
76
+ ReadableMap firstPhoto = captureConfigPair.getMap("firstPhoto");
77
+ ReadableMap secondPhoto = captureConfigPair.getMap("secondPhoto");
78
+ ReadableMap preview = userConfig.getMap("preview");
66
79
 
67
- ReadableMap userConfig = configs.getMap("config");
68
- ReadableMap topLabel = userConfig.getMap("topLabel");
69
- ReadableMap bottomLabel = userConfig.getMap("bottomLabel");
70
- ReadableMap frame = userConfig.getMap("frame");
71
- ReadableMap timer = userConfig.getMap("timer");
72
- ReadableMap confirmBtnConfig = userConfig.getMap("confirmBtnConfig");
73
- ReadableMap retakeBtnConfig = userConfig.getMap("retakeBtnConfig");
74
- ReadableMap captureConfigPair = userConfig.getMap("captureConfigPair");
75
- ReadableMap firstPhoto = captureConfigPair.getMap("firstPhoto");
76
- ReadableMap secondPhoto = captureConfigPair.getMap("secondPhoto");
77
80
 
78
- OkayCamConfig okayCamConfig = OkayCamConfig.init(this.getCurrentActivity());
81
+ OkayCamConfig okayCamConfig = OkayCamConfig.init(this.getCurrentActivity());
79
82
 
80
- okayCamConfig.setShowOverlay(userConfig.getBoolean("showOverlay"));
83
+ okayCamConfig.setShowOverlay(userConfig.getBoolean("showOverlay"));
81
84
 
82
- okayCamConfig.setTorchBtnEnabled(userConfig.getBoolean("torchBtnEnabled"));
83
- okayCamConfig.setCrop(userConfig.getBoolean("crop"));
85
+ okayCamConfig.setTorchBtnEnabled(userConfig.getBoolean("torchBtnEnabled"));
86
+ okayCamConfig.setCrop(userConfig.getBoolean("crop"));
84
87
 
85
- if (userConfig.getInt("width") != -1) {
86
- okayCamConfig.setWidth(userConfig.getInt("width"));
88
+ if (userConfig.getInt("width") != -1) {
89
+ okayCamConfig.setWidth(userConfig.getInt("width"));
90
+ }
91
+
92
+ okayCamConfig.setImageQuality((float) userConfig.getDouble("imageQuality"));
93
+
94
+ okayCamConfig.setTopLabel(new OkayCamLabelConfig(
95
+ topLabel.getString("text"),
96
+ Color.parseColor(topLabel.getString("color")),
97
+ topLabel.getInt("size")
98
+ ));
99
+ okayCamConfig.setBottomLabel(new OkayCamLabelConfig(
100
+ bottomLabel.getString("text"),
101
+ Color.parseColor(bottomLabel.getString("color")),
102
+ bottomLabel.getInt("size")
103
+ ));
104
+
105
+ OkayCamFrameConfig frameConfig = getFrameConfig(frame);
106
+ okayCamConfig.setFrame(frameConfig);
107
+
108
+ okayCamConfig.setCaptureBtnColor(Color.parseColor(userConfig.getString("captureBtnColor")));
109
+ okayCamConfig.setTimer(new OkayCamTimerConfig(
110
+ Color.parseColor(timer.getString("backgroundColor")),
111
+ Color.parseColor(timer.getString("textColor"))
112
+ ));
113
+
114
+ okayCamConfig.setConfirmBtnConfig(new OkayCamBtnConfig(
115
+ Color.parseColor(confirmBtnConfig.getString("backgroundColor")),
116
+ Color.parseColor(confirmBtnConfig.getString("contentColor"))
117
+ ));
118
+
119
+ okayCamConfig.setRetakeBtnConfig(new OkayCamBtnConfig(
120
+ Color.parseColor(retakeBtnConfig.getString("backgroundColor")),
121
+ Color.parseColor(retakeBtnConfig.getString("contentColor"))
122
+ ));
123
+
124
+ okayCamConfig.setCaptureConfig(new CaptureConfigPair(
125
+ firstPhoto != null ? new OkayCamCaptureConfig(
126
+ firstPhoto.getInt("delay"),
127
+ firstPhoto.getBoolean("onFlash"),
128
+ firstPhoto.getString("outputPath")
129
+ ) : null,
130
+ secondPhoto != null ? new OkayCamCaptureConfig(
131
+ secondPhoto.getInt("delay"),
132
+ secondPhoto.getBoolean("onFlash"),
133
+ secondPhoto.getString("outputPath")
134
+ ) : null
135
+ ));
136
+
137
+
138
+ okayCamConfig.setPreview(getPreviewConfig(preview, frameConfig));
139
+
140
+ OkayCamDoc.start(this.getCurrentActivity(), LICENSE_KEY, okayCamConfig, (success, images, exception) -> {
141
+
142
+ if (success) {
143
+ JSONObject results = new JSONObject();
144
+ try {
145
+
146
+ results.put("fullDocumentImage", convertImgToBase64(base64, images.get(0)));
147
+
148
+ if (images.size() > 1) {
149
+ results.put("fullDocumentImage2", convertImgToBase64(base64, images.get(1)));
150
+ }
151
+
152
+ if (images.size() > 2) {
153
+ results.put("fullDocumentImage3", convertImgToBase64(base64, images.get(2)));
154
+ }
155
+
156
+ if (images.size() > 3) {
157
+ results.put("fullDocumentImage4", convertImgToBase64(base64, images.get(3)));
158
+ }
159
+
160
+ promise.resolve(results.toString());
161
+ } catch (JSONException e) {
162
+ // TODO Auto-generated catch block
163
+ e.printStackTrace();
164
+ promise.reject(this.getError(e.getMessage()));
165
+ }
166
+ } else {
167
+ promise.reject(this.getError(exception.getMessage()));
168
+ }
169
+ return null;
170
+ });
87
171
  }
88
172
 
89
- okayCamConfig.setImageQuality((float) userConfig.getDouble("imageQuality"));
90
-
91
- okayCamConfig.setTopLabel(new OkayCamLabelConfig(
92
- topLabel.getString("text"),
93
- Color.parseColor(topLabel.getString("color")),
94
- topLabel.getInt("size")
95
- ));
96
- okayCamConfig.setBottomLabel(new OkayCamLabelConfig(
97
- bottomLabel.getString("text"),
98
- Color.parseColor(bottomLabel.getString("color")),
99
- bottomLabel.getInt("size")
100
- ));
101
-
102
- okayCamConfig.setFrame(getFrameConfig(frame));
103
-
104
- okayCamConfig.setCaptureBtnColor(Color.parseColor(userConfig.getString("captureBtnColor")));
105
- okayCamConfig.setTimer(new OkayCamTimerConfig(
106
- Color.parseColor(timer.getString("backgroundColor")),
107
- Color.parseColor(timer.getString("textColor"))
108
- ));
109
-
110
- okayCamConfig.setConfirmBtnConfig(new OkayCamBtnConfig(
111
- Color.parseColor(confirmBtnConfig.getString("backgroundColor")),
112
- Color.parseColor(confirmBtnConfig.getString("contentColor"))
113
- ));
114
-
115
- okayCamConfig.setRetakeBtnConfig(new OkayCamBtnConfig(
116
- Color.parseColor(retakeBtnConfig.getString("backgroundColor")),
117
- Color.parseColor(retakeBtnConfig.getString("contentColor"))
118
- ));
119
-
120
- okayCamConfig.setCaptureConfig(new CaptureConfigPair(
121
- firstPhoto != null ? new OkayCamCaptureConfig(
122
- firstPhoto.getInt("delay"),
123
- firstPhoto.getBoolean("onFlash"),
124
- firstPhoto.getString("outputPath")
125
- ) : null,
126
- secondPhoto != null ? new OkayCamCaptureConfig(
127
- secondPhoto.getInt("delay"),
128
- secondPhoto.getBoolean("onFlash"),
129
- secondPhoto.getString("outputPath")
130
- ) : null
131
- ));
132
-
133
- OkayCamDoc.start(this.getCurrentActivity(), LICENSE_KEY, okayCamConfig, (success, images, exception) -> {
134
-
135
- if (success) {
136
- JSONObject results = new JSONObject();
137
- try {
173
+ private OkayCamPreviewConfig getPreviewConfig(ReadableMap preview, OkayCamFrameConfig frameConfig) {
174
+ if (preview == null) return null;
175
+ OkayCamLabelConfig title = mapToLabelConfig(preview.getMap("title"));
176
+ OkayCamLabelConfig instr1 = mapToLabelConfig(preview.getMap("instruction1"));
177
+ OkayCamLabelConfig instr2 = mapToLabelConfig(preview.getMap("instruction2"));
178
+ OkayCamLabelConfig instr3 = mapToLabelConfig(preview.getMap("instruction3"));
138
179
 
139
- results.put("fullDocumentImage", convertImgToBase64(base64, images.get(0)));
180
+ int bgColor = Color.parseColor(preview.getString("backgroundColor"));
140
181
 
141
- if (images.size() > 1) {
142
- results.put("fullDocumentImage2", convertImgToBase64(base64, images.get(1)));
143
- }
182
+ String refImage = preview.getString("refImage");
183
+
184
+ Size size = frameConfig.getSize();
185
+ int frameWidth = size.getWidth();
186
+ int frameHeight = size.getHeight();
144
187
 
145
- promise.resolve(results.toString());
146
- } catch (JSONException e) {
147
- // TODO Auto-generated catch block
148
- e.printStackTrace();
149
- promise.reject(this.getError(e.getMessage()));
150
- }
151
- }
152
- else {
153
- promise.reject(this.getError(exception.getMessage()));
154
- }
155
- return null;
156
- });
157
- }
158
-
159
- private OkayCamFrameConfig getFrameConfig(ReadableMap frameConfig) {
160
- ReadableMap frameSizeMap = frameConfig.getMap("size");
161
- String frameColor = frameConfig.getString("color");
162
- String frameContent = frameConfig.getString("content");
163
-
164
- int frameWidth = frameSizeMap.getInt("width");
165
- int frameHeight = frameSizeMap.getInt("height");
166
- Size frameSize = new Size(frameWidth, frameHeight);
167
-
168
- try {
169
- if (frameContent != null) {
170
188
  Bitmap contentBmp = null;
189
+ try {
190
+ if (refImage != null) {
171
191
 
172
- // In debug, the image is returned as URL
173
- if (BuildConfig.DEBUG) {
174
- InputStream inputStream = new URL(frameContent).openStream();
192
+ // In debug, the image is returned as URL
193
+ if (BuildConfig.DEBUG) {
194
+ InputStream inputStream = new URL(refImage).openStream();
175
195
 
176
- if (frameContent.contains("svg")) {
196
+ if (refImage.contains("svg")) {
177
197
 
178
- SVG svg = SVG.getFromInputStream(inputStream);
198
+ SVG svg = SVG.getFromInputStream(inputStream);
179
199
 
180
- svg.setDocumentWidth(frameWidth);
181
- svg.setDocumentHeight(frameHeight);
200
+ svg.setDocumentWidth(frameWidth);
201
+ svg.setDocumentHeight(frameHeight);
182
202
 
183
- if (svg.getDocumentWidth() != -1) {
184
- contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
185
- (int) Math.ceil(svg.getDocumentHeight()),
186
- Bitmap.Config.ARGB_8888);
203
+ if (svg.getDocumentWidth() != -1) {
204
+ contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
205
+ (int) Math.ceil(svg.getDocumentHeight()),
206
+ Bitmap.Config.ARGB_8888);
187
207
 
188
- Canvas bmcanvas = new Canvas(contentBmp);
208
+ Canvas bmcanvas = new Canvas(contentBmp);
189
209
 
190
- // Render our document onto our canvas
191
- svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
192
- }
193
- } else {
194
- contentBmp = BitmapFactory.decodeStream(inputStream);
195
- }
196
- } else {
197
- // In release, the image is returned as raw (svg) or drawable (png, jpeg and etc)
198
- int resourceId = this.getCurrentActivity().getResources().getIdentifier(frameContent, "raw", this.getCurrentActivity().getPackageName());
210
+ // Render our document onto our canvas
211
+ svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
212
+ }
213
+ } else {
214
+ contentBmp = BitmapFactory.decodeStream(inputStream);
215
+ }
216
+ } else {
217
+ // In release, the image is returned as raw (svg) or drawable (png, jpeg and etc)
218
+ int resourceId = this.getCurrentActivity().getResources().getIdentifier(refImage, "raw", this.getCurrentActivity().getPackageName());
199
219
 
200
- if (resourceId != 0) {
201
- SVG svg = SVG.getFromResource(getReactApplicationContext(), resourceId);
220
+ if (resourceId != 0) {
221
+ SVG svg = SVG.getFromResource(getReactApplicationContext(), resourceId);
202
222
 
203
- svg.setDocumentWidth(frameWidth);
204
- svg.setDocumentHeight(frameHeight);
223
+ svg.setDocumentWidth(frameWidth);
224
+ svg.setDocumentHeight(frameHeight);
205
225
 
206
- if (svg.getDocumentWidth() != -1) {
207
- contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
208
- (int) Math.ceil(svg.getDocumentHeight()),
209
- Bitmap.Config.ARGB_8888);
226
+ if (svg.getDocumentWidth() != -1) {
227
+ contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
228
+ (int) Math.ceil(svg.getDocumentHeight()),
229
+ Bitmap.Config.ARGB_8888);
210
230
 
211
- Canvas bmcanvas = new Canvas(contentBmp);
231
+ Canvas bmcanvas = new Canvas(contentBmp);
212
232
 
213
- // Render our document onto our canvas
214
- svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
215
- }
233
+ // Render our document onto our canvas
234
+ svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
235
+ }
236
+ } else {
237
+ resourceId = this.getCurrentActivity().getResources().getIdentifier(refImage, "drawable", this.getCurrentActivity().getPackageName());
238
+ contentBmp = BitmapFactory.decodeResource(getReactApplicationContext().getResources(), resourceId);
239
+ }
240
+ }
216
241
  }
217
- else {
218
- resourceId = this.getCurrentActivity().getResources().getIdentifier(frameContent, "drawable", this.getCurrentActivity().getPackageName());
219
- contentBmp = BitmapFactory.decodeResource(getReactApplicationContext().getResources(), resourceId);
242
+ } catch (SVGParseException | MalformedURLException e) {
243
+ e.printStackTrace();
244
+ } catch (IOException e) {
245
+ e.printStackTrace();
246
+ }
247
+
248
+
249
+ return new OkayCamPreviewConfig(
250
+ title,
251
+ generateFile(contentBmp, "ref.png"),
252
+ instr1,
253
+ instr2,
254
+ instr3,
255
+ bgColor
256
+ );
257
+
258
+ }
259
+
260
+ private OkayCamLabelConfig mapToLabelConfig(ReadableMap map) {
261
+ return new OkayCamLabelConfig(
262
+ map.getString("text"),
263
+ Color.parseColor(map.getString("color")),
264
+ map.getInt("size")
265
+ );
266
+
267
+ }
268
+
269
+ private OkayCamFrameConfig getFrameConfig(ReadableMap frameConfig) {
270
+ ReadableMap frameSizeMap = frameConfig.getMap("size");
271
+ String frameColor = frameConfig.getString("color");
272
+ String frameContent = frameConfig.getString("content");
273
+
274
+ int frameWidth = frameSizeMap.getInt("width");
275
+ int frameHeight = frameSizeMap.getInt("height");
276
+ Size frameSize = new Size(frameWidth, frameHeight);
277
+
278
+ try {
279
+ if (frameContent != null) {
280
+ Bitmap contentBmp = null;
281
+
282
+ // In debug, the image is returned as URL
283
+ if (BuildConfig.DEBUG) {
284
+ InputStream inputStream = new URL(frameContent).openStream();
285
+
286
+ if (frameContent.contains("svg")) {
287
+
288
+ SVG svg = SVG.getFromInputStream(inputStream);
289
+
290
+ svg.setDocumentWidth(frameWidth);
291
+ svg.setDocumentHeight(frameHeight);
292
+
293
+ if (svg.getDocumentWidth() != -1) {
294
+ contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
295
+ (int) Math.ceil(svg.getDocumentHeight()),
296
+ Bitmap.Config.ARGB_8888);
297
+
298
+ Canvas bmcanvas = new Canvas(contentBmp);
299
+
300
+ // Render our document onto our canvas
301
+ svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
302
+ }
303
+ } else {
304
+ contentBmp = BitmapFactory.decodeStream(inputStream);
305
+ }
306
+ } else {
307
+ // In release, the image is returned as raw (svg) or drawable (png, jpeg and etc)
308
+ int resourceId = this.getCurrentActivity().getResources().getIdentifier(frameContent, "raw", this.getCurrentActivity().getPackageName());
309
+
310
+ if (resourceId != 0) {
311
+ SVG svg = SVG.getFromResource(getReactApplicationContext(), resourceId);
312
+
313
+ svg.setDocumentWidth(frameWidth);
314
+ svg.setDocumentHeight(frameHeight);
315
+
316
+ if (svg.getDocumentWidth() != -1) {
317
+ contentBmp = Bitmap.createBitmap((int) Math.ceil(svg.getDocumentWidth()),
318
+ (int) Math.ceil(svg.getDocumentHeight()),
319
+ Bitmap.Config.ARGB_8888);
320
+
321
+ Canvas bmcanvas = new Canvas(contentBmp);
322
+
323
+ // Render our document onto our canvas
324
+ svg.renderToCanvas(bmcanvas, new RenderOptions().preserveAspectRatio(PreserveAspectRatio.FULLSCREEN));
325
+ }
326
+ } else {
327
+ resourceId = this.getCurrentActivity().getResources().getIdentifier(frameContent, "drawable", this.getCurrentActivity().getPackageName());
328
+ contentBmp = BitmapFactory.decodeResource(getReactApplicationContext().getResources(), resourceId);
329
+ }
330
+ }
331
+ return new OkayCamFrameConfig(frameSize, Color.parseColor(frameColor), generateFile(contentBmp, "content.png"));
220
332
  }
333
+ } catch (SVGParseException | MalformedURLException e) {
334
+ e.printStackTrace();
335
+ } catch (IOException e) {
336
+ e.printStackTrace();
221
337
  }
222
- return new OkayCamFrameConfig(frameSize, Color.parseColor(frameColor), generateFile(contentBmp));
223
- }
224
- } catch (SVGParseException | MalformedURLException e) {
225
- e.printStackTrace();
226
- } catch (IOException e) {
227
- e.printStackTrace();
338
+
339
+ return new OkayCamFrameConfig(frameSize, Color.parseColor(frameColor), null);
228
340
  }
229
341
 
230
- return new OkayCamFrameConfig(frameSize, Color.parseColor(frameColor), null);
231
- }
342
+ public String generateFile(Bitmap bitmap, String filename) {
343
+ try {
344
+ String resultedFolder = ".private";
345
+ File privateFolder = this.getReactApplicationContext().getExternalFilesDir(resultedFolder);
232
346
 
233
- public String generateFile(Bitmap bitmap) {
234
- try {
235
- String resultedFolder = ".private";
236
- File privateFolder = this.getReactApplicationContext().getExternalFilesDir(resultedFolder);
347
+ if (!privateFolder.exists()) {
348
+ privateFolder.mkdir();
349
+ }
237
350
 
238
- if (!privateFolder.exists()) {
239
- privateFolder.mkdir();
240
- }
351
+ File file = new File(privateFolder, filename);
352
+ file.createNewFile();
241
353
 
242
- File file = new File(privateFolder, "content.png");
243
- file.createNewFile();
354
+ FileOutputStream fos = new FileOutputStream(file.getAbsolutePath());
355
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
244
356
 
245
- FileOutputStream fos = new FileOutputStream(file.getAbsolutePath());
246
- bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
357
+ return file.getAbsolutePath();
358
+ } catch (IOException e) {
359
+ e.printStackTrace();
360
+ }
247
361
 
248
- return file.getAbsolutePath();
249
- } catch (IOException e) {
250
- e.printStackTrace();
362
+ return null;
251
363
  }
252
364
 
253
- return null;
254
- }
365
+ @ReactMethod
366
+ public void captureSelfie(ReadableMap configs, Promise promise) {
367
+ String LICENSE_KEY = configs.getString("license");
255
368
 
256
- @ReactMethod
257
- public void captureSelfie(ReadableMap configs, Promise promise) {
258
- String LICENSE_KEY = configs.getString("license");
369
+ Boolean base64 = configs.getBoolean("base64");
259
370
 
260
- Boolean base64 = configs.getBoolean("base64");
371
+ ReadableMap userConfig = configs.getMap("config");
372
+ ReadableMap topLabel = userConfig.getMap("topLabel");
373
+ ReadableMap switchBtnConfig = userConfig.getMap("switchBtnConfig");
374
+ ReadableMap confirmBtnConfig = userConfig.getMap("confirmBtnConfig");
375
+ ReadableMap retakeBtnConfig = userConfig.getMap("retakeBtnConfig");
261
376
 
262
- ReadableMap userConfig = configs.getMap("config");
263
- ReadableMap topLabel = userConfig.getMap("topLabel");
264
- ReadableMap switchBtnConfig = userConfig.getMap("switchBtnConfig");
265
- ReadableMap confirmBtnConfig = userConfig.getMap("confirmBtnConfig");
266
- ReadableMap retakeBtnConfig = userConfig.getMap("retakeBtnConfig");
377
+ OkaySelfieConfig okaySelfieConfig = OkaySelfieConfig.init(this.getCurrentActivity());
267
378
 
268
- OkaySelfieConfig okaySelfieConfig = OkaySelfieConfig.init(this.getCurrentActivity());
379
+ okaySelfieConfig.setTopLabel(new OkaySelfieLabelConfig(
380
+ topLabel.getString("text"),
381
+ Color.parseColor(topLabel.getString("color")),
382
+ topLabel.getInt("size")
383
+ ));
384
+ okaySelfieConfig.setBottomFrameColor(Color.parseColor(userConfig.getString("bottomFrameColor")));
269
385
 
270
- okaySelfieConfig.setTopLabel(new OkaySelfieLabelConfig(
271
- topLabel.getString("text"),
272
- Color.parseColor(topLabel.getString("color")),
273
- topLabel.getInt("size")
274
- ));
275
- okaySelfieConfig.setBottomFrameColor(Color.parseColor(userConfig.getString("bottomFrameColor")));
386
+ okaySelfieConfig.setCaptureBtnColor(Color.parseColor(userConfig.getString("captureBtnColor")));
276
387
 
277
- okaySelfieConfig.setCaptureBtnColor(Color.parseColor(userConfig.getString("captureBtnColor")));
388
+ okaySelfieConfig.setSwitchBtnConfig(new OkaySelfieSwichBtnConfig(
389
+ Color.parseColor(switchBtnConfig.getString("color")),
390
+ switchBtnConfig.getBoolean("show")
391
+ ));
278
392
 
279
- okaySelfieConfig.setSwitchBtnConfig(new OkaySelfieSwichBtnConfig(
280
- Color.parseColor(switchBtnConfig.getString("color")),
281
- switchBtnConfig.getBoolean("show")
282
- ));
393
+ okaySelfieConfig.setConfirmBtnConfig(new OkayCamBtnConfig(
394
+ Color.parseColor(confirmBtnConfig.getString("backgroundColor")),
395
+ Color.parseColor(confirmBtnConfig.getString("contentColor"))
396
+ ));
283
397
 
284
- okaySelfieConfig.setConfirmBtnConfig(new OkayCamBtnConfig(
285
- Color.parseColor(confirmBtnConfig.getString("backgroundColor")),
286
- Color.parseColor(confirmBtnConfig.getString("contentColor"))
287
- ));
398
+ okaySelfieConfig.setRetakeBtnConfig(new OkayCamBtnConfig(
399
+ Color.parseColor(retakeBtnConfig.getString("backgroundColor")),
400
+ Color.parseColor(retakeBtnConfig.getString("contentColor"))
401
+ ));
288
402
 
289
- okaySelfieConfig.setRetakeBtnConfig(new OkayCamBtnConfig(
290
- Color.parseColor(retakeBtnConfig.getString("backgroundColor")),
291
- Color.parseColor(retakeBtnConfig.getString("contentColor"))
292
- ));
403
+ if (userConfig.getString("defaultCameraFacing").equals("front")) {
404
+ okaySelfieConfig.setDefaultCameraFacing(CameraFacing.FRONT);
405
+ } else if (userConfig.getString("defaultCameraFacing").equals("back")) {
406
+ okaySelfieConfig.setDefaultCameraFacing(CameraFacing.BACK);
407
+ }
293
408
 
294
- if (userConfig.getString("defaultCameraFacing").equals("front")) {
295
- okaySelfieConfig.setDefaultCameraFacing(CameraFacing.FRONT);
296
- }
297
- else if (userConfig.getString("defaultCameraFacing").equals("back")) {
298
- okaySelfieConfig.setDefaultCameraFacing(CameraFacing.BACK);
299
- }
409
+ if (userConfig.getInt("width") != -1) {
410
+ okaySelfieConfig.setWidth(userConfig.getInt("width"));
411
+ }
300
412
 
301
- if (userConfig.getInt("width") != -1) {
302
- okaySelfieConfig.setWidth(userConfig.getInt("width"));
303
- }
413
+ okaySelfieConfig.setImageQuality((float) userConfig.getDouble("imageQuality"));
304
414
 
305
- okaySelfieConfig.setImageQuality((float) userConfig.getDouble("imageQuality"));
415
+ OkayCamSelfie.start(this.getCurrentActivity(), LICENSE_KEY, okaySelfieConfig, (success, image, exception) -> {
306
416
 
307
- OkayCamSelfie.start(this.getCurrentActivity(), LICENSE_KEY, okaySelfieConfig, (success, image, exception) -> {
417
+ if (success) {
418
+
419
+ JSONObject results = new JSONObject();
420
+ try {
421
+ results.put("selfieImage", convertImgToBase64(base64, image));
422
+ promise.resolve(results.toString());
423
+ } catch (JSONException e) {
424
+ // TODO Auto-generated catch block
425
+ e.printStackTrace();
426
+ promise.reject(this.getError(e.getMessage()));
427
+ }
428
+ } else {
429
+ promise.reject(this.getError(exception.getMessage()));
430
+ }
431
+ return null;
432
+ });
433
+ }
308
434
 
309
- if (success) {
435
+ public String convertImgToBase64(Boolean base64, String image) {
436
+ String result = "file://" + image;
310
437
 
311
- JSONObject results = new JSONObject();
312
- try {
313
- results.put("selfieImage", convertImgToBase64(base64, image));
314
- promise.resolve(results.toString());
315
- } catch (JSONException e) {
316
- // TODO Auto-generated catch block
317
- e.printStackTrace();
318
- promise.reject(this.getError(e.getMessage()));
438
+ if (base64) {
439
+ result = BitmapUtils.INSTANCE.convertToBase64(image);
319
440
  }
320
- }
321
- else {
322
- promise.reject(this.getError(exception.getMessage()));
323
- }
324
- return null;
325
- });
326
- }
327
-
328
- public String convertImgToBase64(Boolean base64, String image) {
329
- String result = "file://" + image;
330
-
331
- if (base64) {
332
- result = BitmapUtils.INSTANCE.convertToBase64(image);
441
+
442
+ return result;
333
443
  }
334
444
 
335
- return result;
336
- }
337
-
338
- private Exception getError(String error) {
339
- String errorString = "";
340
- switch (error) {
341
- case "Invalid license key":
342
- errorString = "invalid license";
343
- break;
344
- case "User refused to grant permission.":
345
- errorString = "camera permission denied";
346
- break;
347
- case "User cancelled the activity.":
348
- errorString = "cancel";
349
- break;
350
- default:
351
- errorString = "failed";
445
+ private Exception getError(String error) {
446
+ String errorString = "";
447
+ switch (error) {
448
+ case "Invalid license key":
449
+ errorString = "invalid license";
450
+ break;
451
+ case "User refused to grant permission.":
452
+ errorString = "camera permission denied";
453
+ break;
454
+ case "User cancelled the activity.":
455
+ errorString = "cancel";
456
+ break;
457
+ default:
458
+ errorString = "failed";
459
+ }
460
+ return new Exception(errorString);
352
461
  }
353
- return new Exception(errorString);
354
- }
355
462
  }