AI Integration Quick Reference
AI Integration Quick Reference
| Field | Value |
|---|---|
| Kotlin XML Views | Override XML styles in themes.xml extending component parent styles (e.g., CometChatConversationsStyle), assign via theme attributes |
| Jetpack Compose | Pass style data classes as parameters (e.g., CometChatConversationsStyle, CometChatMessageListStyle) with .default() and .copy() |
| Pattern (XML) | Create custom style → extend parent → assign to AppTheme via theme attribute |
| Pattern (Compose) | Call ComponentStyle.default().copy(property = value) → pass as style parameter |
| Related | Theme Introduction · Color Resources · Message Bubble Styling |
When to use this
- You want UI Kit screens (lists, headers, and message UI) to match your brand colors and typography.
- You need to customize calling and AI UI components without rebuilding UI from scratch.
- You prefer centralized styling through
res/values/themes.xml(XML Views) or style data classes (Compose). - You want consistent iconography by supplying your own vector drawables.
- You need a repeatable pattern that can be applied across components.
Prerequisites
- CometChat Android UI Kit v6 installed in your app.
- Your app theme extends
CometChatTheme.DayNight(for XML Views). - You can edit
res/values/themes.xmlin your Android module. - You can add drawable resources to
res/drawable/when needed. - You rebuild or sync Gradle after updating styles.
Styling Pattern
- Kotlin (XML Views)
- Jetpack Compose
Components read styles from XML theme attributes. The pattern is:You can also set fonts globally:
- Open
res/values/themes.xml. - Create a custom style that extends the component’s parent style (for example,
CometChatConversationsStyle). - Assign your custom style to
AppThemeusing the component’s theme attribute (for example,cometchatConversationsStyle). - Sync Gradle and rebuild the app.
- Navigate to the screen that uses the component and confirm the visual change.
themes.xml
themes.xml
Core concepts
AppThemeis the single place where UI Kit style hooks are wired (XML Views).- Each UI Kit component has a parent style (for example,
CometChatMessageListStyle) and a theme attribute (for example,cometchatMessageListStyle). - Custom styles must extend the correct parent style to inherit default behavior.
- Drawable overrides (for example, custom icons) live in
res/drawable/and are referenced from styles. - Fonts can be set once at the theme level and reused across components.
Implementation
Use the following sections to style each component. Each section lists what changes, where to change it, the exact code to paste, and how to verify the result.Chat Lists & Messaging
Conversations
TheCometChatConversations component renders the recent chats list.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatConversations - Default behavior: UI Kit default avatar and badge styles.
- Override: set
cometchatConversationsStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies custom avatar and badge styles to conversation list items.
- Verify: the Conversations list shows updated avatar backgrounds and badge colors.
Users
TheCometChatUsers component renders a list of users for selection or navigation.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatUsers - Default behavior: UI Kit default avatar and list styling.
- Override: set
cometchatUsersStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies avatar and separator color overrides to the user list.
- Verify: the Users list shows updated avatar backgrounds and separator color.
Groups
TheCometChatGroups component renders group items and their summary data.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatGroups - Default behavior: UI Kit default group item styling.
- Override: set
cometchatGroupsStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: styles group avatars and separators in the Groups list.
- Verify: the Groups list shows the updated avatar background and title color.
Message Header
TheCometChatMessageHeader component renders the title, avatar, and action icons for a chat.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatMessageHeader - Default behavior: UI Kit default header typography and icons.
- Override: set
cometchatMessageHeaderStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies custom title color, avatar styling, and call button tints in the message header.
- Verify: open a conversation and check the header text and call button icons.
Message List
TheCometChatMessageList component renders conversation messages and their bubble styles.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatMessageList - Default behavior: UI Kit default message list background and bubble colors.
- Override: set
cometchatMessageListStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: changes the message list background and outgoing bubble color.
- Verify: open a conversation and check outgoing message bubble colors.
Message Composer
TheCometChatMessageComposer component renders the input box and action buttons.

