jiti-meet/android
Saúl Ibarra Corretgé ddea60efe9 [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-06-09 00:03:23 -05:00
..
app [RN] Add initial Jitsi Meet SDK for Android 2017-06-09 00:03:23 -05:00
gradle/wrapper Android plugin for Gradle 2.2.3 2017-02-23 13:14:19 -06:00
keystores Merge jitsi-meet-react's mobile support 2016-10-12 10:31:52 -05:00
sdk [RN] Add initial Jitsi Meet SDK for Android 2017-06-09 00:03:23 -05:00
README.md [RN] Add initial Jitsi Meet SDK for Android 2017-06-09 00:03:23 -05:00
build.gradle [RN] Add initial Jitsi Meet SDK for Android 2017-06-09 00:03:23 -05:00
gradle.properties Merge branch 'android-version' 2016-12-06 14:26:50 -06:00
gradlew Merge jitsi-meet-react's mobile support 2016-10-12 10:31:52 -05:00
gradlew.bat Merge jitsi-meet-react's mobile support 2016-10-12 10:31:52 -05:00
settings.gradle [RN] Add initial Jitsi Meet SDK for Android 2017-06-09 00:03:23 -05:00

README.md

Jitsi Meet for Android

This directory contains the source code for Jitsi Meet for Android (the application) and the Jitsi Meet SDK for Android.

Jitsi Meet SDK

Jitsi Meet SDK is an Android library which embodies the Jitsi Meet experience, gift-wrapped so other applications can use it. Example use:

package org.jitsi.example;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import org.jitsi.meet.sdk.*;


public class CustomActivity extends AppCompatActivity {
    private JitsiMeetView jitsiMeetView;

    @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);

        jitsiMeetView = new JitsiMeetView(this);
        jitsiMeetView.loadURL(null);

        setContentView(jitsiMeetView);
    }

    @Override
    public void onNewIntent(Intent intent) {
        JitsiMeetView.onNewIntent(intent);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        JitsiMeetView.onHostDestroy(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        JitsiMeetView.onHostPause(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        JitsiMeetView.onHostResume(this);
    }

}

Alternatively, you can use the JitsiMeetBaseActivity class, which already has all activity lifecycle methods hooked up:

package org.jitsi.example;

import org.jitsi.meet.sdk.*;


public class MainActivity extends JitsiMeetBaseActivity {
}

JitsiMeetBaseActivity

This class encapsulates a high level API in the form of an Android activity which displays a single JitsiMeetView views.

loadURL(url)

See JitsiMeetView.loadURL.

JitsiMeetView

The JitsiMeetView class is the core of Jitsi Meet SDK. It's designed to display a Jitsi Meet conference view (or a welcome page).

loadURL(url)

Loads the given URL and joins the conference which is being pointed to. If null, it will load the welcome page.

onBackPressed()

Helper method which should be called from the activity's onBackPressed method. If this function returns true it means the action was handled and thus no extra processing is required, otherwise the application should call the parent's 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)

Helper method for integrating the deep linking functionality. If your application's activity is launched in "singleTask" mode this method should be called from the activity's onNewIntent method.

This is a static method.