Native Jitsi support has been added to Element Android by the PR #1914. The description of the PR contains some documentation about the behaviour in each possible room configuration.
Also, ensure to have a look on the documentation from Element Web
The official documentation about how to integrate the Jitsi SDK in an Android app is available here: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk.
The Jitsi SDK is built by ourselves with the flag LIBRE_BUILD, to be able to be integrated on the F-Droid version of Element Android.
The generated maven repository is then host in the project https://github.com/element-hq/jitsi_libre_maven
Update the script ./tools/jitsi/build_jitsi_libs.sh
with the tag of the project https://github.com/jitsi/jitsi-meet
.
Latest tag can be found from this page: https://github.com/jitsi/jitsi-meet-release-notes/blob/master/CHANGELOG-MOBILE-SDKS.md
Currently we are building the version with the tag mobile-sdk-10.2.0
.
At the root of the Element Android, run the following script:
./tools/jitsi/build_jitsi_libs.sh
It will build the Jitsi Meet Android library and put every generated files in the folder /tmp/jitsi
- Update the file
./build.gradle
to use the previously created local Maven repository. Currently we have this line:
url "https://github.com/element-hq/jitsi_libre_maven/raw/main/mobile-sdk-10.2.0"
You can uncomment and update the line starting with // url "file://...
and comment the line starting with url
, to test the library using the locally generated Maven repository.
- Update the dependency of the Jitsi Meet library in the file
./vector/build.gradle
. Currently we have this line:
api('org.jitsi.react:jitsi-meet-sdk:10.2.0')
- Perform a gradle sync and build the project
- Perform test
In order to validate that the upgrade of the Jitsi and WebRTC dependency does not break anything, the following sanity tests have to be performed, using two devices:
- Make 1-1 audio call (so using WebRTC)
- Make 1-1 video call (so using WebRTC)
- Create and join a conference call with audio only (so using Jitsi library). Leave the conference. Join it again.
- Create and join a conference call with audio and video (so using Jitsi library) Leave the conference. Join it again.
If all the tests are passed, you can export the generated Jitsi library to our Maven repository.
- Clone the project https://github.com/element-hq/jitsi_libre_maven.
- Create a new folder with the version name.
- Copy every generated files form
/tmp/jitsi
to the folder you have just created. - Commit and push the change on https://github.com/element-hq/jitsi_libre_maven.
- Update the file
./build.gradle
to use the previously created Maven repository. Currently we have this line:
url "https://github.com/element-hq/jitsi_libre_maven/raw/main/mobile-sdk-10.2.0"
-
Build the project and perform the sanity tests again.
-
Create a PR for project Element Android and add a changelog file
<PR_NUMBER>.misc
to notify about the library upgrade.