Просмотр исходного кода

- Version change from 1.3.3 to 1.4.0
- Upgrade to latest react-native and all the packages
- Basic integration of Jitsi video chat

Alex Trofimov 6 лет назад
Родитель
Сommit
fe24295414
89 измененных файлов с 2020 добавлено и 2005 удалено
  1. 3 4
      .flowconfig
  2. 75 5
      App.js
  3. 33 0
      VideoCall.js
  4. 0 0
      android/app/_BUCK
  5. 29 6
      android/app/build.gradle
  6. 72 0
      android/app/src/debug/java/com/una/ReactNativeFlipper.java
  7. 30 23
      android/app/src/main/AndroidManifest.xml
  8. 1 7
      android/app/src/main/java/com/una/android/MainActivity.java
  9. 17 5
      android/app/src/main/java/com/una/android/MainApplication.java
  10. BIN
      android/app/src/main/res/drawable-hdpi/splash_image.png
  11. BIN
      android/app/src/main/res/drawable-land-hdpi/launch_screen.png
  12. BIN
      android/app/src/main/res/drawable-land-ldpi/launch_screen.png
  13. BIN
      android/app/src/main/res/drawable-land-mdpi/launch_screen.png
  14. BIN
      android/app/src/main/res/drawable-land-xhdpi/launch_screen.png
  15. BIN
      android/app/src/main/res/drawable-land-xxhdpi/launch_screen.png
  16. BIN
      android/app/src/main/res/drawable-land-xxxhdpi/launch_screen.png
  17. BIN
      android/app/src/main/res/drawable-mdpi/splash_image.png
  18. BIN
      android/app/src/main/res/drawable-port-hdpi/launch_screen.png
  19. BIN
      android/app/src/main/res/drawable-port-ldpi/launch_screen.png
  20. BIN
      android/app/src/main/res/drawable-port-mdpi/launch_screen.png
  21. BIN
      android/app/src/main/res/drawable-port-xhdpi/launch_screen.png
  22. BIN
      android/app/src/main/res/drawable-port-xxhdpi/launch_screen.png
  23. BIN
      android/app/src/main/res/drawable-port-xxxhdpi/launch_screen.png
  24. BIN
      android/app/src/main/res/drawable-xhdpi/splash_image.png
  25. BIN
      android/app/src/main/res/drawable-xxhdpi/splash_image.png
  26. 8 0
      android/app/src/main/res/drawable/launch_screen_bitmap.xml
  27. 0 11
      android/app/src/main/res/drawable/splashscreen.xml
  28. 0 15
      android/app/src/main/res/layout/launch_screen.xml
  29. 0 4
      android/app/src/main/res/values/colors-splash.xml
  30. 1 4
      android/app/src/main/res/values/styles.xml
  31. 6 4
      android/build.gradle
  32. 8 1
      android/gradle.properties
  33. 1 1
      android/gradle/wrapper/gradle-wrapper.properties
  34. 3 3
      android/gradlew
  35. 1 1
      android/gradlew.bat
  36. 33 5
      ios/Podfile
  37. 276 162
      ios/Podfile.lock
  38. 221 155
      ios/una.xcodeproj/project.pbxproj
  39. 2 43
      ios/una.xcodeproj/xcshareddata/xcschemes/una-tvOS.xcscheme
  40. 2 43
      ios/una.xcodeproj/xcshareddata/xcschemes/una.xcscheme
  41. 0 7
      ios/una/AppDelegate.h
  42. 23 9
      ios/una/AppDelegate.m
  43. 26 12
      ios/una/Base.lproj/LaunchScreen.xib
  44. 104 104
      ios/una/Images.xcassets/AppIcon.appiconset/Contents.json
  45. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-1024@1x.png
  46. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-20@1x.png
  47. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-20@2x.png
  48. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-20@3x.png
  49. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-29@1x.png
  50. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-29@2x.png
  51. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-29@3x.png
  52. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-40@1x.png
  53. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-40@2x.png
  54. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-40@3x.png
  55. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-50@1x.png
  56. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-50@2x.png
  57. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-57@1x.png
  58. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-57@2x.png
  59. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-60@2x.png
  60. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-60@3x.png
  61. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-72@1x.png
  62. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-72@2x.png
  63. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-76@1x.png
  64. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-76@2x.png
  65. BIN
      ios/una/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png
  66. 1 1
      ios/una/Images.xcassets/Contents.json
  67. 135 0
      ios/una/Images.xcassets/LaunchImage.launchimage/Contents.json
  68. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
  69. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png
  70. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png
  71. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape-812h@3x.png
  72. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png
  73. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png
  74. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png
  75. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait-812h@3x.png
  76. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png
  77. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png
  78. BIN
      ios/una/Images.xcassets/LaunchImage.launchimage/Default@2x.png
  79. 0 23
      ios/una/Images.xcassets/SplashImage.imageset/Contents.json
  80. BIN
      ios/una/Images.xcassets/SplashImage.imageset/splash@1x.png
  81. BIN
      ios/una/Images.xcassets/SplashImage.imageset/splash@2x.png
  82. BIN
      ios/una/Images.xcassets/SplashImage.imageset/splash@3x.png
  83. 8 5
      ios/una/Info.plist
  84. 0 7
      ios/una/main.m
  85. 1 8
      ios/unaTests/unaTests.m
  86. 8 0
      metro.config.js
  87. 398 843
      package-lock.json
  88. 13 13
      package.json
  89. 481 471
      yarn.lock

+ 3 - 4
.flowconfig

@@ -21,7 +21,7 @@ node_modules/warning/.*
 [include]
 
 [libs]
-node_modules/react-native/Libraries/react-native/react-native-interface.js
+node_modules/react-native/interface.js
 node_modules/react-native/flow/
 
 [options]
@@ -36,9 +36,8 @@ module.file_ext=.ios.js
 
 munge_underscores=true
 
-module.name_mapper='^react-native$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation'
 module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
-module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
+module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
 
 suppress_type=$FlowIssue
 suppress_type=$FlowFixMe
@@ -72,4 +71,4 @@ untyped-import
 untyped-type-import
 
 [version]
-^0.105.0
+^0.113.0

+ 75 - 5
App.js

@@ -27,6 +27,9 @@ import {
     Drawer,
 } from 'native-base';
 
+import JitsiMeet, { JitsiMeetView } from 'react-native-jitsi-meet';
+import VideoCall from './VideoCall';
+
 type Props = {};
 
 const BASE_URL = 'https://una.io/';
@@ -50,19 +53,61 @@ export default class App extends Component<Props> {
             data: {},
             searchbar: false,
             key: 1,
+            videoCall: 0,
+            videoCallUri: false,
         };
 
         this.onBack.bind(this);
         this.onMainMenu.bind(this);
