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