Project re-initialization with latest react native

pull/53/head
Tiago Daniel Jacobs 2 years ago
parent ec1dddb53b
commit e41c51a652

@ -1,2 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1
BUNDLE_FORCE_RUBY_PLATFORM: 1

@ -1,20 +0,0 @@
name: Build
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
jobs:
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

19
.gitignore vendored

@ -1,8 +1,6 @@
# OSX
#
.DS_Store
.AppleDouble
.LSOverride
# Xcode
#
@ -22,6 +20,7 @@ DerivedData
*.hmap
*.ipa
*.xcuserstate
ios/.xcode.env.local
# Android/IntelliJ
#
@ -51,18 +50,14 @@ buck-out/
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots
**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output
# Bundle artifact
*.jsbundle
# CocoaPods
# Ruby / CocoaPods
/ios/Pods/
# Thumbnails
._*
/package-lock.json
/vendor/bundle/

@ -1 +1 @@
2.7.4
2.7.5

@ -1,3 +0,0 @@
{
"java.configuration.updateBuildConfiguration": "automatic"
}

@ -1,4 +1,6 @@
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.4'
ruby '2.7.5'
gem 'cocoapods', '~> 1.11', '>= 1.11.2'

@ -1,96 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.5)
rexml
activesupport (6.1.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
claide (1.1.0)
cocoapods (1.11.3)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.11.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.4.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.4.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 1.0, < 3.0)
xcodeproj (>= 1.21.0, < 2.0)
cocoapods-core (1.11.3)
activesupport (>= 5.0, < 7)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.6.3)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.1.10)
escape (0.0.4)
ethon (0.15.0)
ffi (>= 1.15.0)
ffi (1.15.5)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
json (2.6.1)
minitest (5.15.0)
molinillo (0.8.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
public_suffix (4.0.7)
rexml (3.2.5)
ruby-macho (2.5.1)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
xcodeproj (1.21.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
zeitwerk (2.5.4)
PLATFORMS
ruby
DEPENDENCIES
cocoapods (~> 1.11, >= 1.11.2)
RUBY VERSION
ruby 2.7.4p191
BUNDLED WITH
2.2.27

@ -1,86 +0,0 @@
# BigBlueButton-mobile-tablet
BigBlueButton mobile application for tablets - sample implementation.
More details in https://github.com/bigbluebutton/bigbluebutton-mobile-tablet-sdk.
## Development
### Linux
To build this application in linux, you need to run:
```sh
# Instal Android SDK
sudo apt install android-sdk
# In one terminal, start metro:
npx react-native start
# In other terminal, run the app:
npx react-native run-android
```
### MAC
#### Simulator
To build this application in mac, you need to run:
```sh
# Install cocoapods gem
sudo gem install cocoapods
# Install dependencies
yarn
# Install pods
cd ios && pod install && cd -
# Option 1 - Run simulator and metro in one command
yarn ios
# Option 2 - Two commands approach:
## In one terminal, start metro:
## npx react-native start
## In other terminal, run the app:
## npx react-native run-ios --simulator="iPhone 13"
```
#### Real device
##### Debug mode
To run this application in a real ios device, you need to run:
```sh
#Install package
npm install -g ios-deploy
#Run
npx react-native run-ios --device "iPhone de TDJ"
```
###### Release mode
To run a release version of this application in a real ios device, you need to run:
```sh
npx react-native run-ios --configuration Release --device "iPhone de TDJ"
```
#### Open project in XCODE
To change native code, you can run this command:
```sh
open ios/BigBlueButton.xcworkspace
```
## References
### IOS
- [Screen broadcast - replay kit 2](https://developer.apple.com/videos/play/wwdc2018/601/)
- [Logs](https://developer.apple.com/videos/play/wwdc2020/10168/)

Binary file not shown.

@ -35,12 +35,12 @@ android_library(
android_build_config(
name = "build_config",
package = "com.bigbluebutton",
package = "com.bigbluebuttontablet",
)
android_resource(
name = "res",
package = "com.bigbluebutton",
package = "com.bigbluebuttontablet",
res = "src/main/res",
)

@ -1,5 +1,5 @@
apply plugin: "com.android.application"
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
import com.android.build.OutputFile
/**
@ -78,10 +78,9 @@ import com.android.build.OutputFile
*/
project.ext.react = [
enableHermes: true, // clean and rebuild if changing
enableHermes: false, // clean and rebuild if changing
]
apply from: "../../node_modules/react-native/react.gradle"
/**
@ -122,28 +121,100 @@ def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);
/**
* Architectures to build native code for in debug.
* Architectures to build native code for.
*/
def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
def useIntlJsc = false
def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures")
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.bigbluebutton"
applicationId "com.bigbluebuttontablet"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
arguments "APP_PLATFORM=android-21",
"APP_STL=c++_shared",
"NDK_TOOLCHAIN_VERSION=clang",
"GENERATED_SRC_DIR=$buildDir/generated/source",
"PROJECT_BUILD_DIR=$buildDir",
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
"NODE_MODULES_DIR=$rootDir/../node_modules"
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
cppFlags "-std=c++17"
// Make sure this target name is the same you specify inside the
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
targets "bigbluebuttontablet_appmodules"
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
}
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
path "$projectDir/src/main/jni/Android.mk"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
// If you wish to add a custom TurboModule or component locally,
// you should uncomment this line.
// preBuild.dependsOn("generateCodegenArtifactsFromSchema")
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
// Due to a bug inside AGP, we have to explicitly set a dependency
// between configureNdkBuild* tasks and the preBuild tasks.
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
configureNdkBuildRelease.dependsOn(preReleaseBuild)
configureNdkBuildDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each { architecture ->
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
include (*reactNativeArchitectures())
}
}
signingConfigs {
@ -157,11 +228,6 @@ android {
buildTypes {
debug {
signingConfig signingConfigs.debug
if (nativeArchitectures) {
ndk {
abiFilters nativeArchitectures.split(',')
}
}
}
release {
// Caution! In production, you need to generate your own keystore file.
@ -190,13 +256,8 @@ android {
}
dependencies {
if (useIntlJsc) {
implementation 'org.webkit:android-jsc-intl:+'
} else {
implementation 'org.webkit:android-jsc:+'
}
implementation project(':react-native-gesture-handler')
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
@ -216,14 +277,31 @@ dependencies {
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
//noinspection GradleDynamicVersion
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
exclude group:'com.facebook.fbjni'
}
} else {
implementation jscFlavor
}
}
if (isNewArchitectureEnabled()) {
// If new architecture is enabled, we let you build RN from source
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
// This will be applied to all the imported transtitive dependency.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native"))
.using(project(":ReactAndroid"))
.because("On New Architecture we're building React Native from source")
substitute(module("com.facebook.react:hermes-engine"))
.using(project(":ReactAndroid:hermes-engine"))
.because("On New Architecture we're building Hermes from source")
}
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
@ -232,3 +310,11 @@ task copyDownloadableDepsToLibs(type: Copy) {
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() {
// To opt-in for the New Architecture, you can either:
// - Set `newArchEnabled` to true inside the `gradle.properties` file
// - Invoke gradle with `-newArchEnabled=true`
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}

@ -4,7 +4,7 @@
* <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.bigbluebutton;
package com.bigbluebuttontablet;
import android.content.Context;
import com.facebook.flipper.android.AndroidFlipperClient;

@ -1,13 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bigbluebutton">
package="com.bigbluebuttontablet">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@drawable/icon"
android:roundIcon="@drawable/icon"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity

File diff suppressed because one or more lines are too long

@ -1,100 +0,0 @@
package com.bigbluebutton;
import static com.facebook.react.BuildConfig.*;
import android.app.Application;
import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.config.ReactFeatureFlags;
import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
//import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
import com.swmansion.gesturehandler.RNGestureHandlerPackage;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import com.oblador.vectoricons.VectorIconsPackage;
import com.facebook.react.bridge.JSIModulePackage; // <- add
import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- add
import com.facebook.react.BuildConfig;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for
// example:
// packages.add(new VectorIconsPackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage(); // <- add
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
// ReactFeatureFlags.useTurboModules = true;
SoLoader.init(this, /* native exopackage */ false);
// initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* 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, ReactInstanceManager reactInstanceManager) {
if (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.bigbluebutton.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}

@ -1,4 +1,4 @@
package com.bigbluebutton;
package com.bigbluebuttontablet;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
@ -7,19 +7,18 @@ import com.facebook.react.ReactRootView;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript. This is
* used to schedule
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "BigBlueButton";
return "BigBlueButtonTablet";
}
/**
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView
* is created and
* you can specify the rendered you wish to use (Fabric or the older renderer).
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
* you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer
* (Paper).
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
@ -35,8 +34,15 @@ public class MainActivity extends ReactActivity {
protected ReactRootView createRootView() {
ReactRootView reactRootView = new ReactRootView(getContext());
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
// reactRootView.setIsFabric(true);
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}
@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
}
}

@ -0,0 +1,91 @@
package com.bigbluebuttontablet;
import android.app.Application;
import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.config.ReactFeatureFlags;
import com.facebook.soloader.SoLoader;
import com.bigbluebuttontablet.newarchitecture.MainApplicationReactNativeHost;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost =
new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
private final ReactNativeHost mNewArchitectureNativeHost =
new MainApplicationReactNativeHost(this);
@Override
public ReactNativeHost getReactNativeHost() {
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
return mNewArchitectureNativeHost;
} else {
return mReactNativeHost;
}
}
@Override
public void onCreate() {
super.onCreate();
// If you opted-in for the New Architecture, we enable the TurboModule system
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* 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, 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.bigbluebuttontablet.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,116 @@
package com.bigbluebuttontablet.newarchitecture;
import android.app.Application;
import androidx.annotation.NonNull;
import com.facebook.react.PackageList;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.JSIModuleProvider;
import com.facebook.react.bridge.JSIModuleSpec;
import com.facebook.react.bridge.JSIModuleType;
import com.facebook.react.bridge.JavaScriptContextHolder;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.UIManager;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.react.fabric.CoreComponentsRegistry;
import com.facebook.react.fabric.FabricJSIModuleProvider;
import com.facebook.react.fabric.ReactNativeConfig;
import com.facebook.react.uimanager.ViewManagerRegistry;
import com.bigbluebuttontablet.BuildConfig;
import com.bigbluebuttontablet.newarchitecture.components.MainComponentsRegistry;
import com.bigbluebuttontablet.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;
import java.util.ArrayList;
import java.util.List;
/**
* A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
* TurboModule delegates and the Fabric Renderer.
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationReactNativeHost extends ReactNativeHost {
public MainApplicationReactNativeHost(Application application) {
super(application);
}
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
// TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
// packages.add(new TurboReactPackage() { ... });
// If you have custom Fabric Components, their ViewManagers should also be loaded here
// inside a ReactPackage.
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@NonNull
@Override
protected ReactPackageTurboModuleManagerDelegate.Builder
getReactPackageTurboModuleManagerDelegateBuilder() {
// Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
// for the new architecture and to use TurboModules correctly.
return new MainApplicationTurboModuleManagerDelegate.Builder();
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new JSIModulePackage() {
@Override
public List<JSIModuleSpec> getJSIModules(
final ReactApplicationContext reactApplicationContext,
final JavaScriptContextHolder jsContext) {
final List<JSIModuleSpec> specs = new ArrayList<>();
// Here we provide a new JSIModuleSpec that will be responsible of providing the
// custom Fabric Components.
specs.add(
new JSIModuleSpec() {
@Override
public JSIModuleType getJSIModuleType() {
return JSIModuleType.UIManager;
}
@Override
public JSIModuleProvider<UIManager> getJSIModuleProvider() {
final ComponentFactory componentFactory = new ComponentFactory();
CoreComponentsRegistry.register(componentFactory);
// Here we register a Components Registry.
// The one that is generated with the template contains no components
// and just provides you the one from React Native core.
MainComponentsRegistry.register(componentFactory);
final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
ViewManagerRegistry viewManagerRegistry =
new ViewManagerRegistry(
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));
return new FabricJSIModuleProvider(
reactApplicationContext,
componentFactory,
ReactNativeConfig.DEFAULT_CONFIG,
viewManagerRegistry);
}
});
return specs;
}
};
}
}

@ -0,0 +1,36 @@
package com.bigbluebuttontablet.newarchitecture.components;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.soloader.SoLoader;
/**
* Class responsible to load the custom Fabric Components. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
@DoNotStrip
public class MainComponentsRegistry {
static {
SoLoader.loadLibrary("fabricjni");
}
@DoNotStrip private final HybridData mHybridData;
@DoNotStrip
private native HybridData initHybrid(ComponentFactory componentFactory);
@DoNotStrip
private MainComponentsRegistry(ComponentFactory componentFactory) {
mHybridData = initHybrid(componentFactory);
}
@DoNotStrip
public static MainComponentsRegistry register(ComponentFactory componentFactory) {
return new MainComponentsRegistry(componentFactory);
}
}

@ -0,0 +1,48 @@
package com.bigbluebuttontablet.newarchitecture.modules;
import com.facebook.jni.HybridData;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.soloader.SoLoader;
import java.util.List;
/**
* Class responsible to load the TurboModules. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationTurboModuleManagerDelegate
extends ReactPackageTurboModuleManagerDelegate {
private static volatile boolean sIsSoLibraryLoaded;
protected MainApplicationTurboModuleManagerDelegate(
ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) {
super(reactApplicationContext, packages);
}
protected native HybridData initHybrid();
native boolean canCreateTurboModule(String moduleName);
public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
protected MainApplicationTurboModuleManagerDelegate build(
ReactApplicationContext context, List<ReactPackage> packages) {
return new MainApplicationTurboModuleManagerDelegate(context, packages);
}
}
@Override
protected synchronized void maybeLoadOtherSoLibraries() {
if (!sIsSoLibraryLoaded) {
// If you change the name of your application .so file in the Android.mk file,
// make sure you update the name here as well.
SoLoader.loadLibrary("bigbluebuttontablet_appmodules");
sIsSoLibraryLoaded = true;
}
}
}

@ -0,0 +1,48 @@
THIS_DIR := $(call my-dir)
include $(REACT_ANDROID_DIR)/Android-prebuilt.mk
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to include the following autogenerated makefile.
# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk
include $(CLEAR_VARS)
LOCAL_PATH := $(THIS_DIR)
# You can customize the name of your application .so file here.
LOCAL_MODULE := bigbluebuttontablet_appmodules
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to uncomment those lines to include the generated source
# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)
#
# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)
# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# Here you should add any native library you wish to depend on.
LOCAL_SHARED_LIBRARIES := \
libfabricjni \
libfbjni \
libfolly_runtime \
libglog \
libjsi \
libreact_codegen_rncore \
libreact_debug \
libreact_nativemodule_core \
libreact_render_componentregistry \
libreact_render_core \
libreact_render_debug \
libreact_render_graphics \
librrc_view \
libruntimeexecutor \
libturbomodulejsijni \
libyoga
LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall
include $(BUILD_SHARED_LIBRARY)

@ -0,0 +1,24 @@
#include "MainApplicationModuleProvider.h"
#include <rncore.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params) {
// Here you can provide your own module provider for TurboModules coming from
// either your application or from external libraries. The approach to follow
// is similar to the following (for a library called `samplelibrary`:
//
// auto module = samplelibrary_ModuleProvider(moduleName, params);
// if (module != nullptr) {
// return module;
// }
// return rncore_ModuleProvider(moduleName, params);
return rncore_ModuleProvider(moduleName, params);
}
} // namespace react
} // namespace facebook

@ -0,0 +1,16 @@
#pragma once
#include <memory>
#include <string>
#include <ReactCommon/JavaTurboModule.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook

@ -0,0 +1,45 @@
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainApplicationModuleProvider.h"
namespace facebook {
namespace react {
jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata>
MainApplicationTurboModuleManagerDelegate::initHybrid(
jni::alias_ref<jhybridobject>) {
return makeCxxInstance();
}
void MainApplicationTurboModuleManagerDelegate::registerNatives() {
registerHybrid({
makeNativeMethod(
"initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
makeNativeMethod(
"canCreateTurboModule",
MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
});
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) {
// Not implemented yet: provide pure-C++ NativeModules here.
return nullptr;
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) {
return MainApplicationModuleProvider(name, params);
}
bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
std::string name) {
return getTurboModule(name, nullptr) != nullptr ||
getTurboModule(name, {.moduleName = name}) != nullptr;
}
} // namespace react
} // namespace facebook

@ -0,0 +1,38 @@
#include <memory>
#include <string>
#include <ReactCommon/TurboModuleManagerDelegate.h>
#include <fbjni/fbjni.h>
namespace facebook {
namespace react {
class MainApplicationTurboModuleManagerDelegate
: public jni::HybridClass<
MainApplicationTurboModuleManagerDelegate,
TurboModuleManagerDelegate> {
public:
// Adapt it to the package you used for your Java class.
static constexpr auto kJavaDescriptor =
"Lcom/bigbluebuttontablet/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>);
static void registerNatives();
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) override;
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) override;
/**
* Test-only method. Allows user to verify whether a TurboModule can be
* created by instances of this class.
*/
bool canCreateTurboModule(std::string name);
};
} // namespace react
} // namespace facebook

@ -0,0 +1,61 @@
#include "MainComponentsRegistry.h"
#include <CoreComponentsRegistry.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
namespace facebook {
namespace react {
MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
std::shared_ptr<ComponentDescriptorProviderRegistry const>
MainComponentsRegistry::sharedProviderRegistry() {
auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
// Custom Fabric Components go here. You can register custom
// components coming from your App or from 3rd party libraries here.
//
// providerRegistry->add(concreteComponentDescriptorProvider<
// AocViewerComponentDescriptor>());
return providerRegistry;
}
jni::local_ref<MainComponentsRegistry::jhybriddata>
MainComponentsRegistry::initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate) {
auto instance = makeCxxInstance(delegate);
auto buildRegistryFunction =
[](EventDispatcher::Weak const &eventDispatcher,
ContextContainer::Shared const &contextContainer)
-> ComponentDescriptorRegistry::Shared {
auto registry = MainComponentsRegistry::sharedProviderRegistry()
->createComponentDescriptorRegistry(
{eventDispatcher, contextContainer});
auto mutableRegistry =
std::const_pointer_cast<ComponentDescriptorRegistry>(registry);
mutableRegistry->setFallbackComponentDescriptor(
std::make_shared<UnimplementedNativeViewComponentDescriptor>(
ComponentDescriptorParameters{
eventDispatcher, contextContainer, nullptr}));
return registry;
};
delegate->buildRegistryFunction = buildRegistryFunction;
return instance;
}
void MainComponentsRegistry::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
});
}
} // namespace react
} // namespace facebook

