Skip to main content
Version: 5.21.0

Components and flows (ChatComponents, ChatFlows)

About this reference

Below are the most frequently used ChatComponents and ChatFlows fields, grouped by visual chat elements with screenshots. The full list of public classes, properties, and enums is in Dokka documentation.

Specific flows (Search, Gallery, Files, etc.) and the basic concept of customization levels are on separate pages: Flows, Introduction to the design system. Some ChatConfig parameters in 5.x are controlled by server configuration — see Known limitations.

Style map by flow

A brief overview of the root fields through which the chat's appearance is configured. A detailed mapping of UI elements to fields is in the UI–theme field mapping section.

Root pathWhat it stylesStyle class
chatFlow.navigationBarChat toolbar: title, subtitle, icons, status bar colorNavigationBarStyle
chatFlow.inputViewInput field and surrounding buttons (attach, voice, send)InputViewStyle
chatFlow.incomeMessages / outcomeMessages / errorMessagesStyle of incoming, outgoing, and error messagesMessagesConfig
chatFlow.systemMessagesSystem messages (operator join/leave, requests)SystemMessagesConfig
chatFlow.systemMessages.ratingStyleTexts for invitation and thanks for rating, star rendering (5-star rating)RatingStyle
chatFlow.welcomeScreenStyleWelcome screen when history is emptyWelcomeScreenStyle
chatFlow.quoteViewQuote in the input field and inside messagesQuoteViewStyle
chatFlow.surveyStyleSurvey icon appearance: stars (optionsSurvey*) and like/dislike thumbs (binarySurvey*)SurveyStyle
chatFlow.buttonSurveyButton / buttonSurveyQuestionButton surveyTextMessageStyle
chatFlow.messagePopupMenuStyleContext menu on long-press of a messageMessagePopupMenuStyle
chatFlow.permissionDescriptionPopupStyleWindow describing requested permissionsPermissionDescriptionPopupStyle
chatFlow.smallPushes / chatFlow.bigPushesChat push notificationsPushesChatStyle
chatFlow.scrollDownButton / chatFlow.scrollUpButtonMessage list scroll buttonsImagesChatStyle
chatFlow.chipChip plates (dates, quick replies)TextMessageStyle
chatFlow.loaderProgress bar on chat startLoaderChatStyle
chatFlow.retryChatInitButton / errorScreenMessage / errorScreenImageChat initialization error screenTextButtonChatStyle, TextMessageStyle, ImagesChatStyle
chatComponents.balloonComponentStyle of popup balloon messages (Snackbar)BalloonsChatStyle, BalloonComponent
chatComponents.pushesComponentBasic push notification styling (color, icon, title)PushesComponent
searchFlow.searchBar / searchBar.searchResultsStyleMessage search and results listSearchChatComponent, SearchResultsStyle
imageFlow.imagePlaceholderResIdPlaceholder for an unavailable imageImageFlow

Quickstart

A minimal customization example — set brand colors and assemble a theme:

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,
)
)
)

Ready-made scenarios are in the Common customization scenarios section. The complete UI element to theme field mapping is in the section below.

UI–theme field mapping

The screenshots below map the visual chat elements to ChatComponents and ChatFlows fields.

Main chat elements

Main chat elements

