Перейти к основному содержимому
Версия: 5.21.0

Компоненты и потоки (ChatComponents, ChatFlows)

О чём этот справочник

Ниже — наиболее часто используемые поля ChatComponents и ChatFlows, сгруппированные по визуальным элементам чата со скриншотами. Полный список публичных классов, свойств и enum'ов — в Dokka-документации.

Конкретные потоки (Search, Gallery, Files и др.) и базовая концепция уровней кастомизации — на отдельных страницах: Потоки (Flows), Введение в дизайн-систему. Часть параметров ChatConfig в 5.x управляется серверной конфигурацией — см. Известные ограничения.

Карта стилей по флоу

Краткий обзор корневых полей, через которые настраивается внешний вид чата. Подробное соответствие UI-элементов и полей — в разделе Соответствие UI и полей темы.

Корневой путьЧто стилизуетКласс стиля
chatFlow.navigationBarТулбар чата: заголовок, подзаголовок, иконки, цвет статус-бараNavigationBarStyle
chatFlow.inputViewПоле ввода и обрамляющие кнопки (attach, voice, send)InputViewStyle
chatFlow.incomeMessages / outcomeMessages / errorMessagesСтиль входящих, исходящих и ошибочных сообщенийMessagesConfig
chatFlow.systemMessagesСистемные сообщения (вход/выход оператора, запросы)SystemMessagesConfig
chatFlow.systemMessages.ratingStyleТексты приглашения и благодарности за рейтинг, отрисовка звёзд (5-звёздочная оценка)RatingStyle
chatFlow.welcomeScreenStyleЭкран-приветствие при пустой историиWelcomeScreenStyle
chatFlow.quoteViewЦитата в поле ввода и внутри сообщенийQuoteViewStyle
chatFlow.surveyStyleВид иконок в опросах: звёзды (optionsSurvey*) и пальцы лайк/дизлайк (binarySurvey*)SurveyStyle
chatFlow.buttonSurveyButton / buttonSurveyQuestionОпрос с кнопкамиTextMessageStyle
chatFlow.messagePopupMenuStyleКонтекстное меню при долгом нажатии на сообщениеMessagePopupMenuStyle
chatFlow.permissionDescriptionPopupStyleОкно описания запрашиваемых разрешенийPermissionDescriptionPopupStyle
chatFlow.smallPushes / chatFlow.bigPushesPush-уведомления чатаPushesChatStyle
chatFlow.scrollDownButton / chatFlow.scrollUpButtonКнопки прокрутки ленты сообщенийImagesChatStyle
chatFlow.chipЧип-плашки (даты, быстрые ответы)TextMessageStyle
chatFlow.loaderПрогресс-бар при старте чатаLoaderChatStyle
chatFlow.retryChatInitButton / errorScreenMessage / errorScreenImageЭкран ошибки инициализации чатаTextButtonChatStyle, TextMessageStyle, ImagesChatStyle
chatComponents.balloonComponentСтиль всплывающих balloon-сообщений (Snackbar)BalloonsChatStyle, BalloonComponent
chatComponents.pushesComponentБазовая стилизация push-уведомлений (цвет, иконка, заголовок)PushesComponent
searchFlow.searchBar / searchBar.searchResultsStyleПоиск по сообщениям и список результатовSearchChatComponent, SearchResultsStyle
imageFlow.imagePlaceholderResIdЗаглушка для недоступного изображенияImageFlow

Quickstart

Минимальный пример кастомизации — задать брендовые цвета и собрать тему:

val brandColors = ChatColors(
toolbar = R.color.your_brand_main,
incomingBubble = R.color.your_incoming_bubble,
outgoingBubble = R.color.your_outgoing_bubble,
)

val brandTheme = ChatTheme(
ChatFlows(
ChatComponents(
context = applicationContext,
colors = brandColors,
)
)
)

Готовые сценарии — в разделе Частые сценарии кастомизации. Полное соответствие UI-элементов и полей темы — в разделе ниже.

