Поделиться через


Настройка панели кнопки

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

Эта функция обеспечивает высокую степень настройки и гарантирует, что пользовательский интерфейс остается согласованным и согласованным с общей структурой приложения.

Необходимые компоненты

Настройка функции

Удалить кнопки

CallCompositeCallScreenControlBarOptionsпозволяет гибко настраивать панель кнопок, удаляя определенные кнопки, такие как камера, микрофон и звуковые элементы управления. Этот API позволяет настроить пользовательский интерфейс в соответствии с конкретными требованиями приложения и дизайном пользовательского интерфейса. Просто установите visible или enabled false установите переключатель для скрытия CallCompositeButtonViewData или отключения кнопки.

Снимок экрана: кнопки удаления кнопок в библиотеке пользовательского интерфейса.

val controlBarOptions = CallCompositeCallScreenControlBarOptions()

val cameraButton = CallCompositeButtonViewData()
    .setVisible(false)

controlBarOptions.setCameraButton(cameraButton)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

Кнопка может быть обновлена после запуска составного вызова.

cameraButton.setVisible(true)

Добавление настраиваемых действий

Call composite использует значки пользовательского интерфейса Fluent. Вы можете скачать значки непосредственно из репозитория GitHub пользовательского интерфейса Fluent и включить их в проект по мере необходимости. Этот подход гарантирует согласованность визуальных элементов во всех элементах пользовательского интерфейса, повышая общий интерфейс пользователя.

Снимок экрана: интерфейс при добавлении новой кнопки библиотеки пользовательского интерфейса.

val controlBarOptions = CallCompositeCallScreenControlBarOptions()

controlBarOptions.setCustomButtons(
    listOf(
        CallCompositeCustomButtonViewData(
            "customButtonId",
            R.drawable.my_button_image,
            "My button",
            fun(it: CallCompositeCustomButtonClickEvent) {
                // Process my button onClick
            },
        )
    )
)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

Как и Call composite предоставленные кнопки, пользовательские кнопки обновляются после запуска.

customButton.setVisible(true)

Удаление или отключение кнопок

CallScreenControlBarOptionsпозволяет гибко настраивать панель кнопок, удаляя определенные кнопки, такие как камера, микрофон и звуковые элементы управления. Этот API позволяет настроить пользовательский интерфейс в соответствии с конкретными требованиями приложения и дизайном пользовательского интерфейса. Просто установите visible или enabled false установите переключатель для скрытия ButtonViewData или отключения кнопки.

Снимок экрана: кнопки удаления кнопок в библиотеке пользовательского интерфейса.

let cameraButton = ButtonViewData(visible: false)

let callScreenControlBarOptions = CallScreenControlBarOptions(
    cameraButton: cameraButton
)

let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

Кнопка может быть обновлена после запуска составного вызова.

cameraButton.visible = true

Добавление настраиваемых действий

Call composite использует значки пользовательского интерфейса Fluent. Вы можете скачать значки непосредственно из репозитория GitHub пользовательского интерфейса Fluent и включить их в проект по мере необходимости. Этот подход гарантирует согласованность визуальных элементов во всех элементах пользовательского интерфейса, повышая общий интерфейс пользователя.

Снимок экрана: интерфейс при добавлении новой кнопки библиотеки пользовательского интерфейса.

let customButton = CustomButtonViewData(image: UIImage(named: "...")!,
                                       title: "My button") {_ in
    // Process my button onClick
}

let callScreenControlBarOptions = CallScreenControlBarOptions(
    customButtons: [customButton]
)

let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

Как и Call composite предоставленные кнопки, пользовательские кнопки обновляются после запуска.

customButton.enabled = true

Следующие шаги