Upgrade react-native to 0.60.5

- Use community net-info, react-native-webview instead of deprecated react-native classes
- Remove react-native-tcp
- Upgrade react-native libs (react-native-camera, react-native-firebase, react-native-mail, react-native-udp, react-native-webview-bridge)
- Do not include `:react-native-android` module explicitly
- Take advantage of RN AutoLinking
- nix: Update Gradle dependencies
This commit is contained in:
Pedro Pombeiro 2019-08-06 18:16:51 +02:00
parent 5db0a58ab8
commit 9feb31bd3b
No known key found for this signature in database
GPG Key ID: C4A24185B2AA48A1
43 changed files with 3760 additions and 10914 deletions

4
.eslintrc.js Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
root: true,
extends: '@react-native-community',
};

View File

@ -20,15 +20,20 @@
# 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
node_modules/react-native/Libraries/react-native/React.js
.*/Libraries/react-native/ReactNative.js
.*/node_modules/jest-runtime/build/__tests__/.*
; Ignore polyfills
.*/Libraries/polyfills/.*
node_modules/react-native/Libraries/polyfills/.*
; Ignore metro
.*/node_modules/metro/.*
; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/HMRLoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
@ -40,11 +45,31 @@ node_modules/react-native/flow/
esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable
module.system=haste
esproposal.class_static_fields=enable
esproposal.class_instance_fields=enable
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
module.system=haste
module.system.haste.use_name_reducers=true
# get basename
# get basename
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__mocks__/.*
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/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
experimental.strict_type_args=true
munge_underscores=true
@ -67,4 +92,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
[version]
^0.92.0
^0.98.0

4
.gitignore vendored
View File

@ -96,8 +96,8 @@ doo-index.html
Statusgo.framework
#ios
ios/Pods
ios/StatusIm.xcworkspace
/ios/Pods/
/ios/StatusIm.xcworkspace
.ruby-version
status-e2e/

6
.prettierrc.js Normal file
View File

@ -0,0 +1,6 @@
module.exports = {
bracketSpacing: false,
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
};

View File