@ -0,0 +1,32 @@
#pragma once
#include <ComponentFactory.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
namespace facebook {
namespace react {
class MainComponentsRegistry
: public facebook::jni::HybridClass<MainComponentsRegistry> {
public:
// Adapt it to the package you used for your Java class.
constexpr static auto kJavaDescriptor =
"Lcom/bigbluebuttontablet/newarchitecture/components/MainComponentsRegistry;";
static void registerNatives();
MainComponentsRegistry(ComponentFactory *delegate);
private:
static std::shared_ptr<ComponentDescriptorProviderRegistry const>
sharedProviderRegistry();
static jni::local_ref<jhybriddata> initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate);
};
} // namespace react
} // namespace facebook

@ -0,0 +1,11 @@
#include <fbjni/fbjni.h>
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainComponentsRegistry.h"
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
return facebook::jni::initialize(vm, [] {
facebook::react::MainApplicationTurboModuleManagerDelegate::
registerNatives();
facebook::react::MainComponentsRegistry::registerNatives();
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

@ -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/primary" />
<item
android:width="200dp"
android:height="200dp"
android:drawable="@drawable/icon"
android:gravity="center"
/>
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
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
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
<selector>
<!--
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
-->
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
</selector>
</inset>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="primary">#FFF</color>
</resources>

@ -1,3 +1,3 @@
<resources>
<string name="app_name">Big Blue Button</string>
<string name="app_name">BigBlueButtonTablet</string>
</resources>

@ -3,13 +3,7 @@
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<!-- <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> -->
<item name="android:windowBackground">
@drawable/background_splash
</item>
<item name="android:statusBarColor">
@color/primary
</item>
<item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
</style>
</resources>

@ -12,10 +12,6 @@ buildscript {
if (System.properties['os.arch'] == "aarch64") {
// For M1 Users we need to use the NDK 24 which added support for aarch64
ndkVersion = "24.0.8215888"
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
// For Android Users, we need to use NDK 23, otherwise the build will
// fail due to paths longer than the OS limit
ndkVersion = "23.1.7779620"
} else {
// Otherwise we default to the side-by-side NDK version from AGP.
ndkVersion = "21.4.7075529"
@ -26,9 +22,9 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:7.0.4")
classpath("com.android.tools.build:gradle:7.1.1")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:4.1.2")
classpath("de.undercouch:gradle-download-task:5.0.1")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

@ -1,11 +1,11 @@
rootProject.name = 'BigBlueButton'
rootProject.name = 'BigBlueButtonTablet'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../node_modules/react-native-gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid')
}
include(":ReactAndroid:hermes-engine")
project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine')
}

@ -1,4 +1,6 @@
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: ['react-native-reanimated/plugin']
plugins: [
'react-native-reanimated/plugin',
]
};

@ -0,0 +1 @@
env /usr/bin/arch -arm64 /bin/bash --login

@ -1,113 +0,0 @@
#!/bin/bash
#colors
RED='\033[0;31m'
GREEN='\033[1;32m'
NC='\033[0m'
SOURCE_LANGUAGE="en"
LOCALES_DIRECTORY="./react-native/app/translations/resources/"
PULL_SOURCE=true
if [[ ! -e $LOCALES_DIRECTORY ]]; then
echo -e "Directory ${RED}$LOCALES_DIRECTORY${NC} does not exist, creating"
mkdir -p $LOCALES_DIRECTORY
fi
if [ "$#" = 0 ]
then
echo -e "${RED}ERR${NC}: Usage = ${GREEN}./get-transifex-translations.sh pt_BR de ${NC}or ${GREEN}./get-transifex-translations all${NC}"
else
read -p "Enter Transifex Username: " USER
read -p "password: " -s PW
echo -e "\n----------------------------------\nchecking project info\n----------------------------------"
PROJECT_INFO=$( curl -L --user "$USER":"$PW" -X GET https://www.transifex.com/api/2/project/bigbluebutton-v25-html5-client/languages/ )
if [ "$PROJECT_INFO" == "Authorization Required" ]
then
echo -e "${RED}Err${NC} : $PROJECT_INFO"
else
echo -e "Project Information Found :${GREEN}${NC}"
if [ "$PROJECT_INFO" == "Forbidden" ]
then
echo -e "${RED}Err${NC}: Invalid User Permissions"
else
for ARG in "$@"
do
if [ "$ARG" == "all" ]
then
AVAILABLE_TRANSLATIONS=$( echo "$PROJECT_INFO" | grep 'language_code' | cut -d':' -f2 | tr -d '[",]' )
echo "$AVAILABLE_TRANSLATIONS" | while read l
do
LOCALE=$( echo "$l" | tr -d '[:space:]' )
if [ "$LOCALE" == "$SOURCE_LANGUAGE" ] && [ "$PULL_SOURCE" == false ]; then
continue # only pull source file if locales folder did not exist
fi
TRANSLATION=$(curl -L --user "$USER":"$PW" -X GET "https://www.transifex.com/api/2/project/bigbluebutton-v25-html5-client/resource/enjson/translation/$LOCALE/?mode=onlytranslated&file")
MOBILE_APP_STRINGS=$(echo "$TRANSLATION" | grep "mobileApp.")
NO_EMPTY_STRINGS=$(echo "$MOBILE_APP_STRINGS" | sed '/: *\"\"/D' | sed '/}$/D')
if [ $(echo "$NO_EMPTY_STRINGS" | wc -l) -lt 5 ]
then
echo -e "${RED}WARN:${NC} translation file $LOCALE.json contains less than 5 lines\n${RED}WARN:${NC} $LOCALE.json not created"
continue
else
NO_TRAILING_COMMA=$(echo "$NO_EMPTY_STRINGS" | sed '$ s/,$//')
echo "export default {" > "$LOCALES_DIRECTORY/$LOCALE".ts
echo -e "$NO_TRAILING_COMMA" >> "$LOCALES_DIRECTORY/$LOCALE".ts
echo -e "}" >> "$LOCALES_DIRECTORY/$LOCALE".ts
echo -e "Added translation file $LOCALE.ts :${GREEN}${NC}"
fi
done
else
TRANSLATION=$(curl -L --user "$USER":"$PW" -X GET "https://www.transifex.com/api/2/project/bigbluebutton-v25-html5-client/resource/enjson/translation/$ARG/?mode=onlytranslated&file")
if [ "$TRANSLATION" == "Not Found" ]
then
echo -e "${RED}Err${NC}: Translations not found for locale ->${RED}$ARG${NC}<-"
else
MOBILE_APP_STRINGS=$(echo "$TRANSLATION" | grep "mobileApp.")
NO_EMPTY_STRINGS=$(echo "$MOBILE_APP_STRINGS" | sed '/: *\"\"/D' | sed '/}$/D')
if [ $(echo "$NO_EMPTY_STRINGS" | wc -l) -lt 5 ]
then
echo -e "${RED}WARN:${NC} translation file $ARG.json contains less than 5 lines\n${RED}WARN:${NC} $ARG.json not created"
else
NO_TRAILING_COMMA=$(echo "$NO_EMPTY_STRINGS" | sed '$ s/,//')
echo "export default {" > "$LOCALES_DIRECTORY/$ARG".ts
echo -e "$NO_TRAILING_COMMA" >> "$LOCALES_DIRECTORY/$ARG".ts
echo -e "}" >> "$LOCALES_DIRECTORY/$ARG".ts
echo -e "Added translation file $ARG.ts :${GREEN}${NC}"
fi
fi
fi
done
fi
fi
fi
#create index.ts file
TAB="\\t";
if [ -f "$LOCALES_DIRECTORY/index.ts" ] ; then
rm "$LOCALES_DIRECTORY/index.ts"
fi
for entry in "$LOCALES_DIRECTORY"/*
do
FILE=$(echo "$entry" | rev | cut -d'/' -f 1 | rev | cut -d'.' -f 1)
TRANSLATION=$(echo "$FILE" | sed 's/_//')
echo -e "import $TRANSLATION from \"./$FILE\";" >> "$LOCALES_DIRECTORY/index.ts"
done
echo -e "\\nexport default {" >> "$LOCALES_DIRECTORY/index.ts"
for entry in "$LOCALES_DIRECTORY"/*
do
if [ "$entry" != "$LOCALES_DIRECTORY/index.ts" ]
then
FILE=$(echo "$entry" | rev | cut -d'/' -f 1 | rev | cut -d'.' -f 1 | tr _ -)
TRANSLATION=$(echo "$FILE" | sed 's/-//')
echo -e $TAB"'$FILE': {" >> "$LOCALES_DIRECTORY/index.ts"
echo -e $TAB$TAB"translation: $TRANSLATION\\n$TAB}," >> "$LOCALES_DIRECTORY/index.ts"
fi
done
echo -e "}" >> "$LOCALES_DIRECTORY/index.ts"

@ -1,7 +1,7 @@
/**
* @format
*/
import 'react-native-gesture-handler';
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';

@ -0,0 +1,11 @@
# This `.xcode.env` file is versioned and is used to source the environment
# used when running script phases inside Xcode.
# To customize your local environment, you can create an `.xcode.env.local`
# file that is not versioned.
# NODE_BINARY variable contains the PATH to the node executable.
#
# Customize the NODE_BINARY variable here.
# For example, to use nvm with brew, add the following line
# . "$(brew --prefix nvm)/nvm.sh" --no-use
export NODE_BINARY=$(command -v node)

@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.org.bigbluebutton.mobile</string>
<string>group.org.bigbluebutton.tablet</string>
</array>
</dict>
</plist>

@ -2,16 +2,12 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.broadcast-services-upload</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).SampleHandler</string>
<key>NSMicrophoneUsageDescription</key>
<string>BigBlueButton needs microphone access to allow you to share your microphone during a meeting.</string>
<key>RPBroadcastProcessMode</key>
<string>RPBroadcastProcessModeSampleBuffer</string>
</dict>

@ -1,16 +1,16 @@
//
// SampleHandler.swift
// BigBlueButtonMobileSdkBroadcastExample
// BigBlueButton Broadcast
//
// Created by Tiago Daniel Jacobs on 15/02/22.
// Created by Tiago Daniel Jacobs on 22/08/22.
//
import ReplayKit
import bigbluebutton_mobile_sdk_broadcast_upload_extension
import bigbluebutton_tablet_sdk_broadcast_upload_extension
class SampleHandler: BBBSampleHandler {
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
super.setAppGroupName(appGroupName: Constants.appGroupName)
super.broadcastStarted(withSetupInfo: setupInfo)
}
class SampleHandler:BBBSampleHandler{
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
super.setAppGroupName(appGroupName: Constants.appGroupName)
super.broadcastStarted(withSetupInfo: setupInfo)
}
}