ElementPath in themesStyle / component class
1.1Toolbar titlechatFlow.navigationBar.toolbarHeaderTextNavigationBarStyle
1.2Toolbar subtitlechatFlow.navigationBar.toolbarSubtitleTextNavigationBarStyle
1.3Formatted title (Spannable)chatFlow.navigationBar.toolbarSpannableHeaderTextNavigationBarStyle
1.4Toolbar search iconsearchFlow.searchBar.searchIconSearchChatComponent
1.5Navigation bar background colorchatFlow.navigationBar.backgroundColorNavigationBarStyle
1.6Status bar colorchatFlow.navigationBar.statusBarColorNavigationBarStyle
1.7Toolbar shadowchatFlow.navigationBar.visibleShadow (Boolean)NavigationBarStyle
1.8Toolbar text centeringchatFlow.navigationBar.centerToolbarText (Boolean)NavigationBarStyle
1.9"Back" button enabledchatFlow.navigationBar.closeButtonEnabled (Boolean)NavigationBarStyle
1.10Subtitle visibilitychatFlow.navigationBar.chatSubtitleEnabled (Boolean)NavigationBarStyle
1.11"Back" button stylechatFlow.navigationBar.backButtonNavigationBarStyle
1.12Search button stylechatFlow.navigationBar.searchButtonNavigationBarStyle
2.1Image in a messagechatFlow.incomeMessages.image / outcomeMessages.imageImageMessageStyle, ImageComponent
2.2Chat bubble (general style)chatFlow.incomeMessages.chatBubble / outcomeMessages.chatBubbleBubblesChatStyle, BubbleComponent
2.3Message status iconschatFlow.outcomeMessages.statusIconsMessageStatusesStyle, MessageStatusesComponent
3Time in a message with an imagechatFlow.outcomeMessages.imagesTimeTextMessagesConfig, TextComponent
4System message stylechatFlow.systemMessages.systemMessageTextSystemMessagesConfig, TextComponent
5Outgoing message style (container)chatFlow.outcomeMessagesMessagesConfig
6Operator avatarimageFlowImageFlow, ImageComponent
7Incoming message style (container)chatFlow.incomeMessagesMessagesConfig
8Attach buttonchatFlow.inputView.attachButtonInputViewStyle, IconButtonComponent
9Message input fieldchatFlow.inputView.textInputInputViewStyle, InputTextComponent
10.1Voice recording buttonchatFlow.inputView.voiceButtonInputViewStyle, IconButtonComponent
10.2Send buttonchatFlow.inputView.sendButtonInputViewStyle, IconButtonComponent

Behavior on message selection

Behavior on message selection

ElementPath in themesStyle class
1"Copy" buttonchatFlow.navigationBar.copyButtonNavigationBarStyle
2"Reply with quote" buttonchatFlow.navigationBar.replyButtonNavigationBarStyle
3Inverted "Back" buttonchatFlow.navigationBar.invertedBackButtonNavigationBarStyle
4Background color under the selected messagechatFlow.highlightingColor (@ColorRes Int)ChatFlow

Message search field

Message search field

ElementPath in themesStyle class
1Toolbar search buttonchatFlow.navigationBar.searchButtonNavigationBarStyle
2Loader color during searchsearchFlow.loaderStyleLoaderChatStyle
3Search input field stylesearchFlow.searchBar.textInputSearchChatComponent

Found messages list

Found messages list

ElementPath in themesStyle class
1Input field clear buttonsearchFlow.clearInputBtn (see also SearchChatComponent.clearSearch)ImagesChatStyle
2.1Message author text colorsearchFlow.searchBar.searchResultsStyle.searchResultsItemNameTextColorSearchResultsStyle
2.2Message text colorsearchFlow.searchBar.searchResultsStyle.searchResultsItemMessageTextColorSearchResultsStyle
2.3Date text colorsearchFlow.searchBar.searchResultsStyle.searchResultsItemDateTextColorSearchResultsStyle
2.4Divider color between resultssearchFlow.searchBar.searchResultsStyle.searchResultsDividerColorSearchResultsStyle
2.5"Right arrow" iconsearchFlow.searchBar.searchResultsStyle.searchResultsItemRightArrowDrawableSearchResultsStyle
2.6"Right arrow" icon colorsearchFlow.searchBar.searchResultsStyle.searchResultsItemRightArrowTintColorSearchResultsStyle
2.7Image when no resultssearchFlow.searchBar.searchResultsStyle.searchResultsNoItemsImageDrawableSearchResultsStyle
2.8Text color when no resultssearchFlow.searchBar.searchResultsStyle.searchResultsNoItemsTextColorSearchResultsStyle
2.9Search results background colorsearchFlow.searchBar.searchResultsStyle.backgroundColorSearchResultsStyle

Popup message

ElementPath in themesStyle class
Popup message stylechatComponents.balloonComponent or direct assignment of BalloonsChatStyleBalloonsChatStyle, BalloonComponent
When it applies

The style only works if the system can show a Snackbar attached to a view.

Push notifications

Compact push Expanded push

