Upgrade Example to RN 0.64 (#83)

* ReactLogger: Also log function

* Run SwiftFormat & SwiftLint in example project

* Upgrade to RN 0.64 1/2

* Update lockfiles

* Upgrade a few packages

* index.tsx -> index.js

* Upgrade docusaurus

* Fix line length violation

* Update CameraView.swift

* Update gradle plugin

* Fix example to prefer higher res cameras

* Remove unused log line

* Update App.tsx
This commit is contained in:
Marc Rousavy 2021-03-19 15:53:19 +01:00 committed by GitHub
parent 1def7230c8
commit 35806ff660
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 2160 additions and 2831 deletions

View File

@ -11,7 +11,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:4.1.2' classpath 'com.android.tools.build:gradle:4.1.3'
// noinspection DifferentKotlinGradleVersion // noinspection DifferentKotlinGradleVersion
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

View File

@ -13,7 +13,7 @@
#Fri Feb 19 20:46:14 CET 2021 #Fri Feb 19 20:46:14 CET 2021
VisionCamera_buildToolsVersion=30.0.0 VisionCamera_buildToolsVersion=30.0.0
VisionCamera_compileSdkVersion=30 VisionCamera_compileSdkVersion=30
VisionCamera_kotlinVersion=1.4.30 VisionCamera_kotlinVersion=1.4.31
VisionCamera_targetSdkVersion=30 VisionCamera_targetSdkVersion=30
android.enableJetifier=true android.enableJetifier=true
android.useAndroidX=true android.useAndroidX=true

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

25
android/gradlew.bat vendored
View File

@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init if "%ERRORLEVEL%" == "0" goto execute
echo. echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -51,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init if exist "%JAVA_EXE%" goto execute
echo. echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@ -61,28 +64,14 @@ echo location of your Java installation.
goto fail goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

View File

@ -12,8 +12,8 @@
"clear": "docusaurus clear" "clear": "docusaurus clear"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "2.0.0-alpha.71", "@docusaurus/core": "2.0.0-alpha.72",
"@docusaurus/preset-classic": "2.0.0-alpha.71", "@docusaurus/preset-classic": "2.0.0-alpha.72",
"@mdx-js/react": "^1.6.21", "@mdx-js/react": "^1.6.21",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"react": "^17.0.1", "react": "^17.0.1",

File diff suppressed because it is too large Load Diff

View File

@ -77,7 +77,6 @@ import com.android.build.OutputFile
project.ext.react = [ project.ext.react = [
enableHermes: true, // clean and rebuild if changing enableHermes: true, // clean and rebuild if changing
entryFile: "index.tsx",
] ]
project.ext.vectoricons = [ project.ext.vectoricons = [
iconFontNames: [ 'MaterialIcons.ttf', 'Ionicons.ttf' ] iconFontNames: [ 'MaterialIcons.ttf', 'Ionicons.ttf' ]
@ -124,6 +123,7 @@ def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false); def enableHermes = project.ext.react.get("enableHermes", false);
android { android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions { compileOptions {
@ -175,7 +175,7 @@ android {
def abi = output.getFilter(OutputFile.ABI) def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride = output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode defaultConfig.versionCode * 1000 + versionCodes.get(abi)
} }
} }

View File

@ -4,5 +4,7 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" /> <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning">
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest> </manifest>

View File

@ -38,7 +38,5 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application> </application>
</manifest> </manifest>

View File

@ -1,5 +1,5 @@
<resources> <resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowBackground">#000000</item> <item name="android:windowBackground">#000000</item>
<item name="android:textColor">#000000</item> <item name="android:textColor">#000000</item>
<item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentStatus">true</item>

View File

@ -7,14 +7,15 @@ buildscript {
minSdkVersion = 21 minSdkVersion = 21
compileSdkVersion = 30 compileSdkVersion = 30
targetSdkVersion = 30 targetSdkVersion = 30
ndkVersion = "20.1.5948944"
} }
repositories { repositories {
google() google()
jcenter() jcenter()
} }
dependencies { dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
classpath("com.android.tools.build:gradle:4.1.2") classpath("com.android.tools.build:gradle:4.1.3")
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files

View File

@ -19,4 +19,4 @@
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
FLIPPER_VERSION=0.74.0 FLIPPER_VERSION=0.75.1

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@ -5,7 +5,7 @@
@rem you may not use this file except in compliance with the License. @rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at @rem You may obtain a copy of the License at
@rem @rem
@rem http://www.apache.org/licenses/LICENSE-2.0 @rem https://www.apache.org/licenses/LICENSE-2.0
@rem @rem
@rem Unless required by applicable law or agreed to in writing, software @rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS, @rem distributed under the License is distributed on an "AS IS" BASIS,
@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init if "%ERRORLEVEL%" == "0" goto execute
echo. echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -54,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init if exist "%JAVA_EXE%" goto execute
echo. echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@ -64,28 +64,14 @@ echo location of your Java installation.
goto fail goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

View File

@ -6,16 +6,19 @@ platform :ios, '11.0'
target 'VisionCameraExample' do target 'VisionCameraExample' do
config = use_native_modules! config = use_native_modules!
use_react_native!(:path => config["reactNativePath"]) use_react_native!(
:path => config["reactNativePath"],
:hermes_enabled => true
)
pod 'react-native-vision-camera', :path => '../..' pod 'react-native-vision-camera', :path => '../..'
# Enables Flipper. # Enables Flipper.
# #
# Note that if you have use_frameworks! enabled, Flipper will not work and # Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines. # you should disable these next few lines.
use_flipper!({ 'Flipper' => '0.74.0' }) use_flipper!()
post_install do |installer| post_install do |installer|
flipper_post_install(installer) react_native_post_install(installer)
end end
end end

View File

@ -2,15 +2,15 @@ PODS:
- boost-for-react-native (1.63.0) - boost-for-react-native (1.63.0)
- CocoaAsyncSocket (7.6.5) - CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6) - DoubleConversion (1.1.6)
- FBLazyVector (0.63.4) - FBLazyVector (0.64.0)
- FBReactNativeSpec (0.63.4): - FBReactNativeSpec (0.64.0):
- Folly (= 2020.01.13.00) - RCT-Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.4) - RCTRequired (= 0.64.0)
- RCTTypeSafety (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-Core (= 0.63.4) - React-Core (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - ReactCommon/turbomodule/core (= 0.64.0)
- Flipper (0.74.0): - Flipper (0.75.1):
- Flipper-Folly (~> 2.5) - Flipper-Folly (~> 2.5)
- Flipper-RSocket (~> 1.3) - Flipper-RSocket (~> 1.3)
- Flipper-DoubleConversion (1.1.7) - Flipper-DoubleConversion (1.1.7)
@ -24,216 +24,250 @@ PODS:
- Flipper-PeerTalk (0.0.4) - Flipper-PeerTalk (0.0.4)
- Flipper-RSocket (1.3.0): - Flipper-RSocket (1.3.0):
- Flipper-Folly (~> 2.5) - Flipper-Folly (~> 2.5)
- FlipperKit (0.74.0): - FlipperKit (0.75.1):
- FlipperKit/Core (= 0.74.0) - FlipperKit/Core (= 0.75.1)
- FlipperKit/Core (0.74.0): - FlipperKit/Core (0.75.1):
- Flipper (~> 0.74.0) - Flipper (~> 0.75.1)
- FlipperKit/CppBridge - FlipperKit/CppBridge
- FlipperKit/FBCxxFollyDynamicConvert - FlipperKit/FBCxxFollyDynamicConvert
- FlipperKit/FBDefines - FlipperKit/FBDefines
- FlipperKit/FKPortForwarding - FlipperKit/FKPortForwarding
- FlipperKit/CppBridge (0.74.0): - FlipperKit/CppBridge (0.75.1):
- Flipper (~> 0.74.0) - Flipper (~> 0.75.1)
- FlipperKit/FBCxxFollyDynamicConvert (0.74.0): - FlipperKit/FBCxxFollyDynamicConvert (0.75.1):
- Flipper-Folly (~> 2.5) - Flipper-Folly (~> 2.5)
- FlipperKit/FBDefines (0.74.0) - FlipperKit/FBDefines (0.75.1)
- FlipperKit/FKPortForwarding (0.74.0): - FlipperKit/FKPortForwarding (0.75.1):
- CocoaAsyncSocket (~> 7.6) - CocoaAsyncSocket (~> 7.6)
- Flipper-PeerTalk (~> 0.0.4) - Flipper-PeerTalk (~> 0.0.4)
- FlipperKit/FlipperKitHighlightOverlay (0.74.0) - FlipperKit/FlipperKitHighlightOverlay (0.75.1)
- FlipperKit/FlipperKitLayoutPlugin (0.74.0): - FlipperKit/FlipperKitLayoutPlugin (0.75.1):
- FlipperKit/Core - FlipperKit/Core
- FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitHighlightOverlay
- FlipperKit/FlipperKitLayoutTextSearchable - FlipperKit/FlipperKitLayoutTextSearchable
- YogaKit (~> 1.18) - YogaKit (~> 1.18)
- FlipperKit/FlipperKitLayoutTextSearchable (0.74.0) - FlipperKit/FlipperKitLayoutTextSearchable (0.75.1)
- FlipperKit/FlipperKitNetworkPlugin (0.74.0): - FlipperKit/FlipperKitNetworkPlugin (0.75.1):
- FlipperKit/Core - FlipperKit/Core
- FlipperKit/FlipperKitReactPlugin (0.74.0): - FlipperKit/FlipperKitReactPlugin (0.75.1):
- FlipperKit/Core - FlipperKit/Core
- FlipperKit/FlipperKitUserDefaultsPlugin (0.74.0): - FlipperKit/FlipperKitUserDefaultsPlugin (0.75.1):
- FlipperKit/Core - FlipperKit/Core
- FlipperKit/SKIOSNetworkPlugin (0.74.0): - FlipperKit/SKIOSNetworkPlugin (0.75.1):
- FlipperKit/Core - FlipperKit/Core
- FlipperKit/FlipperKitNetworkPlugin - FlipperKit/FlipperKitNetworkPlugin
- Folly (2020.01.13.00):
- boost-for-react-native
- DoubleConversion
- Folly/Default (= 2020.01.13.00)
- glog
- Folly/Default (2020.01.13.00):
- boost-for-react-native
- DoubleConversion
- glog
- glog (0.3.5) - glog (0.3.5)
- hermes-engine (0.7.2)
- libevent (2.1.12) - libevent (2.1.12)
- OpenSSL-Universal (1.1.180) - OpenSSL-Universal (1.1.180)
- RCTRequired (0.63.4) - RCT-Folly (2020.01.13.00):
- RCTTypeSafety (0.63.4): - boost-for-react-native
- FBLazyVector (= 0.63.4) - DoubleConversion
- Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.4)
- React-Core (= 0.63.4)
- React (0.63.4):
- React-Core (= 0.63.4)
- React-Core/DevSupport (= 0.63.4)
- React-Core/RCTWebSocket (= 0.63.4)
- React-RCTActionSheet (= 0.63.4)
- React-RCTAnimation (= 0.63.4)
- React-RCTBlob (= 0.63.4)
- React-RCTImage (= 0.63.4)
- React-RCTLinking (= 0.63.4)
- React-RCTNetwork (= 0.63.4)
- React-RCTSettings (= 0.63.4)
- React-RCTText (= 0.63.4)
- React-RCTVibration (= 0.63.4)
- React-callinvoker (0.63.4)
- React-Core (0.63.4):
- Folly (= 2020.01.13.00)
- glog - glog
- React-Core/Default (= 0.63.4) - RCT-Folly/Default (= 2020.01.13.00)
- React-cxxreact (= 0.63.4) - RCT-Folly/Default (2020.01.13.00):
- React-jsi (= 0.63.4) - boost-for-react-native
- React-jsiexecutor (= 0.63.4) - DoubleConversion
- glog
- RCT-Folly/Futures (2020.01.13.00):
- boost-for-react-native
- DoubleConversion
- glog
- libevent
- RCTRequired (0.64.0)
- RCTTypeSafety (0.64.0):
- FBLazyVector (= 0.64.0)
- RCT-Folly (= 2020.01.13.00)
- RCTRequired (= 0.64.0)
- React-Core (= 0.64.0)
- React (0.64.0):
- React-Core (= 0.64.0)
- React-Core/DevSupport (= 0.64.0)
- React-Core/RCTWebSocket (= 0.64.0)
- React-RCTActionSheet (= 0.64.0)
- React-RCTAnimation (= 0.64.0)
- React-RCTBlob (= 0.64.0)
- React-RCTImage (= 0.64.0)
- React-RCTLinking (= 0.64.0)
- React-RCTNetwork (= 0.64.0)
- React-RCTSettings (= 0.64.0)
- React-RCTText (= 0.64.0)
- React-RCTVibration (= 0.64.0)
- React-callinvoker (0.64.0)
- React-Core (0.64.0):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default (= 0.64.0)
- React-cxxreact (= 0.64.0)
- React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/CoreModulesHeaders (0.63.4): - React-Core/CoreModulesHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/Default (0.63.4): - React-Core/Default (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- React-cxxreact (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-jsi (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/DevSupport (0.63.4): - React-Core/DevSupport (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- React-Core/Default (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTWebSocket (= 0.63.4) - React-Core/Default (= 0.64.0)
- React-cxxreact (= 0.63.4) - React-Core/RCTWebSocket (= 0.64.0)
- React-jsi (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsinspector (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-jsinspector (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTActionSheetHeaders (0.63.4): - React-Core/Hermes (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- hermes-engine
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly/Futures
- React-cxxreact (= 0.64.0)
- React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga
- React-Core/RCTActionSheetHeaders (0.64.0):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTAnimationHeaders (0.63.4): - React-Core/RCTAnimationHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTBlobHeaders (0.63.4): - React-Core/RCTBlobHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTImageHeaders (0.63.4): - React-Core/RCTImageHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTLinkingHeaders (0.63.4): - React-Core/RCTLinkingHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTNetworkHeaders (0.63.4): - React-Core/RCTNetworkHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTSettingsHeaders (0.63.4): - React-Core/RCTSettingsHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTTextHeaders (0.63.4): - React-Core/RCTTextHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTVibrationHeaders (0.63.4): - React-Core/RCTVibrationHeaders (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default - React-Core/Default
- React-cxxreact (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-Core/RCTWebSocket (0.63.4): - React-Core/RCTWebSocket (0.64.0):
- Folly (= 2020.01.13.00)
- glog - glog
- React-Core/Default (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-cxxreact (= 0.63.4) - React-Core/Default (= 0.64.0)
- React-jsi (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsiexecutor (= 0.63.4) - React-jsi (= 0.64.0)
- React-jsiexecutor (= 0.64.0)
- React-perflogger (= 0.64.0)
- Yoga - Yoga
- React-CoreModules (0.63.4): - React-CoreModules (0.64.0):
- FBReactNativeSpec (= 0.63.4) - FBReactNativeSpec (= 0.64.0)
- Folly (= 2020.01.13.00) - RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-Core/CoreModulesHeaders (= 0.63.4) - React-Core/CoreModulesHeaders (= 0.64.0)
- React-jsi (= 0.63.4) - React-jsi (= 0.64.0)
- React-RCTImage (= 0.63.4) - React-RCTImage (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - ReactCommon/turbomodule/core (= 0.64.0)
- React-cxxreact (0.63.4): - React-cxxreact (0.64.0):
- boost-for-react-native (= 1.63.0) - boost-for-react-native (= 1.63.0)
- DoubleConversion - DoubleConversion
- Folly (= 2020.01.13.00)
- glog - glog
- React-callinvoker (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-jsinspector (= 0.63.4) - React-callinvoker (= 0.64.0)
- React-jsi (0.63.4): - React-jsi (= 0.64.0)
- React-jsinspector (= 0.64.0)
- React-perflogger (= 0.64.0)
- React-runtimeexecutor (= 0.64.0)
- React-jsi (0.64.0):
- boost-for-react-native (= 1.63.0) - boost-for-react-native (= 1.63.0)
- DoubleConversion - DoubleConversion
- Folly (= 2020.01.13.00)
- glog - glog
- React-jsi/Default (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-jsi/Default (0.63.4): - React-jsi/Default (= 0.64.0)
- React-jsi/Default (0.64.0):
- boost-for-react-native (= 1.63.0) - boost-for-react-native (= 1.63.0)
- DoubleConversion - DoubleConversion
- Folly (= 2020.01.13.00)
- glog - glog
- React-jsiexecutor (0.63.4): - RCT-Folly (= 2020.01.13.00)
- React-jsiexecutor (0.64.0):
- DoubleConversion - DoubleConversion
- Folly (= 2020.01.13.00)
- glog - glog
- React-cxxreact (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-jsi (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsinspector (0.63.4) - React-jsi (= 0.64.0)
- React-perflogger (= 0.64.0)
- React-jsinspector (0.64.0)
- react-native-blur (0.8.0): - react-native-blur (0.8.0):
- React - React
- react-native-cameraroll (4.0.2): - react-native-cameraroll (4.0.2):
@ -245,68 +279,72 @@ PODS:
- react-native-video/Video (= 5.1.1) - react-native-video/Video (= 5.1.1)
- react-native-video/Video (5.1.1): - react-native-video/Video (5.1.1):
- React-Core - React-Core
- react-native-vision-camera (1.0.1): - react-native-vision-camera (1.0.3):
- React-Core - React-Core
- React-RCTActionSheet (0.63.4): - React-perflogger (0.64.0)
- React-Core/RCTActionSheetHeaders (= 0.63.4) - React-RCTActionSheet (0.64.0):
- React-RCTAnimation (0.63.4): - React-Core/RCTActionSheetHeaders (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTAnimation (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- RCTTypeSafety (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTAnimationHeaders (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTAnimationHeaders (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-jsi (= 0.64.0)
- React-RCTBlob (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTBlob (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- React-Core/RCTBlobHeaders (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTWebSocket (= 0.63.4) - React-Core/RCTBlobHeaders (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTWebSocket (= 0.64.0)
- React-RCTNetwork (= 0.63.4) - React-jsi (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-RCTNetwork (= 0.64.0)
- React-RCTImage (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTImage (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- RCTTypeSafety (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTImageHeaders (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTImageHeaders (= 0.64.0)
- React-RCTNetwork (= 0.63.4) - React-jsi (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-RCTNetwork (= 0.64.0)
- React-RCTLinking (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTLinking (0.64.0):
- React-Core/RCTLinkingHeaders (= 0.63.4) - FBReactNativeSpec (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTLinkingHeaders (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-jsi (= 0.64.0)
- React-RCTNetwork (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTNetwork (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- RCTTypeSafety (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTNetworkHeaders (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTNetworkHeaders (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-jsi (= 0.64.0)
- React-RCTSettings (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTSettings (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- RCTTypeSafety (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core/RCTSettingsHeaders (= 0.63.4) - RCTTypeSafety (= 0.64.0)
- React-jsi (= 0.63.4) - React-Core/RCTSettingsHeaders (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-jsi (= 0.64.0)
- React-RCTText (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- React-Core/RCTTextHeaders (= 0.63.4) - React-RCTText (0.64.0):
- React-RCTVibration (0.63.4): - React-Core/RCTTextHeaders (= 0.64.0)
- FBReactNativeSpec (= 0.63.4) - React-RCTVibration (0.64.0):
- Folly (= 2020.01.13.00) - FBReactNativeSpec (= 0.64.0)
- React-Core/RCTVibrationHeaders (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-jsi (= 0.63.4) - React-Core/RCTVibrationHeaders (= 0.64.0)
- ReactCommon/turbomodule/core (= 0.63.4) - React-jsi (= 0.64.0)
- ReactCommon/turbomodule/core (0.63.4): - ReactCommon/turbomodule/core (= 0.64.0)
- React-runtimeexecutor (0.64.0):
- React-jsi (= 0.64.0)
- ReactCommon/turbomodule/core (0.64.0):
- DoubleConversion - DoubleConversion
- Folly (= 2020.01.13.00)
- glog - glog
- React-callinvoker (= 0.63.4) - RCT-Folly (= 2020.01.13.00)
- React-Core (= 0.63.4) - React-callinvoker (= 0.64.0)
- React-cxxreact (= 0.63.4) - React-Core (= 0.64.0)
- React-jsi (= 0.63.4) - React-cxxreact (= 0.64.0)
- React-jsi (= 0.64.0)
- React-perflogger (= 0.64.0)
- ReactNativeNavigation (7.8.4-snapshot.1439): - ReactNativeNavigation (7.8.4-snapshot.1439):
- React-Core - React-Core
- React-RCTImage - React-RCTImage
@ -322,8 +360,8 @@ PODS:
- DoubleConversion - DoubleConversion
- FBLazyVector - FBLazyVector
- FBReactNativeSpec - FBReactNativeSpec
- Folly
- glog - glog
- RCT-Folly
- RCTRequired - RCTRequired
- RCTTypeSafety - RCTTypeSafety
- React - React
@ -358,34 +396,37 @@ PODS:
DEPENDENCIES: DEPENDENCIES:
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
- Flipper (= 0.74.0) - Flipper (~> 0.75.1)
- Flipper-DoubleConversion (= 1.1.7) - Flipper-DoubleConversion (= 1.1.7)
- Flipper-Folly (~> 2.2) - Flipper-Folly (~> 2.5)
- Flipper-Glog (= 0.3.6) - Flipper-Glog (= 0.3.6)
- Flipper-PeerTalk (~> 0.0.4) - Flipper-PeerTalk (~> 0.0.4)
- Flipper-RSocket (~> 1.1) - Flipper-RSocket (~> 1.3)
- FlipperKit (= 0.74.0) - FlipperKit (~> 0.75.1)
- FlipperKit/Core (= 0.74.0) - FlipperKit/Core (~> 0.75.1)
- FlipperKit/CppBridge (= 0.74.0) - FlipperKit/CppBridge (~> 0.75.1)
- FlipperKit/FBCxxFollyDynamicConvert (= 0.74.0) - FlipperKit/FBCxxFollyDynamicConvert (~> 0.75.1)
- FlipperKit/FBDefines (= 0.74.0) - FlipperKit/FBDefines (~> 0.75.1)
- FlipperKit/FKPortForwarding (= 0.74.0) - FlipperKit/FKPortForwarding (~> 0.75.1)
- FlipperKit/FlipperKitHighlightOverlay (= 0.74.0) - FlipperKit/FlipperKitHighlightOverlay (~> 0.75.1)
- FlipperKit/FlipperKitLayoutPlugin (= 0.74.0) - FlipperKit/FlipperKitLayoutPlugin (~> 0.75.1)
- FlipperKit/FlipperKitLayoutTextSearchable (= 0.74.0) - FlipperKit/FlipperKitLayoutTextSearchable (~> 0.75.1)
- FlipperKit/FlipperKitNetworkPlugin (= 0.74.0) - FlipperKit/FlipperKitNetworkPlugin (~> 0.75.1)
- FlipperKit/FlipperKitReactPlugin (= 0.74.0) - FlipperKit/FlipperKitReactPlugin (~> 0.75.1)
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.74.0) - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.75.1)
- FlipperKit/SKIOSNetworkPlugin (= 0.74.0) - FlipperKit/SKIOSNetworkPlugin (~> 0.75.1)
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- hermes-engine (~> 0.7.2)
- libevent (~> 2.1.12)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
- React (from `../node_modules/react-native/`) - React (from `../node_modules/react-native/`)
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
- React-Core (from `../node_modules/react-native/`) - React-Core (from `../node_modules/react-native/`)
- React-Core/DevSupport (from `../node_modules/react-native/`) - React-Core/DevSupport (from `../node_modules/react-native/`)
- React-Core/Hermes (from `../node_modules/react-native/`)
- React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
@ -397,6 +438,7 @@ DEPENDENCIES:
- "react-native-slider (from `../node_modules/@react-native-community/slider`)" - "react-native-slider (from `../node_modules/@react-native-community/slider`)"
- react-native-video (from `../node_modules/react-native-video`) - react-native-video (from `../node_modules/react-native-video`)
- react-native-vision-camera (from `../..`) - react-native-vision-camera (from `../..`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
@ -406,6 +448,7 @@ DEPENDENCIES:
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- ReactNativeNavigation (from `../node_modules/react-native-navigation`) - ReactNativeNavigation (from `../node_modules/react-native-navigation`)
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
@ -425,6 +468,7 @@ SPEC REPOS:
- Flipper-PeerTalk - Flipper-PeerTalk
- Flipper-RSocket - Flipper-RSocket
- FlipperKit - FlipperKit
- hermes-engine
- libevent - libevent
- OpenSSL-Universal - OpenSSL-Universal
- YogaKit - YogaKit
@ -435,11 +479,11 @@ EXTERNAL SOURCES:
FBLazyVector: FBLazyVector:
:path: "../node_modules/react-native/Libraries/FBLazyVector" :path: "../node_modules/react-native/Libraries/FBLazyVector"
FBReactNativeSpec: FBReactNativeSpec:
:path: "../node_modules/react-native/Libraries/FBReactNativeSpec" :path: "../node_modules/react-native/React/FBReactNativeSpec"
Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
glog: glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
RCT-Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired: RCTRequired:
:path: "../node_modules/react-native/Libraries/RCTRequired" :path: "../node_modules/react-native/Libraries/RCTRequired"
RCTTypeSafety: RCTTypeSafety:
@ -470,6 +514,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-video" :path: "../node_modules/react-native-video"
react-native-vision-camera: react-native-vision-camera:
:path: "../.." :path: "../.."
React-perflogger:
:path: "../node_modules/react-native/ReactCommon/reactperflogger"
React-RCTActionSheet: React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS" :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation: React-RCTAnimation:
@ -488,6 +534,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/Text" :path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration: React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration" :path: "../node_modules/react-native/Libraries/Vibration"
React-runtimeexecutor:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
ReactCommon: ReactCommon:
:path: "../node_modules/react-native/ReactCommon" :path: "../node_modules/react-native/ReactCommon"
ReactNativeNavigation: ReactNativeNavigation:
@ -507,52 +555,55 @@ SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: cde416483dac037923206447da6e1454df403714 DoubleConversion: cde416483dac037923206447da6e1454df403714
FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e FBLazyVector: 49cbe4b43e445b06bf29199b6ad2057649e4c8f5
FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e FBReactNativeSpec: e800dc469340da7e8e47f45145f69d75a7b06874
Flipper: c1ad50344bffdce628b1906b48f6e7cd06724236 Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
Flipper-Folly: f7a3caafbd74bda4827954fd7a6e000e36355489 Flipper-Folly: f7a3caafbd74bda4827954fd7a6e000e36355489
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
Flipper-RSocket: 602921fee03edacf18f5d6f3d3594ba477f456e5 Flipper-RSocket: 602921fee03edacf18f5d6f3d3594ba477f456e5
FlipperKit: f42987ea58737ac0fb3fbc38f8e703452ba56940 FlipperKit: 8a20b5c5fcf9436cac58551dc049867247f64b00
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3 glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c
RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b RCTRequired: 2f8cb5b7533219bf4218a045f92768129cf7050a
React: b0a957a2c44da4113b0c4c9853d8387f8e64e615 RCTTypeSafety: 512728b73549e72ad7330b92f3d42936f2a4de5b
React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe React: 98eac01574128a790f0bbbafe2d1a8607291ac24
React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b React-callinvoker: def3f7fae16192df68d9b69fd4bbb59092ee36bc
React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60 React-Core: 70a52aa5dbe9b83befae82038451a7df9fd54c5a
React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3 React-CoreModules: 052edef46117862e2570eb3a0f06d81c61d2c4b8
React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31 React-cxxreact: c1dc71b30653cfb4770efdafcbdc0ad6d388baab
React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949 React-jsi: 74341196d9547cbcbcfa4b3bbbf03af56431d5a1
React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a React-jsiexecutor: 06a9c77b56902ae7ffcdd7a4905f664adc5d237b
React-jsinspector: 0ae35a37b20d5e031eb020a69cc5afdbd6406301
react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c
react-native-cameraroll: 1965db75c851b15e77a22ca0ac78e32af6b571ae react-native-cameraroll: 1965db75c851b15e77a22ca0ac78e32af6b571ae
react-native-slider: e99fc201cefe81270fc9d81714a7a0f5e566b168 react-native-slider: e99fc201cefe81270fc9d81714a7a0f5e566b168
react-native-video: 0bb76b6d6b77da3009611586c7dbf817b947f30e react-native-video: 0bb76b6d6b77da3009611586c7dbf817b947f30e
react-native-vision-camera: d7c8c65ebc20ab8e8728ee449359de8a4b69bfed react-native-vision-camera: 83bc97de3bc01be3a99037dd4cf6c672aef632b7
React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336 React-perflogger: 9c547d8f06b9bf00cb447f2b75e8d7f19b7e02af
React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b React-RCTActionSheet: 3080b6e12e0e1a5b313c8c0050699b5c794a1b11
React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0 React-RCTAnimation: 3f96f21a497ae7dabf4d2f150ee43f906aaf516f
React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0 React-RCTBlob: 283b8e5025e7f954176bc48164f846909002f3ed
React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2 React-RCTImage: 5088a484faac78f2d877e1b79125d3bb1ea94a16
React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae React-RCTLinking: 5e8fbb3e9a8bc2e4e3eb15b1eb8bda5fcac27b8c
React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a React-RCTNetwork: 38ec277217b1e841d5e6a1fa78da65b9212ccb28
React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c React-RCTSettings: 242d6e692108c3de4f3bb74b7586a8799e9ab070
React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d React-RCTText: 8746736ac8eb5a4a74719aa695b7a236a93a83d2
ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b React-RCTVibration: 0fd6b21751a33cb72fce1a4a33ab9678416d307a
React-runtimeexecutor: cad74a1eaa53ee6e7a3620231939d8fe2c6afcf0
ReactCommon: cfe2b7fd20e0dbd2d1185cd7d8f99633fbc5ff05
ReactNativeNavigation: 63321d37e8172bdcc1fbb93e77cffc74a0ba6d20 ReactNativeNavigation: 63321d37e8172bdcc1fbb93e77cffc74a0ba6d20
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
RNReanimated: 5231286440b796e09df3bfa5c1b12b02bfe07664 RNReanimated: 64f6c5789f82818c07ba3c71864b73619cb23c76
RNStaticSafeAreaInsets: 6103cf09647fa427186d30f67b0f5163c1ae8252 RNStaticSafeAreaInsets: 6103cf09647fa427186d30f67b0f5163c1ae8252
RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4
Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6 Yoga: 8c8436d4171c87504c648ae23b1d81242bdf3bbf
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: bd3ea0439a0aa5667265c080a37b4b9299a7d5ae PODFILE CHECKSUM: db25a39701ce2438513512d2baf1909bd711d24d
COCOAPODS: 1.10.1 COCOAPODS: 1.10.1

View File

@ -117,6 +117,8 @@
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VisionCameraExample" */; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VisionCameraExample" */;
buildPhases = ( buildPhases = (
8CCB88D3394D79DC3E33EBBD /* [CP] Check Pods Manifest.lock */, 8CCB88D3394D79DC3E33EBBD /* [CP] Check Pods Manifest.lock */,
B81F12712604CF8800B08949 /* SwiftFormat */,
B81F12702604CF6600B08949 /* SwiftLint */,
FD10A7F022414F080027D42C /* Start Packager */, FD10A7F022414F080027D42C /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */, 13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8C1A680F5B00A75B9A /* Frameworks */,
@ -200,10 +202,12 @@
); );
inputPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-VisionCameraExample/Pods-VisionCameraExample-frameworks.sh", "${PODS_ROOT}/Target Support Files/Pods-VisionCameraExample/Pods-VisionCameraExample-frameworks.sh",
"${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
); );
name = "[CP] Embed Pods Frameworks"; name = "[CP] Embed Pods Frameworks";
outputPaths = ( outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -233,6 +237,42 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
B81F12702604CF6600B08949 /* SwiftLint */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = SwiftLint;
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
};
B81F12712604CF8800B08949 /* SwiftFormat */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = SwiftFormat;
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if which swiftformat >/dev/null; then\n swiftformat .\nelse\n echo \"warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat\"\nfi\n";
};
D6355D2C1A82AA568E4170C4 /* [CP] Copy Pods Resources */ = { D6355D2C1A82AA568E4170C4 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -399,6 +439,7 @@
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES; ENABLE_TESTABILITY = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386";
GCC_C_LANGUAGE_STANDARD = gnu99; GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO; GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
@ -459,6 +500,7 @@
COPY_PHASE_STRIP = YES; COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386";
GCC_C_LANGUAGE_STANDARD = gnu99; GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;

View File

@ -26,8 +26,6 @@
<true/> <true/>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>
<dict> <dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key> <key>NSExceptionDomains</key>
<dict> <dict>
<key>localhost</key> <key>localhost</key>

View File

@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path'); const path = require('path');
const blacklist = require('metro-config/src/defaults/blacklist'); const blacklist = require('metro-config/src/defaults/exclusionList');
const escape = require('escape-string-regexp'); const escape = require('escape-string-regexp');
const pak = require('../package.json'); const pak = require('../package.json');

View File

@ -14,8 +14,8 @@
"@react-native-community/cameraroll": "^4.0.2", "@react-native-community/cameraroll": "^4.0.2",
"@react-native-community/slider": "^3.0.3", "@react-native-community/slider": "^3.0.3",
"pipestate": "^1.0.2", "pipestate": "^1.0.2",
"react": "16.13.1", "react": "17.0.1",
"react-native": "0.63.4", "react-native": "0.64",
"react-native-gesture-handler": "^1.10.3", "react-native-gesture-handler": "^1.10.3",
"react-native-navigation": "7.8.4-snapshot.1439", "react-native-navigation": "7.8.4-snapshot.1439",
"react-native-reanimated": "^2.0.0", "react-native-reanimated": "^2.0.0",
@ -29,11 +29,11 @@
"@react-native-community/eslint-config": "^2.0.0", "@react-native-community/eslint-config": "^2.0.0",
"@react-native-community/eslint-plugin": "^1.1.0", "@react-native-community/eslint-plugin": "^1.1.0",
"@types/react": "^17.0.3", "@types/react": "^17.0.3",
"@types/react-native": "^0.63.51", "@types/react-native": "^0.63.52",
"@types/react-native-vector-icons": "^6.4.6", "@types/react-native-vector-icons": "^6.4.6",
"@types/react-native-video": "^5.0.4", "@types/react-native-video": "^5.0.4",
"@typescript-eslint/eslint-plugin": "^4.17.0", "@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.17.0", "@typescript-eslint/parser": "^4.18.0",
"babel-plugin-module-resolver": "^4.0.0", "babel-plugin-module-resolver": "^4.0.0",
"eslint": "^7.22.0", "eslint": "^7.22.0",
"eslint-config-prettier": "^8.1.0", "eslint-config-prettier": "^8.1.0",

View File

@ -9,8 +9,8 @@ import {
TapGestureHandlerStateChangeEvent, TapGestureHandlerStateChangeEvent,
} from 'react-native-gesture-handler'; } from 'react-native-gesture-handler';
import { Navigation, NavigationFunctionComponent } from 'react-native-navigation'; import { Navigation, NavigationFunctionComponent } from 'react-native-navigation';
import type { CameraDevice, CameraDeviceFormat, CameraRuntimeError, PhotoFile, VideoFile } from 'react-native-vision-camera'; import type { CameraDeviceFormat, CameraRuntimeError, PhotoFile, VideoFile } from 'react-native-vision-camera';
import { Camera, frameRateIncluded, sortDevices, sortFormatsByResolution, filterFormatsByAspectRatio } from 'react-native-vision-camera'; import { Camera, frameRateIncluded, sortFormatsByResolution, filterFormatsByAspectRatio } from 'react-native-vision-camera';
import { useIsScreenFocused } from './hooks/useIsScreenFocused'; import { useIsScreenFocused } from './hooks/useIsScreenFocused';
import { CONTENT_SPACING, MAX_ZOOM_FACTOR, SAFE_AREA_PADDING } from './Constants'; import { CONTENT_SPACING, MAX_ZOOM_FACTOR, SAFE_AREA_PADDING } from './Constants';
import Reanimated, { Extrapolate, interpolate, useAnimatedGestureHandler, useAnimatedProps, useSharedValue } from 'react-native-reanimated'; import Reanimated, { Extrapolate, interpolate, useAnimatedGestureHandler, useAnimatedProps, useSharedValue } from 'react-native-reanimated';
@ -23,6 +23,7 @@ import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons';
import IonIcon from 'react-native-vector-icons/Ionicons'; import IonIcon from 'react-native-vector-icons/Ionicons';
import { useSelector } from 'pipestate'; import { useSelector } from 'pipestate';
import { FpsSelector } from './state/selectors'; import { FpsSelector } from './state/selectors';
import { useCameraDevice } from './hooks/useCameraDevice';
// TODO: Remove once https://github.com/software-mansion/react-native-reanimated/pull/1697 gets merged // TODO: Remove once https://github.com/software-mansion/react-native-reanimated/pull/1697 gets merged
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
@ -51,8 +52,8 @@ export const App: NavigationFunctionComponent = ({ componentId }) => {
const [enableNightMode, setEnableNightMode] = useState(false); const [enableNightMode, setEnableNightMode] = useState(false);
// camera format settings // camera format settings
const [devices, setDevices] = useState<CameraDevice[]>([]); // All available camera devices, sorted by "best device" (descending) const devices = useCameraDevice();
const device = useMemo<CameraDevice | undefined>(() => devices.find((d) => d.position === cameraPosition), [cameraPosition, devices]); const device = devices[cameraPosition];
const formats = useMemo<CameraDeviceFormat[]>(() => { const formats = useMemo<CameraDeviceFormat[]>(() => {
if (device?.formats == null) return []; if (device?.formats == null) return [];
const filtered = filterFormatsByAspectRatio(device.formats); const filtered = filterFormatsByAspectRatio(device.formats);
@ -83,7 +84,7 @@ export const App: NavigationFunctionComponent = ({ componentId }) => {
return targetFps; return targetFps;
}, [device?.supportsLowLightBoost, enableHdr, enableNightMode, formats, targetFps]); }, [device?.supportsLowLightBoost, enableHdr, enableNightMode, formats, targetFps]);
const supportsCameraFlipping = useMemo(() => devices.some((d) => d.position === 'back') && devices.some((d) => d.position === 'front'), [devices]); const supportsCameraFlipping = useMemo(() => devices.back != null && devices.front != null, [devices.back, devices.front]);
const supportsFlash = device?.hasFlash ?? false; const supportsFlash = device?.hasFlash ?? false;
const supportsHdr = useMemo(() => formats.some((f) => f.supportsVideoHDR), [formats]); const supportsHdr = useMemo(() => formats.some((f) => f.supportsVideoHDR), [formats]);
const canToggleNightMode = enableNightMode const canToggleNightMode = enableNightMode
@ -181,29 +182,10 @@ export const App: NavigationFunctionComponent = ({ componentId }) => {
//#endregion //#endregion
//#region Effects //#region Effects
useEffect(() => {
const loadDevices = async (): Promise<void> => {
try {
const availableCameraDevices = await Camera.getAvailableCameraDevices();
console.log(`Devices: ${availableCameraDevices.map((d) => d.name).join(', ')}`);
const sortedDevices = availableCameraDevices.sort(sortDevices);
console.debug(`Devices (sorted): ${sortedDevices.map((d) => d.name).join(', ')}`);
setDevices(sortedDevices);
} catch (e) {
console.error('Failed to get available devices!', e);
}
};
loadDevices();
}, []);
useEffect(() => { useEffect(() => {
// Run everytime the neutralZoomScaled value changes. (reset zoom when device changes) // Run everytime the neutralZoomScaled value changes. (reset zoom when device changes)
zoom.value = neutralZoomScaled; zoom.value = neutralZoomScaled;
}, [neutralZoomScaled, zoom]); }, [neutralZoomScaled, zoom]);
useEffect(() => {
// Run everytime the camera gets set to isActive = false. (reset zoom when tab switching)
if (!isActive) zoom.value = neutralZoomScaled;
}, [neutralZoomScaled, isActive, zoom]);
//#endregion //#endregion
//#region Pinch to Zoom Gesture //#region Pinch to Zoom Gesture

View File

@ -0,0 +1,45 @@
import { useEffect, useMemo, useState } from 'react';
import { Camera, CameraDevice, sortDevices } from 'react-native-vision-camera';
/**
* A custom hook that's just like `useCameraDevices` from VisionCamera, but ignores `'telephoto-camera'` devices since those often have poor quality.
*/
export const useCameraDevice = (): {
front: CameraDevice | undefined;
back: CameraDevice | undefined;
} => {
const [backDevice, setBackDevice] = useState<CameraDevice>();
const [frontDevice, setFrontDevice] = useState<CameraDevice>();
useEffect(() => {
let isMounted = true;
const loadDevice = async (): Promise<void> => {
const devices = await Camera.getAvailableCameraDevices();
if (!isMounted) return;
// use any device
const filtered = devices.filter((d) => !d.devices.includes('telephoto-camera'));
const sorted = filtered.sort(sortDevices);
const back = sorted.find((d) => d.position === 'back');
const front = sorted.find((d) => d.position === 'front');
setBackDevice(back);
setFrontDevice(front);
console.log(`Devices: ${sorted.map((d) => d.name).join(', ')}`);
};
loadDevice();
return () => {
isMounted = false;
};
}, []);
return useMemo(
() => ({
back: backDevice,
front: frontDevice,
}),
[backDevice, frontDevice],
);
};

File diff suppressed because it is too large Load Diff

View File

@ -22,9 +22,17 @@ import UIKit
// CameraView+TakePhoto // CameraView+TakePhoto
// TODO: Photo HDR // TODO: Photo HDR
// swiftlint:disable line_length private let propsThatRequireReconfiguration = ["cameraId",
private let propsThatRequireReconfiguration = ["cameraId", "enableDepthData", "enableHighResolutionCapture", "enablePortraitEffectsMatteDelivery", "preset", "onCodeScanned", "scannableCodes"] "enableDepthData",
private let propsThatRequireDeviceReconfiguration = ["fps", "hdr", "lowLightBoost", "colorSpace"] "enableHighResolutionCapture",
"enablePortraitEffectsMatteDelivery",
"preset",
"onCodeScanned",
"scannableCodes"]
private let propsThatRequireDeviceReconfiguration = ["fps",
"hdr",
"lowLightBoost",
"colorSpace"]
// MARK: - CameraView // MARK: - CameraView
@ -60,7 +68,6 @@ final class CameraView: UIView {
let shouldReconfigure = changedProps.contains { propsThatRequireReconfiguration.contains($0) } let shouldReconfigure = changedProps.contains { propsThatRequireReconfiguration.contains($0) }
let shouldReconfigureFormat = shouldReconfigure || changedProps.contains("format") let shouldReconfigureFormat = shouldReconfigure || changedProps.contains("format")
let shouldReconfigureDevice = shouldReconfigureFormat || changedProps.contains { propsThatRequireDeviceReconfiguration.contains($0) } let shouldReconfigureDevice = shouldReconfigureFormat || changedProps.contains { propsThatRequireDeviceReconfiguration.contains($0) }
ReactLogger.log(level: .info, message: "Reconfiguring \(shouldReconfigure ? "everything" : (shouldReconfigureFormat ? "format" : shouldReconfigureDevice ? "device" : "only dynamics"))...")
let willReconfigure = shouldReconfigure || shouldReconfigureFormat || shouldReconfigureDevice let willReconfigure = shouldReconfigure || shouldReconfigureFormat || shouldReconfigureDevice

View File

@ -13,14 +13,23 @@ let context = "VisionCamera"
// MARK: - ReactLogger // MARK: - ReactLogger
enum ReactLogger { enum ReactLogger {
static func log(level: RCTLogLevel, message: String, alsoLogToJS: Bool = false, file: String = #file, lineNumber: Int = #line) { static func log(level: RCTLogLevel,
RCTDefaultLogFunction(level, RCTLogSource.native, file, lineNumber as NSNumber, "\(context): \(message)") message: String,
alsoLogToJS: Bool = false,
_ file: String = #file,
_ lineNumber: Int = #line,
_ function: String = #function) {
RCTDefaultLogFunction(level, RCTLogSource.native, file, lineNumber as NSNumber, "\(context).\(function): \(message)")
if alsoLogToJS { if alsoLogToJS {
RCTDefaultLogFunction(level, RCTLogSource.javaScript, file, lineNumber as NSNumber, "\(context): \(message)") ReactLogger.logJS(level: level, message: message, file, lineNumber, function)
} }
} }
static func logJS(level: RCTLogLevel, message: String, file: String = #file, lineNumber: Int = #line) { static func logJS(level: RCTLogLevel,
RCTDefaultLogFunction(level, RCTLogSource.javaScript, file, lineNumber as NSNumber, "\(context): \(message)") message: String,
_ file: String = #file,
_ lineNumber: Int = #line,
_ function: String = #function) {
RCTDefaultLogFunction(level, RCTLogSource.javaScript, file, lineNumber as NSNumber, "\(context).\(function): \(message)")
} }
} }

View File

@ -73,9 +73,9 @@
"@release-it/conventional-changelog": "^2.0.0", "@release-it/conventional-changelog": "^2.0.0",
"@types/jest": "^26.0.0", "@types/jest": "^26.0.0",
"@types/react": "^17.0.2", "@types/react": "^17.0.2",
"@types/react-native": "0.63.51", "@types/react-native": "0.63.52",
"@typescript-eslint/eslint-plugin": "^4.15.1", "@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.15.1", "@typescript-eslint/parser": "^4.18.0",
"eslint": "^7.20.0", "eslint": "^7.20.0",
"eslint-config-prettier": "^8.1.0", "eslint-config-prettier": "^8.1.0",
"eslint-plugin-prettier": "^3.3.1", "eslint-plugin-prettier": "^3.3.1",
@ -85,7 +85,7 @@
"pod-install": "^0.1.0", "pod-install": "^0.1.0",
"prettier": "^2.2.1", "prettier": "^2.2.1",
"react": "17.0.1", "react": "17.0.1",
"react-native": "0.63.4", "react-native": "0.64.0",
"react-native-builder-bob": "^0.18.1", "react-native-builder-bob": "^0.18.1",
"release-it": "^14.2.2", "release-it": "^14.2.2",
"typescript": "^4.1.3" "typescript": "^4.1.3"

View File

@ -17,7 +17,17 @@ export function useCameraFormat(device?: CameraDevice, cameraViewSize?: Size): C
const formats = useMemo(() => { const formats = useMemo(() => {
if (device?.formats == null) return []; if (device?.formats == null) return [];
const filtered = filterFormatsByAspectRatio(device.formats, cameraViewSize); const filtered = filterFormatsByAspectRatio(device.formats, cameraViewSize);
return filtered.sort(sortFormatsByResolution);
const sorted = filtered.sort(sortFormatsByResolution);
const bestFormat = sorted[0];
if (bestFormat == null) return [];
const bestFormatResolution = bestFormat.photoHeight * bestFormat.photoWidth;
return sorted.filter((f) => {
// difference in resolution in percent (e.g. 100x100 is 0.5 of 200x200)
const resolutionDiff = (bestFormatResolution - f.photoHeight * f.photoWidth) / bestFormatResolution;
// formats that are less than 25% of the bestFormat's resolution are dropped. They are too much quality loss
return resolutionDiff <= 0.25;
});
}, [device?.formats, cameraViewSize]); }, [device?.formats, cameraViewSize]);
return formats[0]; return formats[0];

View File

@ -24,8 +24,8 @@ export const sortDevices = (left: CameraDevice, right: CameraDevice): number =>
if (leftHasWideAngle) leftPoints += 5; if (leftHasWideAngle) leftPoints += 5;
if (rightHasWideAngle) rightPoints += 5; if (rightHasWideAngle) rightPoints += 5;
if (left.devices.length > right.devices.length) leftPoints += 2; if (left.devices.length > right.devices.length) leftPoints += 3;
if (right.devices.length > left.devices.length) rightPoints += 2; if (right.devices.length > left.devices.length) rightPoints += 3;
return rightPoints - leftPoints; return rightPoints - leftPoints;
}; };
@ -96,7 +96,12 @@ export const filterFormatsByAspectRatio = (formats: CameraDeviceFormat[], viewSi
else return prev; else return prev;
}, Number.MAX_SAFE_INTEGER); }, Number.MAX_SAFE_INTEGER);
return formats.filter((f) => getFormatAspectRatioOverflow(f, viewSize) === minOverflow); return formats.filter((f) => {
// percentage of difference in overflow from this format, to the minimum available overflow
const overflowDiff = (getFormatAspectRatioOverflow(f, viewSize) - minOverflow) / minOverflow;
// we have an acceptance of 25%, if overflow is more than 25% off to the min available overflow, we drop it
return overflowDiff < 0.25;
});
}; };
/** /**

1808
yarn.lock

File diff suppressed because it is too large Load Diff