Соответствие UI и полей темы

Скриншоты ниже сопоставляют визуальные элементы чата с полями ChatComponents и ChatFlows.

Основные элементы чата

Основные элементы чата

ЭлементПуть в темахКласс стиля / компонента
1.1Заголовок в тулбареchatFlow.navigationBar.toolbarHeaderTextNavigationBarStyle
1.2Подзаголовок в тулбареchatFlow.navigationBar.toolbarSubtitleTextNavigationBarStyle
1.3Заголовок с форматированием (Spannable)chatFlow.navigationBar.toolbarSpannableHeaderTextNavigationBarStyle
1.4Иконка поиска в тулбареsearchFlow.searchBar.searchIconSearchChatComponent
1.5Фоновый цвет панели навигацииchatFlow.navigationBar.backgroundColorNavigationBarStyle
1.6Цвет статус-бараchatFlow.navigationBar.statusBarColorNavigationBarStyle
1.7Тень под тулбаромchatFlow.navigationBar.visibleShadow (Boolean)NavigationBarStyle
1.8Центрирование текста в тулбареchatFlow.navigationBar.centerToolbarText (Boolean)NavigationBarStyle
1.9Активность кнопки «Назад»chatFlow.navigationBar.closeButtonEnabled (Boolean)NavigationBarStyle
1.10Видимость подзаголовкаchatFlow.navigationBar.chatSubtitleEnabled (Boolean)NavigationBarStyle
1.11Стиль кнопки «Назад»chatFlow.navigationBar.backButtonNavigationBarStyle
1.12Стиль кнопки поискаchatFlow.navigationBar.searchButtonNavigationBarStyle
2.1Изображение в сообщенииchatFlow.incomeMessages.image / outcomeMessages.imageImageMessageStyle, ImageComponent
2.2Баббл чата (общий стиль)chatFlow.incomeMessages.chatBubble / outcomeMessages.chatBubbleBubblesChatStyle, BubbleComponent
2.3Иконки статусов сообщенийchatFlow.outcomeMessages.statusIconsMessageStatusesStyle, MessageStatusesComponent
3Время в сообщении с изображениемchatFlow.outcomeMessages.imagesTimeTextMessagesConfig, TextComponent
4Стиль системных сообщенийchatFlow.systemMessages.systemMessageTextSystemMessagesConfig, TextComponent
5Стиль исходящих сообщений (контейнер)chatFlow.outcomeMessagesMessagesConfig
6Аватар оператораimageFlowImageFlow, ImageComponent
7Стиль входящих сообщений (контейнер)chatFlow.incomeMessagesMessagesConfig
8Кнопка прикрепления вложенияchatFlow.inputView.attachButtonInputViewStyle, IconButtonComponent
9Поле ввода сообщенияchatFlow.inputView.textInputInputViewStyle, InputTextComponent
10.1Кнопка записи голосового сообщенияchatFlow.inputView.voiceButtonInputViewStyle, IconButtonComponent
10.2Кнопка отправки сообщенияchatFlow.inputView.sendButtonInputViewStyle, IconButtonComponent

Поведение при выделении сообщения

Поведение при выделении сообщения

ЭлементПуть в темахКласс стиля
1Кнопка «Копировать»chatFlow.navigationBar.copyButtonNavigationBarStyle
2Кнопка «Ответить с цитированием»chatFlow.navigationBar.replyButtonNavigationBarStyle
3Инвертированная кнопка «Назад»chatFlow.navigationBar.invertedBackButtonNavigationBarStyle
4Цвет фона под выделенным сообщениемchatFlow.highlightingColor (@ColorRes Int)ChatFlow

Поле поиска сообщений

Поле поиска сообщений

ЭлементПуть в темахКласс стиля
1Кнопка поиска в тулбареchatFlow.navigationBar.searchButtonNavigationBarStyle
2Цвет лоадера при поискеsearchFlow.loaderStyleLoaderChatStyle
3Стиль поля ввода поискаsearchFlow.searchBar.textInputSearchChatComponent

