Настройка SaluteJazz SDK
Чтобы настроить SDK, передайте ряд зависимостей, которые SaluteJazz SDK будет использовать во время своей работы.
Для этого в методе onCreate()
, который вызывается при запуске Application, вызовите функцию installJazzPublicSdk()
и передайте в нее компоненты с интерфейсами SDK.
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()
}
}