diff --git a/package.json b/package.json index ee3ea27..ef584f3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,15 @@ { "private": true, "name": "Chatify", - "workspaces": ["packages/*"], + "workspaces": [ + "packages/*" + ], + "nohoist": [ + "**/graphql/**" + ], + "devDependencies": { + "@types/graphql": "^14.0.4" + }, "scripts": { "server:dev": "yarn workspace @chatify/server dev", "server:build": "yarn workspace @chatify/server build", diff --git a/packages/app/.babelrc b/packages/app/.babelrc deleted file mode 100644 index d4b74b5..0000000 --- a/packages/app/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["module:metro-react-native-babel-preset"] -} diff --git a/packages/app/android/app/BUCK b/packages/app/android/app/BUCK index 1ca5218..4d88857 100644 --- a/packages/app/android/app/BUCK +++ b/packages/app/android/app/BUCK @@ -7,24 +7,13 @@ # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck # - `buck install -r android/app` - compile, install and run application # +load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") lib_deps = [] -for jarfile in glob(['libs/*.jar']): - name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] - lib_deps.append(':' + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) +create_aar_targets(glob(["libs/*.aar"])) -for aarfile in glob(['libs/*.aar']): - name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] - lib_deps.append(':' + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) +create_jar_targets(glob(["libs/*.jar"])) android_library( name = "all-libs", diff --git a/packages/app/android/app/build.gradle b/packages/app/android/app/build.gradle index c78d806..8263a78 100644 --- a/packages/app/android/app/build.gradle +++ b/packages/app/android/app/build.gradle @@ -1,4 +1,4 @@ -apply plugin: "com.android.application" + plugin: "com.android.application" import com.android.build.OutputFile @@ -9,7 +9,7 @@ import com.android.build.OutputFile * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. + * `apply from: "../../../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle @@ -73,10 +73,11 @@ import com.android.build.OutputFile */ project.ext.react = [ - entryFile: "index.js" + entryFile: "packages/app/index.js", + root: "../../../../" ] -apply from: "../../node_modules/react-native/react.gradle" +apply from: "../../../../node_modules/react-native/react.gradle" /** * Set this to true to create two separate APKs instead of one: @@ -107,16 +108,13 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" - ndk { - abiFilters "armeabi-v7a", "x86" - } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86" + include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } buildTypes { @@ -130,7 +128,7 @@ android { variant.outputs.each { output -> // For each separate APK per architecture, set a unique version code as described here: // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits - def versionCodes = ["armeabi-v7a":1, "x86":2] + def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = diff --git a/packages/app/android/app/build_defs.bzl b/packages/app/android/app/build_defs.bzl new file mode 100644 index 0000000..a92f0e9 --- /dev/null +++ b/packages/app/android/app/build_defs.bzl @@ -0,0 +1,19 @@ +"""Helper definitions to glob .aar and .jar targets""" + +def create_aar_targets(aarfiles): + for aarfile in aarfiles: + name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] + lib_deps.append(":" + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +def create_jar_targets(jarfiles): + for jarfile in jarfiles: + name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] + lib_deps.append(":" + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) \ No newline at end of file diff --git a/packages/app/android/app/src/debug/AndroidManifest.xml b/packages/app/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..7feb33d --- /dev/null +++ b/packages/app/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/packages/app/android/app/src/main/AndroidManifest.xml b/packages/app/android/app/src/main/AndroidManifest.xml index cecdcdb..01d1fd9 100644 --- a/packages/app/android/app/src/main/AndroidManifest.xml +++ b/packages/app/android/app/src/main/AndroidManifest.xml @@ -2,7 +2,6 @@ package="com.app"> - @@ -19,6 +18,7 @@ android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" + android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme"> getPackages() { @Override protected String getJSMainModuleName() { - return "index"; + return "packages/app/index"; } }; diff --git a/packages/app/android/build.gradle b/packages/app/android/build.gradle index a1e8085..12a50e6 100644 --- a/packages/app/android/build.gradle +++ b/packages/app/android/build.gradle @@ -2,18 +2,18 @@ buildscript { ext { - buildToolsVersion = "27.0.3" + buildToolsVersion = "28.0.3" minSdkVersion = 16 - compileSdkVersion = 27 - targetSdkVersion = 26 - supportLibVersion = "27.1.1" + compileSdkVersion = 28 + targetSdkVersion = 28 + supportLibVersion = "28.0.0" } repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.android.tools.build:gradle:3.3.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -27,13 +27,7 @@ allprojects { jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url "$rootDir/../node_modules/react-native/android" + url "$rootDir/../../../node_modules/react-native/android" } } } - - -task wrapper(type: Wrapper) { - gradleVersion = '4.4' - distributionUrl = distributionUrl.replace("bin", "all") -} diff --git a/packages/app/android/gradle/wrapper/gradle-wrapper.properties b/packages/app/android/gradle/wrapper/gradle-wrapper.properties index b6517bb..019065d 100644 --- a/packages/app/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/app/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip diff --git a/packages/app/babel.config.js b/packages/app/babel.config.js new file mode 100644 index 0000000..f842b77 --- /dev/null +++ b/packages/app/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:metro-react-native-babel-preset'], +}; diff --git a/packages/app/index.js b/packages/app/index.js index 153c04c..8d7b24a 100644 --- a/packages/app/index.js +++ b/packages/app/index.js @@ -1,3 +1,6 @@ +/** + * @format + */ import { AppRegistry } from 'react-native' import App from './src/App.tsx' diff --git a/packages/app/ios/app.xcodeproj/project.pbxproj b/packages/app/ios/app.xcodeproj/project.pbxproj index 4513ac0..0fbd9ea 100644 --- a/packages/app/ios/app.xcodeproj/project.pbxproj +++ b/packages/app/ios/app.xcodeproj/project.pbxproj @@ -60,11 +60,12 @@ 9D42DB59228B616100AF470B /* libc.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D42DB58228B616100AF470B /* libc.tbd */; }; 9D42DB5B228B616600AF470B /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D42DB5A228B616600AF470B /* libc++.tbd */; }; 9D42DB5D228B616B00AF470B /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D42DB5C228B616B00AF470B /* libsqlite3.tbd */; }; - 9DE89C4522916E10006EC4B1 /* libRCTWebRTC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D42DB46228B607700AF470B /* libRCTWebRTC.a */; }; + 9DC9918E22938B56008CE327 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; }; AD75C11A20B546779430735E /* libRNFetchBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA8EB37FAE8B4C11AAA14391 /* libRNFetchBlob.a */; }; ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; C16AD307AF3445C88CE636A0 /* Rubik-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 36FFD35F60AB41A6910C7822 /* Rubik-Italic.ttf */; }; C98021B01A3448DD97103273 /* libRCTImageResizer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4D0643BC4141E2806B7FB2 /* libRCTImageResizer.a */; }; + ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; }; EF00A10803DC45F186F69BC0 /* libRNCallKeep.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D4E94E7E182E412FAAC231C7 /* libRNCallKeep.a */; }; F3E7B8EF279342ED9CD8CD30 /* Rubik-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7A9013B7E4FB44FA8D0DC3D3 /* Rubik-MediumItalic.ttf */; }; /* End PBXBuildFile section */ @@ -203,20 +204,6 @@ remoteGlobalIDString = 3D383D621EBD27B9005632C8; remoteInfo = "double-conversion-tvOS"; }; - 2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F3131F5F2E4B0010BF04; - remoteInfo = privatedata; - }; - 2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04; - remoteInfo = "privatedata-tvOS"; - }; 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; @@ -294,20 +281,6 @@ remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; remoteInfo = "cxxreact-tvOS"; }; - 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; - remoteInfo = jschelpers; - }; - 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; - remoteInfo = "jschelpers-tvOS"; - }; 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; @@ -336,48 +309,83 @@ remoteGlobalIDString = 58B5119B1A9E6C1200147676; remoteInfo = RCTText; }; - 9D42DB45228B607700AF470B /* PBXContainerItemProxy */ = { + 9DC9914C22936B97008CE327 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 9D42DB41228B607600AF470B /* RCTWebRTC.xcodeproj */; proxyType = 2; remoteGlobalIDString = 35A2221F1CB493700015FD5C; remoteInfo = RCTWebRTC; }; - 9D42DB9C228B63A600AF470B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B6E5C1454A984E0692A6FB9F /* RNCallKeep.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 234528921E0B88C700D1A033; - remoteInfo = RNCallKeep; - }; - 9D4AD1B1228A299200712B21 /* PBXContainerItemProxy */ = { + 9DC9915122936BC7008CE327 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D78F473F758F4417B2443981 /* RNFetchBlob.xcodeproj */; proxyType = 2; remoteGlobalIDString = A15C300E1CD25C330074CB35; remoteInfo = RNFetchBlob; }; - 9D4AD1B8228A299200712B21 /* PBXContainerItemProxy */ = { + 9DC9915722936BE0008CE327 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 17DDBFA916D147ACAE57A700 /* RNGestureHandler.xcodeproj */; proxyType = 2; remoteGlobalIDString = 134814201AA4EA6300B7C361; remoteInfo = RNGestureHandler; }; - 9D4AD1BB228A299200712B21 /* PBXContainerItemProxy */ = { + 9DC9915922936BE0008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 17DDBFA916D147ACAE57A700 /* RNGestureHandler.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B5C32A36220C603B000FFB8D; + remoteInfo = "RNGestureHandler-tvOS"; + }; + 9DC9915E22936BF4008CE327 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = A0562DF1BA414DF6B49184FA /* RNImagePicker.xcodeproj */; proxyType = 2; remoteGlobalIDString = 014A3B5C1C6CF33500B6D375; remoteInfo = RNImagePicker; }; - 9D4AD1C0228A299200712B21 /* PBXContainerItemProxy */ = { + 9DC9916322936C08008CE327 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 7B4B9CAA9D5E4C738B86BE8C /* RCTImageResizer.xcodeproj */; proxyType = 2; remoteGlobalIDString = 5D72D2E81C16249000E22EC1; remoteInfo = RCTImageResizer; }; + 9DC9916822936C19008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = B6E5C1454A984E0692A6FB9F /* RNCallKeep.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 234528921E0B88C700D1A033; + remoteInfo = RNCallKeep; + }; + 9DC991B622938B56008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EDEBC6D6214B3E7000DD5AC8; + remoteInfo = jsi; + }; + 9DC991B822938B56008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EDEBC73B214B45A300DD5AC8; + remoteInfo = jsiexecutor; + }; + 9DC991BA22938B56008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = ED296FB6214C9A0900B7C4FE; + remoteInfo = "jsi-tvOS"; + }; + 9DC991BC22938B56008CE327 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = ED296FEE214C9CF800B7C4FE; + remoteInfo = "jsiexecutor-tvOS"; + }; ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; @@ -403,16 +411,16 @@ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../../../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../../../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../../../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../../../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../../../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 00E356EE1AD99517003FC87E /* appTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = appTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* appTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = appTests.m; sourceTree = ""; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../../../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../../../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = app.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = app/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = app/AppDelegate.m; sourceTree = ""; }; @@ -420,25 +428,25 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = app/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = app/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = app/main.m; sourceTree = ""; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 17DDBFA916D147ACAE57A700 /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler.xcodeproj; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = ""; }; + 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../../../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + 17DDBFA916D147ACAE57A700 /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler.xcodeproj; path = "../../../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = ""; }; 2C572E59FDF94E81BFEC6A7B /* Rubik-BoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-BoldItalic.ttf"; path = "../src/assets/fonts/Rubik-BoldItalic.ttf"; sourceTree = ""; }; 2D02E47B1E0B4A5D006451C7 /* app-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "app-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E4901E0B4A5D006451C7 /* app-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "app-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; 36FFD35F60AB41A6910C7822 /* Rubik-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Italic.ttf"; path = "../src/assets/fonts/Rubik-Italic.ttf"; sourceTree = ""; }; 3C4D0643BC4141E2806B7FB2 /* libRCTImageResizer.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTImageResizer.a; sourceTree = ""; }; - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../../../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 64E55637A21F40939BC9A9B4 /* Rubik-BlackItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-BlackItalic.ttf"; path = "../src/assets/fonts/Rubik-BlackItalic.ttf"; sourceTree = ""; }; 69BE4F26D34348B09A739D58 /* libRNImagePicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNImagePicker.a; sourceTree = ""; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../../../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 7A3D7B31AFCE46AEAC63B356 /* Rubik-Black.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Black.ttf"; path = "../src/assets/fonts/Rubik-Black.ttf"; sourceTree = ""; }; 7A9013B7E4FB44FA8D0DC3D3 /* Rubik-MediumItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-MediumItalic.ttf"; path = "../src/assets/fonts/Rubik-MediumItalic.ttf"; sourceTree = ""; }; - 7B4B9CAA9D5E4C738B86BE8C /* RCTImageResizer.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTImageResizer.xcodeproj; path = "../node_modules/react-native-image-resizer/ios/RCTImageResizer.xcodeproj"; sourceTree = ""; }; + 7B4B9CAA9D5E4C738B86BE8C /* RCTImageResizer.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTImageResizer.xcodeproj; path = "../../../node_modules/react-native-image-resizer/ios/RCTImageResizer.xcodeproj"; sourceTree = ""; }; 7CCDB2DBAD004A46A69C7DC1 /* Rubik-Light.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Light.ttf"; path = "../src/assets/fonts/Rubik-Light.ttf"; sourceTree = ""; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - 9D42DB16228B605900AF470B /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = "../node_modules/react-native-webrtc/ios/WebRTC.framework"; sourceTree = ""; }; - 9D42DB41228B607600AF470B /* RCTWebRTC.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebRTC.xcodeproj; path = "../node_modules/react-native-webrtc/ios/RCTWebRTC.xcodeproj"; sourceTree = ""; }; + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../../../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; + 9D42DB16228B605900AF470B /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = "../../../node_modules/react-native-webrtc/ios/WebRTC.framework"; sourceTree = ""; }; + 9D42DB41228B607600AF470B /* RCTWebRTC.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebRTC.xcodeproj; path = "../../../node_modules/react-native-webrtc/ios/RCTWebRTC.xcodeproj"; sourceTree = ""; }; 9D42DB4A228B610E00AF470B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 9D42DB4C228B611400AF470B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 9D42DB4E228B611900AF470B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -451,14 +459,16 @@ 9D42DB5C228B616B00AF470B /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; 9D93C440EAE64D5597288665 /* Rubik-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Bold.ttf"; path = "../src/assets/fonts/Rubik-Bold.ttf"; sourceTree = ""; }; 9E7A833048614D7B8589F3F2 /* Rubik-LightItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-LightItalic.ttf"; path = "../src/assets/fonts/Rubik-LightItalic.ttf"; sourceTree = ""; }; - A0562DF1BA414DF6B49184FA /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNImagePicker.xcodeproj; path = "../node_modules/react-native-image-picker/ios/RNImagePicker.xcodeproj"; sourceTree = ""; }; + A0562DF1BA414DF6B49184FA /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNImagePicker.xcodeproj; path = "../../../node_modules/react-native-image-picker/ios/RNImagePicker.xcodeproj"; sourceTree = ""; }; A3E6E20A8F0244908D784663 /* Rubik-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Medium.ttf"; path = "../src/assets/fonts/Rubik-Medium.ttf"; sourceTree = ""; }; A49A7BFCA1C54378AD26C7BC /* Rubik-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Rubik-Regular.ttf"; path = "../src/assets/fonts/Rubik-Regular.ttf"; sourceTree = ""; }; - ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; - B6E5C1454A984E0692A6FB9F /* RNCallKeep.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCallKeep.xcodeproj; path = "../node_modules/react-native-callkeep/ios/RNCallKeep.xcodeproj"; sourceTree = ""; }; + ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../../../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; + B6E5C1454A984E0692A6FB9F /* RNCallKeep.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCallKeep.xcodeproj; path = "../../../node_modules/react-native-callkeep/ios/RNCallKeep.xcodeproj"; sourceTree = ""; }; D4E94E7E182E412FAAC231C7 /* libRNCallKeep.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNCallKeep.a; sourceTree = ""; }; - D78F473F758F4417B2443981 /* RNFetchBlob.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNFetchBlob.xcodeproj; path = "../node_modules/react-native-fetch-blob/ios/RNFetchBlob.xcodeproj"; sourceTree = ""; }; + D78F473F758F4417B2443981 /* RNFetchBlob.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNFetchBlob.xcodeproj; path = "../../../node_modules/react-native-fetch-blob/ios/RNFetchBlob.xcodeproj"; sourceTree = ""; }; DA8EB37FAE8B4C11AAA14391 /* libRNFetchBlob.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNFetchBlob.a; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; F3CD837E654A4E0791E52BA4 /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = ""; }; /* End PBXFileReference section */ @@ -475,7 +485,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9DE89C4522916E10006EC4B1 /* libRCTWebRTC.a in Frameworks */, + 9DC9918E22938B56008CE327 /* JavaScriptCore.framework in Frameworks */, 9D42DB5D228B616B00AF470B /* libsqlite3.tbd in Frameworks */, 9D42DB5B228B616600AF470B /* libc++.tbd in Frameworks */, 9D42DB59228B616100AF470B /* libc.tbd in Frameworks */, @@ -512,6 +522,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */, 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */, 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, @@ -636,16 +647,16 @@ 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, 2DF0FFDF2056DD460020B375 /* libjsinspector.a */, 2DF0FFE12056DD460020B375 /* libjsinspector-tvOS.a */, 2DF0FFE32056DD460020B375 /* libthird-party.a */, 2DF0FFE52056DD460020B375 /* libthird-party.a */, 2DF0FFE72056DD460020B375 /* libdouble-conversion.a */, 2DF0FFE92056DD460020B375 /* libdouble-conversion.a */, - 2DF0FFEB2056DD460020B375 /* libprivatedata.a */, - 2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */, + 9DC991B722938B56008CE327 /* libjsi.a */, + 9DC991B922938B56008CE327 /* libjsiexecutor.a */, + 9DC991BB22938B56008CE327 /* libjsi-tvOS.a */, + 9DC991BD22938B56008CE327 /* libjsiexecutor-tvOS.a */, ); name = Products; sourceTree = ""; @@ -663,6 +674,8 @@ 9D42DB4E228B611900AF470B /* CoreGraphics.framework */, 9D42DB4C228B611400AF470B /* AudioToolbox.framework */, 9D42DB4A228B610E00AF470B /* AVFoundation.framework */, + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + ED2971642150620600B7C4FE /* JavaScriptCore.framework */, 2D16E6891FA4F8E400B85C8A /* libReact.a */, ); name = Frameworks; @@ -765,62 +778,63 @@ name = Resources; sourceTree = ""; }; - 9D42DB42228B607600AF470B /* Products */ = { + 9D4AD188228A299000712B21 /* Recovered References */ = { isa = PBXGroup; children = ( - 9D42DB46228B607700AF470B /* libRCTWebRTC.a */, + DA8EB37FAE8B4C11AAA14391 /* libRNFetchBlob.a */, + F3CD837E654A4E0791E52BA4 /* libRNGestureHandler.a */, + 69BE4F26D34348B09A739D58 /* libRNImagePicker.a */, + 3C4D0643BC4141E2806B7FB2 /* libRCTImageResizer.a */, + D4E94E7E182E412FAAC231C7 /* libRNCallKeep.a */, ); - name = Products; + name = "Recovered References"; sourceTree = ""; }; - 9D42DB99228B63A600AF470B /* Products */ = { + 9DC9914922936B97008CE327 /* Products */ = { isa = PBXGroup; children = ( - 9D42DB9D228B63A600AF470B /* libRNCallKeep.a */, + 9DC9914D22936B97008CE327 /* libRCTWebRTC.a */, ); name = Products; sourceTree = ""; }; - 9D4AD188228A299000712B21 /* Recovered References */ = { + 9DC9914E22936BC7008CE327 /* Products */ = { isa = PBXGroup; children = ( - DA8EB37FAE8B4C11AAA14391 /* libRNFetchBlob.a */, - F3CD837E654A4E0791E52BA4 /* libRNGestureHandler.a */, - 69BE4F26D34348B09A739D58 /* libRNImagePicker.a */, - 3C4D0643BC4141E2806B7FB2 /* libRCTImageResizer.a */, - D4E94E7E182E412FAAC231C7 /* libRNCallKeep.a */, + 9DC9915222936BC7008CE327 /* libRNFetchBlob.a */, ); - name = "Recovered References"; + name = Products; sourceTree = ""; }; - 9D4AD1AE228A299200712B21 /* Products */ = { + 9DC9915322936BE0008CE327 /* Products */ = { isa = PBXGroup; children = ( - 9D4AD1B2228A299200712B21 /* libRNFetchBlob.a */, + 9DC9915822936BE0008CE327 /* libRNGestureHandler.a */, + 9DC9915A22936BE0008CE327 /* libRNGestureHandler-tvOS.a */, ); name = Products; sourceTree = ""; }; - 9D4AD1B3228A299200712B21 /* Products */ = { + 9DC9915B22936BF4008CE327 /* Products */ = { isa = PBXGroup; children = ( - 9D4AD1BC228A299200712B21 /* libRNImagePicker.a */, + 9DC9915F22936BF4008CE327 /* libRNImagePicker.a */, ); name = Products; sourceTree = ""; }; - 9D4AD1B5228A299200712B21 /* Products */ = { + 9DC9916022936C08008CE327 /* Products */ = { isa = PBXGroup; children = ( - 9D4AD1B9228A299200712B21 /* libRNGestureHandler.a */, + 9DC9916422936C08008CE327 /* libRCTImageResizer.a */, ); name = Products; sourceTree = ""; }; - 9D4AD1BD228A299200712B21 /* Products */ = { + 9DC9916522936C19008CE327 /* Products */ = { isa = PBXGroup; children = ( - 9D4AD1C1228A299200712B21 /* libRCTImageResizer.a */, + 9DC9916922936C19008CE327 /* libRNCallKeep.a */, ); name = Products; sourceTree = ""; @@ -971,7 +985,7 @@ ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; }, { - ProductGroup = 9D4AD1BD228A299200712B21 /* Products */; + ProductGroup = 9DC9916022936C08008CE327 /* Products */; ProjectRef = 7B4B9CAA9D5E4C738B86BE8C /* RCTImageResizer.xcodeproj */; }, { @@ -995,7 +1009,7 @@ ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; }, { - ProductGroup = 9D42DB42228B607600AF470B /* Products */; + ProductGroup = 9DC9914922936B97008CE327 /* Products */; ProjectRef = 9D42DB41228B607600AF470B /* RCTWebRTC.xcodeproj */; }, { @@ -1007,19 +1021,19 @@ ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; }, { - ProductGroup = 9D42DB99228B63A600AF470B /* Products */; + ProductGroup = 9DC9916522936C19008CE327 /* Products */; ProjectRef = B6E5C1454A984E0692A6FB9F /* RNCallKeep.xcodeproj */; }, { - ProductGroup = 9D4AD1AE228A299200712B21 /* Products */; + ProductGroup = 9DC9914E22936BC7008CE327 /* Products */; ProjectRef = D78F473F758F4417B2443981 /* RNFetchBlob.xcodeproj */; }, { - ProductGroup = 9D4AD1B5228A299200712B21 /* Products */; + ProductGroup = 9DC9915322936BE0008CE327 /* Products */; ProjectRef = 17DDBFA916D147ACAE57A700 /* RNGestureHandler.xcodeproj */; }, { - ProductGroup = 9D4AD1B3228A299200712B21 /* Products */; + ProductGroup = 9DC9915B22936BF4008CE327 /* Products */; ProjectRef = A0562DF1BA414DF6B49184FA /* RNImagePicker.xcodeproj */; }, ); @@ -1153,20 +1167,6 @@ remoteRef = 2DF0FFE82056DD460020B375 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 2DF0FFEB2056DD460020B375 /* libprivatedata.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libprivatedata.a; - remoteRef = 2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libprivatedata-tvOS.a"; - remoteRef = 2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1244,20 +1244,6 @@ remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1286,46 +1272,81 @@ remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D42DB46228B607700AF470B /* libRCTWebRTC.a */ = { + 9DC9914D22936B97008CE327 /* libRCTWebRTC.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRCTWebRTC.a; - remoteRef = 9D42DB45228B607700AF470B /* PBXContainerItemProxy */; + remoteRef = 9DC9914C22936B97008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D42DB9D228B63A600AF470B /* libRNCallKeep.a */ = { + 9DC9915222936BC7008CE327 /* libRNFetchBlob.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; - path = libRNCallKeep.a; - remoteRef = 9D42DB9C228B63A600AF470B /* PBXContainerItemProxy */; + path = libRNFetchBlob.a; + remoteRef = 9DC9915122936BC7008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D4AD1B2228A299200712B21 /* libRNFetchBlob.a */ = { + 9DC9915822936BE0008CE327 /* libRNGestureHandler.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; - path = libRNFetchBlob.a; - remoteRef = 9D4AD1B1228A299200712B21 /* PBXContainerItemProxy */; + path = libRNGestureHandler.a; + remoteRef = 9DC9915722936BE0008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D4AD1B9228A299200712B21 /* libRNGestureHandler.a */ = { + 9DC9915A22936BE0008CE327 /* libRNGestureHandler-tvOS.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; - path = libRNGestureHandler.a; - remoteRef = 9D4AD1B8228A299200712B21 /* PBXContainerItemProxy */; + path = "libRNGestureHandler-tvOS.a"; + remoteRef = 9DC9915922936BE0008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D4AD1BC228A299200712B21 /* libRNImagePicker.a */ = { + 9DC9915F22936BF4008CE327 /* libRNImagePicker.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRNImagePicker.a; - remoteRef = 9D4AD1BB228A299200712B21 /* PBXContainerItemProxy */; + remoteRef = 9DC9915E22936BF4008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D4AD1C1228A299200712B21 /* libRCTImageResizer.a */ = { + 9DC9916422936C08008CE327 /* libRCTImageResizer.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRCTImageResizer.a; - remoteRef = 9D4AD1C0228A299200712B21 /* PBXContainerItemProxy */; + remoteRef = 9DC9916322936C08008CE327 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 9DC9916922936C19008CE327 /* libRNCallKeep.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRNCallKeep.a; + remoteRef = 9DC9916822936C19008CE327 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 9DC991B722938B56008CE327 /* libjsi.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjsi.a; + remoteRef = 9DC991B622938B56008CE327 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 9DC991B922938B56008CE327 /* libjsiexecutor.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libjsiexecutor.a; + remoteRef = 9DC991B822938B56008CE327 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 9DC991BB22938B56008CE327 /* libjsi-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libjsi-tvOS.a"; + remoteRef = 9DC991BA22938B56008CE327 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 9DC991BD22938B56008CE327 /* libjsiexecutor-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libjsiexecutor-tvOS.a"; + remoteRef = 9DC991BC22938B56008CE327 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { @@ -1394,7 +1415,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + shellScript = "export NODE_BINARY=node\nexport EXTRA_PACKAGER_ARGS=\"--entry-file packages/app/index.js\"\n../../../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { isa = PBXShellScriptBuildPhase; @@ -1408,7 +1429,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\n../../../node_modules/react-native/scripts/react-native-xcode.sh"; }; /* End PBXShellScriptBuildPhase section */ @@ -1554,19 +1575,19 @@ DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = GC759DGLS3; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-webrtc/ios/**"; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../../node_modules/react-native-webrtc/ios/**"; HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-fetch-blob/ios/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", - "$(SRCROOT)/../node_modules/react-native-callkeep/ios/RNCallKeep", + "$(SRCROOT)/../../../node_modules/react-native-fetch-blob/ios/**", + "$(SRCROOT)/../../../node_modules/react-native-gesture-handler/ios/**", + "$(SRCROOT)/../../../node_modules/react-native-image-picker/ios", + "$(SRCROOT)/../../../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../../../node_modules/react-native-callkeep/ios/RNCallKeep", ); INFOPLIST_FILE = app/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-webrtc/ios/**"; + LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../../node_modules/react-native-webrtc/ios/**"; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1585,19 +1606,19 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = GC759DGLS3; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-webrtc/ios/**"; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../../node_modules/react-native-webrtc/ios/**"; HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-fetch-blob/ios/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", - "$(SRCROOT)/../node_modules/react-native-callkeep/ios/RNCallKeep", + "$(SRCROOT)/../../../node_modules/react-native-fetch-blob/ios/**", + "$(SRCROOT)/../../../node_modules/react-native-gesture-handler/ios/**", + "$(SRCROOT)/../../../node_modules/react-native-image-picker/ios", + "$(SRCROOT)/../../../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../../../node_modules/react-native-callkeep/ios/RNCallKeep", ); INFOPLIST_FILE = app/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../node_modules/react-native-webrtc/ios/**"; + LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../../node_modules/react-native-webrtc/ios/**"; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", diff --git a/packages/app/ios/app.xcodeproj/xcshareddata/xcschemes/app-tvOS.xcscheme b/packages/app/ios/app.xcodeproj/xcshareddata/xcschemes/app-tvOS.xcscheme index 685bd3d..542e2db 100644 --- a/packages/app/ios/app.xcodeproj/xcshareddata/xcschemes/app-tvOS.xcscheme +++ b/packages/app/ios/app.xcodeproj/xcshareddata/xcschemes/app-tvOS.xcscheme @@ -17,7 +17,7 @@ BlueprintIdentifier = "2D2A28121D9B038B00D4039D" BuildableName = "libReact.a" BlueprintName = "React-tvOS" - ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> + ReferencedContainer = "container:../../../node_modules/react-native/React/React.xcodeproj"> + ReferencedContainer = "container:../../../node_modules/react-native/React/React.xcodeproj"> #import -@interface AppDelegate : UIResponder +@interface AppDelegate : UIResponder @property (nonatomic, strong) UIWindow *window; diff --git a/packages/app/ios/app/AppDelegate.m b/packages/app/ios/app/AppDelegate.m index db4db82..26e1979 100644 --- a/packages/app/ios/app/AppDelegate.m +++ b/packages/app/ios/app/AppDelegate.m @@ -1,5 +1,5 @@ /** - * Copyright (c) 2015-present, Facebook, Inc. + * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. @@ -7,6 +7,7 @@ #import "AppDelegate.h" +#import #import #import @@ -14,18 +15,11 @@ @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - NSURL *jsCodeLocation; - - #ifdef DEBUG - jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; - #else - jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; - #endif - - RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation - moduleName:@"app" - initialProperties:nil - launchOptions:launchOptions]; + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; + RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge + moduleName:@"app" + initialProperties:nil]; + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; @@ -36,4 +30,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( return YES; } -@end +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"packages/app/index" fallbackResource:nil]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +@end \ No newline at end of file diff --git a/packages/app/ios/app/main.m b/packages/app/ios/app/main.m index c73e006..c316cf8 100644 --- a/packages/app/ios/app/main.m +++ b/packages/app/ios/app/main.m @@ -1,5 +1,5 @@ /** - * Copyright (c) 2015-present, Facebook, Inc. + * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. diff --git a/packages/app/metro.config.js b/packages/app/metro.config.js new file mode 100644 index 0000000..0c553fa --- /dev/null +++ b/packages/app/metro.config.js @@ -0,0 +1,13 @@ +const path = require('path') + +module.exports = { + projectRoot: path.resolve(__dirname, '../../'), + transformer: { + getTransformOptions: async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: false, + }, + }), + }, +} \ No newline at end of file diff --git a/packages/app/package.json b/packages/app/package.json index 6a45a04..cda9a97 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -5,7 +5,7 @@ "scripts": { "format": "prettier --write '{.,__tests__,src/**}/*.{js,jsx,ts,tsx}'", "lint": "tslint -p .", - "start": "node node_modules/react-native/local-cli/cli.js start", + "start": "node ../../node_modules/react-native/local-cli/cli.js start --projectRoot ../../", "studio": "open -a /Applications/Android\\ Studio.app ./android/", "test": "jest", "precommit": "lint-staged", @@ -28,6 +28,7 @@ "apollo-client-preset": "^1.0.8", "apollo-codegen": "^0.20.2", "apollo-link-context": "^1.0.10", + "apollo-link-ws": "^1.0.17", "debounce": "^1.2.0", "graphql": "^14.0.2", "graphql-tag": "^2.10.0", @@ -35,10 +36,10 @@ "idx": "^2.5.2", "moment": "^2.22.2", "ramda": "^0.26.1", - "react": "16.7.0-alpha.0", + "react": "16.8.0", "react-apollo": "^2.3.2", "react-apollo-hooks": "^0.2.1", - "react-native": "npm:@brunolemos/react-native", + "react-native": "0.59.4", "react-native-callkeep": "^2.0.2", "react-native-dotenv": "^0.2.0", "react-native-fetch-blob": "^0.10.8", @@ -55,10 +56,12 @@ "redux": "^4.0.1", "redux-logger": "^3.0.6", "styled-components": "^3.4.9", + "subscriptions-transport-ws": "^0.9.16", "tslint-plugin-graphql": "^0.0.6" }, "devDependencies": { - "@babel/core": "^7.2.0", + "@babel/core": "^7.4.0", + "@babel/runtime": "^7.4.2", "@types/debounce": "^1.2.0", "@types/gravatar": "^1.4.28", "@types/jest": "^23.3.10", @@ -78,12 +81,12 @@ "babel-jest": "23.6.0", "babel-preset-react-native": "^5.0.2", "husky": "^1.2.0", - "jest": "23.6.0", + "jest": "^24.5.0", "lint-staged": "^8.1.0", - "metro-react-native-babel-preset": "0.50.0", + "metro-react-native-babel-preset": "^0.53.1", "prettier": "^1.15.3", "react-native-typescript-transformer": "^1.2.10", - "react-test-renderer": "16.6.1", + "react-test-renderer": "16.8.3", "ts-jest": "^23.10.5", "tslint": "^5.11.0", "tslint-config-airbnb": "^5.11.1", diff --git a/packages/app/src/screens/Chat/ChatsList.tsx b/packages/app/src/screens/Chat/ChatsList.tsx index 88601b7..2e2631a 100644 --- a/packages/app/src/screens/Chat/ChatsList.tsx +++ b/packages/app/src/screens/Chat/ChatsList.tsx @@ -237,6 +237,47 @@ const ChatList = (props: Props) => { }, }) + console.log(props); + + React.useEffect( + () => { + if (!loading && !error) { + if (props.chattingUser === '') { + props.data.startPolling(500) + } else { + props.data.stopPolling() + } + } + }, + [props.chattingUser, props.data.loading], + ) + + React.useEffect(() => { + if (!loading && !error) { + props.data.subscribeToMore({ + document: WEBRTC_SUBSCRIPTION, + variables: { + id: me._id, + }, + updateQuery: async (_, { subscriptionData }) => { + const { callID, type, fromUser, chat, message } = subscriptionData.data.webRTCMessage + const Busy = await RNCallKit.checkIfBusy() + if (Busy) { + await refuseCall(callID, chat._id, CALL_TYPES.BUSY) + } + + if (type === 'offer') { + RNCallKit.displayIncomingCall(callID, fromUser, '', 'generic', true) + RNCallKit.addEventListener('endCall', () => + refuseCall(callID, chat._id, CALL_TYPES.REJECT), + ) + RNCallKit.addEventListener('answerCall', () => answerCall(callID, chat._id, fromUser, message)) + } + }, + }) + } + }, [props.data.loading]) + const goToChat = (_id: string, userId: string, user: string) => { props.setChattingUser(user) props.navigation.navigate(Routes.ChatScreen, { @@ -360,41 +401,6 @@ const ChatList = (props: Props) => { }) } - React.useEffect( - () => { - if (props.chattingUser === '') { - props.data.startPolling(500) - } else { - props.data.stopPolling() - } - }, - [props.chattingUser], - ) - - React.useEffect(() => { - props.data.subscribeToMore({ - document: WEBRTC_SUBSCRIPTION, - variables: { - id: me._id, - }, - updateQuery: async (_, { subscriptionData }) => { - const { callID, type, fromUser, chat, message } = subscriptionData.data.webRTCMessage - const Busy = await RNCallKit.checkIfBusy() - if (Busy) { - await refuseCall(callID, chat._id, CALL_TYPES.BUSY) - } - - if (type === 'offer') { - RNCallKit.displayIncomingCall(callID, fromUser, '', 'generic', true) - RNCallKit.addEventListener('endCall', () => - refuseCall(callID, chat._id, CALL_TYPES.REJECT), - ) - RNCallKit.addEventListener('answerCall', () => answerCall(callID, chat._id, fromUser, message)) - } - }, - }) - }, []) - return (