Список найденных сообщений

Список найденных сообщений

ЭлементПуть в темахКласс стиля
1Кнопка очистки поля вводаsearchFlow.clearInputBtn (см. также SearchChatComponent.clearSearch)ImagesChatStyle
2.1Цвет текста с автором сообщенияsearchFlow.searchBar.searchResultsStyle.searchResultsItemNameTextColorSearchResultsStyle
2.2Цвет текста сообщенияsearchFlow.searchBar.searchResultsStyle.searchResultsItemMessageTextColorSearchResultsStyle
2.3Цвет текста датыsearchFlow.searchBar.searchResultsStyle.searchResultsItemDateTextColorSearchResultsStyle
2.4Цвет разделителя между результатамиsearchFlow.searchBar.searchResultsStyle.searchResultsDividerColorSearchResultsStyle
2.5Иконка «стрелка вправо»searchFlow.searchBar.searchResultsStyle.searchResultsItemRightArrowDrawableSearchResultsStyle
2.6Цвет иконки «стрелка вправо»searchFlow.searchBar.searchResultsStyle.searchResultsItemRightArrowTintColorSearchResultsStyle
2.7Изображение при отсутствии результатовsearchFlow.searchBar.searchResultsStyle.searchResultsNoItemsImageDrawableSearchResultsStyle
2.8Цвет текста при отсутствии результатовsearchFlow.searchBar.searchResultsStyle.searchResultsNoItemsTextColorSearchResultsStyle
2.9Цвет фона в результатах поискаsearchFlow.searchBar.searchResultsStyle.backgroundColorSearchResultsStyle

Всплывающее сообщение (Snackbar)

Всплывающее сообщение

ЭлементПуть в темахКласс стиля
Стиль всплывающих сообщенийchatComponents.balloonComponent или прямое присваивание BalloonsChatStyleBalloonsChatStyle, BalloonComponent
Когда применяется

Стиль работает только если система может показать Snackbar, привязавшись ко вью.

Push-уведомления

Компактный пуш Развернутый пуш

ЭлементПуть в темахКласс стиля
Стиль компактного push-уведомленияchatFlow.smallPushesPushesChatStyle
Стиль расширенного push-уведомленияchatFlow.bigPushesPushesChatStyle
Цвет фона pushchatComponents.pushesComponent.pushBackgroundColor (@ColorRes)PushesComponent
Цвет текста pushchatComponents.pushesComponent.textColor (@ColorRes)PushesComponent
Иконка pushchatComponents.pushesComponent.icon (@DrawableRes)PushesComponent
Заголовок push по умолчаниюchatComponents.pushesComponent.pushesDefaultTitle (@StringRes)PushesComponent
Быстрый ответ из push (inline reply)

Поле ввода и кнопка отправки в системном уведомлении предоставляются Android (RemoteInput). SDK не предоставляет публичных полей для отдельной стилизации этого экрана: цвет фона, иконка и текст наследуются из PushesComponent.

Запрос на завершение диалога

Запрос на завершение диалога

ЭлементПуть в темахКласс стиля
1Текст запросаchatFlow.systemMessages.requestToResolveSystemMessagesConfig, TextComponent
2Кнопка положительного ответаchatFlow.systemMessages.approveRequestSystemMessagesConfig, TextComponent
3Кнопка отрицательного ответаchatFlow.systemMessages.denyRequestSystemMessagesConfig, TextComponent

Отзыв о работе оператора (звёзды)

Отзыв о работе оператора

Тексты и счётчик звёзд — через chatFlow.systemMessages.ratingStyle (RatingStyle). Иконки звёзд (пустая / заполненная) — через chatFlow.surveyStyle.optionsSurvey* (SurveyStyle).