ElementPath in themesStyle class
Compact push notification stylechatFlow.smallPushesPushesChatStyle
Expanded push notification stylechatFlow.bigPushesPushesChatStyle
Push background colorchatComponents.pushesComponent.pushBackgroundColor (@ColorRes)PushesComponent
Push text colorchatComponents.pushesComponent.textColor (@ColorRes)PushesComponent
Push iconchatComponents.pushesComponent.icon (@DrawableRes)PushesComponent
Default push titlechatComponents.pushesComponent.pushesDefaultTitle (@StringRes)PushesComponent
Quick reply from a push (inline reply)

The input field and send button in the system notification are provided by Android (RemoteInput). The SDK does not provide public fields for separate styling of this screen: the background color, icon, and text are inherited from PushesComponent.

Dialog termination request

Dialog termination request

ElementPath in themesStyle class
1Request textchatFlow.systemMessages.requestToResolveSystemMessagesConfig, TextComponent
2Positive response buttonchatFlow.systemMessages.approveRequestSystemMessagesConfig, TextComponent
3Negative response buttonchatFlow.systemMessages.denyRequestSystemMessagesConfig, TextComponent

Operator feedback (stars)

Operator feedback

Texts and the star counter — via chatFlow.systemMessages.ratingStyle (RatingStyle). Star icons (empty / filled) — via chatFlow.surveyStyle.optionsSurvey* (SurveyStyle).

ElementPath in themesStyle class
1Rate invitation textchatFlow.systemMessages.ratingStyle.askForRateTextRatingStyle, TextComponent
2Thanks-for-rating textchatFlow.systemMessages.ratingStyle.thanksForRateTextRatingStyle, TextComponent
3Header above the rate invitationchatFlow.systemMessages.ratingStyle.ratingHeaderTextRatingStyle, TextComponent
4"N" text (selected stars count)chatFlow.systemMessages.ratingStyle.rateStarsCountRatingStyle, TextComponent
5"of" textchatFlow.systemMessages.ratingStyle.rateFromRatingStyle, TextComponent
6"5" text (max stars)chatFlow.systemMessages.ratingStyle.rateTotalStarsCountRatingStyle, TextComponent
7Star image style (background, size)chatFlow.systemMessages.ratingStyle.rateStarImageStyleRatingStyle, ImagesChatStyle
8Empty star iconchatFlow.surveyStyle.optionsSurveyUnselectedSurveyStyle, ImagesChatStyle
9Filled star iconchatFlow.surveyStyle.optionsSurveySelectedSurveyStyle, ImagesChatStyle

Survey on dialog completion (thumbs)

Survey on dialog completion

The binary "like / dislike" survey is styled via chatFlow.surveyStyle (the binarySurvey* fields). Invitation and thanks texts are shared with the star rating and are set via chatFlow.systemMessages.ratingStyle.

ElementPath in themesStyle class
1Like (thumbs up), unselected statechatFlow.surveyStyle.binarySurveyLikeUnselectedSurveyStyle, ImagesChatStyle
2Like (thumbs up), selected statechatFlow.surveyStyle.binarySurveyLikeSelectedSurveyStyle, ImagesChatStyle
3Dislike (thumbs down), unselected statechatFlow.surveyStyle.binarySurveyDislikeUnselectedSurveyStyle, ImagesChatStyle
4Dislike (thumbs down), selected statechatFlow.surveyStyle.binarySurveyDislikeSelectedSurveyStyle, ImagesChatStyle
5Icon color after the survey is completedchatFlow.surveyStyle.surveyFinalColorFilterResId (@ColorRes)SurveyStyle
6Survey behavior type (MESSAGE / SYSTEM)chatFlow.surveyStyle.typeSurveyMessageType
7Invitation and thanks textschatFlow.systemMessages.ratingStyle.askForRateText / thanksForRateTextRatingStyle, TextComponent

Button survey

Button survey

ElementPath in themesStyle class
1Survey button stylechatFlow.buttonSurveyButtonTextMessageStyle, IconButtonChatStyle
2Question text stylechatFlow.buttonSurveyQuestionTextMessageStyle, TextComponent

Quick replies in the chat (chip plates)

Quick replies in the chat

ElementPath in themesStyle class
Quick reply button text stylechatFlow.chipTextMessageStyle, TextComponent
Quick replies chip text colorchatColors.quickRepliesTextChatColors
Chip background tintchatColors.quickReplyButtonBackgroundTintChatColors
Chip background imagechatImages.quickReplyButtonBackgroundChatImages

Outgoing file preview

Outgoing file preview

