AI Agent Component Spec
AI Agent Component Spec
| Field | Value |
|---|---|
| Package | com.cometchat:chat-uikit-android |
| Required setup | CometChatUIKit.init() + CometChatUIKit.login() before rendering any component |
| Callback actions | .setOn<Event> { } or .setOn<Event>(listener) |
| Data filtering | .set<Entity>RequestBuilder(builder) |
| Toggle features | .set<Feature>Visibility(View.VISIBLE / View.GONE) |
| Custom rendering | .set<Slot>View(ViewHolderListener) or .set<Slot>View(@LayoutRes int) |
| Style overrides | .setStyle(@StyleRes int) targeting CometChat<Component>Style |
| Calling | Requires separate com.cometchat:calls-sdk-android package |
Architecture
The UI Kit is a set of independent Android Views that compose into chat layouts. A typical chat layout uses four core components:CometChatConversations— list of recent conversations (users and groups)CometChatMessageHeader— toolbar showing avatar, name, online status, and typing indicatorCometChatMessageList— scrollable message feed with reactions, receipts, and threadsCometChatMessageComposer— rich input with attachments, mentions, and voice notes
CometChatConversations yields a User or Group object via setOnItemClick. That object is passed to CometChatMessageHeader, CometChatMessageList, and CometChatMessageComposer using .setUser() or .setGroup(). The message components use the SDK internally — CometChatMessageComposer sends messages, CometChatMessageList receives them via real-time listeners.
Components communicate through a publish/subscribe event bus (CometChatMessageEvents, CometChatConversationEvents, CometChatGroupEvents, etc.). A component emits events that other components or application code can subscribe to without direct references. See Events for the full list.
Each component accepts callback methods (.setOn<Event>), view slot methods (.set<Slot>View) for replacing UI sections, RequestBuilder methods for data filtering, and @StyleRes overrides via .setStyle().
Component Catalog
All components are from thecom.cometchat:chat-uikit-android package.
Conversations and Lists
| Component | Purpose | Key Methods | Page |
|---|---|---|---|
| CometChatConversations | Scrollable list of recent conversations | setConversationsRequestBuilder, setOnItemClick, setOnError | Conversations |
| CometChatUsers | Scrollable list of users | setUsersRequestBuilder, setOnItemClick, setOnError | Users |
| CometChatGroups | Scrollable list of groups | setGroupsRequestBuilder, setOnItemClick, setOnError | Groups |
| CometChatGroupMembers | Scrollable list of group members | setGroup, setGroupMembersRequestBuilder, setOnItemClick | Group Members |
Messages
| Component | Purpose | Key Methods | Page |
|---|---|---|---|
| CometChatMessageHeader | Toolbar with avatar, name, status, typing indicator | setUser, setGroup, setOnBackButtonPressed | Message Header |
| CometChatMessageList | Scrollable message list with reactions, receipts, threads | setUser, setGroup, setMessagesRequestBuilder | Message List |
| CometChatMessageComposer | Rich input with attachments, mentions, voice notes | setUser, setGroup, setOnSendButtonClick | Message Composer |
| CometChatThreadHeader | Parent message bubble and reply count for threaded view | setParentMessage | Threaded Messages Header |
Calling
| Component | Purpose | Key Methods | Page |
|---|---|---|---|
| CometChatCallButtons | Voice and video call initiation buttons | setUser, setGroup, setOnVoiceCallClick, setOnVideoCallClick | Call Buttons |
| CometChatIncomingCall | Incoming call notification with accept/reject | setCall, setOnAcceptClick, setOnRejectClick | Incoming Call |
| CometChatOutgoingCall | Outgoing call screen with end-call control | setCall, setOnEndCallClick | Outgoing Call |
| CometChatCallLogs | Scrollable list of call history | setCallLogRequestBuilder, setOnItemClick | Call Logs |
Search and AI
| Component | Purpose | Key Methods | Page |
|---|---|---|---|
| CometChatSearch | Real-time search across conversations and messages | setOnConversationClicked, setOnMessageClicked, setUid, setGuid | Search |
| CometChatAIAssistantChatHistory | AI assistant conversation history | setOnItemClick, setNewChatButtonClick | AI Assistant Chat History |
Component API Pattern
All components share a consistent API surface.Actions
Actions control component behavior. They split into two categories: Predefined actions are built into the component and execute automatically on user interaction (e.g., tapping send dispatches the message). No configuration needed. User-defined actions are callback methods that fire on specific events. Override them to customize behavior:- Kotlin
- Java
Events
Events enable decoupled communication between components. A component emits events that other parts of the application can subscribe to without direct references.- Kotlin
- Java
Filters
List-based components acceptRequestBuilder methods to control which data loads:
- Kotlin
- Java
Custom View Slots
Components expose named view slot methods to replace sections of the default UI:- Kotlin
- Java
Style Overrides
Every component supports asetStyle(@StyleRes int) method for style customization:
styles.xml