ЭлементПуть в темахКласс стиля
1Текст приглашения оценитьchatFlow.systemMessages.ratingStyle.askForRateTextRatingStyle, TextComponent
2Текст благодарности за оценкуchatFlow.systemMessages.ratingStyle.thanksForRateTextRatingStyle, TextComponent
3Заголовок над предложением оценитьchatFlow.systemMessages.ratingStyle.ratingHeaderTextRatingStyle, TextComponent
4Текст «N» (число поставленных звёзд)chatFlow.systemMessages.ratingStyle.rateStarsCountRatingStyle, TextComponent
5Текст «из»chatFlow.systemMessages.ratingStyle.rateFromRatingStyle, TextComponent
6Текст «5» (максимум звёзд)chatFlow.systemMessages.ratingStyle.rateTotalStarsCountRatingStyle, TextComponent
7Стиль изображения звезды (фон, размер)chatFlow.systemMessages.ratingStyle.rateStarImageStyleRatingStyle, ImagesChatStyle
8Вид пустой звезды (иконка)chatFlow.surveyStyle.optionsSurveyUnselectedSurveyStyle, ImagesChatStyle
9Вид заполненной звезды (иконка)chatFlow.surveyStyle.optionsSurveySelectedSurveyStyle, ImagesChatStyle

Опрос при завершении диалога (пальцы)

Опрос при завершении диалога

Бинарный опрос «лайк / дизлайк» стилизуется через chatFlow.surveyStyle (поля binarySurvey*). Тексты приглашения и благодарности — общие со звёздочным рейтингом и задаются через chatFlow.systemMessages.ratingStyle.

ЭлементПуть в темахКласс стиля
1Лайк (палец вверх), невыбранное состояниеchatFlow.surveyStyle.binarySurveyLikeUnselectedSurveyStyle, ImagesChatStyle
2Лайк (палец вверх), выбранное состояниеchatFlow.surveyStyle.binarySurveyLikeSelectedSurveyStyle, ImagesChatStyle
3Дизлайк (палец вниз), невыбранное состояниеchatFlow.surveyStyle.binarySurveyDislikeUnselectedSurveyStyle, ImagesChatStyle
4Дизлайк (палец вниз), выбранное состояниеchatFlow.surveyStyle.binarySurveyDislikeSelectedSurveyStyle, ImagesChatStyle
5Цвет иконок после завершения опросаchatFlow.surveyStyle.surveyFinalColorFilterResId (@ColorRes)SurveyStyle
6Тип поведения опроса (MESSAGE / SYSTEM)chatFlow.surveyStyle.typeSurveyMessageType
7Тексты приглашения и благодарностиchatFlow.systemMessages.ratingStyle.askForRateText / thanksForRateTextRatingStyle, TextComponent

Опрос с кнопками

Опрос с кнопками

ЭлементПуть в темахКласс стиля
1Стиль кнопки опросаchatFlow.buttonSurveyButtonTextMessageStyle, IconButtonChatStyle
2Стиль текста вопросаchatFlow.buttonSurveyQuestionTextMessageStyle, TextComponent

Быстрые ответы в чате (chip-плашки)

Быстрые ответы в чате

ЭлементПуть в темахКласс стиля
Стиль текста кнопки быстрого ответаchatFlow.chipTextMessageStyle, TextComponent
Цвет текста в чипе быстрых ответовchatColors.quickRepliesTextChatColors
Фоновый тинт чипаchatColors.quickReplyButtonBackgroundTintChatColors
Фоновое изображение чипаchatImages.quickReplyButtonBackgroundChatImages

Предпросмотр отправляемого файла

Предпросмотр отправляемого файла

ЭлементПуть в темахКласс стиля
1Заголовок цитатыchatFlow.quoteView.quoteHeaderChatViewTextQuoteViewStyle, TextComponent
2Текст цитатыchatFlow.quoteView.quoteMessageChatViewTextQuoteViewStyle, TextComponent
3Кнопка «очистить» в цитатеchatFlow.quoteView.quoteClearIconButtonQuoteViewStyle, IconButtonChatStyle

