Import Contacts

This commit is contained in:
Omar 2019-01-05 14:51:29 -08:00
parent a4fc792161
commit a5135fc04b
14 changed files with 608 additions and 211 deletions

View File

@ -137,6 +137,7 @@ android {
}
dependencies {
compile project(':react-native-contacts')
compile project(':react-native-webview')
compile project(':react-native-vector-icons')
compile project(':react-native-gesture-handler')

View File

@ -3,6 +3,7 @@ package com.tagfer;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.rt2zz.reactnativecontacts.ReactNativeContacts;
import com.reactnativecommunity.webview.RNCWebViewPackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
@ -27,6 +28,7 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ReactNativeContacts(),
new RNCWebViewPackage(),
new VectorIconsPackage(),
new RNGestureHandlerPackage(),

View File

@ -1,4 +1,6 @@
rootProject.name = 'Tagfer'
include ':react-native-contacts'
project(':react-native-contacts').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-contacts/android')
include ':react-native-webview'
project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
include ':react-native-vector-icons'

View File

@ -5,13 +5,18 @@
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
00703E436FE7412D82B8B2ED /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A364E2A9804D0FA6E9C2BD /* libRealmReact.a */; };
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; };
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
00E356F31AD99517003FC87E /* TagferTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* TagferTests.m */; };
0446F832C7AD487A80B3E846 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4F118585274849369219BFCB /* Zocial.ttf */; };
054B5176D9D541119DF55198 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3F803AC4AB4414E9AC91E62 /* libRNVectorIcons.a */; };
06C8DD01CFDB435EB4BEE3CD /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6C25D0FC266544929C701A89 /* MaterialIcons.ttf */; };
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
@ -22,6 +27,7 @@
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
1BF10613A6304DD5B4189358 /* libRCTContacts.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7093AEA19630406782486DB0 /* libRCTContacts.a */; };
2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
@ -35,25 +41,21 @@
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
2DCD954D1E0B4F2C00145EB5 /* TagferTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* TagferTests.m */; };
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
00703E436FE7412D82B8B2ED /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A364E2A9804D0FA6E9C2BD /* libRealmReact.a */; };
70DA5C2695334981A0240A1D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD99765C4D944D88DFB0C3D /* libc++.tbd */; };
840B2F4BA84C4F819BD96330 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = E76DD57CF0E846F0B388335E /* libz.tbd */; };
C82C9AD575F240A5AAC7BD27 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F4AB2611A0B4CE5A9FD41C4 /* libRNGestureHandler.a */; };
054B5176D9D541119DF55198 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3F803AC4AB4414E9AC91E62 /* libRNVectorIcons.a */; };
352FECA94AE843BA869FA7D9 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2D8A567E322246B4BEB9BFF3 /* Entypo.ttf */; };
682FE70E8BF1459990F7CEEB /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6084982B5FB04776AB51F562 /* EvilIcons.ttf */; };
9D589CB7979845E6B5306594 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A0DFBDDDC4B54403AD569E6C /* Feather.ttf */; };
973D9FD5F5624A0AA1A2028E /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B6A6C1EAC009435782F73933 /* FontAwesome.ttf */; };
7C2FD9C5AE014828B86818FE /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DB6CE8411CF34300A2ED791F /* Foundation.ttf */; };
3F8FE81467D4436983DEB534 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 37BE857FFF804A28981B46FB /* Ionicons.ttf */; };
682FE70E8BF1459990F7CEEB /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6084982B5FB04776AB51F562 /* EvilIcons.ttf */; };
70DA5C2695334981A0240A1D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD99765C4D944D88DFB0C3D /* libc++.tbd */; };
7C2FD9C5AE014828B86818FE /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DB6CE8411CF34300A2ED791F /* Foundation.ttf */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
840B2F4BA84C4F819BD96330 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = E76DD57CF0E846F0B388335E /* libz.tbd */; };
973D9FD5F5624A0AA1A2028E /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B6A6C1EAC009435782F73933 /* FontAwesome.ttf */; };
9D589CB7979845E6B5306594 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A0DFBDDDC4B54403AD569E6C /* Feather.ttf */; };
AD3198E72354473C9CFBB5F9 /* libRNCWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D20792500D4B45FCBCC640FE /* libRNCWebView.a */; };
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
C82C9AD575F240A5AAC7BD27 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F4AB2611A0B4CE5A9FD41C4 /* libRNGestureHandler.a */; };
CCFF320D8D3B429E98A05055 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AC4E3A77FB9C4C96AC304034 /* MaterialCommunityIcons.ttf */; };
06C8DD01CFDB435EB4BEE3CD /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6C25D0FC266544929C701A89 /* MaterialIcons.ttf */; };
D9DE5DDB1B7D4D3A97259D9B /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F025858B6C364BB985AFD241 /* Octicons.ttf */; };
E42DCC4F98F24BC99A74B29B /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 05246261280A4D30B02BFE85 /* SimpleLineIcons.ttf */; };
0446F832C7AD487A80B3E846 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4F118585274849369219BFCB /* Zocial.ttf */; };
AD3198E72354473C9CFBB5F9 /* libRNCWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D20792500D4B45FCBCC640FE /* libRNCWebView.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -99,6 +101,41 @@
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = Tagfer;
};
0715CF9A21DF118C004C7919 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 90515674F3834203B1DE6531 /* RCTContacts.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 1441618E1BD0A79300FA4F59;
remoteInfo = RCTContacts;
};
0715CF9D21DF118C004C7919 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5F8E09E191C84292BA09C78C /* RealmReact.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = F60690131CA2766F0003FB26;
remoteInfo = RealmReact;
};
0715CFA021DF118C004C7919 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A6904FF8C83444048D6F2AF5 /* RNCWebView.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RNCWebView;
};
0715CFA321DF118C004C7919 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D85798D39A3B49938F477F4D /* RNGestureHandler.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RNGestureHandler;
};
0715CFA621DF118C004C7919 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2DACAA5CB9F345B5888D681E /* RNVectorIcons.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
remoteInfo = RNVectorIcons;
};
139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
@ -342,6 +379,7 @@
00E356EE1AD99517003FC87E /* TagferTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TagferTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* TagferTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TagferTests.m; sourceTree = "<group>"; };
05246261280A4D30B02BFE85 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* Tagfer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tagfer.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -355,31 +393,32 @@
2D02E47B1E0B4A5D006451C7 /* Tagfer-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Tagfer-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
2D02E4901E0B4A5D006451C7 /* Tagfer-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tagfer-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
2D8A567E322246B4BEB9BFF3 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
2DACAA5CB9F345B5888D681E /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
35A364E2A9804D0FA6E9C2BD /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = "<group>"; };
37BE857FFF804A28981B46FB /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
4BD99765C4D944D88DFB0C3D /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
4F118585274849369219BFCB /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
4F4AB2611A0B4CE5A9FD41C4 /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = "<group>"; };
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
5F8E09E191C84292BA09C78C /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; };
6084982B5FB04776AB51F562 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
6C25D0FC266544929C701A89 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
7093AEA19630406782486DB0 /* libRCTContacts.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTContacts.a; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
90515674F3834203B1DE6531 /* RCTContacts.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTContacts.xcodeproj; path = "../node_modules/react-native-contacts/ios/RCTContacts.xcodeproj"; sourceTree = "<group>"; };
A0DFBDDDC4B54403AD569E6C /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
A6904FF8C83444048D6F2AF5 /* RNCWebView.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCWebView.xcodeproj; path = "../node_modules/react-native-webview/ios/RNCWebView.xcodeproj"; sourceTree = "<group>"; };
AC4E3A77FB9C4C96AC304034 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
5F8E09E191C84292BA09C78C /* RealmReact.xcodeproj */ = {isa = PBXFileReference; name = "RealmReact.xcodeproj"; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
35A364E2A9804D0FA6E9C2BD /* libRealmReact.a */ = {isa = PBXFileReference; name = "libRealmReact.a"; path = "libRealmReact.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
4BD99765C4D944D88DFB0C3D /* libc++.tbd */ = {isa = PBXFileReference; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = sourcecode.text-based-dylib-definition; explicitFileType = undefined; includeInIndex = 0; };
E76DD57CF0E846F0B388335E /* libz.tbd */ = {isa = PBXFileReference; name = "libz.tbd"; path = "usr/lib/libz.tbd"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = sourcecode.text-based-dylib-definition; explicitFileType = undefined; includeInIndex = 0; };
D85798D39A3B49938F477F4D /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; name = "RNGestureHandler.xcodeproj"; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
4F4AB2611A0B4CE5A9FD41C4 /* libRNGestureHandler.a */ = {isa = PBXFileReference; name = "libRNGestureHandler.a"; path = "libRNGestureHandler.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
2DACAA5CB9F345B5888D681E /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; name = "RNVectorIcons.xcodeproj"; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
D3F803AC4AB4414E9AC91E62 /* libRNVectorIcons.a */ = {isa = PBXFileReference; name = "libRNVectorIcons.a"; path = "libRNVectorIcons.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
2D8A567E322246B4BEB9BFF3 /* Entypo.ttf */ = {isa = PBXFileReference; name = "Entypo.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
6084982B5FB04776AB51F562 /* EvilIcons.ttf */ = {isa = PBXFileReference; name = "EvilIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
A0DFBDDDC4B54403AD569E6C /* Feather.ttf */ = {isa = PBXFileReference; name = "Feather.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
B6A6C1EAC009435782F73933 /* FontAwesome.ttf */ = {isa = PBXFileReference; name = "FontAwesome.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
DB6CE8411CF34300A2ED791F /* Foundation.ttf */ = {isa = PBXFileReference; name = "Foundation.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
37BE857FFF804A28981B46FB /* Ionicons.ttf */ = {isa = PBXFileReference; name = "Ionicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
AC4E3A77FB9C4C96AC304034 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; name = "MaterialCommunityIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
6C25D0FC266544929C701A89 /* MaterialIcons.ttf */ = {isa = PBXFileReference; name = "MaterialIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
F025858B6C364BB985AFD241 /* Octicons.ttf */ = {isa = PBXFileReference; name = "Octicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
05246261280A4D30B02BFE85 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; name = "SimpleLineIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
4F118585274849369219BFCB /* Zocial.ttf */ = {isa = PBXFileReference; name = "Zocial.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
A6904FF8C83444048D6F2AF5 /* RNCWebView.xcodeproj */ = {isa = PBXFileReference; name = "RNCWebView.xcodeproj"; path = "../node_modules/react-native-webview/ios/RNCWebView.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
D20792500D4B45FCBCC640FE /* libRNCWebView.a */ = {isa = PBXFileReference; name = "libRNCWebView.a"; path = "libRNCWebView.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
B6A6C1EAC009435782F73933 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
D20792500D4B45FCBCC640FE /* libRNCWebView.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNCWebView.a; sourceTree = "<group>"; };
D3F803AC4AB4414E9AC91E62 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
D85798D39A3B49938F477F4D /* 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 = "<group>"; };
DB6CE8411CF34300A2ED791F /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
E76DD57CF0E846F0B388335E /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
F025858B6C364BB985AFD241 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -413,6 +452,7 @@
C82C9AD575F240A5AAC7BD27 /* libRNGestureHandler.a in Frameworks */,
054B5176D9D541119DF55198 /* libRNVectorIcons.a in Frameworks */,
AD3198E72354473C9CFBB5F9 /* libRNCWebView.a in Frameworks */,
1BF10613A6304DD5B4189358 /* libRCTContacts.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -501,6 +541,58 @@
name = "Supporting Files";
sourceTree = "<group>";
};
0715CF6821DF1181004C7919 /* Recovered References */ = {
isa = PBXGroup;
children = (
35A364E2A9804D0FA6E9C2BD /* libRealmReact.a */,
4F4AB2611A0B4CE5A9FD41C4 /* libRNGestureHandler.a */,
D3F803AC4AB4414E9AC91E62 /* libRNVectorIcons.a */,
D20792500D4B45FCBCC640FE /* libRNCWebView.a */,
7093AEA19630406782486DB0 /* libRCTContacts.a */,
);
name = "Recovered References";
sourceTree = "<group>";
};
0715CF8F21DF118B004C7919 /* Products */ = {
isa = PBXGroup;
children = (
0715CFA721DF118C004C7919 /* libRNVectorIcons.a */,
);
name = Products;
sourceTree = "<group>";
};
0715CF9121DF118B004C7919 /* Products */ = {
isa = PBXGroup;
children = (
0715CFA121DF118C004C7919 /* libRNCWebView.a */,
);
name = Products;
sourceTree = "<group>";
};
0715CF9321DF118B004C7919 /* Products */ = {
isa = PBXGroup;
children = (
0715CF9E21DF118C004C7919 /* libRealmReact.a */,
);
name = Products;
sourceTree = "<group>";
};
0715CF9521DF118B004C7919 /* Products */ = {
isa = PBXGroup;
children = (
0715CFA421DF118C004C7919 /* libRNGestureHandler.a */,
);
name = Products;
sourceTree = "<group>";
};
0715CF9721DF118B004C7919 /* Products */ = {
isa = PBXGroup;
children = (
0715CF9B21DF118C004C7919 /* libRCTContacts.a */,
);
name = Products;
sourceTree = "<group>";
};
139105B71AF99BAD00B5F7CC /* Products */ = {
isa = PBXGroup;
children = (
@ -605,6 +697,7 @@
D85798D39A3B49938F477F4D /* RNGestureHandler.xcodeproj */,
2DACAA5CB9F345B5888D681E /* RNVectorIcons.xcodeproj */,
A6904FF8C83444048D6F2AF5 /* RNCWebView.xcodeproj */,
90515674F3834203B1DE6531 /* RCTContacts.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@ -627,6 +720,7 @@
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
EEC11838EA02439898BF7CB5 /* Resources */,
0715CF6821DF1181004C7919 /* Recovered References */,
);
indentWidth = 2;
sourceTree = "<group>";
@ -654,7 +748,7 @@
sourceTree = "<group>";
};
EEC11838EA02439898BF7CB5 /* Resources */ = {
isa = "PBXGroup";
isa = PBXGroup;
children = (
2D8A567E322246B4BEB9BFF3 /* Entypo.ttf */,
6084982B5FB04776AB51F562 /* EvilIcons.ttf */,
@ -670,7 +764,6 @@
);
name = Resources;
sourceTree = "<group>";
path = "";
};
/* End PBXGroup section */
@ -795,6 +888,10 @@
ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */;
ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
},
{
ProductGroup = 0715CF9721DF118B004C7919 /* Products */;
ProjectRef = 90515674F3834203B1DE6531 /* RCTContacts.xcodeproj */;
},
{
ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
@ -831,6 +928,22 @@
ProductGroup = 146834001AC3E56700842450 /* Products */;
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
},
{
ProductGroup = 0715CF9321DF118B004C7919 /* Products */;
ProjectRef = 5F8E09E191C84292BA09C78C /* RealmReact.xcodeproj */;
},
{
ProductGroup = 0715CF9121DF118B004C7919 /* Products */;
ProjectRef = A6904FF8C83444048D6F2AF5 /* RNCWebView.xcodeproj */;
},
{
ProductGroup = 0715CF9521DF118B004C7919 /* Products */;
ProjectRef = D85798D39A3B49938F477F4D /* RNGestureHandler.xcodeproj */;
},
{
ProductGroup = 0715CF8F21DF118B004C7919 /* Products */;
ProjectRef = 2DACAA5CB9F345B5888D681E /* RNVectorIcons.xcodeproj */;
},
);
projectRoot = "";
targets = (
@ -878,6 +991,41 @@
remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
0715CF9B21DF118C004C7919 /* libRCTContacts.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTContacts.a;
remoteRef = 0715CF9A21DF118C004C7919 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
0715CF9E21DF118C004C7919 /* libRealmReact.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRealmReact.a;
remoteRef = 0715CF9D21DF118C004C7919 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
0715CFA121DF118C004C7919 /* libRNCWebView.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRNCWebView.a;
remoteRef = 0715CFA021DF118C004C7919 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
0715CFA421DF118C004C7919 /* libRNGestureHandler.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRNGestureHandler.a;
remoteRef = 0715CFA321DF118C004C7919 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
0715CFA721DF118C004C7919 /* libRNVectorIcons.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRNVectorIcons.a;
remoteRef = 0715CFA621DF118C004C7919 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@ -1251,9 +1399,25 @@
"DEBUG=1",
"$(inherited)",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = TagferTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1261,20 +1425,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Tagfer.app/Tagfer";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Debug;
};
@ -1283,9 +1433,25 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = TagferTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1293,20 +1459,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Tagfer.app/Tagfer";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Release;
};
@ -1316,6 +1468,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = Tagfer/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@ -1326,13 +1486,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = Tagfer;
VERSIONING_SYSTEM = "apple-generic";
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Debug;
};
@ -1341,6 +1494,14 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = 1;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = Tagfer/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
@ -1351,13 +1512,6 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = Tagfer;
VERSIONING_SYSTEM = "apple-generic";
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Release;
};
@ -1373,8 +1527,24 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = "Tagfer-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1384,20 +1554,6 @@
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.2;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Debug;
};
@ -1413,8 +1569,24 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_NO_COMMON_BLOCKS = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = "Tagfer-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1424,20 +1596,6 @@
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.2;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Release;
};
@ -1452,8 +1610,24 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = "Tagfer-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1463,20 +1637,6 @@
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Tagfer-tvOS.app/Tagfer-tvOS";
TVOS_DEPLOYMENT_TARGET = 10.1;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Debug;
};
@ -1491,8 +1651,24 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_NO_COMMON_BLOCKS = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
"$(SRCROOT)/../node_modules/react-native-contacts/ios/RCTContacts",
);
INFOPLIST_FILE = "Tagfer-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@ -1502,20 +1678,6 @@
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Tagfer-tvOS.app/Tagfer-tvOS";
TVOS_DEPLOYMENT_TARGET = 10.1;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/realm/src/**",
"$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-webview/ios",
);
};
name = Release;
};

View File

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSContactsUsageDescription</key>
<string>Allow the user to search for his phone contacts in network</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
@ -25,7 +27,7 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSLocationWhenInUseUsageDescription</key>
<string/>
<string></string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>

5
package-lock.json generated
View File

@ -8523,6 +8523,11 @@
"yargs": "^9.0.0"
}
},
"react-native-contacts": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/react-native-contacts/-/react-native-contacts-2.2.5.tgz",
"integrity": "sha512-yorPL9PS/g3lKIczZZ18s+LI2+tPHfudsAwuEKA63VB0YteBb5Rz2NnMmBzvI3bRdvNgzzXoCPwxOzAHL0tt1g=="
},
"react-native-country-picker-modal": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/react-native-country-picker-modal/-/react-native-country-picker-modal-0.6.2.tgz",

View File

@ -11,6 +11,7 @@
"i18n-js": "^3.1.0",
"react": "16.6.3",
"react-native": "0.57.8",
"react-native-contacts": "^2.2.5",
"react-native-country-picker-modal": "^0.6.2",
"react-native-elements": "^0.19.1",
"react-native-flash-message": "^0.1.10",

View File

@ -1,73 +0,0 @@
/** Pure component for each Contact Import Item **/
import React from 'react';
import { Image } from 'react-native';
import { CheckBox, ListItem } from 'react-native-elements';
import colors from '../../config/colors.json';
class ContactImportListItem extends React.PureComponent {
/**
* Render method
**/
render() {
const { isChecked, item, onPress } = this.props;
const title = `${item.fullName}`;
const subTitle = `${item.jobTitle} ${item.company}`;
if (item.contactAvatarImg) {
return (
<ListItem
roundAvatar
key={item.key}
title={title}
subtitle={subTitle}
leftIcon={
<Image
source={{ uri: item.contactAvatarImg }}
style={styles.avatarImageStyle}
/>
}
onPress={onPress}
rightIcon={
<CheckBox
checked={isChecked}
containerStyle={{ backgroundColor: colors.transparent, borderWidth: 0 }}
onPress={onPress}
/>
}
/>
);
}
return (
<ListItem
roundAvatar
key={item.key}
title={title}
subtitle={subTitle}
leftIcon={{ name: 'account-circle', size: 50, color: colors.lightGrey }}
onPress={onPress}
rightIcon={
<CheckBox
checked={isChecked}
containerStyle={{ backgroundColor: colors.transparent, borderWidth: 0 }}
onPress={onPress}
/>
}
/>
);
}
}
const styles = {
avatarImageStyle: {
width: 40,
height: 40,
borderWidth: 1,
borderRadius: 20,
marginLeft: 5,
marginRight: 10
}
};
export default ContactImportListItem;

View File

@ -0,0 +1,61 @@
import React from 'react';
import { CheckBox, ListItem, Avatar } from 'react-native-elements';
import colors from '../../config/colors.json';
import { isEmpty } from '../../utils/aux';
const ContactListItem = ({ contact, selected, onPress }) => {
const { givenName, familyName, phoneNumbers } = contact;
const fullName = `${contact.givenName} ${contact.familyName}`;
return (
<ListItem
roundAvatar
avatar={<TagferAvatar firstName={givenName} lastName={familyName} />}
title={fullName}
subtitle={phoneNumbers.length !== 0 ? phoneNumbers[0].number : ''}
subtitleStyle={{ fontSize: 12, fontWeight: 'normal' }}
titleStyle={{ fontSize: 18, color: colors.black }}
rightIcon={<TagferCheckbox isChecked={selected} onPress={onPress} />}
containerStyle={{ backgroundColor: colors.white }}
/>
);
};
const TagferCheckbox = ({ isChecked, onPress }) => (
<CheckBox
iconRight
iconType='ionicon'
checkedIcon='ios-checkmark-circle'
uncheckedIcon='ios-add-circle-outline'
onIconPress={onPress}
onPress={onPress}
uncheckedColor={colors.addGreen}
checkedColor={colors.labelBlue}
checked={isChecked}
size={36}
containerStyle={{ backgroundColor: colors.transparent, borderWidth: 0, margin: 0, padding: 0, marginRight: 0 }}
/>
);
const TagferAvatar = ({ firstName, lastName }) => {
let initials = '';
if (!isEmpty(firstName)) {
initials += firstName[0];
}
if (!isEmpty(lastName)) {
initials += lastName[0];
}
return (
<Avatar
small
rounded
title={initials.toUpperCase()}
activeOpacity={0.7}
/>
);
};
export default ContactListItem;

View File

@ -27,6 +27,10 @@ const endpoints = {
verifyCode: {
method: 'POST',
url: `${baseurl}/auth/phone/verify`
},
findUsersByPhone: {
method: 'POST',
url: `${baseurl}/users/by/phone`
}
};

View File

@ -6,6 +6,7 @@
"darkGrey": "#535353",
"darkOrange": "#FBBF35",
"faintGreen": "#DDEEDD",
"addGreen": "#00E62E",
"green": "#4CD964",
"grey": "#7D7D7D",
"greyBlue": "#8699A7",

View File

@ -5,6 +5,7 @@ import SignupScreenOne from '../screens/auth/SignupScreen1';
import SignupScreenTwo from '../screens/auth/SignupScreen2';
import SignupScreenThreeA from '../screens/auth/SignupScreen3a';
import SignupScreenThreeB from '../screens/auth/SignupScreen3b';
import SignupScreenFive from '../screens/auth/SignupScreen5';
import TwitterWebView from '../screens/auth/TwitterWebView';
import ForgotPasswordScreen from '../screens/auth/ForgotPasswordScreen';
@ -16,6 +17,7 @@ const MainNavigator = createStackNavigator({
signup2: SignupScreenTwo,
signup3a: SignupScreenThreeA,
signup3b: SignupScreenThreeB,
signup5: SignupScreenFive
});
const RootNavigator = createStackNavigator(

View File

@ -197,10 +197,10 @@
"createScreen_title": "Add Contact",
"editScreen_title": "Edit Contact",
"editScreen_textButton": "Text Contact",
"importScreen_description": "Import your contacts, friends, and family now. After you create your profile you can invite them to join your Tagfer network. Your contacts will be on the Blockchain for you to manage and ONLY you will have access to them. The more trusted contacts you have in your network, the more Tagfer can help you harness your net worth.",
"importScreen_description": "Invite your contacts from you phone onto Tagfer. The more trusted contacts you have, we can help you harness your networth.",
"importScreen_noContacts": "We didn't find any new contacts to import.",
"importScreen_startButton": "Import",
"importScreen_title": "Import Phone Contacts",
"importScreen_title": "Find your network",
"importScreen_warning": "This may take awhile depending on the number of contacts you have. Are you sure?",
"listAllScreen_title": "All",
"mainScreen_title": "Contacts",

View File

@ -0,0 +1,227 @@
import React from 'react';
import { Alert, Linking, Dimensions, Text, View, FlatList, TouchableOpacity } from 'react-native';
import { Button, CheckBox } from 'react-native-elements';
import Contacts from 'react-native-contacts';
import { strings } from '../../locales/i18n';
import { fetchAuth } from '../../utils/fetch';
import colors from '../../config/colors.json';
import errors from '../../config/errors';
import endpoints from '../../config/apiEndpoints';
import ContactListItem from '../../components/lists/ContactListItem';
export default class SignupScreenFive extends React.Component {
static navigationOptions = {
title: strings('contact.importScreen_title'),
headerStyle: { borderBottomWidth: 0, backgroundColor: colors.offWhite },
headerTintColor: '#0D497E',
headerRight: <Text style={{ color: colors.middleGrey, marginRight: 5 }}>5/6</Text>
};
constructor(props) {
super(props);
this.state = {
allContacts: [],
selectedContacts: new Map()
};
this.onSelectAll = this.onSelectAll.bind(this);
this.fetchContactsIOS();
}
// Handles when the user presses on the select all button
onSelectAll() {
const { allContacts } = this.state;
const selectedContacts = new Map();
if (this.state.selectedContacts.size === 0) {
for (let i = 0; i < allContacts.length; i++) {
selectedContacts.set(i, allContacts[i].phoneNumbers);
}
}
this.setState({ selectedContacts });
}
// When a user clicks on a single contact
onSelectContact(index) {
this.setState((state) => {
const selectedContacts = new Map(state.selectedContacts);
if (selectedContacts.has(index)) {
selectedContacts.delete(index);
} else {
const phoneNumbers = this.state.allContacts[index].phoneNumbers;
selectedContacts.set(index, phoneNumbers);
}
return { selectedContacts };
});
}
// Sends the request and navigates the user to next page.
onSaveButtonPress() {
const { selectedContacts } = this.state;
const phoneNumbers = [];
for (const record of selectedContacts.values()) {
phoneNumbers.push(...record.map(entry => entry.number));
}
fetchAuth(endpoints.findUsersByPhone, { contacts: phoneNumbers })
.then(res => console.log(res))
.catch(() => console.log(errors.APP_NETWORK_ERROR));
this.props.navigation.navigate('signup6');
}
// BEGIN: iOS Contacts Handlers
getContacts() {
Contacts.getAllWithoutPhotos((error, contacts) => {
if (error) {
this.props.navigation.navigate('signup6');
} else {
const selectedContacts = new Map();
for (let i = 0; i < contacts.length; i++) {
selectedContacts.set(i, contacts[i].phoneNumbers);
}
this.setState({ allContacts: contacts, selectedContacts });
}
});
}
createSettingsAlert() {
Alert.alert(
'Tagfer does not have access to your contacts',
'To enable access, tap Settings and turn on Contacts',
[
{ text: 'Cancel', onPress: () => this.props.navigation.navigate('signup6') },
{ text: 'Settings', onPress: () => Linking.openURL('app-settings:') }
]
);
}
fetchContactsIOS() {
Contacts.checkPermission((error, permission) => {
if (error) this.props.navigation.navigate('signup6');
if (permission === 'denied') {
this.createSettingsAlert();
} else {
this.getContacts();
}
});
}
// END: iOS Handlers
renderItem(contact, index) {
const selected = this.state.selectedContacts.has(index);
return <ContactListItem contact={contact} selected={selected} onPress={() => this.onSelectContact(index)} />;
}
render() {
return (
<View style={styles.container}>
{/* INSTRUCTIONS */}
<Text style={styles.instructions}>{strings('contact.importScreen_description')}</Text>
{/* FLAT LIST OF CONTACTS */}
<FlatList
ListHeaderComponent={<ListHeader isChecked={this.state.selectedContacts.size === this.state.allContacts.length} onPress={this.onSelectAll} onSkip={() => this.props.navigation.navigate('signup6')} />}
data={this.state.allContacts}
extraData={this.state}
renderItem={({ item, index }) => this.renderItem(item, index)}
keyExtractor={(item) => item.recordID}
style={{ flex: 1, marginHorizontal: 10 }}
/>
{/* SAVE AND CONTINUE BUTTON */}
<Button
onPress={this.onSaveButtonPress.bind(this)}
title={strings('common.buttons.saveAndContinue')}
buttonStyle={styles.buttonStyle}
loading={this.state.loading}
fontSize={20}
iconRight={styles.chevronIconStyle}
/>
</View>
);
}
}
const ListHeader = ({ isChecked, onPress, onSkip }) => (
<View style={styles.headerContainer}>
{/* CHECKBOX */}
<CheckBox
iconType='material'
checkedIcon='check-box'
uncheckedIcon='check-box-outline-blank'
uncheckedColor={colors.darkGrey}
checkedColor={colors.labelBlue}
onPress={onPress}
onIconPress={onPress}
containerStyle={styles.checkBoxContainer}
size={28}
title={isChecked ? 'Deselect All' : 'Select All'}
textStyle={styles.checkBoxTextStyle}
checked={isChecked}
/>
{/* SKIP BUTTON */}
<TouchableOpacity style={{ marginRight: 15 }} onPress={onSkip}>
<Text style={styles.skipButton}>SKIP</Text>
</TouchableOpacity>
</View>
);
const SCREEN_WIDTH = Dimensions.get('window').width;
const styles = {
container: {
flex: 1,
backgroundColor: colors.offWhite
},
headerContainer: {
flex: 1,
justifyContent: 'space-between',
alignItems: 'center',
backgroundColor: colors.white,
flexDirection: 'row',
borderBottomColor: '#E0E3EF',
borderBottomWidth: 2
},
checkBoxContainer: {
backgroundColor: colors.white,
borderWidth: 0
},
checkBoxTextStyle: {
fontSize: 16,
fontWeight: 'normal',
color: colors.darkGrey
},
instructions: {
left: 20,
width: '90%',
marginTop: 20,
marginBottom: 30,
fontSize: 16,
color: colors.grey,
textAlign: 'justify'
},
skipButton: {
fontSize: 12,
color: colors.darkGrey
},
buttonStyle: {
width: SCREEN_WIDTH * 0.9,
marginTop: 15,
marginBottom: 30,
borderRadius: 5,
backgroundColor: colors.buttonBlue
},
chevronIconStyle: {
name: 'chevron-right',
color: colors.white,
size: 30,
style: { marginLeft: 0 }
}
};