Настройка 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— проверяет, включен ли поиск в чате;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()
}
}