ElementPath in themesStyle class
1Quote headerchatFlow.quoteView.quoteHeaderChatViewTextQuoteViewStyle, TextComponent
2Quote textchatFlow.quoteView.quoteMessageChatViewTextQuoteViewStyle, TextComponent
3Quote "clear" buttonchatFlow.quoteView.quoteClearIconButtonQuoteViewStyle, IconButtonChatStyle

Voice file preview

Voice file preview

ElementPath in themesStyle class
1Play/pause buttonchatFlow.quotePlayPauseButton (and quotePlayPausePlayingStateButton for the active state)ImagesChatStyle, IconButtonChatStyle
2Voice message durationchatFlow.quoteView.quoteDurationChatViewTextQuoteViewStyle, TextComponent

Messages with a file

Outgoing file message Incoming file message — downloading Incoming file message — ready

The file message style is configured via the FileMessageStyle type, available at chatFlow.incomeMessages.file / chatFlow.outcomeMessages.file.

ElementPath in themesStyle class
1File element background colorchatFlow.outcomeMessages.file.backgroundColorFileMessageStyle, ImageComponent
2Inner paddingschatFlow.outcomeMessages.file.paddingFileMessageStyle
3Loader stylechatFlow.outcomeMessages.file.loaderLoaderChatStyle
4File namechatFlow.outcomeMessages.file.fileNameTextComponent
5File specs (size, type)chatFlow.outcomeMessages.file.fileSpecsTextComponent

Message with a send error

Message with a send error

ElementPath in themesStyle class
1File upload error textchatFlow.outcomeMessages.file.error (similarly for incomeMessages)FileMessageStyle
2Error bubble message stylechatFlow.errorMessages.chatBubbleBubblesChatStyle, BubbleComponent

Image placeholder

Image placeholder

ElementPath in themesStyle class
Placeholder resource for an unavailable imageimageFlow.imagePlaceholderResId (@DrawableRes)ImageFlow, ImageComponent

Progress bar on chat start

Progress bar on chat start

ElementPath in themesStyle class
Progress bar on chat startchatFlow.loaderLoaderChatStyle, LoadingIndicatorComponent

Error screen

Error screen

ElementPath in themesStyle class
1Chat re-initialization buttonchatFlow.retryChatInitButtonTextButtonChatStyle, TextButtonComponent
2Message on the error screenchatFlow.errorScreenMessageTextMessageStyle, TextComponent
3Image on the error screenchatFlow.errorScreenImageImagesChatStyle, ImageComponent

Welcome screen

Welcome screen

ElementPath in themesStyle class
1Welcome titlechatFlow.welcomeScreenStyle.welcomeScreenTitleWelcomeScreenStyle, TextComponent
2Welcome subtitlechatFlow.welcomeScreenStyle.welcomeScreenSubtitleWelcomeScreenStyle, TextComponent
3Welcome imagechatFlow.welcomeScreenStyle.welcomeScreenImageImagesChatStyle
4Welcome screen background colorchatFlow.welcomeScreenStyle.backgroundColorWelcomeScreenStyle, ChatMainComponent

Scroll-down button

Scroll-down button

ElementPath in themesStyle class
1Scroll-down button stylechatFlow.scrollDownButtonImagesChatStyle, ImageComponent
2Unread sticker colorchatFlow.unreadMsgStickerColor (@ColorRes)ChatFlow, ChatMainComponent
3Text on the unread stickerchatFlow.unreadMessagesCountTextMessageStyle, TextComponent

Scroll-up button

Scroll-up button

ElementPath in themesStyle class
1Scroll-up button stylechatFlow.scrollUpButtonImagesChatStyle, ImageComponent
2Unread sticker color (top)chatFlow.unreadMsgStickerUpColor (@ColorRes)ChatFlow, ChatMainComponent
3Text on the top unread stickerchatFlow.unreadMessagesCountUpTextMessageStyle, TextComponent

Theming priorities: ChatColors, ChatImages, Components, and Flows

The theme system is split into several levels:

  1. ChatColors / ChatImages / ChatTexts / ChatTypography Base value tables. At this level, global colors, images, texts, and fonts for the entire SDK are defined.

  2. ChatComponents Combines the base tables and assembles ready-made components from them (buttons, toolbar, message bubbles, loaders, etc.). Changes at this level are applied immediately to whole groups of elements.

  3. ChatFlows The final layer where screen and scenario styles are assembled from components (chatFlow, searchFlow, etc.). Use ChatFlows to override a specific element's behavior (for example, only the time of error messages).

