feat: add RNCamera
add RNCamera module and fix a bug on iOS which lead to crash. See react-native #28583, #28545
Showing
15 changed files
with
551 additions
and
163 deletions
| @@ -135,6 +135,8 @@ android { | @@ -135,6 +135,8 @@ android { | ||
| 135 | targetSdkVersion rootProject.ext.targetSdkVersion | 135 | targetSdkVersion rootProject.ext.targetSdkVersion |
| 136 | versionCode 1 | 136 | versionCode 1 |
| 137 | versionName "1.0" | 137 | versionName "1.0" |
| 138 | + missingDimensionStrategy 'react-native-camera', 'general' | ||
| 139 | + multiDexEnabled true | ||
| 138 | } | 140 | } |
| 139 | splits { | 141 | splits { |
| 140 | abi { | 142 | abi { |
| 1 | -<manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ngplay"> |
| 2 | - package="com.ngplay"> | ||
| 3 | 2 | ||
| 4 | - <uses-permission android:name="android.permission.INTERNET" /> | 3 | + <uses-permission android:name="android.permission.INTERNET" /> |
| 5 | 4 | ||
| 6 | - <application | 5 | + <!-- 🚨 Permissioins start 🚨 --> |
| 7 | - android:name=".MainApplication" | 6 | + |
| 8 | - android:label="@string/app_name" | 7 | + <!-- <uses-permission android:name="android.permission.ACCEPT_HANDOVER" />--> |
| 9 | - android:icon="@mipmap/ic_launcher" | 8 | + <!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />--> |
| 10 | - android:roundIcon="@mipmap/ic_launcher_round" | 9 | + <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />--> |
| 11 | - android:allowBackup="false" | 10 | + <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />--> |
| 12 | - android:theme="@style/AppTheme"> | 11 | + <!-- <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />--> |
| 13 | - <activity | 12 | + <!-- <uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />--> |
| 14 | - android:name=".MainActivity" | 13 | + <!-- <uses-permission android:name="android.permission.BODY_SENSORS" />--> |
| 15 | - android:label="@string/app_name" | 14 | + <!-- <uses-permission android:name="android.permission.CALL_PHONE" />--> |
| 16 | - android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" | 15 | + <uses-permission android:name="android.permission.CAMERA" /> |
| 17 | - android:launchMode="singleTask" | 16 | + <!-- <uses-permission android:name="android.permission.GET_ACCOUNTS" />--> |
| 18 | - android:windowSoftInputMode="adjustResize"> | 17 | + <!-- <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />--> |
| 19 | - <intent-filter> | 18 | + <!-- <uses-permission android:name="android.permission.READ_CALENDAR" />--> |
| 20 | - <action android:name="android.intent.action.MAIN" /> | 19 | + <!-- <uses-permission android:name="android.permission.READ_CALL_LOG" />--> |
| 21 | - <category android:name="android.intent.category.LAUNCHER" /> | 20 | + <!-- <uses-permission android:name="android.permission.READ_CONTACTS" />--> |
| 22 | - </intent-filter> | 21 | + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
| 23 | - </activity> | 22 | + <!-- <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />--> |
| 24 | - <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | 23 | + <!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />--> |
| 25 | - </application> | 24 | + <!-- <uses-permission android:name="android.permission.READ_SMS" />--> |
| 25 | + <!-- <uses-permission android:name="android.permission.RECEIVE_MMS" />--> | ||
| 26 | + <!-- <uses-permission android:name="android.permission.RECEIVE_SMS" />--> | ||
| 27 | + <!-- <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />--> | ||
| 28 | + <!-- <uses-permission android:name="android.permission.RECORD_AUDIO" />--> | ||
| 29 | + <!-- <uses-permission android:name="android.permission.SEND_SMS" />--> | ||
| 30 | + <!-- <uses-permission android:name="android.permission.USE_SIP" />--> | ||
| 31 | + <!-- <uses-permission android:name="android.permission.WRITE_CALENDAR" />--> | ||
| 32 | + <!-- <uses-permission android:name="android.permission.WRITE_CALL_LOG" />--> | ||
| 33 | + <!-- <uses-permission android:name="android.permission.WRITE_CONTACTS" />--> | ||
| 34 | + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | ||
| 35 | + | ||
| 36 | + <!-- … --> | ||
| 37 | + | ||
| 38 | + <application 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"> | ||
| 39 | + <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize"> | ||
| 40 | + <intent-filter> | ||
| 41 | + <action android:name="android.intent.action.MAIN" /> | ||
| 42 | + <category android:name="android.intent.category.LAUNCHER" /> | ||
| 43 | + </intent-filter> | ||
| 44 | + </activity> | ||
| 45 | + <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | ||
| 46 | + </application> | ||
| 26 | 47 | ||
| 27 | </manifest> | 48 | </manifest> |
| @@ -8,18 +8,19 @@ | @@ -8,18 +8,19 @@ | ||
| 8 | 8 | ||
| 9 | /* Begin PBXBuildFile section */ | 9 | /* Begin PBXBuildFile section */ |
| 10 | 00E356F31AD99517003FC87E /* NGPlayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* NGPlayTests.m */; }; | 10 | 00E356F31AD99517003FC87E /* NGPlayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* NGPlayTests.m */; }; |
| 11 | - 1164347145E0DAEFB1F33C34 /* libPods-NGPlay-NGPlayTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4732ECC7CC9112665571B01 /* libPods-NGPlay-NGPlayTests.a */; }; | ||
| 12 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | 11 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; |
| 13 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; | 12 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; |
| 14 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | 13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; |
| 15 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | 14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; |
| 15 | + 288FC1B5F87808D918D46453 /* libPods-NGPlay-NGPlayTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D6D648C16083965167A7A246 /* libPods-NGPlay-NGPlayTests.a */; }; | ||
| 16 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | 16 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; |
| 17 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | 17 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; |
| 18 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | 18 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; |
| 19 | 2DCD954D1E0B4F2C00145EB5 /* NGPlayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* NGPlayTests.m */; }; | 19 | 2DCD954D1E0B4F2C00145EB5 /* NGPlayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* NGPlayTests.m */; }; |
| 20 | - 39CDDEC249ED7996A20106D1 /* libPods-NGPlay-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8362A23EE219E5DDEC7EAE08 /* libPods-NGPlay-tvOSTests.a */; }; | 20 | + 6042DD5EE85D210DAA8FB423 /* libPods-NGPlay-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B2B8A9D1FA03C19814654981 /* libPods-NGPlay-tvOS.a */; }; |
| 21 | - 838E2F862CDD952C9D5DC6B9 /* libPods-NGPlay-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5580CA2F58A9BDE573C2079C /* libPods-NGPlay-tvOS.a */; }; | 21 | + B42641190DD22299CEC01B2A /* libPods-NGPlay-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FE3472145785462D072698D /* libPods-NGPlay-tvOSTests.a */; }; |
| 22 | - EA2B88C952C6F50E4262BF80 /* libPods-NGPlay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3171A28C23A862E6FC323C63 /* libPods-NGPlay.a */; }; | 22 | + CA3002C2EBE7552EB8773862 /* libPods-NGPlay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3331BC6083E76C70FC7C040E /* libPods-NGPlay.a */; }; |
| 23 | + CE18668224486D6800FBDC7A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE18668424486D6800FBDC7A /* InfoPlist.strings */; }; | ||
| 23 | /* End PBXBuildFile section */ | 24 | /* End PBXBuildFile section */ |
| 24 | 25 | ||
| 25 | /* Begin PBXContainerItemProxy section */ | 26 | /* Begin PBXContainerItemProxy section */ |
| @@ -51,23 +52,25 @@ | @@ -51,23 +52,25 @@ | ||
| 51 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = NGPlay/Images.xcassets; sourceTree = "<group>"; }; | 52 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = NGPlay/Images.xcassets; sourceTree = "<group>"; }; |
| 52 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NGPlay/Info.plist; sourceTree = "<group>"; }; | 53 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NGPlay/Info.plist; sourceTree = "<group>"; }; |
| 53 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NGPlay/main.m; sourceTree = "<group>"; }; | 54 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NGPlay/main.m; sourceTree = "<group>"; }; |
| 55 | + 22BEBA34B828B68BDA82E305 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-NGPlayTests.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests.debug.xcconfig"; sourceTree = "<group>"; }; | ||
| 54 | 2D02E47B1E0B4A5D006451C7 /* NGPlay-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "NGPlay-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; | 56 | 2D02E47B1E0B4A5D006451C7 /* NGPlay-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "NGPlay-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 55 | 2D02E4901E0B4A5D006451C7 /* NGPlay-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "NGPlay-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; | 57 | 2D02E4901E0B4A5D006451C7 /* NGPlay-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "NGPlay-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 56 | - 3171A28C23A862E6FC323C63 /* libPods-NGPlay.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | 58 | + 2FE3472145785462D072698D /* libPods-NGPlay-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 57 | - 36D7CC1980131F16F91F5A16 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-NGPlayTests.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests.debug.xcconfig"; sourceTree = "<group>"; }; | 59 | + 3331BC6083E76C70FC7C040E /* libPods-NGPlay.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 58 | - 443F453B1BD772B1E17E2102 /* Pods-NGPlay-NGPlayTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-NGPlayTests.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests.release.xcconfig"; sourceTree = "<group>"; }; | 60 | + 3DCA2EF5483F07B06AE9B302 /* Pods-NGPlay-NGPlayTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-NGPlayTests.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests.release.xcconfig"; sourceTree = "<group>"; }; |
| 59 | - 4855A1A8C2536C58DF04B3FA /* Pods-NGPlay.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay/Pods-NGPlay.debug.xcconfig"; sourceTree = "<group>"; }; | 61 | + 7F7DD72637495F202B0A046C /* Pods-NGPlay.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay.release.xcconfig"; path = "Target Support Files/Pods-NGPlay/Pods-NGPlay.release.xcconfig"; sourceTree = "<group>"; }; |
| 60 | - 5580CA2F58A9BDE573C2079C /* libPods-NGPlay-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | 62 | + 97422F73DEA00BC480DA2587 /* Pods-NGPlay-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOS.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOS/Pods-NGPlay-tvOS.release.xcconfig"; sourceTree = "<group>"; }; |
| 61 | - 698938961D6FF8AC4FCF2E29 /* Pods-NGPlay-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOSTests/Pods-NGPlay-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; }; | 63 | + B2B8A9D1FA03C19814654981 /* libPods-NGPlay-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 62 | - 73D0BCB1250DAB139582F311 /* Pods-NGPlay.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay.release.xcconfig"; path = "Target Support Files/Pods-NGPlay/Pods-NGPlay.release.xcconfig"; sourceTree = "<group>"; }; | 64 | + C71DD678E7D90A14A575E160 /* Pods-NGPlay.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay/Pods-NGPlay.debug.xcconfig"; sourceTree = "<group>"; }; |
| 63 | - 781EA07544832578A8678DC7 /* Pods-NGPlay-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOS/Pods-NGPlay-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; | 65 | + CB37CBA7FB02085DAB6424CF /* Pods-NGPlay-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOSTests/Pods-NGPlay-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; }; |
| 64 | - 8362A23EE219E5DDEC7EAE08 /* libPods-NGPlay-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 65 | - B9229FB3695E83651E4D11D5 /* Pods-NGPlay-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOSTests/Pods-NGPlay-tvOSTests.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 66 | - C4732ECC7CC9112665571B01 /* libPods-NGPlay-NGPlayTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-NGPlayTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 67 | CE18667F24480E4200FBDC7A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; }; | 66 | CE18667F24480E4200FBDC7A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; }; |
| 67 | + CE18668324486D6800FBDC7A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; | ||
| 68 | + CE18668524486D6F00FBDC7A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; }; | ||
| 69 | + CF55E7A4CE74442883154991 /* Pods-NGPlay-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOSTests/Pods-NGPlay-tvOSTests.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 70 | + D6D648C16083965167A7A246 /* libPods-NGPlay-NGPlayTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NGPlay-NGPlayTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 68 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | 71 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; |
| 69 | 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; }; | 72 | 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; }; |
| 70 | - F63897AFB5B07795089F34F9 /* Pods-NGPlay-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOS.release.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOS/Pods-NGPlay-tvOS.release.xcconfig"; sourceTree = "<group>"; }; | 73 | + FDAF748FE731FEA71CABBF01 /* Pods-NGPlay-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NGPlay-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-NGPlay-tvOS/Pods-NGPlay-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; |
| 71 | /* End PBXFileReference section */ | 74 | /* End PBXFileReference section */ |
| 72 | 75 | ||
| 73 | /* Begin PBXFrameworksBuildPhase section */ | 76 | /* Begin PBXFrameworksBuildPhase section */ |
| @@ -75,7 +78,7 @@ | @@ -75,7 +78,7 @@ | ||
| 75 | isa = PBXFrameworksBuildPhase; | 78 | isa = PBXFrameworksBuildPhase; |
| 76 | buildActionMask = 2147483647; | 79 | buildActionMask = 2147483647; |
| 77 | files = ( | 80 | files = ( |
| 78 | - 1164347145E0DAEFB1F33C34 /* libPods-NGPlay-NGPlayTests.a in Frameworks */, | 81 | + 288FC1B5F87808D918D46453 /* libPods-NGPlay-NGPlayTests.a in Frameworks */, |
| 79 | ); | 82 | ); |
| 80 | runOnlyForDeploymentPostprocessing = 0; | 83 | runOnlyForDeploymentPostprocessing = 0; |
| 81 | }; | 84 | }; |
| @@ -83,7 +86,7 @@ | @@ -83,7 +86,7 @@ | ||
| 83 | isa = PBXFrameworksBuildPhase; | 86 | isa = PBXFrameworksBuildPhase; |
| 84 | buildActionMask = 2147483647; | 87 | buildActionMask = 2147483647; |
| 85 | files = ( | 88 | files = ( |
| 86 | - EA2B88C952C6F50E4262BF80 /* libPods-NGPlay.a in Frameworks */, | 89 | + CA3002C2EBE7552EB8773862 /* libPods-NGPlay.a in Frameworks */, |
| 87 | ); | 90 | ); |
| 88 | runOnlyForDeploymentPostprocessing = 0; | 91 | runOnlyForDeploymentPostprocessing = 0; |
| 89 | }; | 92 | }; |
| @@ -91,7 +94,7 @@ | @@ -91,7 +94,7 @@ | ||
| 91 | isa = PBXFrameworksBuildPhase; | 94 | isa = PBXFrameworksBuildPhase; |
| 92 | buildActionMask = 2147483647; | 95 | buildActionMask = 2147483647; |
| 93 | files = ( | 96 | files = ( |
| 94 | - 838E2F862CDD952C9D5DC6B9 /* libPods-NGPlay-tvOS.a in Frameworks */, | 97 | + 6042DD5EE85D210DAA8FB423 /* libPods-NGPlay-tvOS.a in Frameworks */, |
| 95 | ); | 98 | ); |
| 96 | runOnlyForDeploymentPostprocessing = 0; | 99 | runOnlyForDeploymentPostprocessing = 0; |
| 97 | }; | 100 | }; |
| @@ -99,7 +102,7 @@ | @@ -99,7 +102,7 @@ | ||
| 99 | isa = PBXFrameworksBuildPhase; | 102 | isa = PBXFrameworksBuildPhase; |
| 100 | buildActionMask = 2147483647; | 103 | buildActionMask = 2147483647; |
| 101 | files = ( | 104 | files = ( |
| 102 | - 39CDDEC249ED7996A20106D1 /* libPods-NGPlay-tvOSTests.a in Frameworks */, | 105 | + B42641190DD22299CEC01B2A /* libPods-NGPlay-tvOSTests.a in Frameworks */, |
| 103 | ); | 106 | ); |
| 104 | runOnlyForDeploymentPostprocessing = 0; | 107 | runOnlyForDeploymentPostprocessing = 0; |
| 105 | }; | 108 | }; |
| @@ -133,6 +136,7 @@ | @@ -133,6 +136,7 @@ | ||
| 133 | 13B07FB61A68108700A75B9A /* Info.plist */, | 136 | 13B07FB61A68108700A75B9A /* Info.plist */, |
| 134 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, | 137 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, |
| 135 | 13B07FB71A68108700A75B9A /* main.m */, | 138 | 13B07FB71A68108700A75B9A /* main.m */, |
| 139 | + CE18668424486D6800FBDC7A /* InfoPlist.strings */, | ||
| 136 | ); | 140 | ); |
| 137 | name = NGPlay; | 141 | name = NGPlay; |
| 138 | sourceTree = "<group>"; | 142 | sourceTree = "<group>"; |
| @@ -142,10 +146,10 @@ | @@ -142,10 +146,10 @@ | ||
| 142 | children = ( | 146 | children = ( |
| 143 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | 147 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, |
| 144 | ED2971642150620600B7C4FE /* JavaScriptCore.framework */, | 148 | ED2971642150620600B7C4FE /* JavaScriptCore.framework */, |
| 145 | - 3171A28C23A862E6FC323C63 /* libPods-NGPlay.a */, | 149 | + 3331BC6083E76C70FC7C040E /* libPods-NGPlay.a */, |
| 146 | - C4732ECC7CC9112665571B01 /* libPods-NGPlay-NGPlayTests.a */, | 150 | + D6D648C16083965167A7A246 /* libPods-NGPlay-NGPlayTests.a */, |
| 147 | - 5580CA2F58A9BDE573C2079C /* libPods-NGPlay-tvOS.a */, | 151 | + B2B8A9D1FA03C19814654981 /* libPods-NGPlay-tvOS.a */, |
| 148 | - 8362A23EE219E5DDEC7EAE08 /* libPods-NGPlay-tvOSTests.a */, | 152 | + 2FE3472145785462D072698D /* libPods-NGPlay-tvOSTests.a */, |
| 149 | ); | 153 | ); |
| 150 | name = Frameworks; | 154 | name = Frameworks; |
| 151 | sourceTree = "<group>"; | 155 | sourceTree = "<group>"; |
| @@ -186,14 +190,14 @@ | @@ -186,14 +190,14 @@ | ||
| 186 | 978F2DE249B40372BE3CFB34 /* Pods */ = { | 190 | 978F2DE249B40372BE3CFB34 /* Pods */ = { |
| 187 | isa = PBXGroup; | 191 | isa = PBXGroup; |
| 188 | children = ( | 192 | children = ( |
| 189 | - 4855A1A8C2536C58DF04B3FA /* Pods-NGPlay.debug.xcconfig */, | 193 | + C71DD678E7D90A14A575E160 /* Pods-NGPlay.debug.xcconfig */, |
| 190 | - 73D0BCB1250DAB139582F311 /* Pods-NGPlay.release.xcconfig */, | 194 | + 7F7DD72637495F202B0A046C /* Pods-NGPlay.release.xcconfig */, |
| 191 | - 36D7CC1980131F16F91F5A16 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */, | 195 | + 22BEBA34B828B68BDA82E305 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */, |
| 192 | - 443F453B1BD772B1E17E2102 /* Pods-NGPlay-NGPlayTests.release.xcconfig */, | 196 | + 3DCA2EF5483F07B06AE9B302 /* Pods-NGPlay-NGPlayTests.release.xcconfig */, |
| 193 | - 781EA07544832578A8678DC7 /* Pods-NGPlay-tvOS.debug.xcconfig */, | 197 | + FDAF748FE731FEA71CABBF01 /* Pods-NGPlay-tvOS.debug.xcconfig */, |
| 194 | - F63897AFB5B07795089F34F9 /* Pods-NGPlay-tvOS.release.xcconfig */, | 198 | + 97422F73DEA00BC480DA2587 /* Pods-NGPlay-tvOS.release.xcconfig */, |
| 195 | - 698938961D6FF8AC4FCF2E29 /* Pods-NGPlay-tvOSTests.debug.xcconfig */, | 199 | + CB37CBA7FB02085DAB6424CF /* Pods-NGPlay-tvOSTests.debug.xcconfig */, |
| 196 | - B9229FB3695E83651E4D11D5 /* Pods-NGPlay-tvOSTests.release.xcconfig */, | 200 | + CF55E7A4CE74442883154991 /* Pods-NGPlay-tvOSTests.release.xcconfig */, |
| 197 | ); | 201 | ); |
| 198 | path = Pods; | 202 | path = Pods; |
| 199 | sourceTree = "<group>"; | 203 | sourceTree = "<group>"; |
| @@ -205,11 +209,11 @@ | @@ -205,11 +209,11 @@ | ||
| 205 | isa = PBXNativeTarget; | 209 | isa = PBXNativeTarget; |
| 206 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "NGPlayTests" */; | 210 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "NGPlayTests" */; |
| 207 | buildPhases = ( | 211 | buildPhases = ( |
| 208 | - AF7CA5B873F71A1FB4E56637 /* [CP] Check Pods Manifest.lock */, | 212 | + 55827B61ABE11DB99B73D735 /* [CP] Check Pods Manifest.lock */, |
| 209 | 00E356EA1AD99517003FC87E /* Sources */, | 213 | 00E356EA1AD99517003FC87E /* Sources */, |
| 210 | 00E356EB1AD99517003FC87E /* Frameworks */, | 214 | 00E356EB1AD99517003FC87E /* Frameworks */, |
| 211 | 00E356EC1AD99517003FC87E /* Resources */, | 215 | 00E356EC1AD99517003FC87E /* Resources */, |
| 212 | - D5D387F840E9276032E1A161 /* [CP] Copy Pods Resources */, | 216 | + 9C9F0214FCC18C3F9F8BC0FE /* [CP] Copy Pods Resources */, |
| 213 | ); | 217 | ); |
| 214 | buildRules = ( | 218 | buildRules = ( |
| 215 | ); | 219 | ); |
| @@ -225,13 +229,13 @@ | @@ -225,13 +229,13 @@ | ||
| 225 | isa = PBXNativeTarget; | 229 | isa = PBXNativeTarget; |
| 226 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "NGPlay" */; | 230 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "NGPlay" */; |
| 227 | buildPhases = ( | 231 | buildPhases = ( |
| 228 | - 6A48AA69620DEC1B74C29AD2 /* [CP] Check Pods Manifest.lock */, | 232 | + E918BDC659F0D3C5A862E50A /* [CP] Check Pods Manifest.lock */, |
| 229 | FD10A7F022414F080027D42C /* Start Packager */, | 233 | FD10A7F022414F080027D42C /* Start Packager */, |
| 230 | 13B07F871A680F5B00A75B9A /* Sources */, | 234 | 13B07F871A680F5B00A75B9A /* Sources */, |
| 231 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, | 235 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, |
| 232 | 13B07F8E1A680F5B00A75B9A /* Resources */, | 236 | 13B07F8E1A680F5B00A75B9A /* Resources */, |
| 233 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | 237 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, |
| 234 | - FFA47E9D3DB73E89ADF80B32 /* [CP] Copy Pods Resources */, | 238 | + F497E0579BFD083304C65F31 /* [CP] Copy Pods Resources */, |
| 235 | ); | 239 | ); |
| 236 | buildRules = ( | 240 | buildRules = ( |
| 237 | ); | 241 | ); |
| @@ -246,7 +250,7 @@ | @@ -246,7 +250,7 @@ | ||
| 246 | isa = PBXNativeTarget; | 250 | isa = PBXNativeTarget; |
| 247 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "NGPlay-tvOS" */; | 251 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "NGPlay-tvOS" */; |
| 248 | buildPhases = ( | 252 | buildPhases = ( |
| 249 | - 7F2C2457986D77ADA13C1AA9 /* [CP] Check Pods Manifest.lock */, | 253 | + AB335EA7C3C420CEB5EFF28A /* [CP] Check Pods Manifest.lock */, |
| 250 | FD10A7F122414F3F0027D42C /* Start Packager */, | 254 | FD10A7F122414F3F0027D42C /* Start Packager */, |
| 251 | 2D02E4771E0B4A5D006451C7 /* Sources */, | 255 | 2D02E4771E0B4A5D006451C7 /* Sources */, |
| 252 | 2D02E4781E0B4A5D006451C7 /* Frameworks */, | 256 | 2D02E4781E0B4A5D006451C7 /* Frameworks */, |
| @@ -266,7 +270,7 @@ | @@ -266,7 +270,7 @@ | ||
| 266 | isa = PBXNativeTarget; | 270 | isa = PBXNativeTarget; |
| 267 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "NGPlay-tvOSTests" */; | 271 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "NGPlay-tvOSTests" */; |
| 268 | buildPhases = ( | 272 | buildPhases = ( |
| 269 | - 69E7B5B017B17519E840477E /* [CP] Check Pods Manifest.lock */, | 273 | + B9AC4E502CB670D7CB94DDC9 /* [CP] Check Pods Manifest.lock */, |
| 270 | 2D02E48C1E0B4A5D006451C7 /* Sources */, | 274 | 2D02E48C1E0B4A5D006451C7 /* Sources */, |
| 271 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */, | 275 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */, |
| 272 | 2D02E48E1E0B4A5D006451C7 /* Resources */, | 276 | 2D02E48E1E0B4A5D006451C7 /* Resources */, |
| @@ -343,6 +347,7 @@ | @@ -343,6 +347,7 @@ | ||
| 343 | buildActionMask = 2147483647; | 347 | buildActionMask = 2147483647; |
| 344 | files = ( | 348 | files = ( |
| 345 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, | 349 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, |
| 350 | + CE18668224486D6800FBDC7A /* InfoPlist.strings in Resources */, | ||
| 346 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, | 351 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, |
| 347 | ); | 352 | ); |
| 348 | runOnlyForDeploymentPostprocessing = 0; | 353 | runOnlyForDeploymentPostprocessing = 0; |
| @@ -393,7 +398,7 @@ | @@ -393,7 +398,7 @@ | ||
| 393 | shellPath = /bin/sh; | 398 | shellPath = /bin/sh; |
| 394 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; | 399 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; |
| 395 | }; | 400 | }; |
| 396 | - 69E7B5B017B17519E840477E /* [CP] Check Pods Manifest.lock */ = { | 401 | + 55827B61ABE11DB99B73D735 /* [CP] Check Pods Manifest.lock */ = { |
| 397 | isa = PBXShellScriptBuildPhase; | 402 | isa = PBXShellScriptBuildPhase; |
| 398 | buildActionMask = 2147483647; | 403 | buildActionMask = 2147483647; |
| 399 | files = ( | 404 | files = ( |
| @@ -408,14 +413,62 @@ | @@ -408,14 +413,62 @@ | ||
| 408 | outputFileListPaths = ( | 413 | outputFileListPaths = ( |
| 409 | ); | 414 | ); |
| 410 | outputPaths = ( | 415 | outputPaths = ( |
| 411 | - "$(DERIVED_FILE_DIR)/Pods-NGPlay-tvOSTests-checkManifestLockResult.txt", | 416 | + "$(DERIVED_FILE_DIR)/Pods-NGPlay-NGPlayTests-checkManifestLockResult.txt", |
| 412 | ); | 417 | ); |
| 413 | runOnlyForDeploymentPostprocessing = 0; | 418 | runOnlyForDeploymentPostprocessing = 0; |
| 414 | shellPath = /bin/sh; | 419 | shellPath = /bin/sh; |
| 415 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | 420 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 416 | showEnvVarsInLog = 0; | 421 | showEnvVarsInLog = 0; |
| 417 | }; | 422 | }; |
| 418 | - 6A48AA69620DEC1B74C29AD2 /* [CP] Check Pods Manifest.lock */ = { | 423 | + 9C9F0214FCC18C3F9F8BC0FE /* [CP] Copy Pods Resources */ = { |
| 424 | + isa = PBXShellScriptBuildPhase; | ||
| 425 | + buildActionMask = 2147483647; | ||
| 426 | + files = ( | ||
| 427 | + ); | ||
| 428 | + inputPaths = ( | ||
| 429 | + "${PODS_ROOT}/Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests-resources.sh", | ||
| 430 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", | ||
| 431 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", | ||
| 432 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", | ||
| 433 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", | ||
| 434 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", | ||
| 435 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", | ||
| 436 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", | ||
| 437 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", | ||
| 438 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", | ||
| 439 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", | ||
| 440 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", | ||
| 441 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", | ||
| 442 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", | ||
| 443 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", | ||
| 444 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", | ||
| 445 | + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", | ||
| 446 | + ); | ||
| 447 | + name = "[CP] Copy Pods Resources"; | ||
| 448 | + outputPaths = ( | ||
| 449 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", | ||
| 450 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", | ||
| 451 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", | ||
| 452 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", | ||
| 453 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", | ||
| 454 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", | ||
| 455 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", | ||
| 456 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", | ||
| 457 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", | ||
| 458 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", | ||
| 459 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", | ||
| 460 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", | ||
| 461 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", | ||
| 462 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", | ||
| 463 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", | ||
| 464 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", | ||
| 465 | + ); | ||
| 466 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 467 | + shellPath = /bin/sh; | ||
| 468 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests-resources.sh\"\n"; | ||
| 469 | + showEnvVarsInLog = 0; | ||
| 470 | + }; | ||
| 471 | + AB335EA7C3C420CEB5EFF28A /* [CP] Check Pods Manifest.lock */ = { | ||
| 419 | isa = PBXShellScriptBuildPhase; | 472 | isa = PBXShellScriptBuildPhase; |
| 420 | buildActionMask = 2147483647; | 473 | buildActionMask = 2147483647; |
| 421 | files = ( | 474 | files = ( |
| @@ -430,14 +483,14 @@ | @@ -430,14 +483,14 @@ | ||
| 430 | outputFileListPaths = ( | 483 | outputFileListPaths = ( |
| 431 | ); | 484 | ); |
| 432 | outputPaths = ( | 485 | outputPaths = ( |
| 433 | - "$(DERIVED_FILE_DIR)/Pods-NGPlay-checkManifestLockResult.txt", | 486 | + "$(DERIVED_FILE_DIR)/Pods-NGPlay-tvOS-checkManifestLockResult.txt", |
| 434 | ); | 487 | ); |
| 435 | runOnlyForDeploymentPostprocessing = 0; | 488 | runOnlyForDeploymentPostprocessing = 0; |
| 436 | shellPath = /bin/sh; | 489 | shellPath = /bin/sh; |
| 437 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | 490 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 438 | showEnvVarsInLog = 0; | 491 | showEnvVarsInLog = 0; |
| 439 | }; | 492 | }; |
| 440 | - 7F2C2457986D77ADA13C1AA9 /* [CP] Check Pods Manifest.lock */ = { | 493 | + B9AC4E502CB670D7CB94DDC9 /* [CP] Check Pods Manifest.lock */ = { |
| 441 | isa = PBXShellScriptBuildPhase; | 494 | isa = PBXShellScriptBuildPhase; |
| 442 | buildActionMask = 2147483647; | 495 | buildActionMask = 2147483647; |
| 443 | files = ( | 496 | files = ( |
| @@ -452,14 +505,14 @@ | @@ -452,14 +505,14 @@ | ||
| 452 | outputFileListPaths = ( | 505 | outputFileListPaths = ( |
| 453 | ); | 506 | ); |
| 454 | outputPaths = ( | 507 | outputPaths = ( |
| 455 | - "$(DERIVED_FILE_DIR)/Pods-NGPlay-tvOS-checkManifestLockResult.txt", | 508 | + "$(DERIVED_FILE_DIR)/Pods-NGPlay-tvOSTests-checkManifestLockResult.txt", |
| 456 | ); | 509 | ); |
| 457 | runOnlyForDeploymentPostprocessing = 0; | 510 | runOnlyForDeploymentPostprocessing = 0; |
| 458 | shellPath = /bin/sh; | 511 | shellPath = /bin/sh; |
| 459 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | 512 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 460 | showEnvVarsInLog = 0; | 513 | showEnvVarsInLog = 0; |
| 461 | }; | 514 | }; |
| 462 | - AF7CA5B873F71A1FB4E56637 /* [CP] Check Pods Manifest.lock */ = { | 515 | + E918BDC659F0D3C5A862E50A /* [CP] Check Pods Manifest.lock */ = { |
| 463 | isa = PBXShellScriptBuildPhase; | 516 | isa = PBXShellScriptBuildPhase; |
| 464 | buildActionMask = 2147483647; | 517 | buildActionMask = 2147483647; |
| 465 | files = ( | 518 | files = ( |
| @@ -474,20 +527,20 @@ | @@ -474,20 +527,20 @@ | ||
| 474 | outputFileListPaths = ( | 527 | outputFileListPaths = ( |
| 475 | ); | 528 | ); |
| 476 | outputPaths = ( | 529 | outputPaths = ( |
| 477 | - "$(DERIVED_FILE_DIR)/Pods-NGPlay-NGPlayTests-checkManifestLockResult.txt", | 530 | + "$(DERIVED_FILE_DIR)/Pods-NGPlay-checkManifestLockResult.txt", |
| 478 | ); | 531 | ); |
| 479 | runOnlyForDeploymentPostprocessing = 0; | 532 | runOnlyForDeploymentPostprocessing = 0; |
| 480 | shellPath = /bin/sh; | 533 | shellPath = /bin/sh; |
| 481 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | 534 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 482 | showEnvVarsInLog = 0; | 535 | showEnvVarsInLog = 0; |
| 483 | }; | 536 | }; |
| 484 | - D5D387F840E9276032E1A161 /* [CP] Copy Pods Resources */ = { | 537 | + F497E0579BFD083304C65F31 /* [CP] Copy Pods Resources */ = { |
| 485 | isa = PBXShellScriptBuildPhase; | 538 | isa = PBXShellScriptBuildPhase; |
| 486 | buildActionMask = 2147483647; | 539 | buildActionMask = 2147483647; |
| 487 | files = ( | 540 | files = ( |
| 488 | ); | 541 | ); |
| 489 | inputPaths = ( | 542 | inputPaths = ( |
| 490 | - "${PODS_ROOT}/Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests-resources.sh", | 543 | + "${PODS_ROOT}/Target Support Files/Pods-NGPlay/Pods-NGPlay-resources.sh", |
| 491 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", | 544 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", |
| 492 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", | 545 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", |
| 493 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", | 546 | "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", |
| @@ -526,7 +579,7 @@ | @@ -526,7 +579,7 @@ | ||
| 526 | ); | 579 | ); |
| 527 | runOnlyForDeploymentPostprocessing = 0; | 580 | runOnlyForDeploymentPostprocessing = 0; |
| 528 | shellPath = /bin/sh; | 581 | shellPath = /bin/sh; |
| 529 | - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NGPlay-NGPlayTests/Pods-NGPlay-NGPlayTests-resources.sh\"\n"; | 582 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NGPlay/Pods-NGPlay-resources.sh\"\n"; |
| 530 | showEnvVarsInLog = 0; | 583 | showEnvVarsInLog = 0; |
| 531 | }; | 584 | }; |
| 532 | FD10A7F022414F080027D42C /* Start Packager */ = { | 585 | FD10A7F022414F080027D42C /* Start Packager */ = { |
| @@ -567,54 +620,6 @@ | @@ -567,54 +620,6 @@ | ||
| 567 | shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; | 620 | shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; |
| 568 | showEnvVarsInLog = 0; | 621 | showEnvVarsInLog = 0; |
| 569 | }; | 622 | }; |
| 570 | - FFA47E9D3DB73E89ADF80B32 /* [CP] Copy Pods Resources */ = { | ||
| 571 | - isa = PBXShellScriptBuildPhase; | ||
| 572 | - buildActionMask = 2147483647; | ||
| 573 | - files = ( | ||
| 574 | - ); | ||
| 575 | - inputPaths = ( | ||
| 576 | - "${PODS_ROOT}/Target Support Files/Pods-NGPlay/Pods-NGPlay-resources.sh", | ||
| 577 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", | ||
| 578 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", | ||
| 579 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", | ||
| 580 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", | ||
| 581 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", | ||
| 582 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", | ||
| 583 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", | ||
| 584 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", | ||
| 585 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", | ||
| 586 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", | ||
| 587 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", | ||
| 588 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", | ||
| 589 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", | ||
| 590 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", | ||
| 591 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", | ||
| 592 | - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", | ||
| 593 | - ); | ||
| 594 | - name = "[CP] Copy Pods Resources"; | ||
| 595 | - outputPaths = ( | ||
| 596 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", | ||
| 597 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", | ||
| 598 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", | ||
| 599 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", | ||
| 600 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", | ||
| 601 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", | ||
| 602 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", | ||
| 603 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", | ||
| 604 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", | ||
| 605 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", | ||
| 606 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", | ||
| 607 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", | ||
| 608 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", | ||
| 609 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", | ||
| 610 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", | ||
| 611 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", | ||
| 612 | - ); | ||
| 613 | - runOnlyForDeploymentPostprocessing = 0; | ||
| 614 | - shellPath = /bin/sh; | ||
| 615 | - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NGPlay/Pods-NGPlay-resources.sh\"\n"; | ||
| 616 | - showEnvVarsInLog = 0; | ||
| 617 | - }; | ||
| 618 | /* End PBXShellScriptBuildPhase section */ | 623 | /* End PBXShellScriptBuildPhase section */ |
| 619 | 624 | ||
| 620 | /* Begin PBXSourcesBuildPhase section */ | 625 | /* Begin PBXSourcesBuildPhase section */ |
| @@ -678,12 +683,21 @@ | @@ -678,12 +683,21 @@ | ||
| 678 | path = NGPlay; | 683 | path = NGPlay; |
| 679 | sourceTree = "<group>"; | 684 | sourceTree = "<group>"; |
| 680 | }; | 685 | }; |
| 686 | + CE18668424486D6800FBDC7A /* InfoPlist.strings */ = { | ||
| 687 | + isa = PBXVariantGroup; | ||
| 688 | + children = ( | ||
| 689 | + CE18668324486D6800FBDC7A /* en */, | ||
| 690 | + CE18668524486D6F00FBDC7A /* zh-Hans */, | ||
| 691 | + ); | ||
| 692 | + name = InfoPlist.strings; | ||
| 693 | + sourceTree = "<group>"; | ||
| 694 | + }; | ||
| 681 | /* End PBXVariantGroup section */ | 695 | /* End PBXVariantGroup section */ |
| 682 | 696 | ||
| 683 | /* Begin XCBuildConfiguration section */ | 697 | /* Begin XCBuildConfiguration section */ |
| 684 | 00E356F61AD99517003FC87E /* Debug */ = { | 698 | 00E356F61AD99517003FC87E /* Debug */ = { |
| 685 | isa = XCBuildConfiguration; | 699 | isa = XCBuildConfiguration; |
| 686 | - baseConfigurationReference = 36D7CC1980131F16F91F5A16 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */; | 700 | + baseConfigurationReference = 22BEBA34B828B68BDA82E305 /* Pods-NGPlay-NGPlayTests.debug.xcconfig */; |
| 687 | buildSettings = { | 701 | buildSettings = { |
| 688 | BUNDLE_LOADER = "$(TEST_HOST)"; | 702 | BUNDLE_LOADER = "$(TEST_HOST)"; |
| 689 | GCC_PREPROCESSOR_DEFINITIONS = ( | 703 | GCC_PREPROCESSOR_DEFINITIONS = ( |
| @@ -706,7 +720,7 @@ | @@ -706,7 +720,7 @@ | ||
| 706 | }; | 720 | }; |
| 707 | 00E356F71AD99517003FC87E /* Release */ = { | 721 | 00E356F71AD99517003FC87E /* Release */ = { |
| 708 | isa = XCBuildConfiguration; | 722 | isa = XCBuildConfiguration; |
| 709 | - baseConfigurationReference = 443F453B1BD772B1E17E2102 /* Pods-NGPlay-NGPlayTests.release.xcconfig */; | 723 | + baseConfigurationReference = 3DCA2EF5483F07B06AE9B302 /* Pods-NGPlay-NGPlayTests.release.xcconfig */; |
| 710 | buildSettings = { | 724 | buildSettings = { |
| 711 | BUNDLE_LOADER = "$(TEST_HOST)"; | 725 | BUNDLE_LOADER = "$(TEST_HOST)"; |
| 712 | COPY_PHASE_STRIP = NO; | 726 | COPY_PHASE_STRIP = NO; |
| @@ -726,7 +740,7 @@ | @@ -726,7 +740,7 @@ | ||
| 726 | }; | 740 | }; |
| 727 | 13B07F941A680F5B00A75B9A /* Debug */ = { | 741 | 13B07F941A680F5B00A75B9A /* Debug */ = { |
| 728 | isa = XCBuildConfiguration; | 742 | isa = XCBuildConfiguration; |
| 729 | - baseConfigurationReference = 4855A1A8C2536C58DF04B3FA /* Pods-NGPlay.debug.xcconfig */; | 743 | + baseConfigurationReference = C71DD678E7D90A14A575E160 /* Pods-NGPlay.debug.xcconfig */; |
| 730 | buildSettings = { | 744 | buildSettings = { |
| 731 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 745 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| 732 | CLANG_ENABLE_MODULES = YES; | 746 | CLANG_ENABLE_MODULES = YES; |
| @@ -754,7 +768,7 @@ | @@ -754,7 +768,7 @@ | ||
| 754 | }; | 768 | }; |
| 755 | 13B07F951A680F5B00A75B9A /* Release */ = { | 769 | 13B07F951A680F5B00A75B9A /* Release */ = { |
| 756 | isa = XCBuildConfiguration; | 770 | isa = XCBuildConfiguration; |
| 757 | - baseConfigurationReference = 73D0BCB1250DAB139582F311 /* Pods-NGPlay.release.xcconfig */; | 771 | + baseConfigurationReference = 7F7DD72637495F202B0A046C /* Pods-NGPlay.release.xcconfig */; |
| 758 | buildSettings = { | 772 | buildSettings = { |
| 759 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 773 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| 760 | CLANG_ENABLE_MODULES = YES; | 774 | CLANG_ENABLE_MODULES = YES; |
| @@ -776,7 +790,7 @@ | @@ -776,7 +790,7 @@ | ||
| 776 | }; | 790 | }; |
| 777 | 2D02E4971E0B4A5E006451C7 /* Debug */ = { | 791 | 2D02E4971E0B4A5E006451C7 /* Debug */ = { |
| 778 | isa = XCBuildConfiguration; | 792 | isa = XCBuildConfiguration; |
| 779 | - baseConfigurationReference = 781EA07544832578A8678DC7 /* Pods-NGPlay-tvOS.debug.xcconfig */; | 793 | + baseConfigurationReference = FDAF748FE731FEA71CABBF01 /* Pods-NGPlay-tvOS.debug.xcconfig */; |
| 780 | buildSettings = { | 794 | buildSettings = { |
| 781 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; | 795 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |
| 782 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; | 796 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
| @@ -804,7 +818,7 @@ | @@ -804,7 +818,7 @@ | ||
| 804 | }; | 818 | }; |
| 805 | 2D02E4981E0B4A5E006451C7 /* Release */ = { | 819 | 2D02E4981E0B4A5E006451C7 /* Release */ = { |
| 806 | isa = XCBuildConfiguration; | 820 | isa = XCBuildConfiguration; |
| 807 | - baseConfigurationReference = F63897AFB5B07795089F34F9 /* Pods-NGPlay-tvOS.release.xcconfig */; | 821 | + baseConfigurationReference = 97422F73DEA00BC480DA2587 /* Pods-NGPlay-tvOS.release.xcconfig */; |
| 808 | buildSettings = { | 822 | buildSettings = { |
| 809 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; | 823 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |
| 810 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; | 824 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
| @@ -832,7 +846,7 @@ | @@ -832,7 +846,7 @@ | ||
| 832 | }; | 846 | }; |
| 833 | 2D02E4991E0B4A5E006451C7 /* Debug */ = { | 847 | 2D02E4991E0B4A5E006451C7 /* Debug */ = { |
| 834 | isa = XCBuildConfiguration; | 848 | isa = XCBuildConfiguration; |
| 835 | - baseConfigurationReference = 698938961D6FF8AC4FCF2E29 /* Pods-NGPlay-tvOSTests.debug.xcconfig */; | 849 | + baseConfigurationReference = CB37CBA7FB02085DAB6424CF /* Pods-NGPlay-tvOSTests.debug.xcconfig */; |
| 836 | buildSettings = { | 850 | buildSettings = { |
| 837 | BUNDLE_LOADER = "$(TEST_HOST)"; | 851 | BUNDLE_LOADER = "$(TEST_HOST)"; |
| 838 | CLANG_ANALYZER_NONNULL = YES; | 852 | CLANG_ANALYZER_NONNULL = YES; |
| @@ -859,7 +873,7 @@ | @@ -859,7 +873,7 @@ | ||
| 859 | }; | 873 | }; |
| 860 | 2D02E49A1E0B4A5E006451C7 /* Release */ = { | 874 | 2D02E49A1E0B4A5E006451C7 /* Release */ = { |
| 861 | isa = XCBuildConfiguration; | 875 | isa = XCBuildConfiguration; |
| 862 | - baseConfigurationReference = B9229FB3695E83651E4D11D5 /* Pods-NGPlay-tvOSTests.release.xcconfig */; | 876 | + baseConfigurationReference = CF55E7A4CE74442883154991 /* Pods-NGPlay-tvOSTests.release.xcconfig */; |
| 863 | buildSettings = { | 877 | buildSettings = { |
| 864 | BUNDLE_LOADER = "$(TEST_HOST)"; | 878 | BUNDLE_LOADER = "$(TEST_HOST)"; |
| 865 | CLANG_ANALYZER_NONNULL = YES; | 879 | CLANG_ANALYZER_NONNULL = YES; |
| @@ -37,8 +37,14 @@ | @@ -37,8 +37,14 @@ | ||
| 37 | </dict> | 37 | </dict> |
| 38 | </dict> | 38 | </dict> |
| 39 | </dict> | 39 | </dict> |
| 40 | + <key>NSCameraUsageDescription</key> | ||
| 41 | + <string>Use your camera to take a photo or scan codes</string> | ||
| 40 | <key>NSLocationWhenInUseUsageDescription</key> | 42 | <key>NSLocationWhenInUseUsageDescription</key> |
| 41 | - <string></string> | 43 | + <string>Use your location to check security</string> |
| 44 | + <key>NSPhotoLibraryAddUsageDescription</key> | ||
| 45 | + <string>Add photos to your photo library</string> | ||
| 46 | + <key>NSPhotoLibraryUsageDescription</key> | ||
| 47 | + <string>Read images from your photo library to set a avatar or scan codes</string> | ||
| 42 | <key>UIAppFonts</key> | 48 | <key>UIAppFonts</key> |
| 43 | <array> | 49 | <array> |
| 44 | <string>AntDesign.ttf</string> | 50 | <string>AntDesign.ttf</string> |
| @@ -2,7 +2,7 @@ platform :ios, '9.0' | @@ -2,7 +2,7 @@ platform :ios, '9.0' | ||
| 2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | 2 | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' |
| 3 | 3 | ||
| 4 | def add_flipper_pods! | 4 | def add_flipper_pods! |
| 5 | - version = '~> 0.33.1' | 5 | + version = '~> 0.37.0' |
| 6 | pod 'FlipperKit', version, :configuration => 'Debug' | 6 | pod 'FlipperKit', version, :configuration => 'Debug' |
| 7 | pod 'FlipperKit/FlipperKitLayoutPlugin', version, :configuration => 'Debug' | 7 | pod 'FlipperKit/FlipperKitLayoutPlugin', version, :configuration => 'Debug' |
| 8 | pod 'FlipperKit/SKIOSNetworkPlugin', version, :configuration => 'Debug' | 8 | pod 'FlipperKit/SKIOSNetworkPlugin', version, :configuration => 'Debug' |
| @@ -54,6 +54,27 @@ target 'NGPlay' do | @@ -54,6 +54,27 @@ target 'NGPlay' do | ||
| 54 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' | 54 | pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' |
| 55 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' | 55 | pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' |
| 56 | 56 | ||
| 57 | + # RNPermission start | ||
| 58 | + permissions_path = '../node_modules/react-native-permissions/ios' | ||
| 59 | + | ||
| 60 | + # pod 'Permission-BluetoothPeripheral', :path => "#{permissions_path}/BluetoothPeripheral.podspec" | ||
| 61 | + # pod 'Permission-Calendars', :path => "#{permissions_path}/Calendars.podspec" | ||
| 62 | + pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec" | ||
| 63 | + # pod 'Permission-Contacts', :path => "#{permissions_path}/Contacts.podspec" | ||
| 64 | + # pod 'Permission-FaceID', :path => "#{permissions_path}/FaceID.podspec" | ||
| 65 | + # pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways.podspec" | ||
| 66 | + pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse.podspec" | ||
| 67 | + # pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary.podspec" | ||
| 68 | + # pod 'Permission-Microphone', :path => "#{permissions_path}/Microphone.podspec" | ||
| 69 | + # pod 'Permission-Motion', :path => "#{permissions_path}/Motion.podspec" | ||
| 70 | + # pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications.podspec" | ||
| 71 | + pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary.podspec" | ||
| 72 | + # pod 'Permission-Reminders', :path => "#{permissions_path}/Reminders.podspec" | ||
| 73 | + # pod 'Permission-Siri', :path => "#{permissions_path}/Siri.podspec" | ||
| 74 | + # pod 'Permission-SpeechRecognition', :path => "#{permissions_path}/SpeechRecognition.podspec" | ||
| 75 | + # pod 'Permission-StoreKit', :path => "#{permissions_path}/StoreKit.podspec" | ||
| 76 | + # RNPermission end | ||
| 77 | + | ||
| 57 | target 'NGPlayTests' do | 78 | target 'NGPlayTests' do |
| 58 | inherit! :complete | 79 | inherit! :complete |
| 59 | # Pods for testing | 80 | # Pods for testing |
| @@ -11,11 +11,11 @@ PODS: | @@ -11,11 +11,11 @@ PODS: | ||
| 11 | - React-Core (= 0.62.1) | 11 | - React-Core (= 0.62.1) |
| 12 | - React-jsi (= 0.62.1) | 12 | - React-jsi (= 0.62.1) |
| 13 | - ReactCommon/turbomodule/core (= 0.62.1) | 13 | - ReactCommon/turbomodule/core (= 0.62.1) |
| 14 | - - Flipper (0.33.1): | 14 | + - Flipper (0.37.0): |
| 15 | - - Flipper-Folly (~> 2.1) | 15 | + - Flipper-Folly (~> 2.2) |
| 16 | - - Flipper-RSocket (~> 1.0) | 16 | + - Flipper-RSocket (~> 1.1) |
| 17 | - Flipper-DoubleConversion (1.1.7) | 17 | - Flipper-DoubleConversion (1.1.7) |
| 18 | - - Flipper-Folly (2.1.1): | 18 | + - Flipper-Folly (2.2.0): |
| 19 | - boost-for-react-native | 19 | - boost-for-react-native |
| 20 | - CocoaLibEvent (~> 1.0) | 20 | - CocoaLibEvent (~> 1.0) |
| 21 | - Flipper-DoubleConversion | 21 | - Flipper-DoubleConversion |
| @@ -23,38 +23,38 @@ PODS: | @@ -23,38 +23,38 @@ PODS: | ||
| 23 | - OpenSSL-Universal (= 1.0.2.19) | 23 | - OpenSSL-Universal (= 1.0.2.19) |
| 24 | - Flipper-Glog (0.3.6) | 24 | - Flipper-Glog (0.3.6) |
| 25 | - Flipper-PeerTalk (0.0.4) | 25 | - Flipper-PeerTalk (0.0.4) |
| 26 | - - Flipper-RSocket (1.0.0): | 26 | + - Flipper-RSocket (1.1.0): |
| 27 | - - Flipper-Folly (~> 2.0) | 27 | + - Flipper-Folly (~> 2.2) |
| 28 | - - FlipperKit (0.33.1): | 28 | + - FlipperKit (0.37.0): |
| 29 | - - FlipperKit/Core (= 0.33.1) | 29 | + - FlipperKit/Core (= 0.37.0) |
| 30 | - - FlipperKit/Core (0.33.1): | 30 | + - FlipperKit/Core (0.37.0): |
| 31 | - - Flipper (~> 0.33.1) | 31 | + - Flipper (~> 0.37.0) |
| 32 | - FlipperKit/CppBridge | 32 | - FlipperKit/CppBridge |
| 33 | - FlipperKit/FBCxxFollyDynamicConvert | 33 | - FlipperKit/FBCxxFollyDynamicConvert |
| 34 | - FlipperKit/FBDefines | 34 | - FlipperKit/FBDefines |
| 35 | - FlipperKit/FKPortForwarding | 35 | - FlipperKit/FKPortForwarding |
| 36 | - - FlipperKit/CppBridge (0.33.1): | 36 | + - FlipperKit/CppBridge (0.37.0): |
| 37 | - - Flipper (~> 0.33.1) | 37 | + - Flipper (~> 0.37.0) |
| 38 | - - FlipperKit/FBCxxFollyDynamicConvert (0.33.1): | 38 | + - FlipperKit/FBCxxFollyDynamicConvert (0.37.0): |
| 39 | - - Flipper-Folly (~> 2.1) | 39 | + - Flipper-Folly (~> 2.2) |
| 40 | - - FlipperKit/FBDefines (0.33.1) | 40 | + - FlipperKit/FBDefines (0.37.0) |
| 41 | - - FlipperKit/FKPortForwarding (0.33.1): | 41 | + - FlipperKit/FKPortForwarding (0.37.0): |
| 42 | - CocoaAsyncSocket (~> 7.6) | 42 | - CocoaAsyncSocket (~> 7.6) |
| 43 | - Flipper-PeerTalk (~> 0.0.4) | 43 | - Flipper-PeerTalk (~> 0.0.4) |
| 44 | - - FlipperKit/FlipperKitHighlightOverlay (0.33.1) | 44 | + - FlipperKit/FlipperKitHighlightOverlay (0.37.0) |
| 45 | - - FlipperKit/FlipperKitLayoutPlugin (0.33.1): | 45 | + - FlipperKit/FlipperKitLayoutPlugin (0.37.0): |
| 46 | - FlipperKit/Core | 46 | - FlipperKit/Core |
| 47 | - FlipperKit/FlipperKitHighlightOverlay | 47 | - FlipperKit/FlipperKitHighlightOverlay |
| 48 | - FlipperKit/FlipperKitLayoutTextSearchable | 48 | - FlipperKit/FlipperKitLayoutTextSearchable |
| 49 | - YogaKit (~> 1.18) | 49 | - YogaKit (~> 1.18) |
| 50 | - - FlipperKit/FlipperKitLayoutTextSearchable (0.33.1) | 50 | + - FlipperKit/FlipperKitLayoutTextSearchable (0.37.0) |
| 51 | - - FlipperKit/FlipperKitNetworkPlugin (0.33.1): | 51 | + - FlipperKit/FlipperKitNetworkPlugin (0.37.0): |
| 52 | - FlipperKit/Core | 52 | - FlipperKit/Core |
| 53 | - - FlipperKit/FlipperKitReactPlugin (0.33.1): | 53 | + - FlipperKit/FlipperKitReactPlugin (0.37.0): |
| 54 | - FlipperKit/Core | 54 | - FlipperKit/Core |
| 55 | - - FlipperKit/FlipperKitUserDefaultsPlugin (0.33.1): | 55 | + - FlipperKit/FlipperKitUserDefaultsPlugin (0.37.0): |
| 56 | - FlipperKit/Core | 56 | - FlipperKit/Core |
| 57 | - - FlipperKit/SKIOSNetworkPlugin (0.33.1): | 57 | + - FlipperKit/SKIOSNetworkPlugin (0.37.0): |
| 58 | - FlipperKit/Core | 58 | - FlipperKit/Core |
| 59 | - FlipperKit/FlipperKitNetworkPlugin | 59 | - FlipperKit/FlipperKitNetworkPlugin |
| 60 | - Folly (2018.10.22.00): | 60 | - Folly (2018.10.22.00): |
| @@ -70,6 +70,12 @@ PODS: | @@ -70,6 +70,12 @@ PODS: | ||
| 70 | - OpenSSL-Universal (1.0.2.19): | 70 | - OpenSSL-Universal (1.0.2.19): |
| 71 | - OpenSSL-Universal/Static (= 1.0.2.19) | 71 | - OpenSSL-Universal/Static (= 1.0.2.19) |
| 72 | - OpenSSL-Universal/Static (1.0.2.19) | 72 | - OpenSSL-Universal/Static (1.0.2.19) |
| 73 | + - Permission-Camera (2.1.2): | ||
| 74 | + - RNPermissions | ||
| 75 | + - Permission-LocationWhenInUse (2.1.2): | ||
| 76 | + - RNPermissions | ||
| 77 | + - Permission-PhotoLibrary (2.1.2): | ||
| 78 | + - RNPermissions | ||
| 73 | - RCTRequired (0.62.1) | 79 | - RCTRequired (0.62.1) |
| 74 | - RCTTypeSafety (0.62.1): | 80 | - RCTTypeSafety (0.62.1): |
| 75 | - FBLazyVector (= 0.62.1) | 81 | - FBLazyVector (= 0.62.1) |
| @@ -233,6 +239,14 @@ PODS: | @@ -233,6 +239,14 @@ PODS: | ||
| 233 | - React-cxxreact (= 0.62.1) | 239 | - React-cxxreact (= 0.62.1) |
| 234 | - React-jsi (= 0.62.1) | 240 | - React-jsi (= 0.62.1) |
| 235 | - React-jsinspector (0.62.1) | 241 | - React-jsinspector (0.62.1) |
| 242 | + - react-native-camera (3.23.1): | ||
| 243 | + - React | ||
| 244 | + - react-native-camera/RCT (= 3.23.1) | ||
| 245 | + - react-native-camera/RN (= 3.23.1) | ||
| 246 | + - react-native-camera/RCT (3.23.1): | ||
| 247 | + - React | ||
| 248 | + - react-native-camera/RN (3.23.1): | ||
| 249 | + - React | ||
| 236 | - react-native-netinfo (5.7.1): | 250 | - react-native-netinfo (5.7.1): |
| 237 | - React | 251 | - React |
| 238 | - react-native-safe-area-context (0.7.3): | 252 | - react-native-safe-area-context (0.7.3): |
| @@ -310,6 +324,8 @@ PODS: | @@ -310,6 +324,8 @@ PODS: | ||
| 310 | - React | 324 | - React |
| 311 | - RNLocalize (1.4.0): | 325 | - RNLocalize (1.4.0): |
| 312 | - React | 326 | - React |
| 327 | + - RNPermissions (2.1.2): | ||
| 328 | + - React | ||
| 313 | - RNReanimated (1.7.1): | 329 | - RNReanimated (1.7.1): |
| 314 | - React | 330 | - React |
| 315 | - RNScreens (2.4.0): | 331 | - RNScreens (2.4.0): |
| @@ -324,13 +340,16 @@ DEPENDENCIES: | @@ -324,13 +340,16 @@ DEPENDENCIES: | ||
| 324 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) | 340 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) |
| 325 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) | 341 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) |
| 326 | - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) | 342 | - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) |
| 327 | - - FlipperKit (~> 0.33.1) | 343 | + - FlipperKit (~> 0.37.0) |
| 328 | - - FlipperKit/FlipperKitLayoutPlugin (~> 0.33.1) | 344 | + - FlipperKit/FlipperKitLayoutPlugin (~> 0.37.0) |
| 329 | - - FlipperKit/FlipperKitReactPlugin (~> 0.33.1) | 345 | + - FlipperKit/FlipperKitReactPlugin (~> 0.37.0) |
| 330 | - - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.33.1) | 346 | + - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.37.0) |
| 331 | - - FlipperKit/SKIOSNetworkPlugin (~> 0.33.1) | 347 | + - FlipperKit/SKIOSNetworkPlugin (~> 0.37.0) |
| 332 | - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) | 348 | - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) |
| 333 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) | 349 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) |
| 350 | + - Permission-Camera (from `../node_modules/react-native-permissions/ios/Camera.podspec`) | ||
| 351 | + - Permission-LocationWhenInUse (from `../node_modules/react-native-permissions/ios/LocationWhenInUse.podspec`) | ||
| 352 | + - Permission-PhotoLibrary (from `../node_modules/react-native-permissions/ios/PhotoLibrary.podspec`) | ||
| 334 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) | 353 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) |
| 335 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) | 354 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) |
| 336 | - React (from `../node_modules/react-native/`) | 355 | - React (from `../node_modules/react-native/`) |
| @@ -342,6 +361,7 @@ DEPENDENCIES: | @@ -342,6 +361,7 @@ DEPENDENCIES: | ||
| 342 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) | 361 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) |
| 343 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) | 362 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) |
| 344 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) | 363 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) |
| 364 | + - react-native-camera (from `../node_modules/react-native-camera`) | ||
| 345 | - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" | 365 | - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" |
| 346 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) | 366 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) |
| 347 | - react-native-webview (from `../node_modules/react-native-webview`) | 367 | - react-native-webview (from `../node_modules/react-native-webview`) |
| @@ -362,6 +382,7 @@ DEPENDENCIES: | @@ -362,6 +382,7 @@ DEPENDENCIES: | ||
| 362 | - RNDeviceInfo (from `../node_modules/react-native-device-info`) | 382 | - RNDeviceInfo (from `../node_modules/react-native-device-info`) |
| 363 | - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) | 383 | - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) |
| 364 | - RNLocalize (from `../node_modules/react-native-localize`) | 384 | - RNLocalize (from `../node_modules/react-native-localize`) |
| 385 | + - RNPermissions (from `../node_modules/react-native-permissions`) | ||
| 365 | - RNReanimated (from `../node_modules/react-native-reanimated`) | 386 | - RNReanimated (from `../node_modules/react-native-reanimated`) |
| 366 | - RNScreens (from `../node_modules/react-native-screens`) | 387 | - RNScreens (from `../node_modules/react-native-screens`) |
| 367 | - RNVectorIcons (from `../node_modules/react-native-vector-icons`) | 388 | - RNVectorIcons (from `../node_modules/react-native-vector-icons`) |
| @@ -393,6 +414,12 @@ EXTERNAL SOURCES: | @@ -393,6 +414,12 @@ EXTERNAL SOURCES: | ||
| 393 | :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" | 414 | :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" |
| 394 | glog: | 415 | glog: |
| 395 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" | 416 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" |
| 417 | + Permission-Camera: | ||
| 418 | + :path: "../node_modules/react-native-permissions/ios/Camera.podspec" | ||
| 419 | + Permission-LocationWhenInUse: | ||
| 420 | + :path: "../node_modules/react-native-permissions/ios/LocationWhenInUse.podspec" | ||
| 421 | + Permission-PhotoLibrary: | ||
| 422 | + :path: "../node_modules/react-native-permissions/ios/PhotoLibrary.podspec" | ||
| 396 | RCTRequired: | 423 | RCTRequired: |
| 397 | :path: "../node_modules/react-native/Libraries/RCTRequired" | 424 | :path: "../node_modules/react-native/Libraries/RCTRequired" |
| 398 | RCTTypeSafety: | 425 | RCTTypeSafety: |
| @@ -411,6 +438,8 @@ EXTERNAL SOURCES: | @@ -411,6 +438,8 @@ EXTERNAL SOURCES: | ||
| 411 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" | 438 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" |
| 412 | React-jsinspector: | 439 | React-jsinspector: |
| 413 | :path: "../node_modules/react-native/ReactCommon/jsinspector" | 440 | :path: "../node_modules/react-native/ReactCommon/jsinspector" |
| 441 | + react-native-camera: | ||
| 442 | + :path: "../node_modules/react-native-camera" | ||
| 414 | react-native-netinfo: | 443 | react-native-netinfo: |
| 415 | :path: "../node_modules/@react-native-community/netinfo" | 444 | :path: "../node_modules/@react-native-community/netinfo" |
| 416 | react-native-safe-area-context: | 445 | react-native-safe-area-context: |
| @@ -449,6 +478,8 @@ EXTERNAL SOURCES: | @@ -449,6 +478,8 @@ EXTERNAL SOURCES: | ||
| 449 | :path: "../node_modules/react-native-gesture-handler" | 478 | :path: "../node_modules/react-native-gesture-handler" |
| 450 | RNLocalize: | 479 | RNLocalize: |
| 451 | :path: "../node_modules/react-native-localize" | 480 | :path: "../node_modules/react-native-localize" |
| 481 | + RNPermissions: | ||
| 482 | + :path: "../node_modules/react-native-permissions" | ||
| 452 | RNReanimated: | 483 | RNReanimated: |
| 453 | :path: "../node_modules/react-native-reanimated" | 484 | :path: "../node_modules/react-native-reanimated" |
| 454 | RNScreens: | 485 | RNScreens: |
| @@ -465,16 +496,19 @@ SPEC CHECKSUMS: | @@ -465,16 +496,19 @@ SPEC CHECKSUMS: | ||
| 465 | DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 | 496 | DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 |
| 466 | FBLazyVector: 95ee3e58937a6052f86b0e32f142388c22fa22c5 | 497 | FBLazyVector: 95ee3e58937a6052f86b0e32f142388c22fa22c5 |
| 467 | FBReactNativeSpec: 26dd6459299e48cd64eb397c45635e466dba9f45 | 498 | FBReactNativeSpec: 26dd6459299e48cd64eb397c45635e466dba9f45 |
| 468 | - Flipper: 6c1f484f9a88d30ab3e272800d53688439e50f69 | 499 | + Flipper: 1670db365568191bd123a0c905b834e77ba9e3d3 |
| 469 | Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 | 500 | Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 |
| 470 | - Flipper-Folly: 2de3d03e0acc7064d5e4ed9f730e2f217486f162 | 501 | + Flipper-Folly: c12092ea368353b58e992843a990a3225d4533c3 |
| 471 | Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 | 502 | Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 |
| 472 | Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 | 503 | Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 |
| 473 | - Flipper-RSocket: 1260a31c05c238eabfa9bb8a64e3983049048371 | 504 | + Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7 |
| 474 | - FlipperKit: 6dc9b8f4ef60d9e5ded7f0264db299c91f18832e | 505 | + FlipperKit: afd4259ef9eadeeb2d30250b37d95cb3b6b97a69 |
| 475 | Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 | 506 | Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 |
| 476 | glog: 1f3da668190260b06b429bb211bfbee5cd790c28 | 507 | glog: 1f3da668190260b06b429bb211bfbee5cd790c28 |
| 477 | OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 | 508 | OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 |
| 509 | + Permission-Camera: ebdba00e6926aface672cc547b19fa317c3d956e | ||
| 510 | + Permission-LocationWhenInUse: cfd0d39a1c8ab2e9aeb0a1460800f85f74705404 | ||
| 511 | + Permission-PhotoLibrary: e29736d903e867d278747eb30951528303425f64 | ||
| 478 | RCTRequired: e291538a455f5ad1afc2139a4288990be0cadd46 | 512 | RCTRequired: e291538a455f5ad1afc2139a4288990be0cadd46 |
| 479 | RCTTypeSafety: 8b6237185765dd9a03a3647807e08864105b1f95 | 513 | RCTTypeSafety: 8b6237185765dd9a03a3647807e08864105b1f95 |
| 480 | React: 7b33e15fab929c47ac9c3c94c409258b13cfe452 | 514 | React: 7b33e15fab929c47ac9c3c94c409258b13cfe452 |
| @@ -484,6 +518,7 @@ SPEC CHECKSUMS: | @@ -484,6 +518,7 @@ SPEC CHECKSUMS: | ||
| 484 | React-jsi: 600d8e42510c3254fd2abd702f4b9d3f598d8f52 | 518 | React-jsi: 600d8e42510c3254fd2abd702f4b9d3f598d8f52 |
| 485 | React-jsiexecutor: e9698dee4fd43ceb44832baf15d5745f455b0157 | 519 | React-jsiexecutor: e9698dee4fd43ceb44832baf15d5745f455b0157 |
| 486 | React-jsinspector: f74a62727e5604119abd4a1eda52c0a12144bcd5 | 520 | React-jsinspector: f74a62727e5604119abd4a1eda52c0a12144bcd5 |
| 521 | + react-native-camera: 1b52abea404d04e040edb3e74b7c5523c01a3089 | ||
| 487 | react-native-netinfo: 4fa023c153d582aeae8435df95c9a975c5986449 | 522 | react-native-netinfo: 4fa023c153d582aeae8435df95c9a975c5986449 |
| 488 | react-native-safe-area-context: e200d4433aba6b7e60b52da5f37af11f7a0b0392 | 523 | react-native-safe-area-context: e200d4433aba6b7e60b52da5f37af11f7a0b0392 |
| 489 | react-native-webview: 0633fd7861a9bd7a80bacaee7da763c3afc248fa | 524 | react-native-webview: 0633fd7861a9bd7a80bacaee7da763c3afc248fa |
| @@ -503,12 +538,13 @@ SPEC CHECKSUMS: | @@ -503,12 +538,13 @@ SPEC CHECKSUMS: | ||
| 503 | RNDeviceInfo: 6a3d16fce033f6979c4a6a41e62244d183e8c765 | 538 | RNDeviceInfo: 6a3d16fce033f6979c4a6a41e62244d183e8c765 |
| 504 | RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38 | 539 | RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38 |
| 505 | RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796 | 540 | RNLocalize: b6df30cc25ae736d37874f9bce13351db2f56796 |
| 541 | + RNPermissions: a96580116f7894146552e92b000ac30bf1661947 | ||
| 506 | RNReanimated: 4e102df74a9674fa943e05f97f3362b6e44d0b48 | 542 | RNReanimated: 4e102df74a9674fa943e05f97f3362b6e44d0b48 |
| 507 | RNScreens: b5c0e1b2b04512919e78bd3898e144a157ce2363 | 543 | RNScreens: b5c0e1b2b04512919e78bd3898e144a157ce2363 |
| 508 | RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 | 544 | RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 |
| 509 | Yoga: 50fb6eb13d2152e7363293ff603385db380815b1 | 545 | Yoga: 50fb6eb13d2152e7363293ff603385db380815b1 |
| 510 | YogaKit: f782866e155069a2cca2517aafea43200b01fd5a | 546 | YogaKit: f782866e155069a2cca2517aafea43200b01fd5a |
| 511 | 547 | ||
| 512 | -PODFILE CHECKSUM: be6f1c915e19e27904229555c28ac7d81a2caf5a | 548 | +PODFILE CHECKSUM: e597d8e8194d3baf3ffcf09c60685a36eaabf88f |
| 513 | 549 | ||
| 514 | COCOAPODS: 1.9.1 | 550 | COCOAPODS: 1.9.1 |
ios/en.lproj/InfoPlist.strings
0 → 100644
| 1 | +/* | ||
| 2 | + InfoPlist.strings | ||
| 3 | + NGPlay | ||
| 4 | + | ||
| 5 | + Created by Phecda on 2020/4/16. | ||
| 6 | + | ||
| 7 | +*/ | ||
| 8 | +"NSCameraUsageDescription" = "Use your camera to take a photo or scan codes"; | ||
| 9 | +"NSLocationWhenInUseUsageDescription" = "Use your location to check security"; | ||
| 10 | +"NSPhotoLibraryAddUsageDescription" = "Add photos to your photo library"; | ||
| 11 | +"NSPhotoLibraryUsageDescription" = "Read images from your photo library to set a avatar or scan codes"; |
ios/zh-Hans.lproj/InfoPlist.strings
0 → 100644
| 1 | +/* | ||
| 2 | + InfoPlist.strings | ||
| 3 | + NGPlay | ||
| 4 | + | ||
| 5 | + Created by Phecda on 2020/4/16. | ||
| 6 | + | ||
| 7 | +*/ | ||
| 8 | +"NSCameraUsageDescription" = "拍照或扫码功能需要使用相机"; | ||
| 9 | +"NSLocationWhenInUseUsageDescription" = "为保证安全,需要定位"; | ||
| 10 | +"NSPhotoLibraryAddUsageDescription" = "向照片图库中添加照片"; | ||
| 11 | +"NSPhotoLibraryUsageDescription" = "诸如扫码、设置头像等功能需要从照片图库中读取图片"; |
| @@ -25,11 +25,13 @@ | @@ -25,11 +25,13 @@ | ||
| 25 | "immer": "^6.0.3", | 25 | "immer": "^6.0.3", |
| 26 | "react": "16.11.0", | 26 | "react": "16.11.0", |
| 27 | "react-native": "0.62.1", | 27 | "react-native": "0.62.1", |
| 28 | + "react-native-camera": "^3.23.1", | ||
| 28 | "react-native-dark-mode": "^0.2.2", | 29 | "react-native-dark-mode": "^0.2.2", |
| 29 | "react-native-device-info": "^5.5.4", | 30 | "react-native-device-info": "^5.5.4", |
| 30 | "react-native-elements": "^1.2.7", | 31 | "react-native-elements": "^1.2.7", |
| 31 | "react-native-gesture-handler": "^1.6.1", | 32 | "react-native-gesture-handler": "^1.6.1", |
| 32 | "react-native-localize": "^1.4.0", | 33 | "react-native-localize": "^1.4.0", |
| 34 | + "react-native-permissions": "^2.1.2", | ||
| 33 | "react-native-progress": "^4.1.2", | 35 | "react-native-progress": "^4.1.2", |
| 34 | "react-native-reanimated": "^1.7.1", | 36 | "react-native-reanimated": "^1.7.1", |
| 35 | "react-native-safe-area-context": "^0.7.3", | 37 | "react-native-safe-area-context": "^0.7.3", |
| @@ -41,6 +41,7 @@ export const ListItem = ({ | @@ -41,6 +41,7 @@ export const ListItem = ({ | ||
| 41 | subtitleStyle, | 41 | subtitleStyle, |
| 42 | rightTitleStyle, | 42 | rightTitleStyle, |
| 43 | rightSubtitleStyle, | 43 | rightSubtitleStyle, |
| 44 | + chevron, | ||
| 44 | ...props | 45 | ...props |
| 45 | }: ListItemProps) => { | 46 | }: ListItemProps) => { |
| 46 | const styles = useDynamicStyleSheet(dynamicStyles); | 47 | const styles = useDynamicStyleSheet(dynamicStyles); |
| @@ -51,6 +52,7 @@ export const ListItem = ({ | @@ -51,6 +52,7 @@ export const ListItem = ({ | ||
| 51 | subtitleStyle={[styles.subtitleStyle, subtitleStyle]} | 52 | subtitleStyle={[styles.subtitleStyle, subtitleStyle]} |
| 52 | rightTitleStyle={[styles.rightTitleStyle, rightTitleStyle]} | 53 | rightTitleStyle={[styles.rightTitleStyle, rightTitleStyle]} |
| 53 | rightSubtitleStyle={[styles.rightSubtitleStyle, rightSubtitleStyle]} | 54 | rightSubtitleStyle={[styles.rightSubtitleStyle, rightSubtitleStyle]} |
| 55 | + chevron={chevron ?? !!props.onPress} | ||
| 54 | {...props} | 56 | {...props} |
| 55 | /> | 57 | /> |
| 56 | ); | 58 | ); |
| @@ -20,6 +20,7 @@ import WebviewScreen from './WebviewScreen'; | @@ -20,6 +20,7 @@ import WebviewScreen from './WebviewScreen'; | ||
| 20 | import { Platform } from 'react-native'; | 20 | import { Platform } from 'react-native'; |
| 21 | import RNLocalize from './RNLocalize'; | 21 | import RNLocalize from './RNLocalize'; |
| 22 | import { useI18nStrings } from '../i18n'; | 22 | import { useI18nStrings } from '../i18n'; |
| 23 | +import CameraScreen from './CameraScreen'; | ||
| 23 | 24 | ||
| 24 | const MainTab = createBottomTabNavigator<MainTabParamList>(); | 25 | const MainTab = createBottomTabNavigator<MainTabParamList>(); |
| 25 | 26 | ||
| @@ -111,6 +112,7 @@ const Container = () => { | @@ -111,6 +112,7 @@ const Container = () => { | ||
| 111 | })} | 112 | })} |
| 112 | /> | 113 | /> |
| 113 | <MainStack.Screen name="RNLocalize" component={RNLocalize} /> | 114 | <MainStack.Screen name="RNLocalize" component={RNLocalize} /> |
| 115 | + <MainStack.Screen name="RNCamera" component={CameraScreen} /> | ||
| 114 | </MainStack.Navigator> | 116 | </MainStack.Navigator> |
| 115 | </NavigationContainer> | 117 | </NavigationContainer> |
| 116 | ); | 118 | ); |
src/screen/CameraScreen.tsx
0 → 100644
| 1 | +import React, { useRef, useCallback, useState } from 'react'; | ||
| 2 | +import { | ||
| 3 | + RNCamera, | ||
| 4 | + TakePictureResponse, | ||
| 5 | + RNCameraProps, | ||
| 6 | +} from 'react-native-camera'; | ||
| 7 | +import { BGScroll, ListItem, Card, Divider } from '../component/View'; | ||
| 8 | +import { useSwitch, useToggle } from '@huse/boolean'; | ||
| 9 | +import { | ||
| 10 | + Image, | ||
| 11 | + useWindowDimensions, | ||
| 12 | + View, | ||
| 13 | + SafeAreaView, | ||
| 14 | + ActivityIndicator, | ||
| 15 | + Modal, | ||
| 16 | +} from 'react-native'; | ||
| 17 | +import { Icon } from 'react-native-elements'; | ||
| 18 | +import { | ||
| 19 | + DynamicStyleSheet, | ||
| 20 | + useDynamicStyleSheet, | ||
| 21 | +} from 'react-native-dark-mode'; | ||
| 22 | +import { colorPreset } from '../design'; | ||
| 23 | + | ||
| 24 | +const dynamicStyles = new DynamicStyleSheet({ | ||
| 25 | + cameraContainerPortrait: { | ||
| 26 | + flex: 1, | ||
| 27 | + backgroundColor: colorPreset.backgroundColor.primary, | ||
| 28 | + }, | ||
| 29 | + topBar: { flex: 0.5 }, | ||
| 30 | + bottomBar: { | ||
| 31 | + justifyContent: 'space-evenly', | ||
| 32 | + alignItems: 'center', | ||
| 33 | + flex: 1, | ||
| 34 | + }, | ||
| 35 | + loadingButton: { | ||
| 36 | + width: 52, | ||
| 37 | + height: 52, | ||
| 38 | + borderRadius: 28, | ||
| 39 | + backgroundColor: 'white', | ||
| 40 | + margin: 7, | ||
| 41 | + justifyContent: 'center', | ||
| 42 | + alignItems: 'center', | ||
| 43 | + }, | ||
| 44 | + photoResult: { | ||
| 45 | + flex: 1, | ||
| 46 | + height: 240, | ||
| 47 | + resizeMode: 'contain', | ||
| 48 | + margin: 16, | ||
| 49 | + }, | ||
| 50 | +}); | ||
| 51 | + | ||
| 52 | +const CameraModal = ({ | ||
| 53 | + visible, | ||
| 54 | + onCancel, | ||
| 55 | + onTakenPicture, | ||
| 56 | +}: { | ||
| 57 | + onCancel: () => void; | ||
| 58 | + visible: boolean; | ||
| 59 | + onTakenPicture: (picture: TakePictureResponse) => void; | ||
| 60 | +}) => { | ||
| 61 | + const styles = useDynamicStyleSheet(dynamicStyles); | ||
| 62 | + | ||
| 63 | + const camera = useRef<RNCamera>(null); | ||
| 64 | + const [loading, toggleLoading] = useToggle(false); | ||
| 65 | + const [isBackCamera, toggleCameraType] = useToggle(true); | ||
| 66 | + const { width, height } = useWindowDimensions(); | ||
| 67 | + const inPortrait = width <= height; | ||
| 68 | + const previewDimension = inPortrait | ||
| 69 | + ? { width, height: (width * 4) / 3 } | ||
| 70 | + : { height, width: (height * 4) / 3 }; | ||
| 71 | + | ||
| 72 | + const bottomDirection = inPortrait ? 'row' : 'column'; | ||
| 73 | + const containerDirection = inPortrait ? 'column' : 'row'; | ||
| 74 | + | ||
| 75 | + const onShot = useCallback(async () => { | ||
| 76 | + if (camera.current) { | ||
| 77 | + toggleLoading(); | ||
| 78 | + const result = await camera.current.takePictureAsync({ | ||
| 79 | + base64: true, | ||
| 80 | + quality: 0.8, | ||
| 81 | + pauseAfterCapture: true, | ||
| 82 | + doNotSave: true, | ||
| 83 | + }); | ||
| 84 | + toggleLoading(); | ||
| 85 | + onTakenPicture(result); | ||
| 86 | + } | ||
| 87 | + }, [onTakenPicture, toggleLoading]); | ||
| 88 | + | ||
| 89 | + return ( | ||
| 90 | + <Modal visible={visible} onRequestClose={onCancel} animationType="slide"> | ||
| 91 | + <View | ||
| 92 | + style={[ | ||
| 93 | + styles.cameraContainerPortrait, | ||
| 94 | + { flexDirection: containerDirection }, | ||
| 95 | + ]} | ||
| 96 | + > | ||
| 97 | + <SafeAreaView style={styles.topBar} /> | ||
| 98 | + <RNCamera | ||
| 99 | + ref={camera} | ||
| 100 | + type={isBackCamera ? 'back' : 'front'} | ||
| 101 | + style={previewDimension} | ||
| 102 | + captureAudio={false} | ||
| 103 | + /> | ||
| 104 | + <SafeAreaView | ||
| 105 | + style={[ | ||
| 106 | + styles.bottomBar, | ||
| 107 | + { | ||
| 108 | + flexDirection: bottomDirection, | ||
| 109 | + }, | ||
| 110 | + ]} | ||
| 111 | + > | ||
| 112 | + <Icon name="close" raised onPress={onCancel} /> | ||
| 113 | + {loading ? ( | ||
| 114 | + <View style={styles.loadingButton}> | ||
| 115 | + <ActivityIndicator /> | ||
| 116 | + </View> | ||
| 117 | + ) : ( | ||
| 118 | + <Icon name="camera" raised onPress={onShot} /> | ||
| 119 | + )} | ||
| 120 | + <Icon | ||
| 121 | + type="ionicon" | ||
| 122 | + name="ios-reverse-camera" | ||
| 123 | + raised | ||
| 124 | + onPress={toggleCameraType} | ||
| 125 | + /> | ||
| 126 | + </SafeAreaView> | ||
| 127 | + </View> | ||
| 128 | + </Modal> | ||
| 129 | + ); | ||
| 130 | +}; | ||
| 131 | + | ||
| 132 | +type ParamsOf<T extends (...args: any[]) => any> = T extends ( | ||
| 133 | + ...args: infer U | ||
| 134 | +) => any | ||
| 135 | + ? U | ||
| 136 | + : never; | ||
| 137 | + | ||
| 138 | +const Scanner = ({ | ||
| 139 | + visible, | ||
| 140 | + onCancel, | ||
| 141 | + onScanCode, | ||
| 142 | +}: { | ||
| 143 | + visible: boolean; | ||
| 144 | + onCancel: () => void; | ||
| 145 | + onScanCode: ( | ||
| 146 | + ...args: ParamsOf<Required<RNCameraProps>['onBarCodeRead']> | ||
| 147 | + ) => void; | ||
| 148 | +}) => { | ||
| 149 | + const styles = useDynamicStyleSheet(dynamicStyles); | ||
| 150 | + | ||
| 151 | + const camera = useRef<RNCamera>(null); | ||
| 152 | + const { width, height } = useWindowDimensions(); | ||
| 153 | + const inPortrait = width <= height; | ||
| 154 | + const previewDimension = inPortrait | ||
| 155 | + ? { width, height: (width * 4) / 3 } | ||
| 156 | + : { height, width: (height * 4) / 3 }; | ||
| 157 | + | ||
| 158 | + const bottomDirection = inPortrait ? 'row' : 'column'; | ||
| 159 | + const containerDirection = inPortrait ? 'column' : 'row'; | ||
| 160 | + return ( | ||
| 161 | + <Modal visible={visible} onRequestClose={onCancel} animationType="slide"> | ||
| 162 | + <View | ||
| 163 | + style={[ | ||
| 164 | + styles.cameraContainerPortrait, | ||
| 165 | + { flexDirection: containerDirection }, | ||
| 166 | + ]} | ||
| 167 | + > | ||
| 168 | + <SafeAreaView style={styles.topBar} /> | ||
| 169 | + <RNCamera | ||
| 170 | + ref={camera} | ||
| 171 | + style={previewDimension} | ||
| 172 | + captureAudio={false} | ||
| 173 | + onBarCodeRead={onScanCode} | ||
| 174 | + /> | ||
| 175 | + <SafeAreaView | ||
| 176 | + style={[ | ||
| 177 | + styles.bottomBar, | ||
| 178 | + { | ||
| 179 | + flexDirection: bottomDirection, | ||
| 180 | + }, | ||
| 181 | + ]} | ||
| 182 | + > | ||
| 183 | + <Icon name="close" raised onPress={onCancel} /> | ||
| 184 | + </SafeAreaView> | ||
| 185 | + </View> | ||
| 186 | + </Modal> | ||
| 187 | + ); | ||
| 188 | +}; | ||
| 189 | + | ||
| 190 | +const CameraScreen = () => { | ||
| 191 | + const styles = useDynamicStyleSheet(dynamicStyles); | ||
| 192 | + const [cameraVisible, openCamera, closeCamera] = useSwitch(false); | ||
| 193 | + const [scannerVisible, openScanner, closeScanner] = useSwitch(false); | ||
| 194 | + const [tempPicture, setTempPicture] = useState<TakePictureResponse>(); | ||
| 195 | + const [codeData, setCodeData] = useState<string>(); | ||
| 196 | + const [codeType, setCodeType] = useState<string>(); | ||
| 197 | + return ( | ||
| 198 | + <> | ||
| 199 | + <BGScroll> | ||
| 200 | + <Card round> | ||
| 201 | + <ListItem title="Camera Modal" onPress={openCamera} /> | ||
| 202 | + {tempPicture && <Divider />} | ||
| 203 | + {tempPicture && ( | ||
| 204 | + <Image | ||
| 205 | + style={styles.photoResult} | ||
| 206 | + source={{ | ||
| 207 | + uri: `data:image/jpeg;base64,${tempPicture.base64}`, | ||
| 208 | + }} | ||
| 209 | + /> | ||
| 210 | + )} | ||
| 211 | + </Card> | ||
| 212 | + <Card round> | ||
| 213 | + <ListItem title="Scanner Modal" onPress={openScanner} /> | ||
| 214 | + <Divider /> | ||
| 215 | + <ListItem title="data" rightTitle={codeData} /> | ||
| 216 | + <Divider /> | ||
| 217 | + <ListItem title="type" rightTitle={codeType} /> | ||
| 218 | + </Card> | ||
| 219 | + </BGScroll> | ||
| 220 | + <CameraModal | ||
| 221 | + visible={cameraVisible} | ||
| 222 | + onTakenPicture={(picture) => { | ||
| 223 | + setTempPicture(picture); | ||
| 224 | + closeCamera(); | ||
| 225 | + }} | ||
| 226 | + onCancel={closeCamera} | ||
| 227 | + /> | ||
| 228 | + <Scanner | ||
| 229 | + visible={scannerVisible} | ||
| 230 | + onCancel={closeScanner} | ||
| 231 | + onScanCode={(e) => { | ||
| 232 | + setCodeData(e.data); | ||
| 233 | + setCodeType(e.type); | ||
| 234 | + closeScanner(); | ||
| 235 | + }} | ||
| 236 | + /> | ||
| 237 | + </> | ||
| 238 | + ); | ||
| 239 | +}; | ||
| 240 | + | ||
| 241 | +export default CameraScreen; |
| @@ -84,6 +84,12 @@ const SystemInfo = ({ | @@ -84,6 +84,12 @@ const SystemInfo = ({ | ||
| 84 | rightTitle={strings.name} | 84 | rightTitle={strings.name} |
| 85 | chevron | 85 | chevron |
| 86 | /> | 86 | /> |
| 87 | + <Divider /> | ||
| 88 | + <ListItem | ||
| 89 | + title={'Camera'} | ||
| 90 | + onPress={() => navigation.navigate('RNCamera')} | ||
| 91 | + chevron | ||
| 92 | + /> | ||
| 87 | </Card> | 93 | </Card> |
| 88 | </BGScroll> | 94 | </BGScroll> |
| 89 | ); | 95 | ); |
| @@ -12,6 +12,7 @@ export type MainStackParamList = { | @@ -12,6 +12,7 @@ export type MainStackParamList = { | ||
| 12 | RNDeviceInfoList: undefined; | 12 | RNDeviceInfoList: undefined; |
| 13 | WebviewScreen: { uri: string } | undefined; | 13 | WebviewScreen: { uri: string } | undefined; |
| 14 | RNLocalize: undefined; | 14 | RNLocalize: undefined; |
| 15 | + RNCamera: undefined; | ||
| 15 | }; | 16 | }; |
| 16 | 17 | ||
| 17 | export type MainTabScreenProps<RouteName extends keyof MainTabParamList> = { | 18 | export type MainTabScreenProps<RouteName extends keyof MainTabParamList> = { |
| @@ -6880,6 +6880,13 @@ react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react- | @@ -6880,6 +6880,13 @@ react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react- | ||
| 6880 | resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" | 6880 | resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" |
| 6881 | integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ= | 6881 | integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ= |
| 6882 | 6882 | ||
| 6883 | +react-native-camera@^3.23.1: | ||
| 6884 | + version "3.23.1" | ||
| 6885 | + resolved "https://registry.npm.taobao.org/react-native-camera/download/react-native-camera-3.23.1.tgz#fb6fe52f8a357852de6dcd81d0d187cd632dc7dd" | ||
| 6886 | + integrity sha1-+2/lL4o1eFLebc2B0NGHzWMtx90= | ||
| 6887 | + dependencies: | ||
| 6888 | + prop-types "^15.6.2" | ||
| 6889 | + | ||
| 6883 | react-native-dark-mode@^0.2.2: | 6890 | react-native-dark-mode@^0.2.2: |
| 6884 | version "0.2.2" | 6891 | version "0.2.2" |
| 6885 | resolved "https://registry.npm.taobao.org/react-native-dark-mode/download/react-native-dark-mode-0.2.2.tgz#4faa335e36330bfca832ba8b3d2bd84c7b880381" | 6892 | resolved "https://registry.npm.taobao.org/react-native-dark-mode/download/react-native-dark-mode-0.2.2.tgz#4faa335e36330bfca832ba8b3d2bd84c7b880381" |
| @@ -6930,6 +6937,11 @@ react-native-localize@^1.4.0: | @@ -6930,6 +6937,11 @@ react-native-localize@^1.4.0: | ||
| 6930 | resolved "https://registry.npm.taobao.org/react-native-localize/download/react-native-localize-1.4.0.tgz#4653596d066d0941c48f5404dc1c0d08b6950443" | 6937 | resolved "https://registry.npm.taobao.org/react-native-localize/download/react-native-localize-1.4.0.tgz#4653596d066d0941c48f5404dc1c0d08b6950443" |
| 6931 | integrity sha1-RlNZbQZtCUHEj1QE3BwNCLaVBEM= | 6938 | integrity sha1-RlNZbQZtCUHEj1QE3BwNCLaVBEM= |
| 6932 | 6939 | ||
| 6940 | +react-native-permissions@^2.1.2: | ||
| 6941 | + version "2.1.2" | ||
| 6942 | + resolved "https://registry.npm.taobao.org/react-native-permissions/download/react-native-permissions-2.1.2.tgz#14f30a6cfa0851ecb210d7eadcc590f8823c8585" | ||
| 6943 | + integrity sha1-FPMKbPoIUeyyENfq3MWQ+II8hYU= | ||
| 6944 | + | ||
| 6933 | react-native-progress@^4.1.2: | 6945 | react-native-progress@^4.1.2: |
| 6934 | version "4.1.2" | 6946 | version "4.1.2" |
| 6935 | resolved "https://registry.npm.taobao.org/react-native-progress/download/react-native-progress-4.1.2.tgz#ffb2264ddfeba409c730e36a9791bb7bbe07a00d" | 6947 | resolved "https://registry.npm.taobao.org/react-native-progress/download/react-native-progress-4.1.2.tgz#ffb2264ddfeba409c730e36a9791bb7bbe07a00d" |
-
Please register or login to post a comment