Предпросмотр голосового файла

Предпросмотр голосового файла

ЭлементПуть в темахКласс стиля
1Кнопка воспроизведения/паузыchatFlow.quotePlayPauseButtonquotePlayPausePlayingStateButton для активного состояния)ImagesChatStyle, IconButtonChatStyle
2Продолжительность голосового сообщенияchatFlow.quoteView.quoteDurationChatViewTextQuoteViewStyle, TextComponent

Сообщения с файлом

Исходящее сообщение с файлом Входящее сообщение с файлом — скачивание Входящее сообщение с файлом — готов

Стиль файлового сообщения настраивается через тип FileMessageStyle, доступный по пути chatFlow.incomeMessages.file / chatFlow.outcomeMessages.file.

ЭлементПуть в темахКласс стиля
1Фоновый цвет элемента с файломchatFlow.outcomeMessages.file.backgroundColorFileMessageStyle, ImageComponent
2Внутренние отступыchatFlow.outcomeMessages.file.paddingFileMessageStyle
3Стиль лоадераchatFlow.outcomeMessages.file.loaderLoaderChatStyle
4Имя файлаchatFlow.outcomeMessages.file.fileNameTextComponent
5Характеристики файла (размер, тип)chatFlow.outcomeMessages.file.fileSpecsTextComponent

Сообщение с ошибкой при отправке

Сообщение с ошибкой при отправке

ЭлементПуть в темахКласс стиля
1Текст ошибки загрузки файлаchatFlow.outcomeMessages.file.error (аналогично для incomeMessages)FileMessageStyle
2Стиль bubble сообщений с ошибкамиchatFlow.errorMessages.chatBubbleBubblesChatStyle, BubbleComponent

Заглушка для изображения

Заглушка для изображения

ЭлементПуть в темахКласс стиля
Ресурс заглушки для недоступного изображенияimageFlow.imagePlaceholderResId (@DrawableRes)ImageFlow, ImageComponent

Прогресс-бар при старте чата

Прогресс-бар при старте чата

ЭлементПуть в темахКласс стиля
Прогресс-бар при старте чатаchatFlow.loaderLoaderChatStyle, LoadingIndicatorComponent

Экран с ошибкой

Экран с ошибкой

ЭлементПуть в темахКласс стиля
1Кнопка повторной инициализации чатаchatFlow.retryChatInitButtonTextButtonChatStyle, TextButtonComponent
2Сообщение на экране ошибкиchatFlow.errorScreenMessageTextMessageStyle, TextComponent
3Изображение на экране ошибкиchatFlow.errorScreenImageImagesChatStyle, ImageComponent

Экран-приветствие

Экран-приветствие

ЭлементПуть в темахКласс стиля
1Заголовок приветствияchatFlow.welcomeScreenStyle.welcomeScreenTitleWelcomeScreenStyle, TextComponent
2Подзаголовок приветствияchatFlow.welcomeScreenStyle.welcomeScreenSubtitleWelcomeScreenStyle, TextComponent
3Изображение приветствияchatFlow.welcomeScreenStyle.welcomeScreenImageImagesChatStyle
4Фоновый цвет экрана приветствияchatFlow.welcomeScreenStyle.backgroundColorWelcomeScreenStyle, ChatMainComponent

Кнопка скролла вниз по сообщениям

Кнопка скролла вниз по сообщениям

ЭлементПуть в темахКласс стиля
1Стиль кнопки скролла внизchatFlow.scrollDownButtonImagesChatStyle, ImageComponent
2Цвет стикера непрочитанных сообщенийchatFlow.unreadMsgStickerColor (@ColorRes)ChatFlow, ChatMainComponent
3Текст на стикере непрочитанныхchatFlow.unreadMessagesCountTextMessageStyle, TextComponent

Кнопка скролла вверх по сообщениям