Application priority:

  • A value set in ChatColors / ChatImages becomes the default value for all components.
  • A value set in ChatComponents is used in all flows until the flow overrides it on its own.
  • A value set directly in ChatFlows has the highest priority.

Recommended customization order (minimizes the number of overrides in ChatFlows):

  1. Set brand colors and icons via ChatColors and ChatImages.
  2. If needed — configure components (for example, navigationBarStyle or audioPlayer).
  3. Only for special cases (errors, particular messages, etc.) — modify ChatFlows.

Common customization scenarios

A few typical examples of appearance configuration.

Example 1. Your own brand colors for bubbles and toolbar

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,
)

Bubbles, toolbar, and buttons that use these colors by default are colored with the given values.

Example 2. Replacing the logo and push notification icon

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

Overrides the welcome screen logo and the push icon in the status bar.

Example 3. Theme configuration via ChatComponents

val lightComponents = ChatComponents(
context = applicationContext,
colors = lightColors,
images = lightImages,
text = ChatTexts(), // ChatTexts(...) — for default localized strings
typography = ChatTypography() // ChatTypography(...) — for fonts and sizes
).apply {
navigationBarStyle = navigationBarStyle.copy(
closeButtonEnabled = false
)
}

Sets general component settings: for example, disables the chat close button in the toolbar. The text and typography parameters are optional; if not specified, ChatTexts() and ChatTypography() defaults are used.

Example 4. Per-element configuration via ChatFlows

val lightFlows = ChatFlows(lightComponents).apply {
// Time caption color for error messages
chatFlow.outcomeMessages.timeTextWhenError =
chatFlow.outcomeMessages.timeText.copy(
textColor = R.color.your_error_time_color
)

// "Play" icon in quotes
chatFlow.quotePlayPauseButton = ImagesChatStyle(
imageResId = R.drawable.ic_your_play_icon,
tintColor = R.color.your_brand_main
)
}

val chatLightTheme = ChatTheme(lightFlows)

First the components are configured, then individual elements are refined via flows if needed.

Example 5. Unified time color for error messages

A common case: substitute the color of time, time with an image, and Open Graph preview time of incoming and outgoing messages in the "send error" state.

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
)
}
}

Every *WhenError field is optional: if not set, the value from the base * field is used.


Enum value reference

Many theme components (BubbleComponent, IconButtonComponent, LoadingIndicatorComponent, etc.) are indexed by enum values. To get the style of the "Back" button, use iconButtonComponent[IconButtonEnum.BACK]. Below — value references.

BubbleStyleEnum

Package: edna.chatcenter.ui.visual.uiStyle.settings.components.bubble. Access via bubbleComponent[BubbleStyleEnum.X] and back via BubbleViewSelector.

ValueDescription
INCOMING_BUBBLEIncoming message bubble (from the operator).
OUTGOING_BUBBLEOutgoing message bubble (from the user).
ERROR_BUBBLEBubble of a message whose send ended with an error.

IconButtonEnum

Package: edna.chatcenter.ui.visual.uiStyle.settings.components.iconButton. Implements ChatComponentEnum.

A total of 14 values:

ValueButton
BACK"Back" button in the toolbar.
INVERTED_BACK"Back" in the inverted (dark) toolbar theme.
MENUMenu button (three dots).
ATTACHAttachment attach.
MICROPHONEVoice message recording.
SENDSend button in the input field.
COPYCopy a message from the context menu.
REPLYReply to a message.
QUOTE_REPLYReply icon in the quote area.
QUOTE_CLEARDelete the selected quote.
SEARCHSearch icon in the toolbar.
CLEAR_SEARCHClear the search field.
PLAY_PAUSE_INCOMINGPlay/pause for incoming voice messages.
PLAY_PAUSE_OUTGOINGPlay/pause for outgoing voice messages.

LoadingIndicatorEnum

Package: edna.chatcenter.ui.visual.uiStyle.settings.components.loadingIndicator. Implements ChatComponentEnum.

