ym88659208ym87991671
Конфигурирование, логирование и доступ к интерфейсам SaluteJazz SDK в Android-приложении | Документация для разработчиков

Настройка SaluteJazz SDK

Обновлено 15 мая 2024

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

Для этого в методе onCreate(), который вызывается при запуске Application, вызовите функцию installJazzPublicSdk() и передайте в нее компоненты с интерфейсами SDK.

/app/src/main/java/com/sd/jazz_testapp/MainApplication.kt
class MainApplication : Application() {

override fun onCreate() {
super.onCreate()
//Инициализация SDK
installJazzPublicSdk(
//Компоненты с интерфейсами SDK
)
}
}

Компоненты с интерфейсами SDK

Ниже представлены компоненты SDK, которые можно передать в функцию installJazzPublicSdk().

Конфигурация функциональности

Список флагов, которые включают различные функции SaluteJazz.

Передавайте, если нужно включить дополнительные функции SDK.

coreConfigDependencies = object : CoreConfigDependencies {
override val featureFlagManager: FeatureFlagManager
get() = FeatureFlagManager.fromList(
object : VideoCallsFeatureFlags {
// Передайте здесь флаги, включающие нужные функции
}
)
},
Список доступных флагов
  • adminFunctionsEnabled — включает режим администратора, который проверяет запросы на выдачу и выдает разрешения;
  • isChatSearchEnabled — проверяет, включен ли поиск в чате;
  • isConferenceTransferByTouchEnabled — проверяет, включена ли передача конференции на устройство SberPortal или Sberbox Top через WiFi;
  • isConferenceTransferByNetworkEnabled — проверяет, включена ли передача конференции на устройство SberPortal или Sberbox Top касанием;
  • isConferenceTransferEnabled — проверяет, включена ли кнопка в списке Прочее, с помощью которой можно передать конференцию касанием;
  • isCreateConfByVoiceEnabled — проверяет, включена ли поддержка голосовой команды на создание встречи;
  • isDeeplinksEnabled — проверяет, включены ли диплинки;
  • isExtendedControlsEnabled — проверяет, включен ли вертикальные упраляющие элементы в разделе Еще;
  • isGetNameFromMessengerEnabled — проверяет, включена возможность получить имя через DefaultUserProvider;
  • isHistorySharingEnabled — проверяет, включена ли история пользователей, которые делились экраном;
  • isLicenceLimitationsEnabled — проверяет, включена ли проверка лизенции и связанных ограничений;
  • isLobbyEnabled — проверяет, включен ли зал ожидания;
  • isNewChatBottomSheetEnabled — проверяет, включена ли новая реализация чата;
  • isNewParticipantListEnabled — проверяет, включен ли новый список участников конференции;
  • isOverwrittenVideoCallsUiEnabled — проверяет, включен ли новый интерфейс активной конференции;
  • isReactNativeEnabled — проверяет, включен ли ReactNative (старый ФТ);
  • isRecordingNotificationEnabled — проверяет, включено ли уведомление о записи экрана;
  • isRoomCheckEnabled — проверяет, включена ли проверка наличия комнаты;
  • isShareRoomcodeWithDomainEnabled — проверяет, включена ли возможность поделиться идентификатором комнаты с суффиксом домена;
  • isScreenSharingEnabled — проверяет, включена ли возможность демонстрации экрана телефона в конференциях;
  • isScrollVideoInGridModeEnabled — проверяет, включена ли возможность пролистывания плиток участников в конференции;
  • isSpeechToTextEnabled — проверяет, включена ли транскрибация голосовых сообщений;
  • isTransferByTouchEnabled — проверяет, включена ли передача конференции на устройство через касание;
  • isVideoCallsHandupEnabled — проверяет, включено ли поднятие руки с устройства;
  • isVideoCallsWithoutReactNativeEnabled — проверяет, включен ли ReactNative (новый ФТ);
  • isVideoScalingEnabled — проверяет, включено ли управление отображением видео;
  • isWatermarkEnabled — проверяет, включен ли водяной знак при трансляции контента поверх видео.

Конфигурация SaluteJazz SDK

Параметры SaluteJazz SDK. Например, адрес хоста, к которому будут подключаться пользователи.

Указывать необязательно.

jazzPlatformDependencies = object : JazzPlatformDependencies by DefaultJazzSdkPlatformDependencies() {
override val testStandDomainUrlResolver: TestStandDomainUrlResolver
get() = object : TestStandDomainUrlResolver {
override fun resolve(stand: TestStand): String {
return "https://salutejazz.ru"
}
}
}

Логирование

Параметры логирования событий SaluteJazz SDK. Логирование событий работает только при отладке (LogMode.LOG_DEBUG_ONLY).

Если специального логирования не нужно, можно использовать CoreLoggingDependencies.empty().

coreLoggingDependencies = object : CoreLoggingDependencies {
override val logMode: LoggerFactory.LogMode = LoggerFactory.LogMode.LOG_DEBUG_ONLY
},

Запись событий аналитики

Во время своей работы SDK отправляет события аналитики, используя CoreAnalytics — механизм логирования событий аналитики. Переопределите компонент, чтобы хост приложения видел в своей системе аналитики то, как ведет себя SDK.

Если аналитика не используется, укажите CoreAnalyticsDependencies.empty() в качестве значения coreAnalytics.

По умолчанию события не записываются.

coreAnalyticsDependencies = object : CoreAnalyticsDependencies {
override val coreAnalytics: CoreAnalytics
get() = object : CoreAnalytics {
override fun logError(error: Throwable) {}
override fun logEvent(name: String, events: List<Analytics.EventParam>) {}
override fun logMessage(message: String) {}
override fun setUp(userId: String, params: Map<String, String>) {}
}
}

Поддержка фабрики JazzWorkerFactory

Если вы переопределяете объект WorkerFactory, то вам нужно поддержать фабрику JazzIntegrationClientApi.jazzWorkerFactory.

Для этого передайте ее в конфигурацию WorkManager:

   class MyApplication() : Application(), Configuration.Provider {

override fun getWorkManagerConfiguration(): Configuration {
val factory = DelegatingWorkerFactory().apply {
addFactory(appWorkerFactory) // Переопределенная фабрика приложения
addFactory(getJazzIntegrationClientApi().jazzWorkerFactory) // Фабрика JazzWorkerFactory
}
return Configuration.Builder()
.setWorkerFactory(factory)
// Здесь могут быть другие параметры
.build()
}
}
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.