Кнопка скролла вверх по сообщениям

ЭлементПуть в темахКласс стиля
1Стиль кнопки скролла вверхchatFlow.scrollUpButtonImagesChatStyle, ImageComponent
2Цвет стикера непрочитанных (верхний)chatFlow.unreadMsgStickerUpColor (@ColorRes)ChatFlow, ChatMainComponent
3Текст на верхнем стикере непрочитанныхchatFlow.unreadMessagesCountUpTextMessageStyle, TextComponent

Приоритеты темизации: ChatColors, ChatImages, Components и Flows

Система тем делится на несколько уровней:

  1. ChatColors / ChatImages / ChatTexts / ChatTypography Базовые таблицы значений. На этом уровне задаются глобальные цвета, картинки, тексты и шрифты для всего SDK.

  2. ChatComponents Объединяет базовые таблицы и собирает из них готовые компоненты (кнопки, тулбар, бабблы сообщений, лоадеры и т. п.). Изменения на этом уровне применяются сразу к целым группам элементов.

  3. ChatFlows Финальный слой, где из компонентов собираются стили экранов и сценариев (chatFlow, searchFlow и т. д.). Через ChatFlows переопределите поведение конкретного элемента (например, только время сообщений с ошибкой).

Приоритет применения:

  • Значение, заданное в ChatColors / ChatImages, становится значением по умолчанию для всех компонентов.
  • Значение, заданное в ChatComponents, используется во всех флоу, пока флоу не переопределит его самостоятельно.
  • Значение, заданное напрямую в ChatFlows, имеет наивысший приоритет.

Рекомендуемый порядок кастомизации (минимизирует количество переопределений в ChatFlows):

  1. Задать брендовые цвета и иконки через ChatColors и ChatImages.
  2. При необходимости — настроить компоненты (например, navigationBarStyle или audioPlayer).
  3. Только для частных случаев (ошибки, особые сообщения и т. д.) — модифицировать ChatFlows.

Частые сценарии кастомизации

Несколько типичных примеров настройки внешнего вида.

Пример 1. Свои брендовые цвета бабблов и тулбара

val lightColors = ChatColors(
main = R.color.your_brand_main,
incomingBubble = R.color.your_incoming_bubble,
outgoingBubble = R.color.your_outgoing_bubble,
toolbar = R.color.your_toolbar_bg,
toolbarText = R.color.your_toolbar_text,
incomingText = R.color.your_incoming_text,
outgoingText = R.color.your_outgoing_text,
)

Бабблы, тулбар и кнопки, использующие эти цвета по умолчанию, окрашиваются в заданные значения.

Пример 2. Замена логотипа и иконки push-уведомлений

val lightImages = ChatImages(
logoImage = R.drawable.ic_your_brand_logo,
pushIcon = R.drawable.ic_your_push_icon,
)

Переопределяет логотип на приветственном экране и иконку push в статус-баре.

Пример 3. Настройка темы через ChatComponents

val lightComponents = ChatComponents(
context = applicationContext,
colors = lightColors,
images = lightImages,
text = ChatTexts(), // ChatTexts(...) — для локализованных строк по умолчанию
typography = ChatTypography() // ChatTypography(...) — для шрифтов и размеров
).apply {
navigationBarStyle = navigationBarStyle.copy(
closeButtonEnabled = false
)
}

Задаёт общие настройки компонентов: например, отключает кнопку закрытия чата в тулбаре. Параметры text и typography опциональны; если они не указаны, используются ChatTexts() и ChatTypography() по умолчанию.

Пример 4. Точечная настройка через ChatFlows

val lightFlows = ChatFlows(lightComponents).apply {
// Цвет подписи времени у сообщений с ошибкой
chatFlow.outcomeMessages.timeTextWhenError =
chatFlow.outcomeMessages.timeText.copy(
textColor = R.color.your_error_time_color
)

// Иконка "play" в цитатах
chatFlow.quotePlayPauseButton = ImagesChatStyle(
imageResId = R.drawable.ic_your_play_icon,
tintColor = R.color.your_brand_main
)
}