@ -79,13 +79,15 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
project.ext.react = [
nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"],
entryFile: "index.android.js",
enableHermes: false, // clean and rebuild if changing
bundleInPr: true,
inputExcludes: ["android/**", "ios/**", "react-native/**", "src/**", "test/**"]
]
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
// NOTE: Uncomment if building RN from a fork
// configurations.all {
// exclude group: 'com.facebook.react', module: 'react-native'
// }
apply from: "../../node_modules/react-native/react.gradle"
@ -104,6 +106,28 @@ def enableSeparateBuildPerCPUArchitecture = false
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore.
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);
def getVersionCode = { ->
new ByteArrayOutputStream().withStream { stdOut ->
if (project.hasProperty("versionCode")) {
@ -162,6 +186,7 @@ android {
ndk {
abiFilters getEnvOrConfig('NDK_ABI_FILTERS').split(';')
}
missingDimensionStrategy 'react-native-camera', 'general'
}
/**
* Arbitrary project metadata
@ -179,8 +204,15 @@ android {
packagingOptions {
exclude 'META-INF/rxjava.properties'
exclude '/lib/mips64/**'
exclude '/lib/arm64-v8a/**'
exclude '/lib/armeabi/**'
pickFirst '**/armeabi-v7a/libc++_shared.so'
pickFirst '**/x86/libc++_shared.so'
pickFirst '**/arm64-v8a/libc++_shared.so'
pickFirst '**/x86_64/libc++_shared.so'
pickFirst '**/x86/libjsc.so'
pickFirst '**/armeabi-v7a/libjsc.so'
/** Fix for: Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
* with recent version of ndk (17.0.4754217)
*/
@ -192,6 +224,12 @@ android {
javaMaxHeapSize "8g"
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
release {
/* environment variables take precedence over gradle.properties file */
storeFile file(getEnvOrConfig('STATUS_RELEASE_STORE_FILE').replaceAll("~", System.properties['user.home']))
@ -213,9 +251,13 @@ android {
applicationIdSuffix ".debug"
debuggable true
versionNameSuffix "-SNAPSHOT"
signingConfig signingConfigs.debug
resValue "string", "build_config_package", "im.status.ethereum"
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
@ -242,6 +284,7 @@ android {
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
@ -256,44 +299,33 @@ android {
}
dependencies {
implementation project(':@react-native-community_netinfo')
implementation project(':react-native-background-timer')
implementation project(':react-native-svg')
implementation 'com.android.support:multidex:1.0.2'
implementation project(':react-native-splash-screen')
implementation project(':react-native-image-resizer')
implementation project(':react-native-dialogs')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
if (enableHermes) {
def hermesPath = "../../node_modules/hermesvm/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
prImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
implementation 'com.android.support:multidex:1.0.2'
implementation project(':react-native-dialogs')
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
// Force using exact RN version instead of relying on gradle dependency resolution
// https://docs.gradle.org/current/userguide/introduction_dependency_management.html#sec:dependency_resolution
// NOTE: Uncomment if building RN from a fork
//compile ("com.facebook.react:react-native:0.55.4") { force = true } // From node_modules
implementation project(':react-native-android')
implementation project(':react-native-languages')
implementation project(':react-native-status')
implementation project(':react-native-fs')
implementation project(':react-native-image-crop-picker')
implementation project(':react-native-webview-bridge')
implementation project(':react-native-touch-id')
implementation project(':react-native-config')
implementation project(':react-native-firebase')
implementation project(':react-native-shake')
implementation project(':react-native-gesture-handler')
implementation project(':react-native-screens')
implementation project(':RNMail')
compile ('com.google.android.gms:play-services-base:16.0.1') {
force = true
}
compile (project(':react-native-camera')) {
exclude group: "com.google.android.gms"
compile 'com.android.support:exifinterface:28.+'
}
implementation project(':react-native-status-keycard')
implementation 'com.google.firebase:firebase-core:16.0.3' //this decides your firebase SDK version
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation project(':react-native-keychain')
implementation "com.google.android.gms:play-services-base:${rootProject.ext.googlePlayServicesVersion}"
implementation 'com.google.firebase:firebase-core:16.0.9' //this decides your firebase SDK version
implementation 'com.google.firebase:firebase-messaging:18.0.0'
compile 'com.github.status-im:function:0.0.1'
implementation 'com.github.status-im:function:0.0.1'
implementation 'com.facebook.fresco:animated-gif:1.10.0'
}
@ -318,5 +350,7 @@ task hemroidBuild(type: Exec) {
preBuild.dependsOn hemroidBuild
// Must be at bottom to avoid dependency collision
apply plugin: "com.google.gms.google-services"
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

BIN
android/app/debug.keystore Normal file

Binary file not shown.

View File

@ -9,13 +9,6 @@
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Disabling obfuscation is useful if you collect stack traces from production crashes
# (unless you are using a system that supports de-obfuscate the stack traces).
-dontobfuscate

View File

@ -83,11 +83,6 @@
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
<provider
android:name="android.support.v4.content.FileProvider"

View File

@ -1,41 +1,24 @@
package im.status.ethereum;
import android.support.multidex.MultiDexApplication;
import android.util.Log;
import com.facebook.react.PackageList;
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
import com.facebook.react.ReactApplication;
import com.reactnativecommunity.netinfo.NetInfoPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.github.alinz.reactnativewebviewbridge.WebViewBridgePackage;
import com.horcrux.svg.SvgPackage;
import com.lugg.ReactNativeConfig.ReactNativeConfigPackage;
import com.oblador.keychain.KeychainPackage;
import com.ocetnik.timer.BackgroundTimerPackage;
import com.reactcommunity.rnlanguages.RNLanguagesPackage;
import com.reactnative.ivpusic.imagepicker.PickerPackage;
import com.rnfs.RNFSPackage;
import com.rnfingerprint.FingerprintAuthPackage;
import org.devio.rn.splashscreen.SplashScreenReactPackage;
import org.reactnative.camera.RNCameraPackage;
import java.util.Arrays;
import java.util.List;
import fr.bamlab.rnimageresizer.ImageResizerPackage;
import im.status.ethereum.function.Function;
import im.status.ethereum.keycard.RNStatusKeycardPackage;
import im.status.ethereum.module.StatusPackage;
import io.invertase.firebase.RNFirebasePackage;
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;
import com.chirag.RNMail.*;
import com.clipsub.RNShake.RNShakeEventPackage;
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
import com.swmansion.rnscreens.RNScreensPackage;
public class MainApplication extends MultiDexApplication implements ReactApplication {
@ -48,32 +31,14 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
@Override
protected List<ReactPackage> getPackages() {
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
Function<String, String> callRPC = statusPackage.getCallRPC();
return Arrays.asList(
new MainReactPackage(),
new NetInfoPackage(),
new RNMail(),
new RNFirebasePackage(),
new RNFirebaseMessagingPackage(),
new RNFirebaseNotificationsPackage(),
new BackgroundTimerPackage(),
new SvgPackage(),
new SplashScreenReactPackage(),
statusPackage,
new RNStatusKeycardPackage(),
new RNLanguagesPackage(),
new RNCameraPackage(),
new RNFSPackage(),
new ReactNativeDialogsPackage(),
new ImageResizerPackage(),
new PickerPackage(),
new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1", callRPC),
new ReactNativeConfigPackage(),
new KeychainPackage(),
new RNShakeEventPackage(),
new FingerprintAuthPackage(),
new RNGestureHandlerPackage(),
new RNScreensPackage());
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(statusPackage);
packages.add(new RNFirebaseMessagingPackage());
packages.add(new RNFirebaseNotificationsPackage());
packages.add(new ReactNativeDialogsPackage());
packages.add(new RNStatusKeycardPackage());
packages.add(new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1"));
return packages;
}
@Override

View File

@ -7,5 +7,7 @@
<item name="colorControlNormal">@color/primary</item>
<item name="colorControlActivated">@color/primary</item>
<item name="android:windowBackground">@color/background</item>
<item name="android:textColor">#000000</item>
</style>
</resources>

View File

@ -9,7 +9,9 @@ ext {
compileSdkVersion = Integer.valueOf(project.compileSdkVersion)
targetSdkVersion = Integer.valueOf(project.targetSdkVersion)
supportLibVersion = project.supportLibVersion
gradleBuildTools = project.gradleBuildTools
gradlePluginVersion = project.gradlePluginVersion
googlePlayServicesVersion = project.googlePlayServicesVersion
googlePlayServicesVisionVersion = project.googlePlayServicesVisionVersion
}
buildscript {
@ -19,10 +21,8 @@ buildscript {
jcenter()
}
dependencies {
classpath project.ext.gradleBuildTools
// google-services downgraded from 4.1.0 because of
// https://github.com/invertase/react-native-firebase/issues/766#issuecomment-365116012
classpath 'com.google.gms:google-services:4.0.1'
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'de.undercouch:gradle-download-task:3.1.2'
// NOTE: Do not place your application dependencies here; they belong
@ -54,12 +54,20 @@ allprojects {
repositories {
mavenLocal()
maven { url "$rootDir/../node_modules/react-native/android" }
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
jcenter()
// for geth, function, and status-go
flatDir { dirs "libs", System.env.STATUS_GO_ANDROID_LIBDIR }
maven { url "https://jitpack.io" }
}
}

View File

@ -21,12 +21,17 @@
# $keytool -genkey -v -keystore ./status-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias status
# Version requirements used throughout the Gradle scripts
minSdkVersion=18
minSdkVersion=23
compileSdkVersion=28
targetSdkVersion=28
buildToolsVersion=28.0.3
supportLibVersion=28.0.0
gradleBuildTools=com.android.tools.build:gradle:3.4.1
gradlePluginVersion=3.4.1
googlePlayServicesVersion=16.0.1
googlePlayServicesVisionVersion=17.0.2
android.useAndroidX=true
android.enableJetifier=true
STATUS_RELEASE_STORE_FILE=~/.gradle/status-im.keystore
STATUS_RELEASE_STORE_PASSWORD=password

View File

@ -1,8 +0,0 @@
keystore(
name = "debug",
properties = "debug.keystore.properties",
store = "debug.keystore",
visibility = [
"PUBLIC",
],
)

View File

@ -1,4 +0,0 @@
key.store=debug.keystore
key.alias=androiddebugkey
key.store.password=android
key.alias.password=android

View File

@ -6,50 +6,15 @@ pluginManagement {
}
rootProject.name = 'StatusIm'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':react-native-nfc-manager'
project(':react-native-nfc-manager').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-nfc-manager/android')
include ':react-native-firebase'
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
include ':react-native-background-timer'
project(':react-native-background-timer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-background-timer/android')
include ':react-native-svg'
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
include ':app'
include ':react-native-splash-screen'
project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
include ':react-native-image-resizer'
project(':react-native-image-resizer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-resizer/android')
include ':react-native-dialogs'
project(':react-native-dialogs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-dialogs/android')
include ':react-native-languages'
project(':react-native-languages').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-languages/android')
include ':react-native-status'
project(':react-native-status').projectDir = new File(rootProject.projectDir, '../modules/react-native-status/android')
include ':react-native-camera'
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
include ':react-native-status-keycard'
project(':react-native-status-keycard').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-status-keycard/android')
include ':react-native-fs'
project(':react-native-fs').projectDir = new File(settingsDir, '../node_modules/react-native-fs/android')
include ':react-native-image-crop-picker'
project(':react-native-image-crop-picker').projectDir = new File(settingsDir, '../node_modules/react-native-image-crop-picker/android')
include ':react-native-keychain'
project(':react-native-keychain').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keychain/android')
include ':react-native-webview-bridge'
project(':react-native-webview-bridge').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview-bridge/android')
include ':react-native-touch-id'
project(':react-native-touch-id').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-touch-id/android')
include ':react-native-config'
project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android')
include ':react-native-android'
project(':react-native-android').projectDir = new File(rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
include ':RNMail', ':app'
project(':RNMail').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mail/android')
include ':react-native-shake'
project(':react-native-shake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-shake/android')
include ':react-native-gesture-handler'
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
include ':react-native-screens'
project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')
include ':@react-native-community_netinfo'
project(':@react-native-community_netinfo').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/netinfo/android')

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,6 @@ var TopLevel = {
"callPrivateRPC" : function () {},
"callRPC" : function () {},
"canImplyAuthentication" : function () {},
"capture" : function () {},
"catch" : function () {},
"Chance" : function () {},
"changePin" : function () {},
@ -480,6 +479,7 @@ var TopLevel = {
"SyncInstallation" : function () {},
"SyncInstallationHandler" : function () {},
"t" : function () {},
"takePictureAsync" : function () {},
"Text" : function () {},
"text" : function () {},
"TextEncoder" : function () {},

View File

@ -7,37 +7,45 @@ target 'StatusIm' do
platform :ios, '9.0'
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
# Pods for StatusIm
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'Firebase/Core', '~> 5.5'
pod 'Firebase/Messaging', '~> 5.5'
# RCTImage is requered by react-native-svg
pod 'React', :path => '../node_modules/react-native', :subspecs => ['RCTImage',]
pod 'React', :path => '../node_modules/react-native/'
pod 'React-Core', :path => '../node_modules/react-native/React'
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
# RCTImage is required by react-native-svg
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'react-native-background-timer', :path => '../node_modules/react-native-background-timer'
pod 'RNKeychain', :path => '../node_modules/react-native-keychain'
pod 'react-native-camera', path: '../node_modules/react-native-camera'
pod 'TouchID', path: '../node_modules/react-native-touch-id'
pod 'SQLCipher', '~>3.0'
pod 'SSZipArchive'
# when removing svg pod, RCTImage is needed to be removed from React subspecs
pod 'RNSVG', :path => '../node_modules/react-native-svg'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
pod 'react-native-image-resizer', :path => '../node_modules/react-native-image-resizer'
pod 'SQLCipher', '~>3.0'
pod 'SSZipArchive'
target 'StatusImTests' do
inherit! :search_paths
# Pods for testing
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
end
use_native_modules!
end

View File

@ -1,99 +1,251 @@
PODS:
- Firebase/Core (5.7.0):
- boost-for-react-native (1.63.0)
- Crashlytics (3.13.4):
- Fabric (~> 1.10.2)
- DoubleConversion (1.1.6)
- Fabric (1.10.2)
- Firebase/Core (5.20.2):
- Firebase/CoreOnly
- FirebaseAnalytics (= 5.1.1)
- Firebase/CoreOnly (5.7.0):
- FirebaseCore (= 5.1.2)
- Firebase/Messaging (5.7.0):
- FirebaseAnalytics (= 5.8.1)
- Firebase/CoreOnly (5.20.2):
- FirebaseCore (= 5.4.1)
- Firebase/Messaging (5.20.2):
- Firebase/CoreOnly
- FirebaseMessaging (= 3.1.1)
- FirebaseAnalytics (5.1.1):
- FirebaseCore (~> 5.1)
- FirebaseInstanceID (~> 3.2)
- GoogleAppMeasurement (~> 5.1)
- GoogleUtilities/AppDelegateSwizzler (~> 5.2.0)
- GoogleUtilities/MethodSwizzler (~> 5.2.0)
- FirebaseMessaging (= 3.5.0)
- FirebaseAnalytics (5.8.1):
- FirebaseCore (~> 5.4)
- FirebaseInstanceID (~> 3.8)
- GoogleAppMeasurement (= 5.8.1)
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
- GoogleUtilities/MethodSwizzler (~> 5.2)
- GoogleUtilities/Network (~> 5.2)
- "GoogleUtilities/NSData+zlib (~> 5.2)"
- nanopb (~> 0.3)
- FirebaseCore (5.1.2):
- GoogleUtilities/Logger (~> 5.2)
- FirebaseInstanceID (3.2.1):
- FirebaseCore (~> 5.1)
- FirebaseAnalyticsInterop (1.4.0)
- FirebaseCore (5.4.1):
- GoogleUtilities/Environment (~> 5.2)
- FirebaseMessaging (3.1.1):
- FirebaseCore (~> 5.0)
- FirebaseInstanceID (~> 3.0)
- GoogleUtilities/Reachability (~> 5.2)
- GoogleUtilities/Logger (~> 5.2)
- FirebaseInstanceID (3.8.1):
- FirebaseCore (~> 5.2)
- GoogleUtilities/Environment (~> 5.2)
- GoogleUtilities/UserDefaults (~> 5.2)
- FirebaseMessaging (3.5.0):
- FirebaseAnalyticsInterop (~> 1.1)
- FirebaseCore (~> 5.2)
- FirebaseInstanceID (~> 3.6)
- GoogleUtilities/Environment (~> 5.3)
- GoogleUtilities/Reachability (~> 5.3)
- GoogleUtilities/UserDefaults (~> 5.3)
- Protobuf (~> 3.1)
- GoogleAppMeasurement (5.1.1):
- GoogleUtilities/AppDelegateSwizzler (~> 5.2.0)
- GoogleUtilities/MethodSwizzler (~> 5.2.0)
- Folly (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- Folly/Default (= 2018.10.22.00)
- glog
- Folly/Default (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- glog
- glog (0.3.5)
- GoogleAppMeasurement (5.8.1):
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
- GoogleUtilities/MethodSwizzler (~> 5.2)
- GoogleUtilities/Network (~> 5.2)
- "GoogleUtilities/NSData+zlib (~> 5.2)"
- nanopb (~> 0.3)
- GoogleUtilities/AppDelegateSwizzler (5.2.2):
- GoogleUtilities/AppDelegateSwizzler (5.8.0):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Environment (5.2.2)
- GoogleUtilities/Logger (5.2.2):
- GoogleUtilities/Environment (5.8.0)
- GoogleUtilities/Logger (5.8.0):
- GoogleUtilities/Environment
- GoogleUtilities/MethodSwizzler (5.2.2):
- GoogleUtilities/MethodSwizzler (5.8.0):
- GoogleUtilities/Logger
- GoogleUtilities/Network (5.2.2):
- GoogleUtilities/Network (5.8.0):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (5.2.2)"
- GoogleUtilities/Reachability (5.2.2):
- "GoogleUtilities/NSData+zlib (5.8.0)"
- GoogleUtilities/Reachability (5.8.0):
- GoogleUtilities/Logger
- nanopb (0.3.8):
- nanopb/decode (= 0.3.8)
- nanopb/encode (= 0.3.8)
- nanopb/decode (0.3.8)
- nanopb/encode (0.3.8)
- Protobuf (3.6.1)
- React (0.59.10):
- React/Core (= 0.59.10)
- GoogleUtilities/UserDefaults (5.8.0):
- GoogleUtilities/Logger
- nanopb (0.3.901):
- nanopb/decode (= 0.3.901)
- nanopb/encode (= 0.3.901)
- nanopb/decode (0.3.901)
- nanopb/encode (0.3.901)
- Protobuf (3.9.0)
- QBImagePickerController (3.4.0)
- React (0.60.5):
- React-Core (= 0.60.5)
- React-DevSupport (= 0.60.5)
- React-RCTActionSheet (= 0.60.5)
- React-RCTAnimation (= 0.60.5)
- React-RCTBlob (= 0.60.5)
- React-RCTImage (= 0.60.5)
- React-RCTLinking (= 0.60.5)
- React-RCTNetwork (= 0.60.5)
- React-RCTSettings (= 0.60.5)
- React-RCTText (= 0.60.5)
- React-RCTVibration (= 0.60.5)
- React-RCTWebSocket (= 0.60.5)
- React-Core (0.60.5):
- Folly (= 2018.10.22.00)
- React-cxxreact (= 0.60.5)
- React-jsiexecutor (= 0.60.5)
- yoga (= 0.60.5.React)
- React-cxxreact (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsinspector (= 0.60.5)
- React-DevSupport (0.60.5):
- React-Core (= 0.60.5)
- React-RCTWebSocket (= 0.60.5)
- React-jsi (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsi/Default (= 0.60.5)
- React-jsi/Default (0.60.5):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-jsiexecutor (0.60.5):
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React-cxxreact (= 0.60.5)
- React-jsi (= 0.60.5)
- React-jsinspector (0.60.5)
- react-native-background-timer (2.1.1):
- React
- react-native-camera (1.1.5):
- react-native-camera (3.3.3):
- React
- react-native-camera/RCT (= 1.1.5)
- react-native-camera/RN (= 1.1.5)
- react-native-camera/RCT (1.1.5):
- react-native-camera/RCT (= 3.3.3)
- react-native-camera/RN (= 3.3.3)
- react-native-camera/RCT (3.3.3):
- React
- react-native-camera/RN (1.1.5):
- react-native-camera/RN (3.3.3):
- React
- React/Core (0.59.10):
- yoga (= 0.59.10.React)
- React/RCTImage (0.59.10):
- React/Core
- React/RCTNetwork
- React/RCTNetwork (0.59.10):
- React/Core
- react-native-image-resizer (1.0.0):
- React
- react-native-mail (4.0.0):
- React
- react-native-netinfo (4.2.1):
- React
- react-native-shake (3.3.1):
- React
- react-native-splash-screen (3.2.0):
- React
- react-native-webview (6.11.1):
- React
- react-native-webview-bridge (0.33.17):
- React
- React-RCTActionSheet (0.60.5):
- React-Core (= 0.60.5)
- React-RCTAnimation (0.60.5):
- React-Core (= 0.60.5)
- React-RCTBlob (0.60.5):
- React-Core (= 0.60.5)
- React-RCTNetwork (= 0.60.5)
- React-RCTWebSocket (= 0.60.5)
- React-RCTImage (0.60.5):
- React-Core (= 0.60.5)
- React-RCTNetwork (= 0.60.5)
- React-RCTLinking (0.60.5):
- React-Core (= 0.60.5)
- React-RCTNetwork (0.60.5):
- React-Core (= 0.60.5)
- React-RCTSettings (0.60.5):
- React-Core (= 0.60.5)
- React-RCTText (0.60.5):
- React-Core (= 0.60.5)
- React-RCTVibration (0.60.5):
- React-Core (= 0.60.5)
- React-RCTWebSocket (0.60.5):
- React-Core (= 0.60.5)
- RNFirebase (5.5.6):
- Firebase/Core
- React
- RNFirebase/Crashlytics (= 5.5.6)
- RNFirebase/Crashlytics (5.5.6):
- Crashlytics
- Fabric
- Firebase/Core
- React
- RNFS (2.14.1):
- React
- RNGestureHandler (1.3.0):
- React
- RNImageCropPicker (0.25.0):
- QBImagePickerController
- React-Core
- React-RCTImage
- RSKImageCropper
- RNKeychain (3.0.0-rc.3):
- React
- RNSVG (9.7.1):
- RNLanguages (3.0.2):
- React
- RNScreens (1.0.0-alpha.22):
- React
- RNSVG (9.8.4):
- React
- RSKImageCropper (2.2.3)
- SQLCipher (3.4.2):
- SQLCipher/standard (= 3.4.2)
- SQLCipher/common (3.4.2)
- SQLCipher/standard (3.4.2):
- SQLCipher/common
- SSZipArchive (2.1.4)
- SSZipArchive (2.2.2)
- TouchID (4.4.1):
- React
- yoga (0.59.10.React)
- yoga (0.60.5.React)
DEPENDENCIES:
- Firebase/Core
- Firebase/Messaging
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- Firebase/Core (~> 5.5)
- Firebase/Messaging (~> 5.5)
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- React (from `../node_modules/react-native/`)
- React-Core (from `../node_modules/react-native/React`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
- React-DevSupport (from `../node_modules/react-native/React`)
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- react-native-background-timer (from `../node_modules/react-native-background-timer`)
- react-native-camera (from `../node_modules/react-native-camera`)
- React/RCTImage (from `../node_modules/react-native`)
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
- react-native-mail (from `../node_modules/react-native-mail`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
- react-native-shake (from `../node_modules/react-native-shake`)
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-webview (from `../node_modules/react-native-webview`)
- react-native-webview-bridge (from `../node_modules/react-native-webview-bridge`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
- RNFirebase (from `../node_modules/react-native-firebase/ios`)
- RNFS (from `../node_modules/react-native-fs`)
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
- RNKeychain (from `../node_modules/react-native-keychain`)
- RNLanguages (from `../node_modules/react-native-languages`)
- RNScreens (from `../node_modules/react-native-screens`)
- RNSVG (from `../node_modules/react-native-svg`)
- SQLCipher (~> 3.0)
- SSZipArchive
@ -102,8 +254,12 @@ DEPENDENCIES:
SPEC REPOS:
https://github.com/cocoapods/specs.git:
- boost-for-react-native
- Crashlytics
- Fabric
- Firebase
- FirebaseAnalytics
- FirebaseAnalyticsInterop
- FirebaseCore
- FirebaseInstanceID
- FirebaseMessaging
@ -111,18 +267,84 @@ SPEC REPOS:
- GoogleUtilities
- nanopb
- Protobuf
- QBImagePickerController
- RSKImageCropper
- SQLCipher
- SSZipArchive
EXTERNAL SOURCES:
DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
React:
:path: "../node_modules/react-native"
:path: "../node_modules/react-native/"
React-Core:
:path: "../node_modules/react-native/React"
React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact"
React-DevSupport:
:path: "../node_modules/react-native/React"
React-jsi:
:path: "../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
react-native-background-timer:
:path: "../node_modules/react-native-background-timer"
react-native-camera:
:path: "../node_modules/react-native-camera"
react-native-image-resizer:
:path: "../node_modules/react-native-image-resizer"
react-native-mail:
:path: "../node_modules/react-native-mail"
react-native-netinfo:
:path: "../node_modules/@react-native-community/netinfo"
react-native-shake:
:path: "../node_modules/react-native-shake"
react-native-splash-screen:
:path: "../node_modules/react-native-splash-screen"
react-native-webview:
:path: "../node_modules/react-native-webview"
react-native-webview-bridge:
:path: "../node_modules/react-native-webview-bridge"
React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation:
:path: "../node_modules/react-native/Libraries/NativeAnimation"
React-RCTBlob:
:path: "../node_modules/react-native/Libraries/Blob"
React-RCTImage:
:path: "../node_modules/react-native/Libraries/Image"
React-RCTLinking:
:path: "../node_modules/react-native/Libraries/LinkingIOS"
React-RCTNetwork:
:path: "../node_modules/react-native/Libraries/Network"
React-RCTSettings:
:path: "../node_modules/react-native/Libraries/Settings"
React-RCTText:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
React-RCTWebSocket:
:path: "../node_modules/react-native/Libraries/WebSocket"
RNFirebase:
:path: "../node_modules/react-native-firebase/ios"
RNFS:
:path: "../node_modules/react-native-fs"
RNGestureHandler:
:path: "../node_modules/react-native-gesture-handler"
RNImageCropPicker:
:path: "../node_modules/react-native-image-crop-picker"
RNKeychain:
:path: "../node_modules/react-native-keychain"
RNLanguages:
:path: "../node_modules/react-native-languages"
RNScreens:
:path: "../node_modules/react-native-screens"
RNSVG:
:path: "../node_modules/react-native-svg"
TouchID:
@ -131,25 +353,63 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
Firebase: 734a4f92957aa6c40e7ae3fda3d9359e1890aa87
FirebaseAnalytics: 993577e91157feb40945abedd6ab346d8a4b6ac8
FirebaseCore: 3a97432acb324b439fbed338e642f9cbb516a63d
FirebaseInstanceID: ea5af6920d0a4a29b40459d055bebe4a6c1333c4
FirebaseMessaging: 698c94dd1e3436346c29bb9c85dcdca4c4a0c30b
GoogleAppMeasurement: f7507b39b70ad0bd80b3d81518b2f43868974307
GoogleUtilities: 06b66f9567769a7958db20a92f0128b2843e49d5
nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
Protobuf: 1eb9700044745f00181c136ef21b8ff3ad5a0fd5
React: 1d605e098d69bdf08960787f3446f0a9dc2e2ccf
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
Crashlytics: 2dfd686bcb918dc10ee0e76f7f853fe42c7bd552
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
Firebase: 0c8cf33f266410c61ab3e2265cfa412200351d9c
FirebaseAnalytics: ece1aa57a4f43c64d53a648b5a5e05151aae947b
FirebaseAnalyticsInterop: d48b6ab67bcf016a05e55b71fc39c61c0cb6b7f3
FirebaseCore: f1a9a8be1aee4bf71a2fc0f4096df6788bdfda61
FirebaseInstanceID: a122b0c258720cf250551bb2bedf48c699f80d90
FirebaseMessaging: 4235f949ce1c4e827aeb19705ba5c53f9b85aa10
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
glog: 7b113d8578aa09b57aa5945dd002bc37d0ab4fb5
GoogleAppMeasurement: ffe513e90551844a739e7bcbb1d2aca1c28a4338
GoogleUtilities: 04fce34bcd5620c1ee76fb79172105c74a4df335
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
Protobuf: 1097ca58584c8d9be81bfbf2c5ff5975648dd87a
QBImagePickerController: d54cf93db6decf26baf6ed3472f336ef35cae022
React: c438ccc7e14e86d4702bb92d7e262f549ffaa995
React-Core: c76495f5c14e73c0f803b89c3fa83f804da61bd6
React-cxxreact: f64bc64cf4682d6ea5a064f6017da72482858682
React-DevSupport: 30336bca00f72681eac995d21a31b963e7d5cfec
React-jsi: 40f467ff088c811c6630acccb4aea57ea7ccb1b5
React-jsiexecutor: e4b4717060a0cd8d0270323b5655a68c95432efd
React-jsinspector: 044105eea064aec81adc5e4d777a8f6589e7d094
react-native-background-timer: bb7a98c8e97fc7c290de2d423dd09ddb73dcbcbb
react-native-camera: 68ad5143d2d0636236d46c7de8d2a6455ca52a36
react-native-camera: 9c50d7def800895e7991ccda6203929553ceec9c
react-native-image-resizer: 04a3409e7d4ad646c4468671c69dec490def139c
react-native-mail: ff4aba592530d80ac96eea6c1ca03114b84d630a
react-native-netinfo: a91b5cf92ed3ada997cfe2bf067633386eb19fd8
react-native-shake: e9d1368d6f0ec7e48c8afc91e379b81006b9ba42
react-native-splash-screen: a49be22f0f6648b8416f3bd28258645eeaa5b42b
react-native-webview: ad9581723f4d401c22cb3a371811d4dc9310df56
react-native-webview-bridge: c712d20bbe7e2a2fabdd5d8ccdfec5e704455763
React-RCTActionSheet: 08864c609d9f959abf3d51fdd93f8bc6e91f21eb
React-RCTAnimation: a4547e9fac2627ded3df9d302f5558b475faf819
React-RCTBlob: 62d5c263a2adb8f7a2cafd601beba18a2d99cbbb
React-RCTImage: 963859de2b05d2037d1b7842cdbddc8d7f3a2f3b
React-RCTLinking: 5998a7db9a6156ed112b006d01f76b2d1cc83d98
React-RCTNetwork: 0b676e8194f3f893db813007d37e37e9820173a3
React-RCTSettings: fdd7606f1b6050eced69fc6046d5db6768aefd57
React-RCTText: 36c0532feb5521cb295ba80e7e44b70cf1c36fc7
React-RCTVibration: dabb8d59bb47e1d9124b3f77bfdc1b33d42b0a74
React-RCTWebSocket: 2e7f6e98fd6d2bf447d145e499c3a235cc13e350
RNFirebase: ca408d6bee0ca9383bd0cfe84f40b01370b8ad4d
RNFS: 6a2bfb5d0b14cf0ad72667f76202358abba4aacf
RNGestureHandler: 7ccf2f3f60458e084f9ada01fbaf610f6fef073c
RNImageCropPicker: c406db73f02f11bf3a887f856ff04ee50af173f4
RNKeychain: 627c6095cef215dd3d9804a9a9cf45ab96aa3997
RNLanguages: e3ae05ef105937645218272429dac0c3f7633451
RNScreens: 354046589421edc3d83d5c6212475bf1fb9a731d
RNSVG: 2e097b92aaa6d4e0f354fd7c49cbf3b17f8b3920
RSKImageCropper: a446db0e8444a036b34f3c43db01b2373baa4b2a
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
SSZipArchive: 41455d4b8d2b6ab93990820b50dc697c2554a322
SSZipArchive: fa16b8cc4cdeceb698e5e5d9f67e9558532fbf23
TouchID: b0640fedb86fa2db2fe1df15b61594ad49e76288
yoga: 128daf064cacaede0c3bb27424b6b4c71052e6cd
yoga: 88c514f310aff89b94a14c5fbf44b95735af0cb7
PODFILE CHECKSUM: c4092792db2b9d33023311d0876998d7be256942
PODFILE CHECKSUM: eada5ca1782f4a5407527b6bb8f04e5fe4ab1e49
COCOAPODS: 1.5.3

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:StatusIm.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -3,10 +3,10 @@
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start"
"start": "react-native start"
},
"dependencies": {
"@react-native-community/netinfo": "^3.2.1",
"@react-native-community/netinfo": "^4.1.5",
"bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status",
"buffer": "^5.4.2",
"chance": "^1.1.0",
@ -17,30 +17,31 @@
"i18n-js": "^3.3.0",
"identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status",
"qrcode": "^1.4.1",
"react": "16.8.3",
"react": "16.8.6",
"react-dom": "16.4.2",
"react-native": "git+https://github.com/status-im/react-native.git#v0.59.10",
"react-native": "0.60.5",
"react-native-background-timer": "^2.1.1",
"react-native-camera": "git+https://github.com/status-im/react-native-camera.git#v1.1.5-1-status",
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1",
"react-native-dialogs": "^1.0.5",
"react-native-fetch-polyfill": "^1.1.3",
"react-native-firebase": "5.1.1",
"react-native-fs": "^2.14.1",
"react-native-camera": "3.3.3",
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1-status",
"react-native-dialogs": "1.0.4",
"react-native-fetch-polyfill": "1.1.2",
"react-native-firebase": "5.5.6",
"react-native-fs": "2.14.1",
"react-native-gesture-handler": "1.3.0",
"react-native-image-crop-picker": "^0.18.2",
"react-native-image-crop-picker": "0.25.0",
"react-native-image-resizer": "git+https://github.com/status-im/react-native-image-resizer.git#1.0.0-1-status",
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-status",
"react-native-languages": "^3.0.2",
"react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v3.0.8_status",
"react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v4.0.0-status",
"react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status",
"react-native-screens": "1.0.0-alpha.22",
"react-native-shake": "^3.3.1",
"react-native-splash-screen": "^3.2.0",
"react-native-status-keycard": "^2.5.7",
"react-native-svg": "9.7.1",
"react-native-svg": "9.8.4",
"react-native-touch-id": "^4.4.1",
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/classnames-colision",
"react-native-webview": "6.11.1",
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/community-webview",
"react-navigation": "3.11.0",
"web3-utils": "^1.2.1"
},

File diff suppressed because it is too large Load Diff

View File

@ -6,12 +6,10 @@ import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import im.status.ethereum.function.Function;
import statusgo.Statusgo;
public class StatusPackage implements ReactPackage {
private boolean rootedDevice;
@ -22,21 +20,15 @@ public class StatusPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
NativeModule statusModule = new StatusModule(reactContext, this.rootedDevice);
return Collections.singletonList(statusModule);
List<NativeModule> modules = new ArrayList<>();
modules.add(new StatusModule(reactContext, this.rootedDevice));
return modules;
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
public Function<String, String> getCallRPC() {
return new Function<String, String>() {
@Override
public String apply(String payload) {
return Statusgo.callRPC(payload);
}
};
}
}

View File

@ -234,6 +234,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../node_modules/React/**",
"$(SRCROOT)/../../../../ios/Pods/Headers/Public/React-Core",
"$(SRCROOT)/../../../../node_modules/react-native/React/**",
"$(SRCROOT)/../../../../node_modules/react-native-config/ios/ReactNativeConfig",
);
@ -262,6 +263,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../node_modules/React/**",
"$(SRCROOT)/../../../../ios/Pods/Headers/Public/React-Core",
"$(SRCROOT)/../../../../node_modules/react-native/React/**",
"$(SRCROOT)/../../../../node_modules/react-native-config/ios/ReactNativeConfig",
);

View File

@ -29,7 +29,7 @@ function extractResults() {
echo "Saving build result: ${nixResultPath}"
mkdir -p "${resultPath}"
cp -vfr ${nixResultPath}/* "${resultPath}"
chmod u+w -R "${resultPath}"
chmod -R u+w "${resultPath}"
}
# Load Nix profile

View File

@ -9,11 +9,11 @@ let
gradle = callPackage ./gradle.nix { };
# Import a local patched version of node_modules, together with a local version of the Maven repo
mavenAndNpmDeps = callPackage ./maven-and-npm-deps { inherit stdenv stdenvNoCC gradle bash nodejs zlib localMavenRepoBuilder mkFilter projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
mavenAndNpmDeps = callPackage ./maven-and-npm-deps { inherit stdenv stdenvNoCC gradle bash nodejs zlib localMavenRepoBuilder mkFilter projectNodePackage; };
# TARGETS
release = callPackage ./targets/release-android.nix { inherit target-os gradle mavenAndNpmDeps mkFilter nodejs jsbundle status-go zlib; androidEnvShellHook = androidEnv.shellHook; };
generate-maven-and-npm-deps-shell = callPackage ./maven-and-npm-deps/maven/shell.nix { inherit mkShell gradle maven projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
generate-maven-and-npm-deps-shell = callPackage ./maven-and-npm-deps/maven/shell.nix { inherit mkShell gradle maven nodejs projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
adb-shell = mkShell {
buildInputs = [ androidEnv.licensedAndroidEnv ];
inherit (androidEnv) shellHook;

View File

@ -1,19 +1,17 @@
#
# This script prepares a finalized version of node_modules
# (required because for Android we need to run `gradle react-native-android:installArchives`, which builds some additional native libraries
# under node_modules/react-native), as well as a local version of the Maven repository required by Gradle scripts
# This script prepares a finalized version of node_modules,
# as well as a local version of the Maven repository required by Gradle scripts
#
{ stdenv, stdenvNoCC, lib, callPackage,
gradle, bash, file, nodejs, status-go, zlib,
projectNodePackage, androidEnvShellHook, localMavenRepoBuilder, mkFilter }:
gradle, bash, file, nodejs, zlib,
projectNodePackage, localMavenRepoBuilder, mkFilter }:
let
mavenLocalRepo = callPackage ./maven { inherit localMavenRepoBuilder; stdenv = if stdenv.isLinux then stdenv else stdenvNoCC; };
# Import the native dependencies for React Native Android builds
jsc-filename = "jsc-android-236355.1.1";
react-native-deps = callPackage ./maven/reactnative-android-native-deps.nix { inherit stdenvNoCC jsc-filename; };
react-native-deps = callPackage ./maven/reactnative-android-native-deps.nix { inherit stdenvNoCC; };
createMobileFilesSymlinks = root: ''
ln -sf ${root}/mobile_files/package.json.orig ${root}/package.json
@ -27,11 +25,10 @@ let
# Place build target directories in NIX_BUILD_TOP (normally represents /build)
projectBuildDir = "$NIX_BUILD_TOP/project";
mavenRepoDir = "$NIX_BUILD_TOP/.m2/repository";
reactNativeMavenPackageDir = "${mavenRepoDir}/com/facebook/react/react-native"; # This is directory where the react-native Maven package will be generated in
reactNativeDepsDir = "$NIX_BUILD_TOP/deps"; # Use local writable deps, otherwise (probably due to some interaction between Nix sandboxing and Java) gradle will fail copying directly from the nix store
in
stdenv.mkDerivation {
name = "android-gradle-and-npm-modules";
name = "patched-android-gradle-and-npm-modules";
src =
let path = ./../../../..; # Import the root /android and /mobile_files folders clean of any build artifacts
in builtins.path { # We use builtins.path so that we can name the resulting derivation, otherwise the name would be taken from the checkout directory, which is outside of our control
@ -50,9 +47,10 @@ let
root = path;
};
};
phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
nativeBuildInputs = [ projectNodePackage ];
buildInputs = [ gradle nodejs bash file zlib mavenLocalRepo ];
propagatedBuildInputs = [ react-native-deps ] ++ status-go.buildInputs;
propagatedBuildInputs = [ react-native-deps ];
unpackPhase = ''
runHook preUnpack
@ -65,8 +63,6 @@ let
# Copy RN maven dependencies and make them writable, otherwise Gradle copy fails (since the top-level directory is read-only, Java isn't smart enough to copy the child files/folders into that target directory)
mkdir -p ${mavenRepoDir}
cp -a ${mavenLocalRepo}/. ${mavenRepoDir}
mkdir -p ${reactNativeMavenPackageDir}
chmod u+w ${reactNativeMavenPackageDir}/
cp -a ${react-native-deps}/deps ${reactNativeDepsDir}
for d in `find ${reactNativeDepsDir} -mindepth 1 -maxdepth 1 -type d`; do
chmod -R u+w $d
@ -129,11 +125,6 @@ let
patchMavenSources $f '${mavenLocalRepo}'
done
# Patch prepareJSC so that it doesn't try to download from registry
substituteInPlace ${projectBuildDir}/node_modules/react-native/ReactAndroid/build.gradle \
--replace 'prepareJSC(dependsOn: downloadJSC)' 'prepareJSC(dependsOn: createNativeDepsDirectories)' \
--replace 'def jscTar = tarTree(downloadJSC.dest)' "def jscTar = tarTree(new File(\"${react-native-deps}/deps/${jsc-filename}.tar.gz\"))"
# Do not add a BuildId to the generated libraries, for reproducibility
substituteInPlace ${projectBuildDir}/node_modules/react-native/ReactAndroid/src/main/jni/Application.mk \
--replace \
@ -158,28 +149,6 @@ let
runHook postPatch
'';
buildPhase =
androidEnvShellHook +
status-go.shellHook + ''
export HOME=$NIX_BUILD_TOP
export REACT_NATIVE_DEPENDENCIES="${reactNativeDepsDir}"
export STATUS_REACT_HOME="${projectBuildDir}"
pushd ${projectBuildDir}/android
# NOTE: This generates the react-native-android binaries under node_modules/react-native/android
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${lib.makeLibraryPath [ zlib ]} \
gradle -Dmaven.repo.local=${mavenRepoDir} --offline -S react-native-android:installArchives || exit
popd > /dev/null
'';
doCheck = true;
checkPhase = ''
runHook preCheck
test -d ${projectBuildDir}/node_modules/react-native/ReactAndroid/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/facebook || \
exit 1
test -d ${projectBuildDir}/node_modules/react-native/ReactAndroid/build/react-ndk/exported || \
exit 2
runHook postCheck
'';
installPhase = ''
rm -rf $out
mkdir -p $out/{project,.m2/repository}

View File

@ -6,5 +6,5 @@ This folder contains the Nix expression (`maven-sources.nix`) that downloads all
- `generate-nix.sh`: This is the main entry point script, which will use Gradle to determine the dependencies (into `maven-inputs.txt`), and `nix/tools/maven/maven-inputs2nix.sh` to generate `default.nix` from those dependencies.
- `fetch-maven-deps.sh`: This script does the heavy work of determining Gradle dependencies and outputting a `maven-inputs.txt` file listing the external URLs.
- `reactnative-android-native-deps.nix`: Contains the Nix attribute set used to download the React Native dependencies used in `gradle react-native-android:installArchives`.
- `reactnative-android-native-deps.nix`: Contains the Nix attribute set used to download the React Native dependencies used in React Native Gradle scripts.
- `maven-inputs.txt`: A list of Maven dependenciy URLs that can be used by `nix/tools/maven/maven-inputs2nix.sh` to generate `maven-sources.nix`.

View File

@ -78,11 +78,6 @@ function determineArtifactUrl() {
local path=$(getPath "${tokens[@]}")
for mavenSourceUrl in ${mavenSources[@]}; do
if tryGetPOMFromURL "$mavenSourceUrl/$path"; then
if [ "$path" = "com/google/firebase/firebase-analytics/16.0.3/firebase-analytics-16.0.3" ]; then
# For some reason maven doesn't detect the correct version of firebase-analytics so we have to hardcode it
# TODO: See if we can get rid of this by upgrading to latest firebase
echo "$mavenSourceUrl/com/google/firebase/firebase-analytics/15.0.2/firebase-analytics-15.0.2"
fi
echo "$mavenSourceUrl/$path"
return
fi
@ -164,12 +159,14 @@ function retrieveAdditionalDependencies() {
mvn_tmp_repo=$(mktemp -d)
trap "rm -rf $mvn_tmp_repo $tmp_pom_filename $deps_file_path $tmp_mvn_dep_tree_filename" ERR EXIT HUP INT
rnModules=$(node ./node_modules/react-native/cli.js config | jq -r '.dependencies | keys | .[]')
pushd $GIT_ROOT/android > /dev/null
gradleProjects=$(gradle projects $gradle_opts 2>&1 \
| grep "Project ':" \
| sed -E "s;^.--- Project '\:([@_a-zA-Z0-9\-]+)';\1;")
projects=( ${gradleProjects[@]} )
projects=( ${gradleProjects[@]} ${rnModules[@]} )
IFS=$'\n' sortedProjects=($(sort -u <<<"${projects[*]}"))
unset IFS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
{ stdenvNoCC, fetchurl, jsc-filename }:
{ stdenvNoCC, fetchurl }:
let
# These versions should match node_modules/react-native/ReactAndroid/gradle.properties
@ -32,10 +32,6 @@ let
in stdenvNoCC.mkDerivation {
name = "reactnative-android-native-deps";
srcs = builtins.map (d: (fetchurl { inherit (d) url sha256; })) react-native-deps-sources;
jsc = fetchurl {
url = "https://registry.npmjs.org/jsc-android/-/${jsc-filename}.tgz";
sha256 = "1s1fzmvpvdblzca7p2ifcysvd9na4jrsikaccqmfpgvkqjalfccp";
};
phases = [ "unpackPhase" ];
unpackPhase = ''
# Unpack all source archives.
@ -44,7 +40,6 @@ in stdenvNoCC.mkDerivation {
for i in $srcs; do
unpackFile "$i"
done
cp $jsc $out/deps/${jsc-filename}.tar.gz # do the work of downloadJSC
cd ..
export sourceRoot=$out/deps

View File

@ -1,4 +1,4 @@
{ mkShell, curl, git, gradle, maven,
{ mkShell, curl, git, gradle, jq, maven, nodejs,
projectNodePackage, androidEnvShellHook, status-go }:
mkShell {
@ -6,7 +6,9 @@ mkShell {
curl
git
gradle
jq
maven
nodejs
projectNodePackage
];
shellHook =

View File

@ -1,7 +1,7 @@
{ stdenv, stdenvNoCC, lib, target-os, callPackage,
mkFilter, bash, file, gnumake, watchman, gradle,
androidEnvShellHook, mavenAndNpmDeps,
nodejs, openjdk, jsbundle, status-go, zlib }:
nodejs, openjdk, jsbundle, status-go, unzip, zlib }:
{ build-number,
build-type, # Build type (e.g. nightly, release, e2e). Default is to use .env.nightly file
@ -21,7 +21,7 @@ let
if (build-type == "release" || build-type == "nightly" || build-type == "e2e") then ".env.${build-type}" else
if build-type != "" then ".env.jenkins" else ".env";
buildType' = if (build-type == "pr" || build-type == "e2e") then "pr" else "release"; /* PR builds shouldn't replace normal releases */
generatedApkPath = "android/app/build/outputs/apk/${buildType'}/app-${buildType'}.apk";
generatedApkPath = "$sourceRoot/android/app/build/outputs/apk/${buildType'}/app-${buildType'}.apk";
outApkName = "app.apk";
in stdenv.mkDerivation {
@ -40,13 +40,23 @@ in stdenv.mkDerivation {
"resources"
];
dirsToExclude = [ ".git" ".svn" "CVS" ".hg" ".gradle" "build" "intermediates" "libs" "obj" ];
filesToInclude = [ envFileName "status-go-version.json" "VERSION" ];
filesToInclude = [ envFileName "status-go-version.json" "VERSION" "react-native.config.js" ];
root = path;
};
};
nativeBuildInputs = [ bash gradle ] ++ lib.optionals stdenv.isDarwin [ file gnumake watchman ];
nativeBuildInputs = [ bash gradle unzip ] ++ lib.optionals stdenv.isDarwin [ file gnumake watchman ];
buildInputs = [ nodejs openjdk ];
phases = [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" ];
phases = [ "unpackPhase" "patchPhase" "buildPhase" "checkPhase" "installPhase" ];
unpackPhase = ''
runHook preUnpack
cp -r $src ./project
chmod u+w -R ./project
export sourceRoot=$PWD/project
runHook postUnpack
'';
postUnpack = ''
mkdir -p ${gradleHome}
@ -62,7 +72,6 @@ in stdenv.mkDerivation {
cp -a --no-preserve=ownership ${sourceProjectDir}/android/ $sourceRoot/
chmod u+w $sourceRoot/android
chmod u+w $sourceRoot/android/app
chmod -R u+w $sourceRoot/android/.gradle
mkdir $sourceRoot/android/build && chmod -R u+w $sourceRoot/android/build
# Copy node_modules/ directory
@ -76,13 +85,11 @@ in stdenv.mkDerivation {
prevSet=$-
set -e
substituteInPlace android/gradlew \
substituteInPlace $sourceRoot/android/gradlew \
--replace \
'exec gradle' \
"exec gradle -Dmaven.repo.local='${localMavenRepo}' --offline ${gradle-opts}"
# OPTIONAL: There's no need to forward debug ports for a release build, just disable it
set $prevSet
'';
buildPhase =
@ -96,7 +103,7 @@ in stdenv.mkDerivation {
capitalizedBuildType = toUpper (substring 0 1 buildType') + substring 1 (-1) buildType';
in ''
export STATUS_REACT_HOME=$PWD
export HOME=$NIX_BUILD_TOP
export HOME=$sourceRoot
${exportEnvVars}
${if secrets-file != "" then "source ${secrets-file}" else ""}
@ -104,12 +111,16 @@ in stdenv.mkDerivation {
${androidEnvShellHook}
${concatStrings (catAttrs "shellHook" [ mavenAndNpmDeps status-go ])}
pushd android
pushd $sourceRoot/android
${adhocEnvVars} ./gradlew -PversionCode=${build-number} assemble${capitalizedBuildType} || exit
popd > /dev/null
${unsetEnvVars}
'';
doCheck = true;
checkPhase = ''
unzip -l ${generatedApkPath} | grep 'assets/index.android.bundle'
'';
installPhase = ''
mkdir -p $out
cp ${generatedApkPath} $out/${outApkName}

View File

@ -29,19 +29,21 @@ if [ -d "$nodeModulesDir" ]; then
if [ -f "$sentinelFilePath" ]; then
existingPath="$(cat $sentinelFilePath)"
if [ "${existingPath}" != "${deps}" ]; then
echo "Yarn modules changed, copying over new version"
echo "Yarn modules changed, copying new version over"
else
echo "Checking for modifications in node_modules..."
modifiedFiles=( $(find $nodeModulesDir -writable -type f -newer $sentinelFilePath \
-not \( -path "$nodeModulesDir/react-native/third-party/*" -prune \
-o -path "$nodeModulesDir/react-native/ReactAndroid/build/*" -prune \
-o -path "$nodeModulesDir/*/android/build/*" -prune \
-o -path './resources/icons/*' -prune \) -print) )
modifiedFiles=(
$(find $nodeModulesDir -writable -type f -newer $sentinelFilePath \
-not \( -path "$nodeModulesDir/react-native/ReactAndroid/build/*" -prune \
-o -path "$nodeModulesDir/*/android/build/*" -prune \) -print) )
if [ ${#modifiedFiles[@]} -eq 0 ]; then
needCopyModules=0
echo "No modifications detected."
else
echo "Modifications detected in ${#modifiedFiles[@]} files:\n${modifiedFiles[@]}"
echo "Modifications detected in ${#modifiedFiles[@]} files:"
for f in ${modifiedFiles[@]}; do
echo "- $(realpath --relative-to=$STATUS_REACT_HOME $f)"
done
fi
fi
fi

31
react-native.config.js Normal file
View File

@ -0,0 +1,31 @@
module.exports = {
dependencies: {
'react-native-config': {
platforms: {
ios: null,
},
},
'react-native-dialogs': {
platforms: {
android: null,
ios: null,
},
},
'react-native-image-resizer': {
platforms: {
ios: null,
},
},
'react-native-status-keycard': {
platforms: {
android: null,
ios: null,
},
},
'react-native-webview-bridge': {
platforms: {
android: null,
},
},
},
};

View File

@ -33,7 +33,7 @@
(def react-native-shake (js/require "react-native-shake"))
(def react-native-screens (js/require "react-native-screens"))
(def net-info (js/require "@react-native-community/netinfo"))
(def mail-class (js/require "react-native-mail"))
(def mail-class (js/require "react-native-mail"))
(def react-native-mail (.-default mail-class))
(def desktop-linking #js {:addEventListener (fn [])})
(def desktop-menu #js {:addEventListener (fn [])})

View File

@ -4,21 +4,23 @@
[clojure.walk :as walk]
[status-im.react-native.js-dependencies :as js-dependencies]))
(def default-camera (.-default js-dependencies/camera))
(def default-camera
(-> js-dependencies/camera
(object/get "RNCamera")))
(defn constants [t]
(defn- constants [t]
(-> default-camera
(object/get "constants")
(object/get "Constants")
(object/get t)
(js->clj)
(walk/keywordize-keys)))
(def aspects (constants "Aspect"))
(def aspects (constants "Orientation"))
(def capture-targets (constants "CaptureTarget"))
(def torch-modes (constants "TorchMode"))
(def torch-modes (constants "FlashMode"))
(defn set-torch [state]
(set! (.-torchMode default-camera) (get torch-modes state)))
(set! (.-flashMode default-camera) (get torch-modes state)))
(defn request-access-ios [then else]
(-> (.checkVideoAuthorizationStatus default-camera)

View File

@ -12,7 +12,7 @@
[status-im.ui.components.icons.vector-icons :as icons]))
(defn image-captured [data]
(let [path (.-path data)
(let [path (.-uri data)
_ (log/debug "Captured image: " path)
on-success (fn [base64]
(log/debug "Captured success: " base64)
@ -30,16 +30,16 @@
toolbar/default-nav-back
[toolbar/content-title (i18n/label :t/image-source-title)]]
[camera/camera {:style {:flex 1}
:aspect (:fill camera/aspects)
;:aspect (:fill camera/aspects)
:captureQuality "480p"
:captureTarget (:disk camera/capture-targets)
;:captureTarget (:disk camera/capture-targets)
:type "front"
:ref #(reset! camera-ref %)}]
[react/view styles/button-container
[react/view styles/button
[react/touchable-highlight {:on-press (fn []
(let [camera @camera-ref]
(-> (.capture camera)
(-> (.takePictureAsync camera)
(.then image-captured)
(.catch #(log/debug "Error capturing image: " %)))))}
[react/view

View File

@ -40,7 +40,6 @@
(do (reset! barcode-read? true)
(on-barcode-read identifier %))))
:ref #(reset! camera-initialized? true)
:captureAudio false
:style styles/barcode-scanner}])
[react/view styles/rectangle-container
[react/view styles/rectangle

View File

@ -58,9 +58,7 @@
[react/with-activity-indicator
{}
[camera/camera {:style styles/preview
:aspect :fill
:captureAudio false
:torchMode (camera/set-torch camera-flashlight)
;:torchMode (camera/set-torch camera-flashlight)
:onBarCodeRead #(when-not @read-once?
(reset! read-once? true)
(re-frame/dispatch [:wallet/fill-request-from-url (camera/get-qr-code-data %) :qr]))}]]

View File

@ -2,7 +2,7 @@
(def action-button #js {:default #js {:Item #js {}}})
(def config #js {:default #js {}})
(def camera #js {:default #js {:constants #js {}}})
(def camera #js {:RNCamera #js {:Constants #js {}}})
(def dialogs #js {})
(def dismiss-keyboard #js {})
(def emoji-picker #js {:default #js {}})