+
+        this.onConferenceTerminated = this.onConferenceTerminated.bind(this);
+        this.onConferenceJoined = this.onConferenceJoined.bind(this);
+        this.onConferenceWillJoin = this.onConferenceWillJoin.bind(this);
+    }
+
+    onConferenceTerminated(nativeEvent) {
+        this.endVideoCall();
+    }
+
+    onConferenceJoined(nativeEvent) {
+        // console.log("-------->>>>>> Conference joined event");
+    }
+
+    onConferenceWillJoin(nativeEvent) {
+        // console.log("-------->>>>>> Conference will join event");
+    }
+
+    endVideoCall() {
+        this.setState ({
+            videoCall: 0,
+        });
+        JitsiMeet.endCall();
+    }    
+
+    onVideoCall() {
+        if (this.state.videoCall) {
+            this.endVideoCall();
+            this.setState ({
+                videoCall: 0,
+                videoCallUri: false,
+            });
+        }
+        else {
+            this.setState ({
+                videoCall: 1,
+                videoCallUri: 'bla125qfbqwef',
+            });
+        }
     }
 
     onBack() {
+        this.endVideoCall();
         if (this.state.backButtonEnabled) {
     
             if ('android' === Platform.OS)
                 this.onWebViewLoadStart(); // show loading screen
             
-            // this.refs.webView.goBack();
+            // this.refs.webView1.goBack();
             this.injectJavaScript("window.history.go(-1)");
             return true;
         }
@@ -70,6 +115,7 @@ export default class App extends Component<Props> {
     }
     
     onMainMenu() {
+        this.endVideoCall();
         if (this.state.data.loggedin)
             this.injectJavaScript("bx_mobile_apps_show_main_menu()");
         else
@@ -86,26 +132,31 @@ export default class App extends Component<Props> {
     }
 
     onProfileMenu() {
+        this.endVideoCall();
         this.injectJavaScript("bx_mobile_apps_show_profile_menu()");
         return true;
     }
 
     onAddMenu() {
+        this.endVideoCall();
         this.injectJavaScript("bx_mobile_apps_show_add_menu()");
         return true;
     }
     
     onNotificationsMenu() {
+        this.endVideoCall();
         this.injectJavaScript("bx_mobile_apps_show_notifications_menu()");
         return true;
     }
     
     onMessengerMenu() {
+        this.endVideoCall();
         this.injectJavaScript("bx_mobile_apps_show_messenger_menu()");
         return true;
     }
     
     onHomeMenu() {
+        this.endVideoCall();
 
         if (`${BASE_URL}?skin=${TEMPLATE}` == this.state.url || `${BASE_URL}` == this.state.url || `${BASE_URL}index.php` == this.state.url) {
             this.injectJavaScript("bx_mobile_apps_close_sliding_menus()");
@@ -134,6 +185,7 @@ export default class App extends Component<Props> {
     }
 
     onSearchMenu() {
+        this.endVideoCall();
         this.setState ({
             loading: this.loading,
             searchbar: true,
@@ -196,17 +248,17 @@ export default class App extends Component<Props> {
     }
 
     reload() {
-        this.refs.webView.reload();
+        this.refs.webView1.reload();
     }
 
     postMessage (data) {
         // posts a message to web view
-        this.refs.webView.postMessage(data);
+        this.refs.webView1.postMessage(data);
     }
 
     injectJavaScript (script) {
         // executes JavaScript immediately in web view
-        this.refs.webView.injectJavaScript(script);
+        this.refs.webView1.injectJavaScript(script);
     }
 
     onWebViewShouldStartLoadWithRequest (event) {
@@ -334,10 +386,11 @@ export default class App extends Component<Props> {
             <Container>
             <Drawer ref="drawer" content={this.renderDrawer()} onClose={this.drawerClose.bind(this)}>
                 {this.state.searchbar ? this.renderToolbarSearch() : this.renderToolbar() }
+                {this.state.videoCall && this.state.videoCallUri ? this.renderVideoCall() : (<View />)}
                 <WebView
                     useWebKit={true}
 
-                    ref="webView"
+                    ref="webView1"
                     key={this.state.key}
                     geolocationEnabled={true}
                     builtInZoomControls={false}
@@ -372,6 +425,11 @@ export default class App extends Component<Props> {
                                 <Icon name="bell" type="FontAwesome5" solid />
                             </Button>
                         </FooterTab>
+                        <FooterTab>
+                            <Button vertical onPress={this.onVideoCall.bind(this)}>
+                                <Icon name="video" type="FontAwesome5" solid />
+                            </Button>
+                        </FooterTab>
                         <FooterTab>
                             <Button vertical onPress={this.onAddMenu.bind(this)}>
                                 <Icon name="plus-circle" type="FontAwesome5" solid />
@@ -405,6 +463,14 @@ export default class App extends Component<Props> {
         );
     }
 
+    renderVideoCall () {
+        return (
+            <View style={styles.containerVideoCall}>
+                <VideoCall onConferenceTerminated={this.onConferenceTerminated} onConferenceJoined={this.onConferenceJoined} onConferenceWillJoin={this.onConferenceWillJoin} conferenceUri={this.state.videoCallUri} />
+            </View>
+        );
+    }
+
     renderToolbar () {
         return (        
             <Header>
@@ -474,6 +540,10 @@ export default class App extends Component<Props> {
 }
 
 const styles = StyleSheet.create({
+    containerVideoCall: {
+        backgroundColor: '#000',
+        flex: 999999999999,
+    },
     containerWebView: {
         flex: 1,
     },

+ 33 - 0
VideoCall.js

@@ -0,0 +1,33 @@
+import React from 'react';
+import { View } from 'react-native';
+import JitsiMeet, { JitsiMeetView } from 'react-native-jitsi-meet';
+
+class VideoCall extends React.Component {
+    constructor(props) {
+        super(props);
+    }
+
+    componentDidMount() {
+        setTimeout(() => {
+            if (this.props.audio)
+                JitsiMeet.audioCall(this.props.conferenceUri);
+            else
+                JitsiMeet.call(this.props.conferenceUri);
+        }, 1000);
+    }
+
+    render() {
+        return (
+            <JitsiMeetView onConferenceTerminated={this.props.onConferenceTerminated} onConferenceJoined={this.props.onConferenceJoined} onConferenceWillJoin={this.props.onConferenceWillJoin} style={{ flex: 1, height: '100%', width: '100%' }} />
+        );
+    }
+}
+
+VideoCall.defaultProps = { 
+    onConferenceTerminated: () => {},
+    onConferenceJoined: () => {},
+    onConferenceWillJoin: () => {},
+    audio: false,
+};
+
+export default VideoCall;

+ 0 - 0
android/app/BUCK → android/app/_BUCK


+ 29 - 6
android/app/build.gradle

@@ -15,7 +15,9 @@ import com.android.build.OutputFile
  *   // the name of the generated asset file containing your JS bundle
  *   bundleAssetName: "index.android.bundle",
  *
- *   // the entry file for bundle generation
+ *   // the entry file for bundle generation. If none specified and
+ *   // "index.android.js" exists, it will be used. Otherwise "index.js" is
+ *   // default. Can be overridden with ENTRY_FILE environment variable.
  *   entryFile: "index.android.js",
  *
  *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
@@ -77,6 +79,7 @@ import com.android.build.OutputFile
 
 project.ext.react = [
     entryFile: "index.js",
+    bundleAssetName: "app.bundle",
     enableHermes: false,  // clean and rebuild if changing
 ]
 
@@ -131,8 +134,8 @@ android {
         applicationId "com.una.android"
         minSdkVersion rootProject.ext.minSdkVersion
         targetSdkVersion rootProject.ext.targetSdkVersion
-        versionCode 1330
-        versionName "1.3.3"
+        versionCode 1400
+        versionName "1.4.0"
     }
     signingConfigs {
         release {
@@ -172,6 +175,14 @@ android {
             proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
         }
     }
+
+    packagingOptions {
+        pickFirst "lib/armeabi-v7a/libc++_shared.so"
+        pickFirst "lib/arm64-v8a/libc++_shared.so"
+        pickFirst "lib/x86/libc++_shared.so"
+        pickFirst "lib/x86_64/libc++_shared.so"
+    }
+
     // applicationVariants are e.g. debug, release
     applicationVariants.all { variant ->
         variant.outputs.each { output ->
@@ -189,12 +200,24 @@ android {
 }
 
 dependencies {
-    implementation project(':react-native-splash-screen')
-    implementation project(':react-native-webview')
-    implementation project(':react-native-onesignal')
     implementation fileTree(dir: "libs", include: ["*.jar"])
+    //noinspection GradleDynamicVersion
     implementation "com.facebook.react:react-native:+"  // From node_modules
 
+    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
+
+    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
+      exclude group:'com.facebook.fbjni'
+    }
+
+    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
+        exclude group:'com.facebook.flipper'
+    }
+
+    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
+        exclude group:'com.facebook.flipper'
+    }
+
     if (enableHermes) {
         def hermesPath = "../../node_modules/hermes-engine/android/";
         debugImplementation files(hermesPath + "hermes-debug.aar")

+ 72 - 0
android/app/src/debug/java/com/una/ReactNativeFlipper.java

@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * <p>This source code is licensed under the MIT license found in the LICENSE file in the root
+ * directory of this source tree.
+ */
+package com.una;
+
+import android.content.Context;
+import com.facebook.flipper.android.AndroidFlipperClient;
+import com.facebook.flipper.android.utils.FlipperUtils;
+import com.facebook.flipper.core.FlipperClient;
+import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
+import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
+import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
+import com.facebook.flipper.plugins.inspector.DescriptorMapping;
+import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
+import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
+import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
+import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
+import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.modules.network.NetworkingModule;
+import okhttp3.OkHttpClient;
+
+public class ReactNativeFlipper {
+  public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
+    if (FlipperUtils.shouldEnableFlipper(context)) {
+      final FlipperClient client = AndroidFlipperClient.getInstance(context);
+
+      client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
+      client.addPlugin(new ReactFlipperPlugin());
+      client.addPlugin(new DatabasesFlipperPlugin(context));
+      client.addPlugin(new SharedPreferencesFlipperPlugin(context));
+      client.addPlugin(CrashReporterPlugin.getInstance());
+
+      NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
+      NetworkingModule.setCustomClientBuilder(
+          new NetworkingModule.CustomClientBuilder() {
+            @Override
+            public void apply(OkHttpClient.Builder builder) {
+              builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
+            }
+          });
+      client.addPlugin(networkFlipperPlugin);
+      client.start();
+
+      // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
+      // Hence we run if after all native modules have been initialized
+      ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
+      if (reactContext == null) {
+        reactInstanceManager.addReactInstanceEventListener(
+            new ReactInstanceManager.ReactInstanceEventListener() {
+              @Override
+              public void onReactContextInitialized(ReactContext reactContext) {
+                reactInstanceManager.removeReactInstanceEventListener(this);
+                reactContext.runOnNativeModulesQueueThread(
+                    new Runnable() {
+                      @Override
+                      public void run() {
+                        client.addPlugin(new FrescoFlipperPlugin());
+                      }
+                    });
+              }
+            });
+      } else {
+        client.addPlugin(new FrescoFlipperPlugin());
+      }
+    }
+  }
+}

+ 30 - 23
android/app/src/main/AndroidManifest.xml

@@ -1,32 +1,39 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-  package="com.una.android">
+    package="com.una.android">
 
     <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
 
     <application
-      android:name=".MainApplication"
-      android:label="@string/app_name"
-      android:icon="@mipmap/ic_launcher"
-      android:allowBackup="false"
-      android:theme="@style/AppTheme">
-      <activity
-        android:name=".MainActivity"
+        android:name=".MainApplication"
         android:label="@string/app_name"
-        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
-        android:windowSoftInputMode="adjustResize">
-        <intent-filter>
-            <action android:name="android.intent.action.MAIN" />
-            <category android:name="android.intent.category.LAUNCHER" />
-        </intent-filter>
-      <intent-filter android:label="UNA.IO">
-            <action android:name="android.intent.action.VIEW" />
-            <category android:name="android.intent.category.DEFAULT" />
-            <data android:scheme="https" android:host="una.io" />
-            <data android:scheme="http" android:host="una.io" />
-        </intent-filter>
-      </activity>
-      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
+      android:icon="@mipmap/ic_launcher"
+        android:theme="@style/AppTheme">
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
+            android:launchMode="singleTask"
+            android:windowSoftInputMode="adjustResize">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            <intent-filter android:label="UNA.IO">
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+
+                <data
+                    android:scheme="https"
+                    android:host="una.io" />
+                <data
+                    android:scheme="http"
+                    android:host="una.io" />
+            </intent-filter>
+        </activity>
+        <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
     </application>
 
 </manifest>

+ 1 - 7
android/app/src/main/java/com/una/android/MainActivity.java

@@ -1,15 +1,9 @@
 package com.una.android;
 
-import android.os.Bundle;
-import org.devio.rn.splashscreen.SplashScreen;
 import com.facebook.react.ReactActivity;
 
 public class MainActivity extends ReactActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        SplashScreen.show(this, R.style.SplashScreenTheme);
-        super.onCreate(savedInstanceState);
-    }
+
   /**
    * Returns the name of the main component registered from JavaScript. This is used to schedule
    * rendering of the component.

+ 17 - 5
android/app/src/main/java/com/una/android/MainApplication.java

@@ -2,11 +2,13 @@ package com.una.android;
 
 import android.app.Application;
 import android.content.Context;
+import androidx.annotation.Nullable;
 import com.facebook.react.PackageList;
 import com.facebook.react.ReactApplication;
 import org.devio.rn.splashscreen.SplashScreenReactPackage;
 import com.reactnativecommunity.webview.RNCWebViewPackage;
 import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
+import com.facebook.react.ReactInstanceManager;
 import com.facebook.react.ReactNativeHost;
 import com.facebook.react.ReactPackage;
 import com.facebook.soloader.SoLoader;
@@ -35,6 +37,11 @@ public class MainApplication extends Application implements ReactApplication {
         protected String getJSMainModuleName() {
           return "index";
         }
+
+        @Override
+        protected @Nullable String getBundleAssetName() {
+          return "app.bundle";
+        }
       };
 
   @Override
@@ -46,23 +53,28 @@ public class MainApplication extends Application implements ReactApplication {
   public void onCreate() {
     super.onCreate();
     SoLoader.init(this, /* native exopackage */ false);
-    initializeFlipper(this); // Remove this line if you don't want Flipper enabled
+    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
   }
 
   /**
-   * Loads Flipper in React Native templates.
+   * Loads Flipper in React Native templates. Call this in the onCreate method with something like
+   * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
    *
    * @param context
+   * @param reactInstanceManager
    */
-  private static void initializeFlipper(Context context) {
+  private static void initializeFlipper(
+      Context context, ReactInstanceManager reactInstanceManager) {
     if (BuildConfig.DEBUG) {
       try {
         /*
          We use reflection here to pick up the class that initializes Flipper,
         since Flipper library is not available in release mode
         */
-        Class<?> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
-        aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
+        Class<?> aClass = Class.forName("com.una.ReactNativeFlipper");
+        aClass
+            .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
+            .invoke(null, context, reactInstanceManager);
       } catch (ClassNotFoundException e) {
         e.printStackTrace();
       } catch (NoSuchMethodException e) {

BIN
android/app/src/main/res/drawable-hdpi/splash_image.png


BIN
android/app/src/main/res/drawable-land-hdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-land-ldpi/launch_screen.png


BIN
android/app/src/main/res/drawable-land-mdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-land-xhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-land-xxhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-land-xxxhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-mdpi/splash_image.png


BIN
android/app/src/main/res/drawable-port-hdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-port-ldpi/launch_screen.png


BIN
android/app/src/main/res/drawable-port-mdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-port-xhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-port-xxhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-port-xxxhdpi/launch_screen.png


BIN
android/app/src/main/res/drawable-xhdpi/splash_image.png


BIN
android/app/src/main/res/drawable-xxhdpi/splash_image.png


+ 8 - 0
android/app/src/main/res/drawable/launch_screen_bitmap.xml

@@ -0,0 +1,8 @@
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
+  <item android:drawable="@color/splashBackground"/>
+  <item>
+    <bitmap
+      android:src="@drawable/launch_screen"
+      android:gravity="center"/>
+  </item>
+</layer-list>

+ 0 - 11
android/app/src/main/res/drawable/splashscreen.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:drawable="@color/splashprimary" />
-    <item>
-        <bitmap
-                android:gravity="center"
-                android:src="@drawable/splash_image" />
-    </item>
-
-</layer-list>

+ 0 - 15
android/app/src/main/res/layout/launch_screen.xml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <ImageView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_margin="0dp"
-        android:contentDescription="Splashscreen"
-        android:scaleType="fitCenter"
-        android:background="@color/splashprimary"
-        android:src="@drawable/splashscreen"/>
-</RelativeLayout>

+ 0 - 4
android/app/src/main/res/values/colors-splash.xml

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <color name="splashprimary">#FFFFFF</color>
-</resources>

+ 1 - 4
android/app/src/main/res/values/styles.xml

@@ -1,9 +1,6 @@
 <resources>
-
-    <style name="SplashScreenTheme" parent="SplashScreen_SplashTheme">
-        <item name="colorPrimaryDark">@color/splashprimary</item>
-    </style>
     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
         <item name="android:windowExitAnimation">@android:anim/fade_out</item>
+        <item name="android:windowBackground">@drawable/launch_screen_bitmap</item>
     </style>
 </resources>

+ 6 - 4
android/build.gradle

@@ -3,7 +3,7 @@
 buildscript {
     ext {
         buildToolsVersion = "28.0.3"
-        minSdkVersion = 16
+        minSdkVersion = 21
         compileSdkVersion = 28
         targetSdkVersion = 28
     }
@@ -12,7 +12,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath('com.android.tools.build:gradle:3.5.1')
+        classpath('com.android.tools.build:gradle:3.6.2')
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -30,9 +30,11 @@ allprojects {
             // Android JSC is installed from npm
             url("$rootDir/../node_modules/jsc-android/dist")
         }
-
+        maven {
+            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
+        }
         google()
         jcenter()
-        maven { url 'https://jitpack.io' }
+        maven { url 'https://www.jitpack.io' }
     }
 }

+ 8 - 1
android/gradle.properties

@@ -17,10 +17,17 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
 
+# Version of flipper SDK to use with React Native
+FLIPPER_VERSION=0.33.1
+
 MYAPP_RELEASE_STORE_FILE=una-release-key.keystore
 MYAPP_RELEASE_KEY_ALIAS=una
 MYAPP_RELEASE_STORE_PASSWORD=
-MYAPP_RELEASE_KEY_PASSWORD=
+MYAPP_RELEASE_KEY_PASSWORD=

+ 1 - 1
android/gradle/wrapper/gradle-wrapper.properties

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

+ 3 - 3
android/gradlew

@@ -7,7 +7,7 @@
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
-#      http://www.apache.org/licenses/LICENSE-2.0
+#      https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -125,8 +125,8 @@ if $darwin; then
     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
 fi
 
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
     JAVACMD=`cygpath --unix "$JAVACMD"`

+ 1 - 1
android/gradlew.bat

@@ -5,7 +5,7 @@
 @rem you may not use this file except in compliance with the License.
 @rem You may obtain a copy of the License at
 @rem
-@rem      http://www.apache.org/licenses/LICENSE-2.0
+@rem      https://www.apache.org/licenses/LICENSE-2.0
 @rem
 @rem Unless required by applicable law or agreed to in writing, software
 @rem distributed under the License is distributed on an "AS IS" BASIS,

+ 33 - 5
ios/Podfile

@@ -1,6 +1,26 @@
-platform :ios, '9.0'
+platform :ios, '10.0'
 require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
 
+def add_flipper_pods!
+  version = '~> 0.33.1'
+  pod 'FlipperKit', version, :configuration => 'Debug'
+  pod 'FlipperKit/FlipperKitLayoutPlugin', version, :configuration => 'Debug'
+  pod 'FlipperKit/SKIOSNetworkPlugin', version, :configuration => 'Debug'
+  pod 'FlipperKit/FlipperKitUserDefaultsPlugin', version, :configuration => 'Debug'
+  pod 'FlipperKit/FlipperKitReactPlugin', version, :configuration => 'Debug'
+end
+
+# Post Install processing for Flipper
+def flipper_post_install(installer)
+  installer.pods_project.targets.each do |target|
+    if target.name == 'YogaKit'
+      target.build_configurations.each do |config|
+        config.build_settings['SWIFT_VERSION'] = '4.1'
+      end
+    end
+  end
+end
+
 target 'una' do
   # Pods for una
   pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
@@ -26,9 +46,9 @@ target 'una' do
   pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
   pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
   pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
-  pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
+  pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
   pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
-  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
+  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true
 
   pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
   pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
@@ -41,11 +61,20 @@ target 'una' do
   pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
 
   target 'unaTests' do
-    inherit! :search_paths
+    inherit! :complete
     # Pods for testing
   end
 
   use_native_modules!
+
+  # Enables Flipper.
+  #
+  # Note that if you have use_frameworks! enabled, Flipper will not work and
+  # you should disable these next few lines.
+  add_flipper_pods!
+  post_install do |installer|
+    flipper_post_install(installer)
+  end
 end
 
 target 'una-tvOS' do
@@ -55,5 +84,4 @@ target 'una-tvOS' do
     inherit! :search_paths
     # Pods for testing
   end
-
 end

+ 276 - 162
ios/Podfile.lock

@@ -1,14 +1,62 @@
 PODS:
   - boost-for-react-native (1.63.0)
+  - CocoaAsyncSocket (7.6.4)
+  - CocoaLibEvent (1.0.0)
   - DoubleConversion (1.1.6)
-  - FBLazyVector (0.61.2)
-  - FBReactNativeSpec (0.61.2):
+  - FBLazyVector (0.62.1)
+  - FBReactNativeSpec (0.62.1):
     - Folly (= 2018.10.22.00)
-    - RCTRequired (= 0.61.2)
-    - RCTTypeSafety (= 0.61.2)
-    - React-Core (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - ReactCommon/turbomodule/core (= 0.61.2)
+    - RCTRequired (= 0.62.1)
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - Flipper (0.33.1):
+    - Flipper-Folly (~> 2.1)
+    - Flipper-RSocket (~> 1.0)
+  - Flipper-DoubleConversion (1.1.7)
+  - Flipper-Folly (2.2.0):
+    - boost-for-react-native
+    - CocoaLibEvent (~> 1.0)
+    - Flipper-DoubleConversion
+    - Flipper-Glog
+    - OpenSSL-Universal (= 1.0.2.19)
+  - Flipper-Glog (0.3.6)
+  - Flipper-PeerTalk (0.0.4)
+  - Flipper-RSocket (1.1.0):
+    - Flipper-Folly (~> 2.2)
+  - FlipperKit (0.33.1):
+    - FlipperKit/Core (= 0.33.1)
+  - FlipperKit/Core (0.33.1):
+    - Flipper (~> 0.33.1)
+    - FlipperKit/CppBridge
+    - FlipperKit/FBCxxFollyDynamicConvert
+    - FlipperKit/FBDefines
+    - FlipperKit/FKPortForwarding
+  - FlipperKit/CppBridge (0.33.1):
+    - Flipper (~> 0.33.1)
+  - FlipperKit/FBCxxFollyDynamicConvert (0.33.1):
+    - Flipper-Folly (~> 2.1)
+  - FlipperKit/FBDefines (0.33.1)
+  - FlipperKit/FKPortForwarding (0.33.1):
+    - CocoaAsyncSocket (~> 7.6)
+    - Flipper-PeerTalk (~> 0.0.4)
+  - FlipperKit/FlipperKitHighlightOverlay (0.33.1)
+  - FlipperKit/FlipperKitLayoutPlugin (0.33.1):
+    - FlipperKit/Core
+    - FlipperKit/FlipperKitHighlightOverlay
+    - FlipperKit/FlipperKitLayoutTextSearchable
+    - YogaKit (~> 1.18)
+  - FlipperKit/FlipperKitLayoutTextSearchable (0.33.1)
+  - FlipperKit/FlipperKitNetworkPlugin (0.33.1):
+    - FlipperKit/Core
+  - FlipperKit/FlipperKitReactPlugin (0.33.1):
+    - FlipperKit/Core
+  - FlipperKit/FlipperKitUserDefaultsPlugin (0.33.1):
+    - FlipperKit/Core
+  - FlipperKit/SKIOSNetworkPlugin (0.33.1):
+    - FlipperKit/Core
+    - FlipperKit/FlipperKitNetworkPlugin
   - Folly (2018.10.22.00):
     - boost-for-react-native
     - DoubleConversion
@@ -19,218 +67,256 @@ PODS:
     - DoubleConversion
     - glog
   - glog (0.3.5)
-  - OneSignal (2.12.3)
-  - RCTRequired (0.61.2)
-  - RCTTypeSafety (0.61.2):
-    - FBLazyVector (= 0.61.2)
+  - JitsiMeetSDK (2.4.0)
+  - OneSignal (2.13.1)
+  - OpenSSL-Universal (1.0.2.19):
+    - OpenSSL-Universal/Static (= 1.0.2.19)
+  - OpenSSL-Universal/Static (1.0.2.19)
+  - RCTRequired (0.62.1)
+  - RCTTypeSafety (0.62.1):
+    - FBLazyVector (= 0.62.1)
     - Folly (= 2018.10.22.00)
-    - RCTRequired (= 0.61.2)
-    - React-Core (= 0.61.2)
-  - React (0.61.2):
-    - React-Core (= 0.61.2)
-    - React-Core/DevSupport (= 0.61.2)
-    - React-Core/RCTWebSocket (= 0.61.2)
-    - React-RCTActionSheet (= 0.61.2)
-    - React-RCTAnimation (= 0.61.2)
-    - React-RCTBlob (= 0.61.2)
-    - React-RCTImage (= 0.61.2)
-    - React-RCTLinking (= 0.61.2)
-    - React-RCTNetwork (= 0.61.2)
-    - React-RCTSettings (= 0.61.2)
-    - React-RCTText (= 0.61.2)
-    - React-RCTVibration (= 0.61.2)
-  - React-Core (0.61.2):
+    - RCTRequired (= 0.62.1)
+    - React-Core (= 0.62.1)
+  - React (0.62.1):
+    - React-Core (= 0.62.1)
+    - React-Core/DevSupport (= 0.62.1)
+    - React-Core/RCTWebSocket (= 0.62.1)
+    - React-RCTActionSheet (= 0.62.1)
+    - React-RCTAnimation (= 0.62.1)
+    - React-RCTBlob (= 0.62.1)
+    - React-RCTImage (= 0.62.1)
+    - React-RCTLinking (= 0.62.1)
+    - React-RCTNetwork (= 0.62.1)
+    - React-RCTSettings (= 0.62.1)
+    - React-RCTText (= 0.62.1)
+    - React-RCTVibration (= 0.62.1)
+  - React-Core (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
-    - React-Core/Default (= 0.61.2)
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-Core/Default (= 0.62.1)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/CoreModulesHeaders (0.61.2):
+  - React-Core/CoreModulesHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/Default (0.61.2):
+  - React-Core/Default (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/DevSupport (0.61.2):
+  - React-Core/DevSupport (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
-    - React-Core/Default (= 0.61.2)
-    - React-Core/RCTWebSocket (= 0.61.2)
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
-    - React-jsinspector (= 0.61.2)
+    - React-Core/Default (= 0.62.1)
+    - React-Core/RCTWebSocket (= 0.62.1)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
+    - React-jsinspector (= 0.62.1)
     - Yoga
-  - React-Core/RCTActionSheetHeaders (0.61.2):
+  - React-Core/RCTActionSheetHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTAnimationHeaders (0.61.2):
+  - React-Core/RCTAnimationHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTBlobHeaders (0.61.2):
+  - React-Core/RCTBlobHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTImageHeaders (0.61.2):
+  - React-Core/RCTImageHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTLinkingHeaders (0.61.2):
+  - React-Core/RCTLinkingHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTNetworkHeaders (0.61.2):
+  - React-Core/RCTNetworkHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTSettingsHeaders (0.61.2):
+  - React-Core/RCTSettingsHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTTextHeaders (0.61.2):
+  - React-Core/RCTTextHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTVibrationHeaders (0.61.2):
+  - React-Core/RCTVibrationHeaders (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
     - React-Core/Default
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-Core/RCTWebSocket (0.61.2):
+  - React-Core/RCTWebSocket (0.62.1):
     - Folly (= 2018.10.22.00)
     - glog
-    - React-Core/Default (= 0.61.2)
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-jsiexecutor (= 0.61.2)
+    - React-Core/Default (= 0.62.1)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-jsiexecutor (= 0.62.1)
     - Yoga
-  - React-CoreModules (0.61.2):
-    - FBReactNativeSpec (= 0.61.2)
+  - React-CoreModules (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
     - Folly (= 2018.10.22.00)
-    - RCTTypeSafety (= 0.61.2)
-    - React-Core/CoreModulesHeaders (= 0.61.2)
-    - React-RCTImage (= 0.61.2)
-    - ReactCommon/turbomodule/core (= 0.61.2)
-  - React-cxxreact (0.61.2):
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core/CoreModulesHeaders (= 0.62.1)
+    - React-RCTImage (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-cxxreact (0.62.1):
     - boost-for-react-native (= 1.63.0)
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-    - React-jsinspector (= 0.61.2)
-  - React-jsi (0.61.2):
+    - React-jsinspector (= 0.62.1)
+  - React-jsi (0.62.1):
     - boost-for-react-native (= 1.63.0)
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-    - React-jsi/Default (= 0.61.2)
-  - React-jsi/Default (0.61.2):
+    - React-jsi/Default (= 0.62.1)
+  - React-jsi/Default (0.62.1):
     - boost-for-react-native (= 1.63.0)
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-  - React-jsiexecutor (0.61.2):
+  - React-jsiexecutor (0.62.1):
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-  - React-jsinspector (0.61.2)
-  - react-native-onesignal (3.6.1):
-    - OneSignal (= 2.12.3)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+  - React-jsinspector (0.62.1)
+  - react-native-jitsi-meet (2.1.1):
+    - JitsiMeetSDK (= 2.4.0)
+    - React
+  - react-native-onesignal (3.7.1):
+    - OneSignal (= 2.13.1)
     - React (< 1.0.0, >= 0.13.0)
   - react-native-splash-screen (3.2.0):
     - React
-  - react-native-webview (7.6.0):
+  - react-native-webview (9.1.1):
     - React
-  - React-RCTActionSheet (0.61.2):
-    - React-Core/RCTActionSheetHeaders (= 0.61.2)
-  - React-RCTAnimation (0.61.2):
-    - React-Core/RCTAnimationHeaders (= 0.61.2)
-  - React-RCTBlob (0.61.2):
-    - React-Core/RCTBlobHeaders (= 0.61.2)
-    - React-Core/RCTWebSocket (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - React-RCTNetwork (= 0.61.2)
-  - React-RCTImage (0.61.2):
-    - React-Core/RCTImageHeaders (= 0.61.2)
-    - React-RCTNetwork (= 0.61.2)
-  - React-RCTLinking (0.61.2):
-    - React-Core/RCTLinkingHeaders (= 0.61.2)
-  - React-RCTNetwork (0.61.2):
-    - React-Core/RCTNetworkHeaders (= 0.61.2)
-  - React-RCTSettings (0.61.2):
-    - React-Core/RCTSettingsHeaders (= 0.61.2)
-  - React-RCTText (0.61.2):
-    - React-Core/RCTTextHeaders (= 0.61.2)
-  - React-RCTVibration (0.61.2):
-    - React-Core/RCTVibrationHeaders (= 0.61.2)
-  - ReactCommon/jscallinvoker (0.61.2):
+  - React-RCTActionSheet (0.62.1):
+    - React-Core/RCTActionSheetHeaders (= 0.62.1)
+  - React-RCTAnimation (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core/RCTAnimationHeaders (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTBlob (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - React-Core/RCTBlobHeaders (= 0.62.1)
+    - React-Core/RCTWebSocket (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - React-RCTNetwork (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTImage (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core/RCTImageHeaders (= 0.62.1)
+    - React-RCTNetwork (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTLinking (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - React-Core/RCTLinkingHeaders (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTNetwork (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core/RCTNetworkHeaders (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTSettings (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - RCTTypeSafety (= 0.62.1)
+    - React-Core/RCTSettingsHeaders (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - React-RCTText (0.62.1):
+    - React-Core/RCTTextHeaders (= 0.62.1)
+  - React-RCTVibration (0.62.1):
+    - FBReactNativeSpec (= 0.62.1)
+    - Folly (= 2018.10.22.00)
+    - React-Core/RCTVibrationHeaders (= 0.62.1)
+    - ReactCommon/turbomodule/core (= 0.62.1)
+  - ReactCommon/callinvoker (0.62.1):
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-    - React-cxxreact (= 0.61.2)
-  - ReactCommon/turbomodule/core (0.61.2):
+    - React-cxxreact (= 0.62.1)
+  - ReactCommon/turbomodule/core (0.62.1):
     - DoubleConversion
     - Folly (= 2018.10.22.00)
     - glog
-    - React-Core (= 0.61.2)
-    - React-cxxreact (= 0.61.2)
-    - React-jsi (= 0.61.2)
-    - ReactCommon/jscallinvoker (= 0.61.2)
+    - React-Core (= 0.62.1)
+    - React-cxxreact (= 0.62.1)
+    - React-jsi (= 0.62.1)
+    - ReactCommon/callinvoker (= 0.62.1)
   - Yoga (1.14.0)
+  - YogaKit (1.18.1):
+    - Yoga (~> 1.14)
 
 DEPENDENCIES:
   - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
   - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
   - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
+  - FlipperKit (~> 0.33.1)
+  - FlipperKit/FlipperKitLayoutPlugin (~> 0.33.1)
+  - FlipperKit/FlipperKitReactPlugin (~> 0.33.1)
+  - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.33.1)
+  - FlipperKit/SKIOSNetworkPlugin (~> 0.33.1)
   - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
   - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
@@ -244,6 +330,7 @@ DEPENDENCIES:
   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
+  - react-native-jitsi-meet (from `../node_modules/react-native-jitsi-meet`)
   - react-native-onesignal (from `../node_modules/react-native-onesignal`)
   - react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
   - react-native-webview (from `../node_modules/react-native-webview`)
@@ -256,14 +343,26 @@ DEPENDENCIES:
   - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
   - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
   - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
-  - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`)
+  - ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`)
   - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
   - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
 
 SPEC REPOS:
   trunk:
     - boost-for-react-native
+    - CocoaAsyncSocket
+    - CocoaLibEvent
+    - Flipper
+    - Flipper-DoubleConversion
+    - Flipper-Folly
+    - Flipper-Glog
+    - Flipper-PeerTalk
+    - Flipper-RSocket
+    - FlipperKit
+    - JitsiMeetSDK
     - OneSignal
+    - OpenSSL-Universal
+    - YogaKit
 
 EXTERNAL SOURCES:
   DoubleConversion:
@@ -294,6 +393,8 @@ EXTERNAL SOURCES:
     :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
   React-jsinspector:
     :path: "../node_modules/react-native/ReactCommon/jsinspector"
+  react-native-jitsi-meet:
+    :path: "../node_modules/react-native-jitsi-meet"
   react-native-onesignal:
     :path: "../node_modules/react-native-onesignal"
   react-native-splash-screen:
@@ -325,36 +426,49 @@ EXTERNAL SOURCES:
 
 SPEC CHECKSUMS:
   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
+  CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845
+  CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f
   DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
-  FBLazyVector: 68b6a76960fbd8ecd9fb7ce0aadd3329c3340a99
-  FBReactNativeSpec: 5a764c60abdc3336a213e5310c40b74741f32839
+  FBLazyVector: 95ee3e58937a6052f86b0e32f142388c22fa22c5
+  FBReactNativeSpec: 26dd6459299e48cd64eb397c45635e466dba9f45
+  Flipper: 6c1f484f9a88d30ab3e272800d53688439e50f69
+  Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
+  Flipper-Folly: c12092ea368353b58e992843a990a3225d4533c3
+  Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
+  Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
+  Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7
+  FlipperKit: 6dc9b8f4ef60d9e5ded7f0264db299c91f18832e
   Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
   glog: 1f3da668190260b06b429bb211bfbee5cd790c28
-  OneSignal: 30b6e03a1f14169c4313e301a7b7bdf467b5a575
-  RCTRequired: c639d59ed389cfb1f1203f65c2ea946d8ec586e2
-  RCTTypeSafety: dc23fb655d6c77667c78e327bf661bc11e3b8aec
-  React: 7e586e5d7bec12b91c1a096826b0fc9ab1da7865
-  React-Core: 8ddb9770b4a30a6ab4a754e6ed5ec76454e3d699
-  React-CoreModules: b3d9eece8ad7df36c917a41f05c1168c52fe0b34
-  React-cxxreact: 1f972757c0bd08d962ef78068e06613c27489a3f
-  React-jsi: 32285a21b1b24c36060493ed3057a34677d58d09
-  React-jsiexecutor: 8909917ff7d8f21a57e443a866fd8d4560e50c65
-  React-jsinspector: 111d7d342b07a904c400592e02a2b958f1098b60
-  react-native-onesignal: d029b061807f5d14eaf765293099987f942d19f8
+  JitsiMeetSDK: d4a3aeed1a75fd57e6a78e5d202b6051dfcb9320
+  OneSignal: fa98eaa90372bb367b6a4a1c1622ffb9832c7600
+  OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355
+  RCTRequired: e291538a455f5ad1afc2139a4288990be0cadd46
+  RCTTypeSafety: 8b6237185765dd9a03a3647807e08864105b1f95
+  React: 7b33e15fab929c47ac9c3c94c409258b13cfe452
+  React-Core: 9a164d53492e2d8a84e7acf87988253dff09cf93
+  React-CoreModules: 9aba468d44532cbc301e1323a62b3d796c69c26d
+  React-cxxreact: 1eed6bc2a4f8e25910994b5dfca1acf1878b25c7
+  React-jsi: 600d8e42510c3254fd2abd702f4b9d3f598d8f52
+  React-jsiexecutor: e9698dee4fd43ceb44832baf15d5745f455b0157
+  React-jsinspector: f74a62727e5604119abd4a1eda52c0a12144bcd5
+  react-native-jitsi-meet: 29ed76cdc6142d9a6c013bb14dd6205df0b5452b
+  react-native-onesignal: 42ac269088570b6b92db5af5e4b4edd9036696f4
   react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
-  react-native-webview: 711cef318a554093b09a5b871894011435d87a8d
-  React-RCTActionSheet: 89b037c0fb7d2671607cb645760164e7e0c013f6
-  React-RCTAnimation: e3cefa93c38c004c318f7ec04b883eb14b8b8235
-  React-RCTBlob: d26ac0e313fbf14e7203473fd593ccaaeee8329e
-  React-RCTImage: 4bdd9588783fa9e48ef669ccd4f747224e208edf
-  React-RCTLinking: 65f0088ff463babd3d5d567964a65b74141eff3b
-  React-RCTNetwork: 0c1a73576c1cfeafe68396556de1b17d93c0c595
-  React-RCTSettings: 4194f1f0edbddf3fd44d1714dc6578bb20379b60
-  React-RCTText: e3ef6191cdb627855ff7fe8fa0c1e14094967fb8
-  React-RCTVibration: fb54c732fd20405a76598e431aa2f8c2bf527de9
-  ReactCommon: 5848032ed2f274fcb40f6b9ec24067787c42d479
-  Yoga: 14927e37bd25376d216b150ab2a561773d57911f
+  react-native-webview: 059636017bec36753d09cb4dfd0bc6f90bcbb9e0
+  React-RCTActionSheet: af8f28dd82fec89b8fe29637b8c779829e016a88
+  React-RCTAnimation: 0d21fff7c20fb8ee41de5f2ebb63221127febd96
+  React-RCTBlob: 9496bd93130b22069bfbc5d35e98653dae7c35c6
+  React-RCTImage: a220d154ab3b92bc8a3d040651a21a047c5876b7
+  React-RCTLinking: 07b694640ae4a43e25c0e3e54713345f9ef1a706
+  React-RCTNetwork: 043479410782020c2081498b5766db136aea6fe9
+  React-RCTSettings: 826bed85c8887cec143f561a27bb3044f28fbde4
+  React-RCTText: 239e040f401505001327a109f9188a4e6dad1bd2
+  React-RCTVibration: 072c3b427dd29e730c2ee5bfc509cf5054741a50
+  ReactCommon: 3585806280c51d5c2c0d3aa5a99014c3badb629d
+  Yoga: 50fb6eb13d2152e7363293ff603385db380815b1
+  YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
 
-PODFILE CHECKSUM: 136ef0f3aacb37bea3c24628c44db68758229741
+PODFILE CHECKSUM: 72939bde85eab5a927254a20e9cb54137c228028
 
-COCOAPODS: 1.8.4
+COCOAPODS: 1.9.1

+ 221 - 155
ios/una.xcodeproj/project.pbxproj

@@ -8,37 +8,37 @@
 
 /* Begin PBXBuildFile section */
 		00E356F31AD99517003FC87E /* unaTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* unaTests.m */; };
-		1188E97DCD0440B4B61FB3AB /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 569F7E359363411296CFF2D1 /* Entypo.ttf */; };
+		062764CF400C454381A47C61 /* rubicon-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1225829218A74D95AA4DDC11 /* rubicon-icon-font.ttf */; };
+		10CA20F94393489C8644065E /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 88DF6BCA591A42399523E0D5 /* Roboto.ttf */; };
 		13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
 		13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
-		14B1EFD50984416F9617F820 /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7046EB5D891542C0B960ACD4 /* Roboto.ttf */; };
-		1B0B4DA7F77C4E188C406F24 /* Fontisto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 242CB23023A6406C999A6D4E /* Fontisto.ttf */; };
-		2352B25F28E44E3DB5EBC2FE /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D0C637AB805149D09BFF3AF1 /* FontAwesome.ttf */; };
-		25BC101920D64D2F907471E7 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C7A6B75567844A068982AF76 /* Octicons.ttf */; };
+		25F7321B2E7241CA87204F73 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4B56FD0C252640359B095586 /* MaterialCommunityIcons.ttf */; };
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
 		2DCD954D1E0B4F2C00145EB5 /* unaTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* unaTests.m */; };
-		2F1A74C834730CBACCFDC763 /* libPods-una-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD8C6A9D8091F9B768C9282D /* libPods-una-tvOS.a */; };
-		40DE6C34511E4FF991053D8F /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BF40C38F5E7E46229CA76944 /* Zocial.ttf */; };
-		442A21E213DA42829A4D172E /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 92EB0552AC554C12A0C7AF2D /* FontAwesome5_Solid.ttf */; };
-		4C71D92018F241F482B4E28E /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AA654589204C40AA93554572 /* Feather.ttf */; };
-		54848C35D83CE3F46732FADF /* libPods-una.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4036A796A6BD03FD04C3C955 /* libPods-una.a */; };
-		5BA793E5EF4BB761D6A65830 /* libPods-una-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E74DA37602975BC225EB0C8 /* libPods-una-tvOSTests.a */; };
-		5C09E487839C4F669C53AD20 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6D3AD509981A4781BFB326B4 /* Ionicons.ttf */; };
-		5E8F89F70ABA47629EF1F810 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D70EA915F1554600BAFCB4E2 /* MaterialIcons.ttf */; };
-		5F5891584FD24EBD883937F2 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3E0E72C0E33946D3A0790A2D /* SimpleLineIcons.ttf */; };
-		6CA33508C69D46FFA5213B1A /* Roboto_medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AFDE632EFC5F48CA9B600656 /* Roboto_medium.ttf */; };
-		A1989588DC1F4CB19E15E6F1 /* rubicon-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 882531370FF94113BDA8301E /* rubicon-icon-font.ttf */; };
-		BA7B0C7EA3D649ADA55E908F /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDBCE138A76C4596B9A8E2D7 /* MaterialCommunityIcons.ttf */; };
-		C23FCA03965B4F339EFB0E61 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2041BF367CF1481CB8FCB865 /* AntDesign.ttf */; };
-		C61D4889C2B4488C885E8BAC /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C10FD6E4793B4F60A39C85FC /* FontAwesome5_Regular.ttf */; };
-		C7AFE846E0994E67A9FCEBA5 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD53DDD176C47BC982C7A84 /* EvilIcons.ttf */; };
-		D0ADCE95746908E75D30CE43 /* libPods-unaTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C7848711354BED945B1FF5A7 /* libPods-unaTests.a */; };
-		EDE8F47BFCD747C7A0E033F5 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4B828B0FE23A4EC8A95A57E6 /* Foundation.ttf */; };
-		F4CD2B0A8D6647CBA4EF4AC4 /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 070DF716E7974462897EFD96 /* FontAwesome5_Brands.ttf */; };
+		2E174B2D63084C50ACD20F12 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8F67769F56FC41E6BD2F610A /* Entypo.ttf */; };
+		4D4BD3640C00EDBCDF9C662B /* libPods-una.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9524B1CE07DEEAAA7F71433D /* libPods-una.a */; };
+		4EFB8C5AF3014209B39FE819 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4D3A4D9D2B024FECA3D9446D /* SimpleLineIcons.ttf */; };
+		59E90F0E21964005969402E9 /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7C67C25FA5BF45A084FCFAD5 /* FontAwesome5_Regular.ttf */; };
+		61E8FAE8ECB043159603DD52 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0B9B648C6E7E4A8E99428505 /* FontAwesome.ttf */; };
+		6389A2E0B53A430CAD3AAEE4 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 76EBB290B7BE46A6A97EFEAE /* EvilIcons.ttf */; };
+		70750EA1C33E415D818B664F /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BC9A63AF900048179FFE44FD /* Octicons.ttf */; };
+		75508F323398FFC043643611 /* libPods-una-unaTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F08D5BF4BF8511D82E9D87C /* libPods-una-unaTests.a */; };
+		79E9BACA86134ED389B2A422 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2E77D2D3E1244C5D9494CDD8 /* Foundation.ttf */; };
+		79ED85869C824999E2F28685 /* libPods-una-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19679D02C022BB780C2A9A93 /* libPods-una-tvOSTests.a */; };
+		8898476C2F6D4144A94659BB /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1FFD7F742E55490682999FCF /* FontAwesome5_Solid.ttf */; };
+		9048242F4A408A7BA0AEE9ED /* libPods-una-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FA54D00415ABAE5FA1BBB27 /* libPods-una-tvOS.a */; };
+		9FD631A3F35F4D86B3E83DEF /* Roboto_medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 91E61AAD7F8D4040BD543D63 /* Roboto_medium.ttf */; };
+		B438A47EF31A44F2A694F4C1 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1A4FA5F43264481FAA94D7A6 /* MaterialIcons.ttf */; };
+		B465A544DD3A4456B847BB56 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CB7BD2CE5D7046E2A22C3345 /* Feather.ttf */; };
+		BB15408E151342F7884B46EA /* Fontisto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 83B2AED15E08460B9B13609A /* Fontisto.ttf */; };
+		CB0561220F194BC4AE929656 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D3A4FE3F47B044D99AE09887 /* Ionicons.ttf */; };
+		D4D9A22FA4E34DD5B8BC0E20 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 292D05F8C21C4241B9D168E5 /* Zocial.ttf */; };
+		D71A48488FAB477985EBEDBA /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5B8EE21744DA410C94242D78 /* AntDesign.ttf */; };
+		D828485C7FFB49E5ACC6C567 /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B8312FAD9FC44E40AD519EF8 /* FontAwesome5_Brands.ttf */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -63,9 +63,8 @@
 		00E356EE1AD99517003FC87E /* unaTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = unaTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		00E356F21AD99517003FC87E /* unaTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = unaTests.m; sourceTree = "<group>"; };
-		02698B3F892A0D39854466F4 /* Pods-una-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOS.release.xcconfig"; path = "Target Support Files/Pods-una-tvOS/Pods-una-tvOS.release.xcconfig"; sourceTree = "<group>"; };
-		070DF716E7974462897EFD96 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Brands.ttf"; sourceTree = "<group>"; };
-		1179F2C8919A6BB387100022 /* Pods-una-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-una-tvOSTests/Pods-una-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
+		0B9B648C6E7E4A8E99428505 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/native-base/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
+		1225829218A74D95AA4DDC11 /* rubicon-icon-font.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "rubicon-icon-font.ttf"; path = "../node_modules/native-base/Fonts/rubicon-icon-font.ttf"; sourceTree = "<group>"; };
 		13B07F961A680F5B00A75B9A /* una.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = una.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = una/AppDelegate.h; sourceTree = "<group>"; };
 		13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = una/AppDelegate.m; sourceTree = "<group>"; };
@@ -73,39 +72,40 @@
 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = una/Images.xcassets; sourceTree = "<group>"; };
 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = una/Info.plist; sourceTree = "<group>"; };
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = una/main.m; sourceTree = "<group>"; };
-		2041BF367CF1481CB8FCB865 /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/native-base/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
-		242CB23023A6406C999A6D4E /* Fontisto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Fontisto.ttf; path = "../node_modules/native-base/Fonts/Fontisto.ttf"; sourceTree = "<group>"; };
-		28221B39291E42AC1296B6F3 /* Pods-una-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-una-tvOSTests/Pods-una-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
-		2C5EA3EDD26F4DDFCCC68D84 /* Pods-una.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una.release.xcconfig"; path = "Target Support Files/Pods-una/Pods-una.release.xcconfig"; sourceTree = "<group>"; };
+		19679D02C022BB780C2A9A93 /* libPods-una-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		1A4FA5F43264481FAA94D7A6 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
+		1FFD7F742E55490682999FCF /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Solid.ttf"; sourceTree = "<group>"; };
+		292D05F8C21C4241B9D168E5 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
 		2D02E47B1E0B4A5D006451C7 /* una-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "una-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		2D02E4901E0B4A5D006451C7 /* una-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "una-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3E0E72C0E33946D3A0790A2D /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/native-base/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
-		3E74DA37602975BC225EB0C8 /* libPods-una-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		4036A796A6BD03FD04C3C955 /* libPods-una.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		4B828B0FE23A4EC8A95A57E6 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
-		4CD53DDD176C47BC982C7A84 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/native-base/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
-		569F7E359363411296CFF2D1 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/native-base/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
-		6D3AD509981A4781BFB326B4 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/native-base/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
-		7046EB5D891542C0B960ACD4 /* Roboto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto.ttf; path = "../node_modules/native-base/Fonts/Roboto.ttf"; sourceTree = "<group>"; };
-		75BB3B3BFF09E755B13DE525 /* Pods-una.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una.debug.xcconfig"; path = "Target Support Files/Pods-una/Pods-una.debug.xcconfig"; sourceTree = "<group>"; };
-		882531370FF94113BDA8301E /* rubicon-icon-font.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "rubicon-icon-font.ttf"; path = "../node_modules/native-base/Fonts/rubicon-icon-font.ttf"; sourceTree = "<group>"; };
-		92EB0552AC554C12A0C7AF2D /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Solid.ttf"; sourceTree = "<group>"; };
-		A2B209F0AD67BF5A0801516D /* Pods-una-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-una-tvOS/Pods-una-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
-		AA654589204C40AA93554572 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/native-base/Fonts/Feather.ttf"; sourceTree = "<group>"; };
-		AFDE632EFC5F48CA9B600656 /* Roboto_medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto_medium.ttf; path = "../node_modules/native-base/Fonts/Roboto_medium.ttf"; sourceTree = "<group>"; };
-		BD8C6A9D8091F9B768C9282D /* libPods-una-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		BF40C38F5E7E46229CA76944 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
-		C10FD6E4793B4F60A39C85FC /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
-		C7848711354BED945B1FF5A7 /* libPods-unaTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-unaTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		C7A6B75567844A068982AF76 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/native-base/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
-		CDBCE138A76C4596B9A8E2D7 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
-		D0C637AB805149D09BFF3AF1 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/native-base/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
-		D558F5F79893DF0CBF79D86C /* Pods-unaTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-unaTests.debug.xcconfig"; path = "Target Support Files/Pods-unaTests/Pods-unaTests.debug.xcconfig"; sourceTree = "<group>"; };
-		D70EA915F1554600BAFCB4E2 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
+		2E77D2D3E1244C5D9494CDD8 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
+		2FA54D00415ABAE5FA1BBB27 /* libPods-una-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		4B56FD0C252640359B095586 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
+		4D3A4D9D2B024FECA3D9446D /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/native-base/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
+		4E55C231E14F44C2B9CEBC0F /* Pods-una-unaTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-unaTests.debug.xcconfig"; path = "Target Support Files/Pods-una-unaTests/Pods-una-unaTests.debug.xcconfig"; sourceTree = "<group>"; };
+		5B8EE21744DA410C94242D78 /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/native-base/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
+		618725449409EF49EB694B0E /* Pods-una-unaTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-unaTests.release.xcconfig"; path = "Target Support Files/Pods-una-unaTests/Pods-una-unaTests.release.xcconfig"; sourceTree = "<group>"; };
+		6C7EF65607EB055E5B6A4359 /* Pods-una-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-una-tvOS/Pods-una-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
+		76EBB290B7BE46A6A97EFEAE /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/native-base/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
+		7C67C25FA5BF45A084FCFAD5 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
+		7F08D5BF4BF8511D82E9D87C /* libPods-una-unaTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una-unaTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		83B2AED15E08460B9B13609A /* Fontisto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Fontisto.ttf; path = "../node_modules/native-base/Fonts/Fontisto.ttf"; sourceTree = "<group>"; };
+		88DF6BCA591A42399523E0D5 /* Roboto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto.ttf; path = "../node_modules/native-base/Fonts/Roboto.ttf"; sourceTree = "<group>"; };
+		8F67769F56FC41E6BD2F610A /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/native-base/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
+		91E61AAD7F8D4040BD543D63 /* Roboto_medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto_medium.ttf; path = "../node_modules/native-base/Fonts/Roboto_medium.ttf"; sourceTree = "<group>"; };
+		9524B1CE07DEEAAA7F71433D /* libPods-una.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-una.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		9E69D70DD53125C3CFB0A977 /* Pods-una-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-una-tvOSTests/Pods-una-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
+		B8312FAD9FC44E40AD519EF8 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/native-base/Fonts/FontAwesome5_Brands.ttf"; sourceTree = "<group>"; };
+		BC9A63AF900048179FFE44FD /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/native-base/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
+		CB7BD2CE5D7046E2A22C3345 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/native-base/Fonts/Feather.ttf"; sourceTree = "<group>"; };
+		CCDFB2930627A6D48D13E228 /* Pods-una-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-una-tvOSTests/Pods-una-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
+		CEA915457D68D7351C920DD0 /* Pods-una-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una-tvOS.release.xcconfig"; path = "Target Support Files/Pods-una-tvOS/Pods-una-tvOS.release.xcconfig"; sourceTree = "<group>"; };
+		D3A4FE3F47B044D99AE09887 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/native-base/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
+		D924473A2F54C8A209E00DD3 /* Pods-una.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una.release.xcconfig"; path = "Target Support Files/Pods-una/Pods-una.release.xcconfig"; sourceTree = "<group>"; };
+		EAA86421E3D378076B7BE29E /* Pods-una.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-una.debug.xcconfig"; path = "Target Support Files/Pods-una/Pods-una.debug.xcconfig"; sourceTree = "<group>"; };
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
 		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
-		F111EA4EF8B20FC16DBFCE92 /* Pods-unaTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-unaTests.release.xcconfig"; path = "Target Support Files/Pods-unaTests/Pods-unaTests.release.xcconfig"; sourceTree = "<group>"; };
-		FAA63098234B419B00169C35 /* una.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = una.entitlements; path = una/una.entitlements; sourceTree = "<group>"; };
+		FA8FD2962440907F00FBDF3A /* una.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = una.entitlements; path = una/una.entitlements; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -113,7 +113,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D0ADCE95746908E75D30CE43 /* libPods-unaTests.a in Frameworks */,
+				75508F323398FFC043643611 /* libPods-una-unaTests.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -121,7 +121,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				54848C35D83CE3F46732FADF /* libPods-una.a in Frameworks */,
+				4D4BD3640C00EDBCDF9C662B /* libPods-una.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -129,7 +129,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				2F1A74C834730CBACCFDC763 /* libPods-una-tvOS.a in Frameworks */,
+				9048242F4A408A7BA0AEE9ED /* libPods-una-tvOS.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -137,7 +137,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				5BA793E5EF4BB761D6A65830 /* libPods-una-tvOSTests.a in Frameworks */,
+				79ED85869C824999E2F28685 /* libPods-una-tvOSTests.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -164,8 +164,8 @@
 		13B07FAE1A68108700A75B9A /* una */ = {
 			isa = PBXGroup;
 			children = (
+				FA8FD2962440907F00FBDF3A /* una.entitlements */,
 				008F07F21AC5B25A0029DE68 /* main.jsbundle */,
-				FAA63098234B419B00169C35 /* una.entitlements */,
 				13B07FAF1A68108700A75B9A /* AppDelegate.h */,
 				13B07FB01A68108700A75B9A /* AppDelegate.m */,
 				13B07FB51A68108700A75B9A /* Images.xcassets */,
@@ -181,25 +181,25 @@
 			children = (
 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
-				4036A796A6BD03FD04C3C955 /* libPods-una.a */,
-				BD8C6A9D8091F9B768C9282D /* libPods-una-tvOS.a */,
-				3E74DA37602975BC225EB0C8 /* libPods-una-tvOSTests.a */,
-				C7848711354BED945B1FF5A7 /* libPods-unaTests.a */,
+				9524B1CE07DEEAAA7F71433D /* libPods-una.a */,
+				2FA54D00415ABAE5FA1BBB27 /* libPods-una-tvOS.a */,
+				19679D02C022BB780C2A9A93 /* libPods-una-tvOSTests.a */,
+				7F08D5BF4BF8511D82E9D87C /* libPods-una-unaTests.a */,
 			);
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
-		825089C6C3E8EBAD9E721EE9 /* Pods */ = {
+		73F9AA7DC3A3ECA71FED2FDE /* Pods */ = {
 			isa = PBXGroup;
 			children = (
-				75BB3B3BFF09E755B13DE525 /* Pods-una.debug.xcconfig */,
-				2C5EA3EDD26F4DDFCCC68D84 /* Pods-una.release.xcconfig */,
-				A2B209F0AD67BF5A0801516D /* Pods-una-tvOS.debug.xcconfig */,
-				02698B3F892A0D39854466F4 /* Pods-una-tvOS.release.xcconfig */,
-				28221B39291E42AC1296B6F3 /* Pods-una-tvOSTests.debug.xcconfig */,
-				1179F2C8919A6BB387100022 /* Pods-una-tvOSTests.release.xcconfig */,
-				D558F5F79893DF0CBF79D86C /* Pods-unaTests.debug.xcconfig */,
-				F111EA4EF8B20FC16DBFCE92 /* Pods-unaTests.release.xcconfig */,
+				EAA86421E3D378076B7BE29E /* Pods-una.debug.xcconfig */,
+				D924473A2F54C8A209E00DD3 /* Pods-una.release.xcconfig */,
+				6C7EF65607EB055E5B6A4359 /* Pods-una-tvOS.debug.xcconfig */,
+				CEA915457D68D7351C920DD0 /* Pods-una-tvOS.release.xcconfig */,
+				CCDFB2930627A6D48D13E228 /* Pods-una-tvOSTests.debug.xcconfig */,
+				9E69D70DD53125C3CFB0A977 /* Pods-una-tvOSTests.release.xcconfig */,
+				4E55C231E14F44C2B9CEBC0F /* Pods-una-unaTests.debug.xcconfig */,
+				618725449409EF49EB694B0E /* Pods-una-unaTests.release.xcconfig */,
 			);
 			path = Pods;
 			sourceTree = "<group>";
@@ -219,8 +219,8 @@
 				00E356EF1AD99517003FC87E /* unaTests */,
 				83CBBA001A601CBA00E9B192 /* Products */,
 				2D16E6871FA4F8E400B85C8A /* Frameworks */,
-				825089C6C3E8EBAD9E721EE9 /* Pods */,
-				FE8814E72A8C48BFB17A57F2 /* Resources */,
+				73F9AA7DC3A3ECA71FED2FDE /* Pods */,
+				E8DF75FABBDC4DD6AA984CA8 /* Resources */,
 			);
 			indentWidth = 2;
 			sourceTree = "<group>";
@@ -238,28 +238,28 @@
 			name = Products;
 			sourceTree = "<group>";
 		};
-		FE8814E72A8C48BFB17A57F2 /* Resources */ = {
+		E8DF75FABBDC4DD6AA984CA8 /* Resources */ = {
 			isa = PBXGroup;
 			children = (
-				2041BF367CF1481CB8FCB865 /* AntDesign.ttf */,
-				569F7E359363411296CFF2D1 /* Entypo.ttf */,
-				4CD53DDD176C47BC982C7A84 /* EvilIcons.ttf */,
-				AA654589204C40AA93554572 /* Feather.ttf */,
-				D0C637AB805149D09BFF3AF1 /* FontAwesome.ttf */,
-				070DF716E7974462897EFD96 /* FontAwesome5_Brands.ttf */,
-				C10FD6E4793B4F60A39C85FC /* FontAwesome5_Regular.ttf */,
-				92EB0552AC554C12A0C7AF2D /* FontAwesome5_Solid.ttf */,
-				242CB23023A6406C999A6D4E /* Fontisto.ttf */,
-				4B828B0FE23A4EC8A95A57E6 /* Foundation.ttf */,
-				6D3AD509981A4781BFB326B4 /* Ionicons.ttf */,
-				CDBCE138A76C4596B9A8E2D7 /* MaterialCommunityIcons.ttf */,
-				D70EA915F1554600BAFCB4E2 /* MaterialIcons.ttf */,
-				C7A6B75567844A068982AF76 /* Octicons.ttf */,
-				AFDE632EFC5F48CA9B600656 /* Roboto_medium.ttf */,
-				7046EB5D891542C0B960ACD4 /* Roboto.ttf */,
-				882531370FF94113BDA8301E /* rubicon-icon-font.ttf */,
-				3E0E72C0E33946D3A0790A2D /* SimpleLineIcons.ttf */,
-				BF40C38F5E7E46229CA76944 /* Zocial.ttf */,
+				5B8EE21744DA410C94242D78 /* AntDesign.ttf */,
+				8F67769F56FC41E6BD2F610A /* Entypo.ttf */,
+				76EBB290B7BE46A6A97EFEAE /* EvilIcons.ttf */,
+				CB7BD2CE5D7046E2A22C3345 /* Feather.ttf */,
+				0B9B648C6E7E4A8E99428505 /* FontAwesome.ttf */,
+				B8312FAD9FC44E40AD519EF8 /* FontAwesome5_Brands.ttf */,
+				7C67C25FA5BF45A084FCFAD5 /* FontAwesome5_Regular.ttf */,
+				1FFD7F742E55490682999FCF /* FontAwesome5_Solid.ttf */,
+				83B2AED15E08460B9B13609A /* Fontisto.ttf */,
+				2E77D2D3E1244C5D9494CDD8 /* Foundation.ttf */,
+				D3A4FE3F47B044D99AE09887 /* Ionicons.ttf */,
+				4B56FD0C252640359B095586 /* MaterialCommunityIcons.ttf */,
+				1A4FA5F43264481FAA94D7A6 /* MaterialIcons.ttf */,
+				BC9A63AF900048179FFE44FD /* Octicons.ttf */,
+				91E61AAD7F8D4040BD543D63 /* Roboto_medium.ttf */,
+				88DF6BCA591A42399523E0D5 /* Roboto.ttf */,
+				1225829218A74D95AA4DDC11 /* rubicon-icon-font.ttf */,
+				4D3A4D9D2B024FECA3D9446D /* SimpleLineIcons.ttf */,
+				292D05F8C21C4241B9D168E5 /* Zocial.ttf */,
 			);
 			name = Resources;
 			sourceTree = "<group>";
@@ -271,10 +271,11 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "unaTests" */;
 			buildPhases = (
-				66E183AC30873E25A0080546 /* [CP] Check Pods Manifest.lock */,
+				6380E970E344C9DBA36E1908 /* [CP] Check Pods Manifest.lock */,
 				00E356EA1AD99517003FC87E /* Sources */,
 				00E356EB1AD99517003FC87E /* Frameworks */,
 				00E356EC1AD99517003FC87E /* Resources */,
+				1EAC3AD03B55E60C5D080DA2 /* [CP] Embed Pods Frameworks */,
 			);
 			buildRules = (
 			);
@@ -290,12 +291,13 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "una" */;
 			buildPhases = (
-				EEB82F1B753405C17A7ABBBE /* [CP] Check Pods Manifest.lock */,
+				37700DB5A83E006FBD51A94E /* [CP] Check Pods Manifest.lock */,
 				FD10A7F022414F080027D42C /* Start Packager */,
 				13B07F871A680F5B00A75B9A /* Sources */,
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
 				13B07F8E1A680F5B00A75B9A /* Resources */,
 				00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
+				1EE32CFE0B1F38E8C8EC8ED5 /* [CP] Embed Pods Frameworks */,
 			);
 			buildRules = (
 			);
@@ -310,7 +312,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "una-tvOS" */;
 			buildPhases = (
-				837906D1F6EEF579B73C83C5 /* [CP] Check Pods Manifest.lock */,
+				5AB9D1579874876A78C834D3 /* [CP] Check Pods Manifest.lock */,
 				FD10A7F122414F3F0027D42C /* Start Packager */,
 				2D02E4771E0B4A5D006451C7 /* Sources */,
 				2D02E4781E0B4A5D006451C7 /* Frameworks */,
@@ -330,7 +332,7 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "una-tvOSTests" */;
 			buildPhases = (
-				290A88B587384A1E3C76F6D1 /* [CP] Check Pods Manifest.lock */,
+				579C9C10D6B9D208B013396C /* [CP] Check Pods Manifest.lock */,
 				2D02E48C1E0B4A5D006451C7 /* Sources */,
 				2D02E48D1E0B4A5D006451C7 /* Frameworks */,
 				2D02E48E1E0B4A5D006451C7 /* Resources */,
@@ -351,8 +353,7 @@
 		83CBB9F71A601CBA00E9B192 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 940;
-				ORGANIZATIONNAME = Facebook;
+				LastUpgradeCheck = 1130;
 				TargetAttributes = {
 					00E356ED1AD99517003FC87E = {
 						CreatedOnToolsVersion = 6.2;
@@ -360,6 +361,7 @@
 					};
 					13B07F861A680F5B00A75B9A = {
 						DevelopmentTeam = 235MTP3MJ2;
+						LastSwiftMigration = 1120;
 					};
 					2D02E47A1E0B4A5D006451C7 = {
 						CreatedOnToolsVersion = 8.2.1;
@@ -374,10 +376,9 @@
 			};
 			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "una" */;
 			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
+			developmentRegion = en;
 			hasScannedForEncodings = 0;
 			knownRegions = (
-				English,
 				en,
 				Base,
 			);
@@ -408,25 +409,25 @@
 			files = (
 				13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
 				13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
-				C23FCA03965B4F339EFB0E61 /* AntDesign.ttf in Resources */,
-				1188E97DCD0440B4B61FB3AB /* Entypo.ttf in Resources */,
-				C7AFE846E0994E67A9FCEBA5 /* EvilIcons.ttf in Resources */,
-				4C71D92018F241F482B4E28E /* Feather.ttf in Resources */,
-				2352B25F28E44E3DB5EBC2FE /* FontAwesome.ttf in Resources */,
-				F4CD2B0A8D6647CBA4EF4AC4 /* FontAwesome5_Brands.ttf in Resources */,
-				C61D4889C2B4488C885E8BAC /* FontAwesome5_Regular.ttf in Resources */,
-				442A21E213DA42829A4D172E /* FontAwesome5_Solid.ttf in Resources */,
-				1B0B4DA7F77C4E188C406F24 /* Fontisto.ttf in Resources */,
-				EDE8F47BFCD747C7A0E033F5 /* Foundation.ttf in Resources */,
-				5C09E487839C4F669C53AD20 /* Ionicons.ttf in Resources */,
-				BA7B0C7EA3D649ADA55E908F /* MaterialCommunityIcons.ttf in Resources */,
-				5E8F89F70ABA47629EF1F810 /* MaterialIcons.ttf in Resources */,
-				25BC101920D64D2F907471E7 /* Octicons.ttf in Resources */,
-				6CA33508C69D46FFA5213B1A /* Roboto_medium.ttf in Resources */,
-				14B1EFD50984416F9617F820 /* Roboto.ttf in Resources */,
-				A1989588DC1F4CB19E15E6F1 /* rubicon-icon-font.ttf in Resources */,
-				5F5891584FD24EBD883937F2 /* SimpleLineIcons.ttf in Resources */,
-				40DE6C34511E4FF991053D8F /* Zocial.ttf in Resources */,
+				D71A48488FAB477985EBEDBA /* AntDesign.ttf in Resources */,
+				2E174B2D63084C50ACD20F12 /* Entypo.ttf in Resources */,
+				6389A2E0B53A430CAD3AAEE4 /* EvilIcons.ttf in Resources */,
+				B465A544DD3A4456B847BB56 /* Feather.ttf in Resources */,
+				61E8FAE8ECB043159603DD52 /* FontAwesome.ttf in Resources */,
+				D828485C7FFB49E5ACC6C567 /* FontAwesome5_Brands.ttf in Resources */,
+				59E90F0E21964005969402E9 /* FontAwesome5_Regular.ttf in Resources */,
+				8898476C2F6D4144A94659BB /* FontAwesome5_Solid.ttf in Resources */,
+				BB15408E151342F7884B46EA /* Fontisto.ttf in Resources */,
+				79E9BACA86134ED389B2A422 /* Foundation.ttf in Resources */,
+				CB0561220F194BC4AE929656 /* Ionicons.ttf in Resources */,
+				25F7321B2E7241CA87204F73 /* MaterialCommunityIcons.ttf in Resources */,
+				B438A47EF31A44F2A694F4C1 /* MaterialIcons.ttf in Resources */,
+				70750EA1C33E415D818B664F /* Octicons.ttf in Resources */,
+				9FD631A3F35F4D86B3E83DEF /* Roboto_medium.ttf in Resources */,
+				10CA20F94393489C8644065E /* Roboto.ttf in Resources */,
+				062764CF400C454381A47C61 /* rubicon-icon-font.ttf in Resources */,
+				4EFB8C5AF3014209B39FE819 /* SimpleLineIcons.ttf in Resources */,
+				D4D9A22FA4E34DD5B8BC0E20 /* Zocial.ttf in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -462,26 +463,44 @@
 			shellPath = /bin/sh;
 			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
 		};
-		290A88B587384A1E3C76F6D1 /* [CP] Check Pods Manifest.lock */ = {
+		1EAC3AD03B55E60C5D080DA2 /* [CP] Embed Pods Frameworks */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
-			inputFileListPaths = (
-			);
 			inputPaths = (
-				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
-				"${PODS_ROOT}/Manifest.lock",
+				"${PODS_ROOT}/Target Support Files/Pods-una-unaTests/Pods-una-unaTests-frameworks.sh",
+				"${PODS_ROOT}/JitsiMeetSDK/Frameworks/JitsiMeet.framework",
+				"${PODS_ROOT}/JitsiMeetSDK/Frameworks/WebRTC.framework",
 			);
-			name = "[CP] Check Pods Manifest.lock";
-			outputFileListPaths = (
+			name = "[CP] Embed Pods Frameworks";
+			outputPaths = (
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeet.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-una-unaTests/Pods-una-unaTests-frameworks.sh\"\n";
+			showEnvVarsInLog = 0;
+		};
+		1EE32CFE0B1F38E8C8EC8ED5 /* [CP] Embed Pods Frameworks */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+				"${PODS_ROOT}/Target Support Files/Pods-una/Pods-una-frameworks.sh",
+				"${PODS_ROOT}/JitsiMeetSDK/Frameworks/JitsiMeet.framework",
+				"${PODS_ROOT}/JitsiMeetSDK/Frameworks/WebRTC.framework",
 			);
+			name = "[CP] Embed Pods Frameworks";
 			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Pods-una-tvOSTests-checkManifestLockResult.txt",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeet.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-una/Pods-una-frameworks.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
 		2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
@@ -498,7 +517,7 @@
 			shellPath = /bin/sh;
 			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
 		};
-		66E183AC30873E25A0080546 /* [CP] Check Pods Manifest.lock */ = {
+		37700DB5A83E006FBD51A94E /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -513,14 +532,36 @@
 			outputFileListPaths = (
 			);
 			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Pods-unaTests-checkManifestLockResult.txt",
+				"$(DERIVED_FILE_DIR)/Pods-una-checkManifestLockResult.txt",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
 			showEnvVarsInLog = 0;
 		};
-		837906D1F6EEF579B73C83C5 /* [CP] Check Pods Manifest.lock */ = {
+		579C9C10D6B9D208B013396C /* [CP] Check Pods Manifest.lock */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+				"${PODS_ROOT}/Manifest.lock",
+			);
+			name = "[CP] Check Pods Manifest.lock";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+				"$(DERIVED_FILE_DIR)/Pods-una-tvOSTests-checkManifestLockResult.txt",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+			showEnvVarsInLog = 0;
+		};
+		5AB9D1579874876A78C834D3 /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -542,7 +583,7 @@
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
 			showEnvVarsInLog = 0;
 		};
-		EEB82F1B753405C17A7ABBBE /* [CP] Check Pods Manifest.lock */ = {
+		6380E970E344C9DBA36E1908 /* [CP] Check Pods Manifest.lock */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -557,7 +598,7 @@
 			outputFileListPaths = (
 			);
 			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Pods-una-checkManifestLockResult.txt",
+				"$(DERIVED_FILE_DIR)/Pods-una-unaTests-checkManifestLockResult.txt",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
@@ -669,7 +710,7 @@
 /* Begin XCBuildConfiguration section */
 		00E356F61AD99517003FC87E /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = D558F5F79893DF0CBF79D86C /* Pods-unaTests.debug.xcconfig */;
+			baseConfigurationReference = 4E55C231E14F44C2B9CEBC0F /* Pods-una-unaTests.debug.xcconfig */;
 			buildSettings = {
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				GCC_PREPROCESSOR_DEFINITIONS = (
@@ -692,7 +733,7 @@
 		};
 		00E356F71AD99517003FC87E /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = F111EA4EF8B20FC16DBFCE92 /* Pods-unaTests.release.xcconfig */;
+			baseConfigurationReference = 618725449409EF49EB694B0E /* Pods-una-unaTests.release.xcconfig */;
 			buildSettings = {
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				COPY_PHASE_STRIP = NO;
@@ -712,17 +753,22 @@
 		};
 		13B07F941A680F5B00A75B9A /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75BB3B3BFF09E755B13DE525 /* Pods-una.debug.xcconfig */;
+			baseConfigurationReference = EAA86421E3D378076B7BE29E /* Pods-una.debug.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = una/una.entitlements;
-				CURRENT_PROJECT_VERSION = 1332;
-				DEAD_CODE_STRIPPING = NO;
+				CURRENT_PROJECT_VERSION = 1400;
 				DEVELOPMENT_TEAM = 235MTP3MJ2;
+				ENABLE_BITCODE = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(inherited)",
+					"FB_SONARKIT_ENABLED=1",
+				);
 				INFOPLIST_FILE = una/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MARKETING_VERSION = 1.3.3;
+				MARKETING_VERSION = 1.4.0;
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"-ObjC",
@@ -730,6 +776,8 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = com.una.ios;
 				PRODUCT_NAME = una;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
@@ -737,16 +785,17 @@
 		};
 		13B07F951A680F5B00A75B9A /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 2C5EA3EDD26F4DDFCCC68D84 /* Pods-una.release.xcconfig */;
+			baseConfigurationReference = D924473A2F54C8A209E00DD3 /* Pods-una.release.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = una/una.entitlements;
-				CURRENT_PROJECT_VERSION = 1332;
+				CURRENT_PROJECT_VERSION = 1400;
 				DEVELOPMENT_TEAM = 235MTP3MJ2;
 				INFOPLIST_FILE = una/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				MARKETING_VERSION = 1.3.3;
+				MARKETING_VERSION = 1.4.0;
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"-ObjC",
@@ -754,6 +803,7 @@
 				);
 				PRODUCT_BUNDLE_IDENTIFIER = com.una.ios;
 				PRODUCT_NAME = una;
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 			};
@@ -761,7 +811,7 @@
 		};
 		2D02E4971E0B4A5E006451C7 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = A2B209F0AD67BF5A0801516D /* Pods-una-tvOS.debug.xcconfig */;
+			baseConfigurationReference = 6C7EF65607EB055E5B6A4359 /* Pods-una-tvOS.debug.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -779,7 +829,7 @@
 					"-ObjC",
 					"-lc++",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.una-tvOS";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.una-tvOS";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
@@ -789,7 +839,7 @@
 		};
 		2D02E4981E0B4A5E006451C7 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 02698B3F892A0D39854466F4 /* Pods-una-tvOS.release.xcconfig */;
+			baseConfigurationReference = CEA915457D68D7351C920DD0 /* Pods-una-tvOS.release.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -807,7 +857,7 @@
 					"-ObjC",
 					"-lc++",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.una-tvOS";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.una-tvOS";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TARGETED_DEVICE_FAMILY = 3;
@@ -817,7 +867,7 @@
 		};
 		2D02E4991E0B4A5E006451C7 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 28221B39291E42AC1296B6F3 /* Pods-una-tvOSTests.debug.xcconfig */;
+			baseConfigurationReference = CCDFB2930627A6D48D13E228 /* Pods-una-tvOSTests.debug.xcconfig */;
 			buildSettings = {
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				CLANG_ANALYZER_NONNULL = YES;
@@ -834,7 +884,7 @@
 					"-ObjC",
 					"-lc++",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.una-tvOSTests";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.una-tvOSTests";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/una-tvOS.app/una-tvOS";
@@ -844,7 +894,7 @@
 		};
 		2D02E49A1E0B4A5E006451C7 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 1179F2C8919A6BB387100022 /* Pods-una-tvOSTests.release.xcconfig */;
+			baseConfigurationReference = 9E69D70DD53125C3CFB0A977 /* Pods-una-tvOSTests.release.xcconfig */;
 			buildSettings = {
 				BUNDLE_LOADER = "$(TEST_HOST)";
 				CLANG_ANALYZER_NONNULL = YES;
@@ -861,7 +911,7 @@
 					"-ObjC",
 					"-lc++",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.una-tvOSTests";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.una-tvOSTests";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/una-tvOS.app/una-tvOS";
@@ -873,6 +923,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
@@ -898,6 +949,7 @@
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
+				ENABLE_BITCODE = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -916,6 +968,12 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+				LIBRARY_SEARCH_PATHS = (
+					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+					"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
+					"\"$(inherited)\"",
+				);
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
@@ -926,6 +984,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
@@ -951,6 +1010,7 @@
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = YES;
+				ENABLE_BITCODE = NO;
 				ENABLE_NS_ASSERTIONS = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -962,6 +1022,12 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+				LIBRARY_SEARCH_PATHS = (
+					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+					"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
+					"\"$(inherited)\"",
+				);
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
 				VALIDATE_PRODUCT = YES;

+ 2 - 43
ios/una.xcodeproj/xcshareddata/xcschemes/una-tvOS.xcscheme

@@ -1,25 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0940"
+   LastUpgradeVersion = "1130"
    version = "1.3">
    <BuildAction
-      parallelizeBuildables = "NO"
+      parallelizeBuildables = "YES"
       buildImplicitDependencies = "YES">
       <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "2D2A28121D9B038B00D4039D"
-               BuildableName = "libReact.a"
-               BlueprintName = "React-tvOS"
-               ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
          <BuildActionEntry
             buildForTesting = "YES"
             buildForRunning = "YES"
@@ -34,20 +20,6 @@
                ReferencedContainer = "container:una.xcodeproj">
             </BuildableReference>
          </BuildActionEntry>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "NO"
-            buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7"
-               BuildableName = "una-tvOSTests.xctest"
-               BlueprintName = "una-tvOSTests"
-               ReferencedContainer = "container:una.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
       </BuildActionEntries>
    </BuildAction>
    <TestAction
@@ -67,17 +39,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7"
-            BuildableName = "una-tvOS.app"
-            BlueprintName = "una-tvOS"
-            ReferencedContainer = "container:una.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -99,8 +60,6 @@
             ReferencedContainer = "container:una.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 2 - 43
ios/una.xcodeproj/xcshareddata/xcschemes/una.xcscheme

@@ -1,25 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0940"
+   LastUpgradeVersion = "1130"
    version = "1.3">
    <BuildAction
-      parallelizeBuildables = "NO"
+      parallelizeBuildables = "YES"
       buildImplicitDependencies = "YES">
       <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192"
-               BuildableName = "libReact.a"
-               BlueprintName = "React"
-               ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
          <BuildActionEntry
             buildForTesting = "YES"
             buildForRunning = "YES"
@@ -34,20 +20,6 @@
                ReferencedContainer = "container:una.xcodeproj">
             </BuildableReference>
          </BuildActionEntry>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "NO"
-            buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
-               BuildableName = "unaTests.xctest"
-               BlueprintName = "unaTests"
-               ReferencedContainer = "container:una.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
       </BuildActionEntries>
    </BuildAction>
    <TestAction
@@ -67,17 +39,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
-            BuildableName = "una.app"
-            BlueprintName = "una"
-            ReferencedContainer = "container:una.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -99,8 +60,6 @@
             ReferencedContainer = "container:una.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 0 - 7
ios/una/AppDelegate.h

@@ -1,10 +1,3 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
 #import <React/RCTBridgeDelegate.h>
 #import <UIKit/UIKit.h>
 

+ 23 - 9
ios/una/AppDelegate.m

@@ -1,21 +1,36 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-#import "RNSplashScreen.h"
 #import "AppDelegate.h"
 
 #import <React/RCTBridge.h>
 #import <React/RCTBundleURLProvider.h>
 #import <React/RCTRootView.h>
 
+#if DEBUG
+#import <FlipperKit/FlipperClient.h>
+#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
+#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
+#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
+#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
+#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
+
+static void InitializeFlipper(UIApplication *application) {
+  FlipperClient *client = [FlipperClient sharedClient];
+  SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
+  [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
+  [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
+  [client addPlugin:[FlipperKitReactPlugin new]];
+  [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
+  [client start];
+}
+#endif
+
 @implementation AppDelegate
 
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
+#if DEBUG
+  InitializeFlipper(application);
+#endif
+
   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                    moduleName:@"una"
@@ -28,7 +43,6 @@
   rootViewController.view = rootView;
   self.window.rootViewController = rootViewController;
   [self.window makeKeyAndVisible];
-  [RNSplashScreen show];
   return YES;
 }
 

+ 26 - 12
ios/una/Base.lproj/LaunchScreen.xib

@@ -1,29 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
-                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="SplashImage" translatesAutoresizingMaskIntoConstraints="NO" id="mLz-pt-VGN">
-                </imageView>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
+                    <rect key="frame" x="20" y="439" width="441" height="21"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="una" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
+                    <rect key="frame" x="20" y="140" width="441" height="43"/>
+                    <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
             </subviews>
-            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
             <constraints>
-                <constraint firstAttribute="bottom" secondItem="mLz-pt-VGN" secondAttribute="bottom" constant="0" id="KJO-J3-fkg"/>
-                <constraint firstAttribute="trailing" secondItem="mLz-pt-VGN" secondAttribute="trailing" constant="0" id="eqZ-Y5-FHH"/>
-                <constraint firstItem="mLz-pt-VGN" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="0" id="hVh-5q-gdE"/>
-                <constraint firstItem="mLz-pt-VGN" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="0" id="ofG-hz-s61"/>
+                <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
+                <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
+                <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
+                <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
+                <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
+                <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
             </constraints>
+            <nil key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="548" y="455"/>
         </view>
     </objects>
-    <resources>
-        <image name="SplashImage"/>
-    </resources>
 </document>

+ 104 - 104
ios/una/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -1,158 +1,158 @@
 {
-  "images": [
+  "images" : [
     {
-      "size": "20x20",
-      "idiom": "iphone",
-      "filename": "icon-20@2x.png",
-      "scale": "2x"
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "icon-20@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "20x20",
-      "idiom": "iphone",
-      "filename": "icon-20@3x.png",
-      "scale": "3x"
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "icon-20@3x.png",
+      "scale" : "3x"
     },
     {
-      "size": "29x29",
-      "idiom": "iphone",
-      "filename": "icon-29@1x.png",
-      "scale": "1x"
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon-29@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "29x29",
-      "idiom": "iphone",
-      "filename": "icon-29@2x.png",
-      "scale": "2x"
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon-29@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "29x29",
-      "idiom": "iphone",
-      "filename": "icon-29@3x.png",
-      "scale": "3x"
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon-29@3x.png",
+      "scale" : "3x"
     },
     {
-      "size": "40x40",
-      "idiom": "iphone",
-      "filename": "icon-40@2x.png",
-      "scale": "2x"
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "icon-40@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "40x40",
-      "idiom": "iphone",
-      "filename": "icon-40@3x.png",
-      "scale": "3x"
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "icon-40@3x.png",
+      "scale" : "3x"
     },
     {
-      "size": "57x57",
-      "idiom": "iphone",
-      "filename": "icon-57@1x.png",
-      "scale": "1x"
+      "size" : "57x57",
+      "idiom" : "iphone",
+      "filename" : "icon-57@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "57x57",
-      "idiom": "iphone",
-      "filename": "icon-57@2x.png",
-      "scale": "2x"
+      "size" : "57x57",
+      "idiom" : "iphone",
+      "filename" : "icon-57@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "60x60",
-      "idiom": "iphone",
-      "filename": "icon-60@2x.png",
-      "scale": "2x"
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "icon-60@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "60x60",
-      "idiom": "iphone",
-      "filename": "icon-60@3x.png",
-      "scale": "3x"
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "icon-60@3x.png",
+      "scale" : "3x"
     },
     {
-      "size": "20x20",
-      "idiom": "ipad",
-      "filename": "icon-20@1x.png",
-      "scale": "1x"
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon-20@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "20x20",
-      "idiom": "ipad",
-      "filename": "icon-20@2x.png",
-      "scale": "2x"
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon-20@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "29x29",
-      "idiom": "ipad",
-      "filename": "icon-29@1x.png",
-      "scale": "1x"
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon-29@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "29x29",
-      "idiom": "ipad",
-      "filename": "icon-29@2x.png",
-      "scale": "2x"
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon-29@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "40x40",
-      "idiom": "ipad",
-      "filename": "icon-40@1x.png",
-      "scale": "1x"
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon-40@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "40x40",
-      "idiom": "ipad",
-      "filename": "icon-40@2x.png",
-      "scale": "2x"
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon-40@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "50x50",
-      "idiom": "ipad",
-      "filename": "icon-50@1x.png",
-      "scale": "1x"
+      "size" : "50x50",
+      "idiom" : "ipad",
+      "filename" : "icon-50@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "50x50",
-      "idiom": "ipad",
-      "filename": "icon-50@2x.png",
-      "scale": "2x"
+      "size" : "50x50",
+      "idiom" : "ipad",
+      "filename" : "icon-50@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "72x72",
-      "idiom": "ipad",
-      "filename": "icon-72@1x.png",
-      "scale": "1x"
+      "size" : "72x72",
+      "idiom" : "ipad",
+      "filename" : "icon-72@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "72x72",
-      "idiom": "ipad",
-      "filename": "icon-72@2x.png",
-      "scale": "2x"
+      "size" : "72x72",
+      "idiom" : "ipad",
+      "filename" : "icon-72@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "76x76",
-      "idiom": "ipad",
-      "filename": "icon-76@1x.png",
-      "scale": "1x"
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon-76@1x.png",
+      "scale" : "1x"
     },
     {
-      "size": "76x76",
-      "idiom": "ipad",
-      "filename": "icon-76@2x.png",
-      "scale": "2x"
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon-76@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "83.5x83.5",
-      "idiom": "ipad",
-      "filename": "icon-83.5@2x.png",
-      "scale": "2x"
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "icon-83.5@2x.png",
+      "scale" : "2x"
     },
     {
-      "size": "1024x1024",
-      "idiom": "ios-marketing",
-      "filename": "icon-1024@1x.png",
-      "scale": "1x"
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "icon-1024@1x.png",
+      "scale" : "1x"
     }
   ],
-  "info": {
-    "version": 1,
-    "author": "xcode"
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
   }
 }

BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-1024@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-20@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-20@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-20@3x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-29@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-29@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-29@3x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-40@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-40@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-40@3x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-50@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-50@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-57@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-57@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-60@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-60@3x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-72@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-72@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-76@1x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-76@2x.png


BIN
ios/una/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png


+ 1 - 1
ios/una/Images.xcassets/Contents.json

@@ -3,4 +3,4 @@
     "version" : 1,
     "author" : "xcode"
   }
-}
+}

+ 135 - 0
ios/una/Images.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,135 @@
+{
+  "images" : [
+    {
+      "orientation": "portrait",
+      "idiom": "iphone",
+      "extent": "full-screen",
+      "minimum-system-version": "11.0",
+      "filename": "Default-Portrait-812h@3x.png",
+      "subtype": "2436h",
+      "scale": "3x"
+    },
+    {
+      "orientation": "landscape",
+      "idiom": "iphone",
+      "extent": "full-screen",
+      "filename": "Default-Landscape-812h@3x.png",
+      "minimum-system-version": "11.0",
+      "subtype": "2436h",
+      "scale": "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "736h",
+      "filename" : "Default-Portrait-736h@3x.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "portrait",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "736h",
+      "filename" : "Default-Landscape-736h@3x.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "landscape",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "667h",
+      "filename" : "Default-667h@2x.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "Default@2x.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "retina4",
+      "filename" : "Default-568h@2x.png",
+      "minimum-system-version" : "7.0",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "filename" : "Default-Landscape.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "filename" : "Default-Landscape@2x.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "Default-Portrait.png",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "Default-Portrait@2x.png",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "Default-Portrait.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "Default-Portrait@2x.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape-812h@3x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait-812h@3x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png


BIN
ios/una/Images.xcassets/LaunchImage.launchimage/Default@2x.png


+ 0 - 23
ios/una/Images.xcassets/SplashImage.imageset/Contents.json

@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "splash@1x.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "splash@2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "splash@3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
ios/una/Images.xcassets/SplashImage.imageset/splash@1x.png


BIN
ios/una/Images.xcassets/SplashImage.imageset/splash@2x.png


BIN
ios/una/Images.xcassets/SplashImage.imageset/splash@3x.png


+ 8 - 5
ios/una/Info.plist

@@ -37,14 +37,16 @@
 			</dict>
 		</dict>
 	</dict>
+	<key>NSCalendarsUsageDescription</key>
+	<string>Video chat</string>
 	<key>NSCameraUsageDescription</key>
-	<string>$(PRODUCT_NAME) would like to take picture to publish it on the site</string>
+	<string>$(PRODUCT_NAME) would like to take picture to publish it on the site or use for video chat</string>
 	<key>NSLocationAlwaysUsageDescription</key>
 	<string>This shouldn't happen in this app</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Make a post with your current location or save profile location</string>
 	<key>NSMicrophoneUsageDescription</key>
-	<string>$(PRODUCT_NAME) would like to record video to publish it on the site</string>
+	<string>$(PRODUCT_NAME) would like to record video to publish it on the site or use it for video/audio chat</string>
 	<key>NSPhotoLibraryAddUsageDescription</key>
 	<string>$(PRODUCT_NAME) would like to save photos to your photo gallery</string>
 	<key>OneSignal_disable_badge_clearing</key>
@@ -71,8 +73,10 @@
 		<string>SimpleLineIcons.ttf</string>
 		<string>Zocial.ttf</string>
 	</array>
-	<key>UILaunchStoryboardName</key>
-	<string>LaunchScreen</string>
+	<key>UIBackgroundModes</key>
+	<array>
+		<string>voip</string>
+	</array>
 	<key>UIRequiredDeviceCapabilities</key>
 	<array>
 		<string>armv7</string>
@@ -82,7 +86,6 @@
 		<string>UIInterfaceOrientationPortrait</string>
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 	</array>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>

+ 0 - 7
ios/una/main.m

@@ -1,10 +1,3 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
 #import <UIKit/UIKit.h>
 
 #import "AppDelegate.h"

+ 1 - 8
ios/unaTests/unaTests.m

@@ -1,10 +1,3 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
 #import <UIKit/UIKit.h>
 #import <XCTest/XCTest.h>
 
@@ -59,7 +52,7 @@
       return NO;
     }];
   }
-  
+
 #ifdef DEBUG
   RCTSetLogFunction(RCTDefaultLogFunction);
 #endif

+ 8 - 0
metro.config.js

@@ -5,6 +5,8 @@
  * @format
  */
 
+const blacklist = require('metro-config/src/defaults/blacklist');
+
 module.exports = {
   transformer: {
     getTransformOptions: async () => ({
@@ -14,4 +16,10 @@ module.exports = {
       },
     }),
   },
+  resolver: {
+    blacklistRE: blacklist([
+      /ios\/Pods\/JitsiMeetSDK\/Frameworks\/JitsiMeet.framework\/assets\/node_modules\/react-native\/.*/,
+    ]),
+  },
 };
+

Разница между файлами не показана из-за своего большого размера
+ 398 - 843
package-lock.json


+ 13 - 13
package.json

@@ -1,6 +1,6 @@
 {
   "name": "UNA",
-  "version": "1.3.3",
+  "version": "1.4.0",
   "private": true,
   "scripts": {
     "android": "react-native run-android",
@@ -10,24 +10,24 @@
     "lint": "eslint ."
   },
   "dependencies": {
-    "@react-native-community/cli-platform-android": "^2.9.0",
-    "native-base": "^2.13.8",
-    "react": "16.9.0",
-    "react-native": "0.61.2",
-    "react-native-onesignal": "^3.6.1",
+    "native-base": "^2.13.12",
+    "react": "16.11.0",
+    "react-native": "0.62.1",
+    "react-native-jitsi-meet": "^2.1.1",
+    "react-native-onesignal": "^3.7.1",
     "react-native-splash-screen": "^3.2.0",
-    "react-native-webview": "^7.6.0"
+    "react-native-webview": "^9.1.1"
   },
   "devDependencies": {
-    "@babel/core": "^7.7.7",
-    "@babel/runtime": "^7.7.7",
-    "@bam.tech/react-native-make": "^1.0.3",
+    "@babel/core": "^7.6.2",
+    "@babel/runtime": "^7.6.2",
+    "@bam.tech/react-native-make": "^2.0.0",
     "@react-native-community/eslint-config": "^0.0.5",
     "babel-jest": "^24.9.0",
-    "eslint": "^6.8.0",
+    "eslint": "^6.5.1",
     "jest": "^24.9.0",
-    "metro-react-native-babel-preset": "^0.56.3",
-    "react-test-renderer": "16.9.0"
+    "metro-react-native-babel-preset": "^0.58.0",
+    "react-test-renderer": "16.11.0"
   },
   "jest": {
     "preset": "react-native"

Разница между файлами не показана из-за своего большого размера
+ 481 - 471
yarn.lock


Некоторые файлы не были показаны из-за большого количества измененных файлов