val chatLightTheme = ChatTheme(lightFlows)

Сначала настраиваются компоненты, затем при необходимости уточняются отдельные элементы через флоу.

Пример 5. Единый цвет времени для ошибочных сообщений

Распространённый кейс: подменить цвет времени, времени с картинкой и времени Open Graph-превью у входящих и исходящих сообщений в состоянии «ошибка отправки».

val lightFlows = ChatFlows(lightComponents).apply {
listOf(chatFlow.outcomeMessages, chatFlow.incomeMessages).forEach { messages ->
messages.timeTextWhenError = messages.timeText.copy(
textColor = R.color.your_error_time_color
)
messages.imagesTimeTextWhenError = messages.imagesTimeText.copy(
textColor = R.color.your_error_time_color
)
messages.openGraphTimeTextWhenError = messages.openGraphTimeText.copy(
textColor = R.color.your_error_time_color
)
}
}

Каждое поле *WhenError опционально: если оно не задано, используется значение из основного * поля.


Справочник enum-значений

Многие компоненты темы (BubbleComponent, IconButtonComponent, LoadingIndicatorComponent и т. д.) индексируются enum-значениями. Чтобы получить стиль кнопки «Назад», используйте iconButtonComponent[IconButtonEnum.BACK]. Ниже — справочники значений.

BubbleStyleEnum

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.components.bubble. Доступ через bubbleComponent[BubbleStyleEnum.X] и обратно через BubbleViewSelector.

ЗначениеОписание
INCOMING_BUBBLEПузырь входящего сообщения (от оператора).
OUTGOING_BUBBLEПузырь исходящего сообщения (от пользователя).
ERROR_BUBBLEПузырь сообщения, отправка которого завершилась ошибкой.

IconButtonEnum

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.components.iconButton. Реализует ChatComponentEnum.

Всего 14 значений:

ЗначениеКнопка
BACKКнопка «Назад» в toolbar.
INVERTED_BACK«Назад» в инверсной (тёмной) теме toolbar.
MENUКнопка меню (троеточие).
ATTACHПрикрепление вложений.
MICROPHONEЗапись голосового сообщения.
SENDКнопка отправки сообщения в поле ввода.
COPYКопирование сообщения из контекстного меню.
REPLYОтвет на сообщение.
QUOTE_REPLYИконка ответа в области цитаты.
QUOTE_CLEARУдалить выбранную цитату.
SEARCHИконка поиска в toolbar.
CLEAR_SEARCHОчистить поле поиска.
PLAY_PAUSE_INCOMINGPlay/pause для входящих голосовых.
PLAY_PAUSE_OUTGOINGPlay/pause для исходящих голосовых.

LoadingIndicatorEnum

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.components.loadingIndicator. Реализует ChatComponentEnum.

ЗначениеГде отображается
INCOMING_MESSAGEЛоадер в пузыре входящего сообщения (например, при подгрузке вложения).
OUTGOING_MESSAGEЛоадер в исходящем пузыре.
PAGEПолноэкранный лоадер при подгрузке истории / открытии чата.
SEARCHЛоадер на экране поиска.

ImageStyleEnum (выборка)

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.components.image. Полный список — см. Dokka. Ключевые значения:

ЗначениеПрименение
INCOMING_IMAGE / OUTGOING_IMAGEСтили картинок в пузырях.
CONSULT_MESSAGE_AVATARАватар оператора.
LOGO_IMAGEЛоготип в навигационной панели.
ERROR_ICON / ERROR_SCREEN_IMAGEИконки ошибок (рядом с сообщением и на full-screen экране ошибки).
INFO_ICONИнформационные иконки в системных сообщениях.
BINARY_SURVEY_LIKE_SELECTED_ICON / BINARY_SURVEY_LIKE_UNSELECTED_ICONLike-иконки бинарного опроса.
BINARY_SURVEY_DISLIKE_SELECTED_ICON / BINARY_SURVEY_DISLIKE_UNSELECTED_ICONDislike-иконки.
FILES_AND_MEDIA_IMAGEИконки в списке файлов / медиа.

