react-native-okaycam 1.1.11 → 1.1.21

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