Here are the release notes for the Android Meeting SDK v5.9.0.3588.

Notes

1. New dependencies have been added:

androidx.window:window:1.0.0-alpha06
androidx.window:window-java:1.0.0-beta03
org.jetbrains.kotlin:kotlin-stdlib:1.5.21
androidx.core:core-ktx:1.6.0
androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0
androidx.lifecycle:lifecycle-runtime-ktx:2.4.0
com.airbnb.android:lottie:4.0.0

2. The following dependencies have been updated:

androidx.security:security-crypto:1.1.0-alpha02 to androidx.security:security-crypto:1.1.0-alpha03
com.google.android.exoplayer:exoplayer-core:2.12.3 to com.google.android.exoplayer:exoplayer-core:2.13.3
com.google.android.exoplayer:exoplayer-ui:2.12.3 to com.google.android.exoplayer:exoplayer-ui:2.13.3
androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 to androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
androidx.appcompat:appcompat:1.0.0 to androidx.appcompat:appcompat:1.3.1
androidx.constraintlayout:constraintlayout:2.0.4 to androidx.constraintlayout:constraintlayout:2.1.0
com.google.android.material:material:1.2.0-alpha03 to com.google.android.material:material:1.4.0
androidx.recyclerview:recyclerview:1.0.0 to androidx.recyclerview:recyclerview:1.2.1

3. You must upgrade the R8 tool in your project-level build.gradle to the following version:

dependencies {
        ...
classpath 'com.android.tools:r8:3.0.73'
    }

4. To support usesCleartextTraffic false, you must configure the network_security_config.xml, the default config is as follows:

(Note: The usesClearTextTraffic attribute defaults to false on APIs 28 and higher. If your app targets 28+, you must include this config or set it to true in your manifest.)

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">ocsp.digicert.com</domain>
        <domain includeSubdomains="true">crl3.digicert.com</domain>
        <domain includeSubdomains="true">crl4.digicert.com</domain>
        <domain includeSubdomains="true">crl.godaddy.com</domain>
        <domain includeSubdomains="true">certificates.godaddy.com</domain>
        <domain includeSubdomains="true">crl.starfieldtech.com</domain>
        <domain includeSubdomains="true">certificates.starfieldtech.com</domain>
        <domain includeSubdomains="true">ocsp.godaddy.com</domain>
        <domain includeSubdomains="true">ocsp.starfieldtech.com</domain>
    </domain-config>
</network-security-config>

Added

  • New interfaces and callbacks to support live transcription.

  • New interfaces in InMeetingLiveTranscriptionController:

- void addListener(InMeetingLiveTranscriptionListener listener);
- void removeListener(InMeetingLiveTranscriptionListener listener);
- public boolean isMeetingSupportCC();
- public boolean canBeAssignedToSendCC(long userid);
- public MobileRTCSDKError assignCCPrivilege(long userid);
- public MobileRTCSDKError withdrawCCPrivilege(long userid);
- public boolean canAssignOthersToSendCC();
- public boolean isLiveTranscriptionFeatureEnabled();
- public MobileRTCLiveTranscriptionStatus getLiveTranscriptionStatus();
- public boolean canStartLiveTranscription();
- public MobileRTCSDKError startLiveTranscription();
- public MobileRTCSDKError stopLiveTranscription();
- public MobileRTCSDKError enableRequestLiveTranscription(boolean enable);
- public boolean isRequestToStartLiveTranscriptionEnabled();
- public MobileRTCSDKError requestToStartLiveTranscription(boolean requestAnonymous);
  • New callbacks in InMeetingLiveTranscriptionController.InMeetingLiveTranscriptionListener:

- void onLiveTranscriptionStatus(MobileRTCLiveTranscriptionStatus status);
- void onLiveTranscriptionMsgReceived(String msg, MobileRTCLiveTranscriptionOperationType type);
- void onRequestForLiveTranscriptReceived(long requesterUserId, boolean bAnonymous);
- void onRequestLiveTranscriptionStatusChange(boolean enabled);
  • New status in InMeetingLiveTranscriptionController.MobileRTCLiveTranscriptionStatus:

- MobileRTC_LiveTranscription_Status_Stop
- MobileRTC_LiveTranscription_Status_Start
- MobileRTC_LiveTranscription_Status_Connecting
  • New status in InMeetingLiveTranscriptionController.MobileRTCLiveTranscriptionOperationType

- MobileRTC_LiveTranscription_OperationType_None
- MobileRTC_LiveTranscription_OperationType_Add
- MobileRTC_LiveTranscription_OperationType_Update
- MobileRTC_LiveTranscription_OperationType_Delete
  • New interface in InMeetingService:

    • - InMeetingLiveTranscriptionController getInMeetingLiveTranscriptionController();

  • New interfaces and callbacks to support customizing the video view order in the gallery view. Only the host can order the gallery view.

  • New interfaces in ISetVideoOrderHelper:

- boolean isSupportFollowHostVideoOrder();
- boolean isFollowHostVideoOrderOn();
- List<Long> getVideoOrderList();
  • New callbacks in InMeetingServiceListener.java:

- void onVideoOrderUpdated(List<Long> orderList);
- void onFollowHostVideoOrderChanged(boolean bFollow);
  • New interface in InMeetingVideoController.java:

    • - ISetVideoOrderHelper getSetVideoOrderHelper();

  • New interfaces and callbacks to support Breakout Room (BO) Options

  • New interfaces in BOOption:

- public boolean isParticipantCanChooseBO;
- public boolean isParticipantCanReturnToMainSessionAtAnyTime = true;
- public boolean isAutoMoveAllAssignedParticipantsEnabled;
- public boolean isBOTimerEnabled;
- public boolean isTimerAutoStopBOEnabled;
- public int timerDuration;
  • New callback in IBOAdminEvent.java:

    • void onBOEndTimerUpdated(int remaining, boolean isTimesUpNotice);

  • New interface in IBOAttendee.java:

    • - boolean isCanReturnMainSession();

  • New video tiles added in default UI when viewing the screen sharing content.

Changed and Fixed

  • Fixed an issue where setLargeShareVideoSceneEnabled wasn’t working properly.

  • Updated the description in the comment of the interface setKubiDeviceEnabled(boolean enabled);

  • Updated the description in comment of the interface isKubiDeviceEnabled();

  • Updated the description in the comment of the interface enable720p(boolean enable); 

  • Fixed an issue where the interface enable720(boolean enable) and the interface is720PEnabled() was not working properly. Note: 720p is only supported in the device with at least 4 gold cores.

  • Fixed an issue where the recording consent dialog was displayed incorrectly.

  • Fixed an issue where the webinar attendee could not view the shared content.

  • Fixed an issue where passing an incorrect userID to BOData.getBOUserStatus caused a crash.

Removed

  • Removed the email login interfaces:

    • Interfaces in ZoomSDK:

      • - public int loginWithZoom(String email, String password)

      • - public boolean isEmailLoginEnable()

  • Removed the interface getPreferredCameraAntibanding in MeetingSettingHelper.java