ValueWhere it is displayed
INCOMING_MESSAGELoader in an incoming message bubble (for example, while loading an attachment).
OUTGOING_MESSAGELoader in an outgoing bubble.
PAGEFull-screen loader while loading history / opening the chat.
SEARCHLoader on the search screen.

ImageStyleEnum (selection)

Package: edna.chatcenter.ui.visual.uiStyle.settings.components.image. Full list — see Dokka. Key values:

ValueUse
INCOMING_IMAGE / OUTGOING_IMAGEImage styles in bubbles.
CONSULT_MESSAGE_AVATAROperator avatar.
LOGO_IMAGELogo in the navigation bar.
ERROR_ICON / ERROR_SCREEN_IMAGEError icons (next to a message and on the full-screen error screen).
INFO_ICONInformation icons in system messages.
BINARY_SURVEY_LIKE_SELECTED_ICON / BINARY_SURVEY_LIKE_UNSELECTED_ICONLike icons of the binary survey.
BINARY_SURVEY_DISLIKE_SELECTED_ICON / BINARY_SURVEY_DISLIKE_UNSELECTED_ICONDislike icons.
FILES_AND_MEDIA_IMAGEIcons in the files / media list.

TextStyleEnum (selection)

Package: edna.chatcenter.ui.visual.uiStyle.settings.components.textChat. This enum has many values (~30+) — below are the most frequently used during customization:

ValueWhere applied
BALLOONText of balloon tooltips.
CHIPChip plates (for example, date).
ALERTS_TITLE / ALERTS_REGULARTitles and text of system alerts.
BUTTONS_SURVEY_BUTTON_TEXT / BUTTONS_SURVEY_QUESTION_TEXTText in button surveys.
APPROVE_REQUEST / DENY_REQUEST"Accept" / "Decline" buttons in system requests.
ASK_FOR_RATEChat rate invitation text.
AUDIO_STATUSAudio player state text.
CHAT_ERROR_SCREEN_MESSAGEMessage on the error screen.
DATE_MESSAGESystem message with a date.

To get the full list of values, call TextStyleEnum.entries in code or see Dokka.

Alignment (structures)

Package: edna.chatcenter.ui.visual.uiStyle.settings.structures. Serializable.

ValueDescription
LEFTLeft-aligned.
CENTERCenter-aligned.
RIGHTRight-aligned.

VerticalAlignment

Package: edna.chatcenter.ui.visual.uiStyle.settings.structures. Serializable. Companion: VerticalAlignment.Companion.getDefault().

ValueDescription
TOPTop-aligned.
CENTERCenter-aligned vertically.
BOTTOMBottom-aligned.

ContentGravity

Package: edna.chatcenter.ui.visual.styles.permissions. Used in permission description dialog styles.

ValueDescription
LEFT / CENTER / RIGHTHorizontal alignment of content (title/description) inside the dialog.

PermissionDescriptionType

Package: edna.chatcenter.ui.visual.styles.permissions. Passed to the onAllowClick(type, permissionId) callback of the fragment so that you know which permission group the user responded to.

ValuePermission group
CAMERACamera access.
RECORD_AUDIOAudio recording (voice messages).
STORAGEExternal storage read / write (attachments).

CurrentUiTheme

Package: edna.chatcenter.ui.visual.uiStyle. Companion method CurrentUiTheme.fromInt(intValue: Int?) reconstructs the value from a numeric code (used during serialization).

ValueDescription
SYSTEMUse the system theme setting (UiModeManager). Default for new integrations.
LIGHTLight theme forced on.
DARKDark theme forced on.
Getting the full list of enum values in code

If you are unsure of a constant name, open <EnumName>.entries in Android Studio. All enums support this syntax (Kotlin 1.9+), and autocomplete will produce the full list with current names.

Full API

This page lists the most frequently used ChatComponents and ChatFlows fields. The full list of public classes, properties, and enums is in Dokka documentation, generated from the SDK sources.

  • Design system: overview — customization levels and theme architecture.
  • Themes — three ChatTheme constructors and ready-made light/dark theme examples.
  • ColorsChatColors table (116 fields).
  • ImagesChatImages table (66 fields).
  • TypographyChatTypography: 6 sizes + 20 TTF substitution points.
  • Flows — screen-specific customization: chat / search / gallery / files / image / popups / balloons / bottomMenu.