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

@PublicApi
interface AddonSessionHandler


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

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

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

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

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

Общественные функции

Unit

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

Unit

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

Unit

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

Общественные функции

onCollaborationStartingStateUpdate

fun onCollaborationStartingStateUpdate(
    collaborationStartingState: CollaborationStartingState!
): Unit

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

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

onParticipantPrivilegeChanged

fun onParticipantPrivilegeChanged(
    privileges: (Mutable)List<AddonSessionHandler.Privilege!>!,
    disabledPrivileges: (Mutable)List<AddonSessionHandler.Privilege!>!
): Unit

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

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

onSessionEnded

fun onSessionEnded(endReason: AddonSessionHandler.EndReason!): Unit

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

  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;
}
Параметры
endReason: AddonSessionHandler.EndReason !

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