Аддонсессионхандлер

@PublicApi
public interface AddonSessionHandler



Обратные вызовы, предоставляемые дополнительным приложением для сеанса.

Краткое содержание

Вложенные типы

Описывает причину, по которой был запущен обратный вызов onSessionEnded .

Описывает привилегию, которая предоставляется или отзывается у участника дополнительного сеанса.

Публичные методы

default void

Получает последнее состояние начального состояния совместной работы дополнительного сеанса.

default void

Получает последнее состояние привилегий, определяющее, как пользователю разрешено участвовать в сеансе надстройки.

abstract void

Отвечает на завершение сеанса дополнения.

Публичные методы

onCollaborationStartingStateUpdate

default void onCollaborationStartingStateUpdate(
    CollaborationStartingState collaborationStartingState
)

Получает последнее состояние начального состояния совместной работы дополнительного сеанса.

Чтобы надстройка поддерживала начальное состояние совместной работы, требуется конкретная реализация.

onParticipantPrivilegeChanged

default void onParticipantPrivilegeChanged(
    List<AddonSessionHandler.Privilege> privileges,
    List<AddonSessionHandler.Privilege> disabledPrivileges
)

Получает последнее состояние привилегий, определяющее, как пользователю разрешено участвовать в сеансе надстройки.

Для того чтобы надстройка поддерживала элементы управления хостом, требуется конкретная реализация.

onSessionEnded

abstract void onSessionEnded(AddonSessionHandler.EndReason endReason)

Отвечает на завершение сеанса дополнения.

  1. Этот обработчик не будет получать никаких дополнительных вызовов, если только новый AddonSession не будет создан с тем же экземпляром обработчика.
  2. SDK очистит себя. Никакого дополнительного вызова endSession не требуется.

Пример реализации:

if (EndReason.SESSION_ENDED_UNEXPECTEDLY.equals(endReason)) {
  log("Something happened unexpectedly");
  // Display UI to user in case they want to reconnect.
  return;
}

if (EndReason.MEETING_ENDED_BY_USER.equals(endReason)) {
  // The meeting is disconnected because the user left the meeting. Perform some
  // cleanup, then exit.
  this.onMeetingDisconnected();
  return;
}

if (EndReason.SESSION_ENDED_BY_USER.equals(endReason)) {
  // Disconnected because the user left the session from the Meet application. However, the
  // conference is still active in Meet. Perform some cleanup, then listen for a possible
  // rejoin event.
  this.onSessionDisconnected();
  return;
}
Параметры
AddonSessionHandler.EndReason endReason

причина окончания сессии