2017-06-07 20:15:36 +00:00
|
|
|
# Jitsi Meet SDK for Android
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-09-12 01:12:11 +00:00
|
|
|
## Build
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-09-12 01:12:11 +00:00
|
|
|
1. Install all required [dependencies](https://github.com/jitsi/jitsi-meet/blob/master/doc/mobile.md).
|
|
|
|
|
|
|
|
2. ```bash
|
|
|
|
cd android/
|
|
|
|
./gradlew :sdk:assembleRelease
|
|
|
|
```
|
|
|
|
|
2017-10-30 21:04:37 +00:00
|
|
|
3. Configure the Maven repositories in which you are going to publish the
|
|
|
|
artifacts/binaries during step 4. Modify
|
|
|
|
`"file:${rootProject.projectDir}/../../../jitsi/jitsi-maven-repository/releases"`
|
|
|
|
in adroid/sdk/build.gradle for Jitsi Meet SDK for Android and/or
|
|
|
|
`"file:${rootProject.projectDir}/../../../jitsi/jitsi-maven-repository/releases"`
|
|
|
|
in android/build.gradle for the third-party react-native modules which Jitsi
|
|
|
|
Meet SDK for Android depends on and are not publicly available in Maven
|
|
|
|
repositories. Generally, if you are modifying the JavaSource code of Jitsi
|
|
|
|
Meet SDK for Android only, you will very likely need to consider the former
|
|
|
|
only.
|
|
|
|
|
|
|
|
4. Publish the Maven artifact/binary of Jitsi Meet SDK for Android in the Maven
|
|
|
|
repository configured in step 3:
|
|
|
|
|
|
|
|
```bash
|
2017-09-12 01:12:11 +00:00
|
|
|
./gradlew :sdk:publish
|
|
|
|
cd ../
|
|
|
|
```
|
|
|
|
|
2017-10-30 21:04:37 +00:00
|
|
|
If you would like to publish a third-party react-native module which Jitsi
|
|
|
|
Meet SDK for Android depends on and is not publicly available in Maven
|
|
|
|
repositories, replace `sdk` with the name of the react-native module. For
|
|
|
|
example, to publish react-native-webrtc:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
./gradlew :react-native-webrtc:publish
|
|
|
|
```
|
|
|
|
|
2017-09-12 01:12:11 +00:00
|
|
|
## Install
|
|
|
|
|
|
|
|
Add the Maven repository
|
|
|
|
`https://github.com/jitsi/jitsi-maven-repository/raw/master/releases` and the
|
|
|
|
dependency `org.jitsi.react:jitsi-meet-sdk:1.9.0` into your `build.gradle`.
|
|
|
|
|
|
|
|
## API
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
Jitsi Meet SDK is an Android library which embodies the whole Jitsi Meet
|
|
|
|
experience and makes it reusable by third-party apps.
|
|
|
|
|
|
|
|
To get started, extends your `android.app.Activity` from
|
|
|
|
`org.jitsi.meet.sdk.JitsiMeetActivity`:
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
|
|
|
```java
|
|
|
|
package org.jitsi.example;
|
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
import org.jitsi.meet.sdk.JitsiMeetActivity;
|
|
|
|
|
|
|
|
public class MainActivity extends JitsiMeetActivity {
|
|
|
|
}
|
|
|
|
```
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
Alternatively, you can use the `org.jitsi.meet.sdk.JitsiMeetView` class which
|
|
|
|
extends `android.view.View`:
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
```java
|
|
|
|
package org.jitsi.example;
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
|
|
|
|
import org.jitsi.meet.sdk.JitsiMeetView;
|
|
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
private JitsiMeetView view;
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onBackPressed() {
|
|
|
|
if (!JitsiMeetView.onBackPressed()) {
|
|
|
|
// Invoke the default handler if it wasn't handled by React.
|
|
|
|
super.onBackPressed();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
view = new JitsiMeetView(this);
|
|
|
|
view.loadURL(null);
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
setContentView(view);
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onDestroy() {
|
|
|
|
super.onDestroy();
|
2017-06-07 20:15:36 +00:00
|
|
|
|
2017-07-26 14:41:27 +00:00
|
|
|
view.dispose();
|
|
|
|
view = null;
|
|
|
|
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
JitsiMeetView.onHostDestroy(this);
|
|
|
|
}
|
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
@Override
|
|
|
|
public void onNewIntent(Intent intent) {
|
|
|
|
JitsiMeetView.onNewIntent(intent);
|
|
|
|
}
|
|
|
|
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
@Override
|
|
|
|
protected void onPause() {
|
|
|
|
super.onPause();
|
2017-06-07 20:15:36 +00:00
|
|
|
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
JitsiMeetView.onHostPause(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onResume() {
|
|
|
|
super.onResume();
|
2017-06-07 20:15:36 +00:00
|
|
|
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
JitsiMeetView.onHostResume(this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
### JitsiMeetActivity
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
This class encapsulates a high level API in the form of an Android `Activity`
|
|
|
|
which displays a single `JitsiMeetView`.
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-08-22 10:40:47 +00:00
|
|
|
#### getDefaultURL()
|
|
|
|
|
|
|
|
See JitsiMeetView.getDefaultURL.
|
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### getWelcomePageEnabled()
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
See JitsiMeetView.getWelcomePageEnabled.
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### loadURL(URL)
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
|
|
|
See JitsiMeetView.loadURL.
|
|
|
|
|
2017-08-22 10:40:47 +00:00
|
|
|
#### setDefaultURL(URL)
|
|
|
|
|
|
|
|
See JitsiMeetView.setDefaultURL.
|
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### setWelcomePageEnabled(boolean)
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
See JitsiMeetView.setWelcomePageEnabled.
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
|
|
|
### JitsiMeetView
|
|
|
|
|
|
|
|
The `JitsiMeetView` class is the core of Jitsi Meet SDK. It's designed to
|
2017-06-07 20:15:36 +00:00
|
|
|
display a Jitsi Meet conference (or a welcome page).
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-07-26 14:41:27 +00:00
|
|
|
#### dispose()
|
|
|
|
|
|
|
|
Releases all resources associated with this view. This method MUST be called
|
|
|
|
when the Activity holding this view is going to be destroyed, usually in the
|
|
|
|
`onDestroy()` method.
|
|
|
|
|
2017-08-22 10:40:47 +00:00
|
|
|
#### getDefaultURL()
|
|
|
|
|
2017-09-27 18:08:37 +00:00
|
|
|
Returns the default base URL used to join a conference when a partial URL (e.g.
|
|
|
|
a room name only) is specified to `loadURLString`/`loadURLObject`. If not set or
|
|
|
|
if set to `null`, the default built in JavaScript is used: https://meet.jit.si.
|
2017-08-22 10:40:47 +00:00
|
|
|
|
2017-06-07 15:50:30 +00:00
|
|
|
#### getListener()
|
|
|
|
|
2017-06-09 15:51:33 +00:00
|
|
|
Returns the `JitsiMeetViewListener` instance attached to the view.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### getWelcomePageEnabled()
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
Returns true if the Welcome page is enabled; otherwise, false. If false, a black
|
|
|
|
empty view will be rendered when not in a conference. Defaults to false.
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### loadURL(URL)
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-07-26 00:06:03 +00:00
|
|
|
Loads a specific URL which may identify a conference to join. If the specified
|
2017-07-26 19:27:29 +00:00
|
|
|
URL is null and the Welcome page is enabled, the Welcome page is displayed
|
|
|
|
instead.
|
2017-07-26 00:06:03 +00:00
|
|
|
|
|
|
|
#### loadURLString(String)
|
|
|
|
|
|
|
|
Loads a specific URL which may identify a conference to join. If the specified
|
2017-07-26 19:27:29 +00:00
|
|
|
URL is null and the Welcome page is enabled, the Welcome page is displayed
|
|
|
|
instead.
|
|
|
|
|
|
|
|
#### loadURLObject(Bundle)
|
|
|
|
|
|
|
|
Loads a specific URL which may identify a conference to join. The URL is
|
|
|
|
specified in the form of a Bundle of properties which (1) internally are
|
|
|
|
sufficient to construct a URL (string) while (2) abstracting the specifics of
|
|
|
|
constructing the URL away from API clients/consumers. If the specified URL is
|
|
|
|
null and the Welcome page is enabled, the Welcome page is displayed instead.
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
2017-07-28 12:35:19 +00:00
|
|
|
Example:
|
|
|
|
|
|
|
|
```java
|
2017-09-28 21:25:04 +00:00
|
|
|
Bundle config = new Bundle();
|
|
|
|
config.putBoolean("startWithAudioMuted", true);
|
|
|
|
config.putBoolean("startWithVideoMuted", false);
|
|
|
|
Bundle urlObject = new Bundle();
|
|
|
|
urlObject.putBundle("config", config);
|
|
|
|
urlObject.putString("url", "https://meet.jit.si/Test123");
|
|
|
|
view.loadURLObject(urlObject);
|
2017-07-28 12:35:19 +00:00
|
|
|
```
|
|
|
|
|
2017-08-22 10:40:47 +00:00
|
|
|
#### setDefaultURL(URL)
|
|
|
|
|
|
|
|
Sets the default URL. See `getDefaultURL` for more information.
|
|
|
|
|
|
|
|
NOTE: Must be called before `loadURL`/`loadURLString` for it to take effect.
|
|
|
|
|
2017-06-07 15:50:30 +00:00
|
|
|
#### setListener(listener)
|
|
|
|
|
2017-06-09 15:51:33 +00:00
|
|
|
Sets the given listener (class implementing the `JitsiMeetViewListener`
|
2017-06-07 15:50:30 +00:00
|
|
|
interface) on the view.
|
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
#### setWelcomePageEnabled(boolean)
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-06-09 19:09:23 +00:00
|
|
|
Sets whether the Welcome page is enabled. See `getWelcomePageEnabled` for more
|
|
|
|
information.
|
2017-06-09 10:30:59 +00:00
|
|
|
|
2017-07-26 00:06:03 +00:00
|
|
|
NOTE: Must be called before `loadURL`/`loadURLString` for it to take effect.
|
2017-06-09 10:30:59 +00:00
|
|
|
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
#### onBackPressed()
|
|
|
|
|
|
|
|
Helper method which should be called from the activity's `onBackPressed` method.
|
2017-06-07 20:15:36 +00:00
|
|
|
If this function returns `true`, it means the action was handled and thus no
|
|
|
|
extra processing is required; otherwise the app should call the parent's
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
`onBackPressed` method.
|
|
|
|
|
|
|
|
This is a static method.
|
|
|
|
|
|
|
|
#### onHostDestroy(activity)
|
|
|
|
|
|
|
|
Helper method which should be called from the activity's `onDestroy` method.
|
|
|
|
|
|
|
|
This is a static method.
|
|
|
|
|
|
|
|
#### onHostPause(activity)
|
|
|
|
|
|
|
|
Helper method which should be called from the activity's `onPause` method.
|
|
|
|
|
|
|
|
This is a static method.
|
|
|
|
|
|
|
|
#### onHostResume(activity)
|
|
|
|
|
|
|
|
Helper method which should be called from the activity's `onResume` method.
|
|
|
|
|
|
|
|
This is a static method.
|
|
|
|
|
|
|
|
#### onNewIntent(intent)
|
|
|
|
|
2017-06-07 20:15:36 +00:00
|
|
|
Helper method for integrating the *deep linking* functionality. If your app's
|
|
|
|
activity is launched in "singleTask" mode this method should be called from the
|
|
|
|
activity's `onNewIntent` method.
|
[RN] Add initial Jitsi Meet SDK for Android
Dames en heren, welcome to Jitsi Meet SDK for Android, the Jitsi Meet library
for Android.
The Jitsi Meet SDK encapsulates React Native and all the dependencies Jitsi
Meet has so other aopplications can integrate it easily.
Unlike iOS, creating "fat" libraries is not allways (if at all) possible on
Android, however, effort was put into making the integration as easy as
possible.
While React Native can be embedded in native applications, I don't think it was
designed to be embedded as part of an Android library, hidden away from the
application using it. This surfaced as a number of issues which had to be
addressed specifically due to our use-case:
- Activity lifecycle methods must be linked with the React Native engine, so the
library provides wrapper methods.
- Custom fonts have to be manually added as assets, since the provided gradle
script doesn't work properly in a library target.
- The RN packager has to be manually triggered since the gradle script will no
longer do it for us.
At this stage, the Jitsi Meet application is just a small single activity
application which uses the Jitsi Meet SDK to create a single activity which
represents the entire application. Events and external conference handling are
forthcoming.
PS: Yours truly would like to add that it was a lot more fun to work on the iOS
side of things.
2017-05-22 13:33:42 +00:00
|
|
|
|
|
|
|
This is a static method.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
2017-06-09 15:51:33 +00:00
|
|
|
#### JitsiMeetViewListener
|
2017-06-07 15:50:30 +00:00
|
|
|
|
2017-06-09 15:51:33 +00:00
|
|
|
`JitsiMeetViewListener` provides an interface apps can implement to listen to
|
|
|
|
the state of the Jitsi Meet conference displayed in a `JitsiMeetView`.
|
|
|
|
|
|
|
|
### JitsiMeetViewAdapter
|
|
|
|
|
|
|
|
A default implementation of the `JitsiMeetViewListener` interface. Apps may
|
|
|
|
extend the class instead of implementing the interface in order to minimize
|
|
|
|
boilerplate.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
|
|
|
##### onConferenceFailed
|
|
|
|
|
|
|
|
Called when a joining a conference was unsuccessful or when there was an error
|
|
|
|
while in a conference.
|
|
|
|
|
2017-09-06 14:54:22 +00:00
|
|
|
The `data` `Map` contains an "error" key describing the error and a "url" key
|
|
|
|
with the conference URL.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
|
|
|
#### onConferenceJoined
|
|
|
|
|
|
|
|
Called when a conference was joined.
|
|
|
|
|
2017-09-06 14:54:22 +00:00
|
|
|
The `data` `Map` contains a "url" key with the conference URL.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
|
|
|
#### onConferenceLeft
|
|
|
|
|
|
|
|
Called when a conference was left.
|
|
|
|
|
2017-09-06 14:54:22 +00:00
|
|
|
The `data` `Map` contains a "url" key with the conference URL.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
|
|
|
#### onConferenceWillJoin
|
|
|
|
|
|
|
|
Called before a conference is joined.
|
|
|
|
|
2017-09-06 14:54:22 +00:00
|
|
|
The `data` `Map` contains a "url" key with the conference URL.
|
2017-06-07 15:50:30 +00:00
|
|
|
|
|
|
|
#### onConferenceWillLeave
|
|
|
|
|
|
|
|
Called before a conference is left.
|
|
|
|
|
2017-09-06 14:54:22 +00:00
|
|
|
The `data` `Map` contains a "url" key with the conference URL.
|
2017-08-25 15:21:01 +00:00
|
|
|
|
|
|
|
#### onLoadConfigError
|
|
|
|
|
2017-09-06 23:26:33 +00:00
|
|
|
Called when loading the main configuration file from the Jitsi Meet deployment
|
|
|
|
fails.
|
2017-08-25 15:21:01 +00:00
|
|
|
|
2017-09-06 23:26:33 +00:00
|
|
|
The `data` `Map` contains an "error" key with the error and a "url" key with the
|
|
|
|
conference URL which necessitated the loading of the configuration file.
|