@ -1,3 +1,7 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <React/RCTBridgeModule.h>
#import <React/RCTBridge.h>
#import <React/RCTEventDispatcher.h>

@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.org.bigbluebutton.mobile</string>
<string>group.org.bigbluebutton.tablet</string>
</array>
</dict>
</plist>

@ -7,99 +7,118 @@
objects = {
/* Begin PBXBuildFile section */
00E356F31AD99517003FC87E /* BigBlueButtonTabletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BigBlueButtonTabletTests.m */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
6172F2D35A4C3AA820D92908 /* libPods-BigBlueButton.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6423831EA8574132BED9D8CC /* libPods-BigBlueButton.a */; };
1CADDF236F6F5A9BFD58904A /* libPods-BigBlueButton TabletTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A80D6ED83446BD97169BC26B /* libPods-BigBlueButton TabletTests.a */; };
22D7EF2628B3F7FA00603FF6 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D7EF2528B3F7FA00603FF6 /* ReplayKit.framework */; };
22D7EF2928B3F7FA00603FF6 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D7EF2828B3F7FA00603FF6 /* SampleHandler.swift */; };
22D7EF2D28B3F7FA00603FF6 /* BigBlueButton Broadcast.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 22D7EF2428B3F7FA00603FF6 /* BigBlueButton Broadcast.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
22D7EF3528B3FA7200603FF6 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D7EF3428B3FA7200603FF6 /* Constants.swift */; };
22D7EF3628B3FA7200603FF6 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D7EF3428B3FA7200603FF6 /* Constants.swift */; };
22D7EF3828B3FCB500603FF6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D7EF3728B3FCB400603FF6 /* AppDelegate.swift */; };
625617EA73482EC5D4C12675 /* libPods-BigBlueButton Broadcast.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD9A680CE7A9C946DF771DB2 /* libPods-BigBlueButton Broadcast.a */; };
7C65C1B8FBAD42536E7B6889 /* libPods-BigBlueButton Tablet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D613B36D459EB5AC6E821F /* libPods-BigBlueButton Tablet.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
D9268FF3D2DA9D8304F931DB /* libPods-BigBlueButton Broadcast.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 38E575479D3F0ED342457EBF /* libPods-BigBlueButton Broadcast.a */; };
F121360B27D1904500E25EBB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F121360A27D1904500E25EBB /* AppDelegate.swift */; };
F1CF7F4C27D1B62E00E0C7F1 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1CF7F4B27D1B62E00E0C7F1 /* Constants.swift */; };
F1CF7F4E27D1B63900E0C7F1 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1CF7F4D27D1B63900E0C7F1 /* Constants.swift */; };
F1F618E927BCA28B0085BEDE /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1F618E827BCA28B0085BEDE /* ReplayKit.framework */; };
F1F618EC27BCA28B0085BEDE /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1F618EB27BCA28B0085BEDE /* SampleHandler.swift */; };
F1F618F027BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = F1F618E727BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
F1F618EE27BCA28B0085BEDE /* PBXContainerItemProxy */ = {
00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F1F618E627BCA28B0085BEDE;
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = BigBlueButtonTablet;
};
22D7EF2B28B3F7FA00603FF6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 22D7EF2328B3F7FA00603FF6;
remoteInfo = "BigBlueButton Broadcast";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
F1F618F427BCA28B0085BEDE /* Embed App Extensions */ = {
22D7EF3128B3F7FA00603FF6 /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
F1F618F027BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex in Embed App Extensions */,
22D7EF2D28B3F7FA00603FF6 /* BigBlueButton Broadcast.appex in Embed Foundation Extensions */,
);
name = "Embed App Extensions";
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
00E356EE1AD99517003FC87E /* BigBlueButton TabletTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BigBlueButton TabletTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* BigBlueButtonTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BigBlueButtonTests.m; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* BigBlueButtonTabletTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BigBlueButtonTabletTests.m; sourceTree = "<group>"; };
065075937E1D6BB6C32757F1 /* Pods-BigBlueButton Broadcast.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Broadcast.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Broadcast/Pods-BigBlueButton Broadcast.debug.xcconfig"; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* BigBlueButton Tablet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BigBlueButton Tablet.app"; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BigBlueButton/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BigBlueButton/Info.plist; sourceTree = "<group>"; };
1D0AE47A65C8663E3B452821 /* Pods-BigBlueButton-BigBlueButtonTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton-BigBlueButtonTests.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton-BigBlueButtonTests/Pods-BigBlueButton-BigBlueButtonTests.release.xcconfig"; sourceTree = "<group>"; };
38E575479D3F0ED342457EBF /* libPods-BigBlueButton Broadcast.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton Broadcast.a"; sourceTree = BUILT_PRODUCTS_DIR; };
6423831EA8574132BED9D8CC /* libPods-BigBlueButton.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton.a"; sourceTree = BUILT_PRODUCTS_DIR; };
6C97AB639B58BBB4B15BBE30 /* Pods-BigBlueButton-BigBlueButtonTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton-BigBlueButtonTests.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton-BigBlueButtonTests/Pods-BigBlueButton-BigBlueButtonTests.debug.xcconfig"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = BigBlueButton/LaunchScreen.storyboard; sourceTree = "<group>"; };
ABFE59519B596E51CEFDCCC0 /* libPods-BigBlueButton-BigBlueButtonTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton-BigBlueButtonTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
C0A881CF5CF3F2B244570E2A /* Pods-BigBlueButton.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton.debug.xcconfig"; sourceTree = "<group>"; };
C1EE5D0B958503AECE222C0D /* Pods-BigBlueButton Broadcast.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Broadcast.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Broadcast/Pods-BigBlueButton Broadcast.release.xcconfig"; sourceTree = "<group>"; };
D00AAFFCFCFDA5787532823F /* Pods-BigBlueButton.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton.release.xcconfig"; sourceTree = "<group>"; };
D029435F40D9827BF73DEFDA /* Pods-BigBlueButton Broadcast.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Broadcast.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Broadcast/Pods-BigBlueButton Broadcast.debug.xcconfig"; sourceTree = "<group>"; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BigBlueButtonTablet/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BigBlueButtonTablet/Info.plist; sourceTree = "<group>"; };
22D7EF1F28B3F7C100603FF6 /* BigBlueButton Tablet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "BigBlueButton Tablet.entitlements"; sourceTree = "<group>"; };
22D7EF2428B3F7FA00603FF6 /* BigBlueButton Broadcast.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "BigBlueButton Broadcast.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
22D7EF2528B3F7FA00603FF6 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; };
22D7EF2828B3F7FA00603FF6 /* SampleHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleHandler.swift; sourceTree = "<group>"; };
22D7EF2A28B3F7FA00603FF6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
22D7EF3228B3F80300603FF6 /* BigBlueButton Broadcast.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "BigBlueButton Broadcast.entitlements"; sourceTree = "<group>"; };
22D7EF3328B3FA7200603FF6 /* BigBlueButton Tablet-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BigBlueButton Tablet-Bridging-Header.h"; sourceTree = "<group>"; };
22D7EF3428B3FA7200603FF6 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = BigBlueButtonTablet/Constants.swift; sourceTree = "<group>"; };
22D7EF3728B3FCB400603FF6 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = BigBlueButtonTablet/AppDelegate.swift; sourceTree = "<group>"; };
3B4392A12AC88292D35C810B /* Pods-BigBlueButtonTablet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButtonTablet.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButtonTablet/Pods-BigBlueButtonTablet.debug.xcconfig"; sourceTree = "<group>"; };
5709B34CF0A7D63546082F79 /* Pods-BigBlueButtonTablet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButtonTablet.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButtonTablet/Pods-BigBlueButtonTablet.release.xcconfig"; sourceTree = "<group>"; };
5ACD52D85638445D6AE6DEDC /* Pods-BigBlueButton Tablet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Tablet.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet.release.xcconfig"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = BigBlueButtonTablet/LaunchScreen.storyboard; sourceTree = "<group>"; };
89D854389E89E47DE9952799 /* Pods-BigBlueButton TabletTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton TabletTests.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton TabletTests/Pods-BigBlueButton TabletTests.debug.xcconfig"; sourceTree = "<group>"; };
91D613B36D459EB5AC6E821F /* libPods-BigBlueButton Tablet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton Tablet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
A80D6ED83446BD97169BC26B /* libPods-BigBlueButton TabletTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton TabletTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
AA29A6738C354B3C1F683301 /* Pods-BigBlueButton Broadcast.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Broadcast.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Broadcast/Pods-BigBlueButton Broadcast.release.xcconfig"; sourceTree = "<group>"; };
BD9A680CE7A9C946DF771DB2 /* libPods-BigBlueButton Broadcast.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BigBlueButton Broadcast.a"; sourceTree = BUILT_PRODUCTS_DIR; };
D79EC40CC7E404913A525776 /* Pods-BigBlueButton TabletTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton TabletTests.release.xcconfig"; path = "Target Support Files/Pods-BigBlueButton TabletTests/Pods-BigBlueButton TabletTests.release.xcconfig"; sourceTree = "<group>"; };
DDA7C799933416054F8CBA86 /* Pods-BigBlueButton Tablet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BigBlueButton Tablet.debug.xcconfig"; path = "Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet.debug.xcconfig"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F121360927D1904500E25EBB /* swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "swift-Bridging-Header.h"; sourceTree = "<group>"; };
F121360A27D1904500E25EBB /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
F1CF7F4B27D1B62E00E0C7F1 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
F1CF7F4D27D1B63900E0C7F1 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = SOURCE_ROOT; };
F1CF7F4F27D1B7E800E0C7F1 /* BigBlueButton.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = BigBlueButton.entitlements; path = BigBlueButton/BigBlueButton.entitlements; sourceTree = "<group>"; };
F1CF7F5027D1B80200E0C7F1 /* BigBlueButton Broadcast.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "BigBlueButton Broadcast.entitlements"; sourceTree = "<group>"; };
F1F618E727BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "BigBlueButton Tablet Broadcast.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
F1F618E827BCA28B0085BEDE /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; };
F1F618EB27BCA28B0085BEDE /* SampleHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleHandler.swift; sourceTree = "<group>"; };
F1F618ED27BCA28B0085BEDE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
00E356EB1AD99517003FC87E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1CADDF236F6F5A9BFD58904A /* libPods-BigBlueButton TabletTests.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6172F2D35A4C3AA820D92908 /* libPods-BigBlueButton.a in Frameworks */,
7C65C1B8FBAD42536E7B6889 /* libPods-BigBlueButton Tablet.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F1F618E427BCA28B0085BEDE /* Frameworks */ = {
22D7EF2128B3F7FA00603FF6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F1F618E927BCA28B0085BEDE /* ReplayKit.framework in Frameworks */,
D9268FF3D2DA9D8304F931DB /* libPods-BigBlueButton Broadcast.a in Frameworks */,
22D7EF2628B3F7FA00603FF6 /* ReplayKit.framework in Frameworks */,
625617EA73482EC5D4C12675 /* libPods-BigBlueButton Broadcast.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
00E356EF1AD99517003FC87E /* BigBlueButtonTests */ = {
00E356EF1AD99517003FC87E /* BigBlueButtonTabletTests */ = {
isa = PBXGroup;
children = (
00E356F21AD99517003FC87E /* BigBlueButtonTests.m */,
00E356F21AD99517003FC87E /* BigBlueButtonTabletTests.m */,
00E356F01AD99517003FC87E /* Supporting Files */,
);
path = BigBlueButtonTests;
path = BigBlueButtonTabletTests;
sourceTree = "<group>";
};
00E356F01AD99517003FC87E /* Supporting Files */ = {
@ -110,35 +129,37 @@
name = "Supporting Files";
sourceTree = "<group>";
};
0B7E80F3E3D64BD78EE80539 /* Resources */ = {
13B07FAE1A68108700A75B9A /* BigBlueButtonTablet */ = {
isa = PBXGroup;
children = (
22D7EF3428B3FA7200603FF6 /* Constants.swift */,
22D7EF3728B3FCB400603FF6 /* AppDelegate.swift */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
22D7EF3328B3FA7200603FF6 /* BigBlueButton Tablet-Bridging-Header.h */,
);
name = Resources;
name = BigBlueButtonTablet;
sourceTree = "<group>";
};
13B07FAE1A68108700A75B9A /* BigBlueButton */ = {
22D7EF2728B3F7FA00603FF6 /* BigBlueButton Broadcast */ = {
isa = PBXGroup;
children = (
F1CF7F4F27D1B7E800E0C7F1 /* BigBlueButton.entitlements */,
F1CF7F4B27D1B62E00E0C7F1 /* Constants.swift */,
F121360A27D1904500E25EBB /* AppDelegate.swift */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
F121360927D1904500E25EBB /* swift-Bridging-Header.h */,
22D7EF3228B3F80300603FF6 /* BigBlueButton Broadcast.entitlements */,
22D7EF2828B3F7FA00603FF6 /* SampleHandler.swift */,
22D7EF2A28B3F7FA00603FF6 /* Info.plist */,
);
name = BigBlueButton;
path = "BigBlueButton Broadcast";
sourceTree = "<group>";
};
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
6423831EA8574132BED9D8CC /* libPods-BigBlueButton.a */,
ABFE59519B596E51CEFDCCC0 /* libPods-BigBlueButton-BigBlueButtonTests.a */,
F1F618E827BCA28B0085BEDE /* ReplayKit.framework */,
38E575479D3F0ED342457EBF /* libPods-BigBlueButton Broadcast.a */,
22D7EF2528B3F7FA00603FF6 /* ReplayKit.framework */,
BD9A680CE7A9C946DF771DB2 /* libPods-BigBlueButton Broadcast.a */,
91D613B36D459EB5AC6E821F /* libPods-BigBlueButton Tablet.a */,
A80D6ED83446BD97169BC26B /* libPods-BigBlueButton TabletTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
@ -153,14 +174,14 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
13B07FAE1A68108700A75B9A /* BigBlueButton */,
22D7EF1F28B3F7C100603FF6 /* BigBlueButton Tablet.entitlements */,
13B07FAE1A68108700A75B9A /* BigBlueButtonTablet */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* BigBlueButtonTests */,
F1F618EA27BCA28B0085BEDE /* BigBlueButton Broadcast */,
00E356EF1AD99517003FC87E /* BigBlueButtonTabletTests */,
22D7EF2728B3F7FA00603FF6 /* BigBlueButton Broadcast */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
E233CBF5F47BEE60B243DCF8 /* Pods */,
0B7E80F3E3D64BD78EE80539 /* Resources */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
);
indentWidth = 2;
sourceTree = "<group>";
@ -171,78 +192,89 @@
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* BigBlueButton Tablet.app */,
F1F618E727BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex */,
00E356EE1AD99517003FC87E /* BigBlueButton TabletTests.xctest */,
22D7EF2428B3F7FA00603FF6 /* BigBlueButton Broadcast.appex */,
);
name = Products;
sourceTree = "<group>";
};
E233CBF5F47BEE60B243DCF8 /* Pods */ = {
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
C0A881CF5CF3F2B244570E2A /* Pods-BigBlueButton.debug.xcconfig */,
D00AAFFCFCFDA5787532823F /* Pods-BigBlueButton.release.xcconfig */,
6C97AB639B58BBB4B15BBE30 /* Pods-BigBlueButton-BigBlueButtonTests.debug.xcconfig */,
1D0AE47A65C8663E3B452821 /* Pods-BigBlueButton-BigBlueButtonTests.release.xcconfig */,
D029435F40D9827BF73DEFDA /* Pods-BigBlueButton Broadcast.debug.xcconfig */,
C1EE5D0B958503AECE222C0D /* Pods-BigBlueButton Broadcast.release.xcconfig */,
3B4392A12AC88292D35C810B /* Pods-BigBlueButtonTablet.debug.xcconfig */,
5709B34CF0A7D63546082F79 /* Pods-BigBlueButtonTablet.release.xcconfig */,
065075937E1D6BB6C32757F1 /* Pods-BigBlueButton Broadcast.debug.xcconfig */,
AA29A6738C354B3C1F683301 /* Pods-BigBlueButton Broadcast.release.xcconfig */,
DDA7C799933416054F8CBA86 /* Pods-BigBlueButton Tablet.debug.xcconfig */,
5ACD52D85638445D6AE6DEDC /* Pods-BigBlueButton Tablet.release.xcconfig */,
89D854389E89E47DE9952799 /* Pods-BigBlueButton TabletTests.debug.xcconfig */,
D79EC40CC7E404913A525776 /* Pods-BigBlueButton TabletTests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
F1F618EA27BCA28B0085BEDE /* BigBlueButton Broadcast */ = {
isa = PBXGroup;
children = (
F1CF7F5027D1B80200E0C7F1 /* BigBlueButton Broadcast.entitlements */,
F1CF7F4D27D1B63900E0C7F1 /* Constants.swift */,
F1F618EB27BCA28B0085BEDE /* SampleHandler.swift */,
F1F618ED27BCA28B0085BEDE /* Info.plist */,
);
path = "BigBlueButton Broadcast";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
00E356ED1AD99517003FC87E /* BigBlueButton TabletTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BigBlueButton TabletTests" */;
buildPhases = (
94EA0FD5F2E454C2A33AD8B7 /* [CP] Check Pods Manifest.lock */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
);
buildRules = (
);
dependencies = (
00E356F51AD99517003FC87E /* PBXTargetDependency */,
);
name = "BigBlueButton TabletTests";
productName = BigBlueButtonTabletTests;
productReference = 00E356EE1AD99517003FC87E /* BigBlueButton TabletTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
13B07F861A680F5B00A75B9A /* BigBlueButton Tablet */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BigBlueButton Tablet" */;
buildPhases = (
3E482C27206C4DEF2FE45063 /* [CP] Check Pods Manifest.lock */,
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
FD10A7F022414F080027D42C /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
ADC9DDC32298B72B3CF5DC8E /* [CP] Copy Pods Resources */,
8B7F66E80BB588901265B229 /* [CP] Embed Pods Frameworks */,
F1F618F427BCA28B0085BEDE /* Embed App Extensions */,
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
22D7EF3128B3F7FA00603FF6 /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
F1F618EF27BCA28B0085BEDE /* PBXTargetDependency */,
22D7EF2C28B3F7FA00603FF6 /* PBXTargetDependency */,
);
name = "BigBlueButton Tablet";
productName = BigBlueButton;
productName = BigBlueButtonTablet;
productReference = 13B07F961A680F5B00A75B9A /* BigBlueButton Tablet.app */;
productType = "com.apple.product-type.application";
};
F1F618E627BCA28B0085BEDE /* BigBlueButton Tablet Broadcast */ = {
22D7EF2328B3F7FA00603FF6 /* BigBlueButton Broadcast */ = {
isa = PBXNativeTarget;
buildConfigurationList = F1F618F127BCA28B0085BEDE /* Build configuration list for PBXNativeTarget "BigBlueButton Tablet Broadcast" */;
buildConfigurationList = 22D7EF2E28B3F7FA00603FF6 /* Build configuration list for PBXNativeTarget "BigBlueButton Broadcast" */;
buildPhases = (
796B413234ABE3905B9BBA35 /* [CP] Check Pods Manifest.lock */,
F1F618E327BCA28B0085BEDE /* Sources */,
F1F618E427BCA28B0085BEDE /* Frameworks */,
F1F618E527BCA28B0085BEDE /* Resources */,
CE388BFEBB3C5A8F90C0CC87 /* [CP] Check Pods Manifest.lock */,
22D7EF2028B3F7FA00603FF6 /* Sources */,
22D7EF2128B3F7FA00603FF6 /* Frameworks */,
22D7EF2228B3F7FA00603FF6 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "BigBlueButton Tablet Broadcast";
name = "BigBlueButton Broadcast";
productName = "BigBlueButton Broadcast";
productReference = F1F618E727BCA28B0085BEDE /* BigBlueButton Tablet Broadcast.appex */;
productReference = 22D7EF2428B3F7FA00603FF6 /* BigBlueButton Broadcast.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
@ -251,14 +283,18 @@
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1320;
LastUpgradeCheck = 1340;
LastSwiftUpdateCheck = 1400;
LastUpgradeCheck = 1210;
TargetAttributes = {
00E356ED1AD99517003FC87E = {
CreatedOnToolsVersion = 6.2;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1320;
LastSwiftMigration = 1400;
};
F1F618E627BCA28B0085BEDE = {
CreatedOnToolsVersion = 13.2.1;
22D7EF2328B3F7FA00603FF6 = {
CreatedOnToolsVersion = 14.0;
};
};
};
@ -276,12 +312,20 @@
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* BigBlueButton Tablet */,
F1F618E627BCA28B0085BEDE /* BigBlueButton Tablet Broadcast */,
00E356ED1AD99517003FC87E /* BigBlueButton TabletTests */,
22D7EF2328B3F7FA00603FF6 /* BigBlueButton Broadcast */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
00E356EC1AD99517003FC87E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F8E1A680F5B00A75B9A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -291,7 +335,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F1F618E527BCA28B0085BEDE /* Resources */ = {
22D7EF2228B3F7FA00603FF6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@ -307,15 +351,34 @@
files = (
);
inputPaths = (
"$(SRCROOT)/.xcode.env.local",
"$(SRCROOT)/.xcode.env",
);
name = "Bundle React Native code and images";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3E482C27206C4DEF2FE45063 /* [CP] Check Pods Manifest.lock */ = {
94EA0FD5F2E454C2A33AD8B7 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -330,14 +393,14 @@
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-BigBlueButton-checkManifestLockResult.txt",
"$(DERIVED_FILE_DIR)/Pods-BigBlueButton TabletTests-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;
};
796B413234ABE3905B9BBA35 /* [CP] Check Pods Manifest.lock */ = {
C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -352,45 +415,50 @@
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-BigBlueButton Broadcast-checkManifestLockResult.txt",
"$(DERIVED_FILE_DIR)/Pods-BigBlueButton Tablet-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;
};
8B7F66E80BB588901265B229 /* [CP] Embed Pods Frameworks */ = {
CE388BFEBB3C5A8F90C0CC87 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-BigBlueButton Broadcast-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-frameworks.sh\"\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
ADC9DDC32298B72B3CF5DC8E /* [CP] Copy Pods Resources */ = {
E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-resources-${CONFIGURATION}-input-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-resources-${CONFIGURATION}-output-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton/Pods-BigBlueButton-resources.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BigBlueButton Tablet/Pods-BigBlueButton Tablet-resources.sh\"\n";
showEnvVarsInLog = 0;
};
FD10A7F022414F080027D42C /* Start Packager */ = {
@ -415,47 +483,115 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
00E356EA1AD99517003FC87E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
00E356F31AD99517003FC87E /* BigBlueButtonTabletTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
13B07F871A680F5B00A75B9A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F121360B27D1904500E25EBB /* AppDelegate.swift in Sources */,
F1CF7F4C27D1B62E00E0C7F1 /* Constants.swift in Sources */,
22D7EF3828B3FCB500603FF6 /* AppDelegate.swift in Sources */,
22D7EF3528B3FA7200603FF6 /* Constants.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F1F618E327BCA28B0085BEDE /* Sources */ = {
22D7EF2028B3F7FA00603FF6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F1F618EC27BCA28B0085BEDE /* SampleHandler.swift in Sources */,
F1CF7F4E27D1B63900E0C7F1 /* Constants.swift in Sources */,
22D7EF2928B3F7FA00603FF6 /* SampleHandler.swift in Sources */,
22D7EF3628B3FA7200603FF6 /* Constants.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
F1F618EF27BCA28B0085BEDE /* PBXTargetDependency */ = {
00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 13B07F861A680F5B00A75B9A /* BigBlueButton Tablet */;
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
22D7EF2C28B3F7FA00603FF6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F1F618E627BCA28B0085BEDE /* BigBlueButton Tablet Broadcast */;
targetProxy = F1F618EE27BCA28B0085BEDE /* PBXContainerItemProxy */;
target = 22D7EF2328B3F7FA00603FF6 /* BigBlueButton Broadcast */;
targetProxy = 22D7EF2B28B3F7FA00603FF6 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 89D854389E89E47DE9952799 /* Pods-BigBlueButton TabletTests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
DEVELOPMENT_TEAM = N69T9W23TC;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = BigBlueButtonTabletTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
"$(inherited)",
);
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.tablet;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BigBlueButton Tablet.app/BigBlueButton Tablet";
};
name = Debug;
};
00E356F71AD99517003FC87E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D79EC40CC7E404913A525776 /* Pods-BigBlueButton TabletTests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = N69T9W23TC;
INFOPLIST_FILE = BigBlueButtonTabletTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
"$(inherited)",
);
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.tablet;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BigBlueButton Tablet.app/BigBlueButton Tablet";
};
name = Release;
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = C0A881CF5CF3F2B244570E2A /* Pods-BigBlueButton.debug.xcconfig */;
baseConfigurationReference = DDA7C799933416054F8CBA86 /* Pods-BigBlueButton Tablet.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BigBlueButton/BigBlueButton.entitlements;
CURRENT_PROJECT_VERSION = 17;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Tablet.entitlements";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = N69T9W23TC;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = BigBlueButton/Info.plist;
INFOPLIST_FILE = BigBlueButtonTablet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@ -466,27 +602,26 @@
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.mobile;
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.tablet;
PRODUCT_NAME = "BigBlueButton Tablet";
SWIFT_OBJC_BRIDGING_HEADER = "swift-Bridging-Header.h";
SWIFT_OBJC_BRIDGING_HEADER = "BigBlueButton Tablet-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D00AAFFCFCFDA5787532823F /* Pods-BigBlueButton.release.xcconfig */;
baseConfigurationReference = 5ACD52D85638445D6AE6DEDC /* Pods-BigBlueButton Tablet.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = BigBlueButton/BigBlueButton.entitlements;
CURRENT_PROJECT_VERSION = 17;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Tablet.entitlements";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = N69T9W23TC;
INFOPLIST_FILE = BigBlueButton/Info.plist;
INFOPLIST_FILE = BigBlueButtonTablet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@ -497,21 +632,100 @@
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.mobile;
PRODUCT_BUNDLE_IDENTIFIER = org.bigbluebutton.tablet;
PRODUCT_NAME = "BigBlueButton Tablet";
SWIFT_OBJC_BRIDGING_HEADER = "swift-Bridging-Header.h";
SWIFT_OBJC_BRIDGING_HEADER = "BigBlueButton Tablet-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
22D7EF2F28B3F7FA00603FF6 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 065075937E1D6BB6C32757F1 /* Pods-BigBlueButton Broadcast.debug.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = N69T9W23TC;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "BigBlueButton Broadcast/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "BigBlueButton Broadcast";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.tablet.BigBlueButton-Broadcast";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
22D7EF3028B3F7FA00603FF6 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AA29A6738C354B3C1F683301 /* Pods-BigBlueButton Broadcast.release.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = N69T9W23TC;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "BigBlueButton Broadcast/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "BigBlueButton Broadcast";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.tablet.BigBlueButton-Broadcast";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
@ -555,7 +769,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
@ -567,6 +781,13 @@
);
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
"-DFOLLY_MOBILE=1",
"-DFOLLY_USE_LIBCPP=1",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
};
name = Debug;
@ -576,7 +797,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
@ -613,7 +834,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
@ -624,97 +845,30 @@
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
"-DFOLLY_MOBILE=1",
"-DFOLLY_USE_LIBCPP=1",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
F1F618F227BCA28B0085BEDE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D029435F40D9827BF73DEFDA /* Pods-BigBlueButton Broadcast.debug.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 17;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = N69T9W23TC;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "BigBlueButton Broadcast/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "BigBlueButton Tablet Broadcast";
INFOPLIST_KEY_LSApplicationCategoryType = "";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.mobile.BigBlueButton-Broadcast";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
F1F618F327BCA28B0085BEDE /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = C1EE5D0B958503AECE222C0D /* Pods-BigBlueButton Broadcast.release.xcconfig */;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 17;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = N69T9W23TC;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "BigBlueButton Broadcast/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "BigBlueButton Tablet Broadcast";
INFOPLIST_KEY_LSApplicationCategoryType = "";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.7;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.mobile.BigBlueButton-Broadcast";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BigBlueButton TabletTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
00E356F61AD99517003FC87E /* Debug */,
00E356F71AD99517003FC87E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BigBlueButton Tablet" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -724,20 +878,20 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "BigBlueButton Tablet" */ = {
22D7EF2E28B3F7FA00603FF6 /* Build configuration list for PBXNativeTarget "BigBlueButton Broadcast" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83CBBA201A601CBA00E9B192 /* Debug */,
83CBBA211A601CBA00E9B192 /* Release */,
22D7EF2F28B3F7FA00603FF6 /* Debug */,
22D7EF3028B3F7FA00603FF6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F1F618F127BCA28B0085BEDE /* Build configuration list for PBXNativeTarget "BigBlueButton Tablet Broadcast" */ = {
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "BigBlueButton Tablet" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F1F618F227BCA28B0085BEDE /* Debug */,
F1F618F327BCA28B0085BEDE /* Release */,
83CBBA201A601CBA00E9B192 /* Debug */,
83CBBA211A601CBA00E9B192 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1340"
LastUpgradeVersion = "1210"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "BigBlueButton.app"
BuildableName = "BigBlueButton Tablet.app"
BlueprintName = "BigBlueButton Tablet"
ReferencedContainer = "container:BigBlueButton Tablet.xcodeproj">
</BuildableReference>
@ -33,8 +33,8 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "00E356ED1AD99517003FC87E"
BuildableName = "BigBlueButtonTests.xctest"
BlueprintName = "BigBlueButtonTests"
BuildableName = "BigBlueButton TabletTests.xctest"
BlueprintName = "BigBlueButton TabletTests"
ReferencedContainer = "container:BigBlueButton Tablet.xcodeproj">
</BuildableReference>
</TestableReference>
@ -44,8 +44,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = "en"
region = "US"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
@ -57,7 +55,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "BigBlueButton.app"
BuildableName = "BigBlueButton Tablet.app"
BlueprintName = "BigBlueButton Tablet"
ReferencedContainer = "container:BigBlueButton Tablet.xcodeproj">
</BuildableReference>
@ -74,7 +72,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "BigBlueButton.app"
BuildableName = "BigBlueButton Tablet.app"
BlueprintName = "BigBlueButton Tablet"
ReferencedContainer = "container:BigBlueButton Tablet.xcodeproj">
</BuildableReference>

@ -2,7 +2,7 @@
<Workspace
version = "1.0">
<FileRef
location = "group:/Users/tiago/_data/imdt/desenv-local/bbb2022/bigbluebutton-mobile-tablet/ios/BigBlueButton Tablet.xcodeproj">
location = "group:BigBlueButton Tablet.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">

@ -1 +0,0 @@
{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]}

@ -1,114 +0,0 @@
{
"images" : [
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "2688h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "2688h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "1792h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "landscape",
"scale" : "2x",
"subtype" : "1792h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "11.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "2436h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "11.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "2436h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "736h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "736h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "667h"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "retina4"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "1x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "retina4"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:/Users/tiagodanieljacobs/_dev/bigbluebutton-tablet-novo/BigBlueButtonTablet/ios/BigBlueButton Tablet.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

@ -3,9 +3,8 @@
//
// Created by Tiago Daniel Jacobs on 11/03/22.
//
import UIKit
import bigbluebutton_mobile_sdk
import bigbluebutton_tablet_sdk
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, RCTBridgeDelegate {

@ -2,9 +2,9 @@ import Foundation
class Constants {
// This is used to filter the list of broadcast applications offered to the user (it must match with bundle id of the broadcast extension target)
public static var broadcastExtensionBundleId="org.bigbluebutton.mobile.BigBlueButton-Broadcast";
public static var broadcastExtensionBundleId="org.bigbluebutton.tablet.BigBlueButton-Broadcast";
// This is used to allow both applications (main and broadcast) to share information
public static var appGroupName="group.org.bigbluebutton.mobile";
public static var appGroupName="group.org.bigbluebutton.tablet";
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save