TextStyleEnum (выборка)

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.components.textChat. У этого enum много значений (~30+) — ниже самые востребованные при кастомизации:

ЗначениеГде применяется
BALLOONТекст всплывающих balloon-подсказок.
CHIPЧип-плашки (например, дата).
ALERTS_TITLE / ALERTS_REGULARЗаголовки и текст системных алертов.
BUTTONS_SURVEY_BUTTON_TEXT / BUTTONS_SURVEY_QUESTION_TEXTТекст в опросах с кнопками.
APPROVE_REQUEST / DENY_REQUESTКнопки «Согласиться» / «Отклонить» в системных запросах.
ASK_FOR_RATEТекст приглашения оценить чат.
AUDIO_STATUSТекст состояния аудио-плеера.
CHAT_ERROR_SCREEN_MESSAGEСообщение на экране ошибки.
DATE_MESSAGEСистемное сообщение с датой.

Для получения полного списка значений вызовите TextStyleEnum.entries в коде или см. Dokka.

Alignment (структуры)

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.structures. Serializable.

ЗначениеОписание
LEFTПо левому краю.
CENTERПо центру.
RIGHTПо правому краю.

VerticalAlignment

Пакет: edna.chatcenter.ui.visual.uiStyle.settings.structures. Serializable. Companion: VerticalAlignment.Companion.getDefault().

ЗначениеОписание
TOPПо верхнему краю.
CENTERПо центру по вертикали.
BOTTOMПо нижнему краю.

ContentGravity

Пакет: edna.chatcenter.ui.visual.styles.permissions. Используется в стилях диалога описания разрешений.

ЗначениеОписание
LEFT / CENTER / RIGHTГоризонтальное выравнивание контента (заголовок/описание) внутри диалога.

PermissionDescriptionType

Пакет: edna.chatcenter.ui.visual.styles.permissions. Передаётся в коллбек onAllowClick(type, permissionId) фрагмента, чтобы вы знали, на какую группу разрешений отреагировал пользователь.

ЗначениеГруппа разрешений
CAMERAДоступ к камере.
RECORD_AUDIOЗапись аудио (голосовые сообщения).
STORAGEЧтение / запись внешнего хранилища (вложения).

CurrentUiTheme

Пакет: edna.chatcenter.ui.visual.uiStyle. Companion-метод CurrentUiTheme.fromInt(intValue: Int?) восстанавливает значение по числовому коду (используется при сериализации).

ЗначениеОписание
SYSTEMИспользовать системную настройку темы (UiModeManager). По умолчанию для новых интеграций.
LIGHTСветлая тема активна принудительно.
DARKТёмная тема активна принудительно.
Получить полный список значений enum в коде

Если нет уверенности в имени константы — откройте <EnumName>.entries в Android Studio. Все enum'ы поддерживают этот синтаксис (Kotlin 1.9+), и автокомплит выдаст полный список с актуальными именами.

Полный API

На этой странице перечислены наиболее часто используемые поля ChatComponents и ChatFlows. Полный список публичных классов, свойств и enum'ов — в Dokka-документации, сгенерированной из исходников SDK.

Связанные разделы

  • Дизайн-система: обзор — уровни кастомизации и архитектура темы.
  • Темы — три конструктора ChatTheme и готовые примеры светлой/тёмной темы.
  • Цвета — таблица ChatColors (116 полей).
  • Изображения — таблица ChatImages (66 полей).
  • ТипографикаChatTypography: 6 размеров + 20 точек подмены TTF-шрифтов.
  • Потоки (Flows) — экран-специфичная кастомизация: chat / search / gallery / files / image / popups / balloons / bottomMenu.