Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mvayngrib committed May 29, 2019
0 parents commit c65c23a
Show file tree
Hide file tree
Showing 59 changed files with 9,160 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .buckconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

[android]
target = Google Inc.:Google APIs:23

[maven_repositories]
central = https://repo1.maven.org/maven2
69 changes: 69 additions & 0 deletions .flowconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js

; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/

; Ignore unexpected extra "@providesModule"
.*/node_modules/.*/node_modules/fbjs/.*

; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js

; Ignore polyfills
.*/Libraries/polyfills/.*

; Ignore metro
.*/node_modules/metro/.*

[include]

[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow/

[options]
emoji=true

esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable

module.system=haste
module.system.haste.use_name_reducers=true
# get basename
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
# strip .js or .js.flow suffix
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
# strip .ios suffix
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__mocks__/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*

munge_underscores=true

module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'

module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.native.js

suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError

[version]
^0.92.0
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pbxproj -text
59 changes: 59 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# BUCK
buck-out/
\.buckd/
*.keystore

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots

# Bundle artifact
*.jsbundle

ZoomAuthenticationHybrid.framework
app-token.json
1 change: 1 addition & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
128 changes: 128 additions & 0 deletions App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
import React from 'react'
import {
Platform,
TouchableHighlight,
StyleSheet,
ScrollView,
View,
Text,
Image,
} from 'react-native'

import Zoom from 'react-native-facetec-zoom'
import ZOOM_APP_TOKEN from './app-token'

Zoom.preload()

const bigText = (text, style) => <Text style={[styles.bigText, style]}>{text}</Text>
const hugeText = (text, style) => <Text style={[styles.hugeText, style]}>{text}</Text>
const createButton = ({ text, ...props }) => (
<TouchableHighlight {...props} style={styles.button}>
{hugeText(text, styles.buttonText)}
</TouchableHighlight>
)

const prettify = (obj) => (obj ? JSON.stringify(obj, null, 2) : '')

export default class App extends React.Component {
state = {}
verifyLiveness = async () => {
const { success, status } = await Zoom.initialize({
appToken: ZOOM_APP_TOKEN,
showPreEnrollmentScreen: false,
showUserLockedScreen: false,
showRetryScreen: false,
topMargin: 50,
sizeRatio: 0.7,
})

if (!success) {
// see constants.js SDKStatus for explanations of various
// reasons why initialize might not have gone through
throw new Error(`failed to init. SDK status: ${status}`)
}

// launch Zoom's verification process
return await Zoom.verify({
// no options at this point
})
}
render = () => {
const button = createButton({
key: 'button',
text: 'Verify Liveness',
onPress: async () => {
try {
this.setState({
result: await this.verifyLiveness(),
})
} catch (error) {
this.setState({ error })
}
},
})
let result = this.renderResult()
let error = this.state.error && (
<View>
{bigText('Error:')}
{this.renderError()}
</View>
)

return (
<View style={styles.container}>
{bigText('Variants:')}
{button}
{bigText('Result:')}
{result}
{error}
</View>
)
}
renderResult = () => {
const { result } = this.state
if (!result) return

const { faceMetrics = {} } = result
const { facemap, auditTrail = [] } = faceMetrics
const images = auditTrail.map((uri, i) => (
<Image key={`image${i}`} style={styles.image} source={{ uri }} />
))
return (
<ScrollView contentContainerStyle={styles.scrollContainer}>
{bigText(prettify(result))}
{images}
</ScrollView>
)
}
renderError = () => {
return this.state.error && <View key="error">{bigText(prettify(this.state.error))}</View>
}
}

const styles = StyleSheet.create({
scrollContainer: {},
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
button: {
padding: 10,
},
buttonText: {
color: 'blue',
},
bigText: {
fontSize: 20,
},
hugeText: {
fontSize: 30,
},
image: {
flex: 1,
resizeMode: 'contain',
minWidth: 300,
minHeight: 300,
},
})
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

See example code in `src/App.js`

1. download and copy `ZoomAuthenticationHybrid.framework` to `ios/`
2. copy your token to `app-token.json`, e.g.:
```json
"abcdefg"
```
3. run the example app
14 changes: 14 additions & 0 deletions __tests__/App-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* @format
*/

import 'react-native';
import React from 'react';
import App from '../App';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
renderer.create(<App />);
});
55 changes: 55 additions & 0 deletions android/app/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#

load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")

lib_deps = []

create_aar_targets(glob(["libs/*.aar"]))

create_jar_targets(glob(["libs/*.jar"]))

android_library(
name = "all-libs",
exported_deps = lib_deps,
)

android_library(
name = "app-code",
srcs = glob([
"src/main/java/**/*.java",
]),
deps = [
":all-libs",
":build_config",
":res",
],
)

android_build_config(
name = "build_config",
package = "com.rnzoomexample",
)

android_resource(
name = "res",
package = "com.rnzoomexample",
res = "src/main/res",
)

android_binary(
name = "app",
keystore = "//android/keystores:debug",
manifest = "src/main/AndroidManifest.xml",
package_type = "debug",
deps = [
":app-code",
],
)
Loading

0 comments on commit c65c23a

Please sign in to comment.