- Where to change it:
res/drawable/active_send_button.xmlandres/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatMessageComposer - Default behavior: UI Kit default composer icons and send button drawable.
- Override: set
cometchatMessageComposerStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
res/drawable/active_send_button.xml
res/values/themes.xml
- What this does: applies custom icon tints and the active send button drawable to the composer.
- Verify: the composer shows the custom send button and tinted icons.
Group Members
TheCometChatGroupMembers component lists users inside a group.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatGroupMembers - Default behavior: UI Kit default list styling.
- Override: set
cometchatGroupMembersStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies custom avatar and separator styling to the group members list.
- Verify: the group members screen shows updated avatar and separator colors.
Thread Header
TheCometChatThreadHeader component renders the parent message preview in threaded views.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatThreadHeader - Default behavior: UI Kit default thread header styling.
- Override: set
cometchatThreadHeaderStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: customizes thread header bubble colors and reply count styling.
- Verify: open a thread and confirm the header background and reply count colors.
Mentions
TheCometChatMentions styling controls how user mentions appear inside messages.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatMentions - Default behavior: UI Kit default mention styling.
- Override: set
cometchatMessageBubbleMentionsStylein both incoming and outgoing bubble styles.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: customizes mention colors for incoming and outgoing message bubbles.
- Verify: send a mention in a chat and check the mention highlight colors.
Calling UI
Call Logs
TheCometChatCallLogs component renders recent call history.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatCallLogs - Default behavior: UI Kit default call log styling.
- Override: set
cometchatCallLogsStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies custom avatar and text colors to the call logs list.
- Verify: open Call Logs and confirm the separator and title colors.
Incoming Call
TheCometChatIncomingCall component renders the incoming call UI.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatIncomingCall - Default behavior: UI Kit default incoming call layout and colors.
- Override: set
cometchatIncomingCallStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: customizes the incoming call screen background and action buttons.
- Verify: trigger an incoming call and confirm the background and button colors.
Outgoing Call
TheCometChatOutgoingCall component renders the outgoing call UI.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatOutgoingCall - Default behavior: UI Kit default outgoing call styling.
- Override: set
cometchatOutgoingCallStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies a custom avatar style to the outgoing call screen.
- Verify: place a call and confirm the avatar styling.
Base Components
Avatar
TheCometChatAvatar component is used across lists and headers.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatAvatar - Default behavior: UI Kit default avatar styling.
- Override: set
cometchatAvatarStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies a consistent avatar style across UI Kit components.
- Verify: open any list with avatars and confirm the style.
Badge
TheCometChatBadge component shows unread or notification counts.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatBadge - Default behavior: UI Kit default badge styling.
- Override: set
cometchatBadgeStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies a custom badge appearance across UI Kit lists.
- Verify: check any unread badge to confirm colors and radius.
Status Indicator
TheCometChatStatusIndicator component shows user presence status.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatStatusIndicator - Default behavior: UI Kit default presence icon.
- Override: set
cometchatStatusIndicatorStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies the custom status indicator in UI Kit components.
- Verify: check any user list to confirm the presence icon.
Reaction List
TheCometChatReactionList component renders reactions on messages.

- Where to change it:
res/values/themes.xml(XML Views) orstyleparameter (Compose) - Applies to:
CometChatReactionList - Default behavior: UI Kit default reaction list styling.
- Override: set
cometchatReactionListStyleinAppThemeor pass a style object.
- Kotlin (XML Views)
- Jetpack Compose
themes.xml
- What this does: applies a custom active tab color in the reaction list.
- Verify: open reactions and confirm the active tab color.
Customization matrix
| What you want to change | Where | Property or API | Example |
|---|---|---|---|
| Conversations avatar and badge | themes.xml / style param | cometchatConversationsStyle | cometchatConversationsBadgeStyle |
| Users list separators | themes.xml / style param | cometchatUsersStyle | cometchatUsersSeparatorColor |
| Group list titles | themes.xml / style param | cometchatGroupsStyle | cometchatGroupsTitleTextColor |
| Header call icons | themes.xml / style param | cometchatMessageHeaderStyle | cometchatMessageHeaderCallButtonsStyle |
| Message list background | themes.xml / style param | cometchatMessageListStyle | cometchatMessageListBackgroundColor |
| Composer send button | res/drawable/ + themes.xml | cometchatMessageComposerActiveSendButtonDrawable | @drawable/active_send_button |
| Call buttons styling | themes.xml / style param | cometchatCallButtonsStyle | cometchatCallButtonsVideoCallBackgroundColor |