cometchat-android-v6-kotlin-components

SkillDev tools

The closed catalog of CometChat Android v6 UI Kit components for the Kotlin XML Views cohort — what exists, the XML tag and import for each, what each one is for, and how to swap custom UI into a component's slot instead of stacking on top. Triggers: 'which cometchat components are there android', '

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the cometchat-android-v6-kotlin-components skill

What this skill tells your AI

The instructions your AI receives, as published by cometchat/cometchat-skills in skills/cometchat-android-v6-kotlin-components/SKILL.md and read by ahel’s review.

Ground truth: com.cometchat:chatuikit-kotlin-android:6.x component catalog (javap the AAR) + docs/ui-kit/android/v6. Official docs: https://www.cometchat.com/docs/ui-kit/android/v6/components-overview · Docs MCP: claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.

Companion skills: cometchat-android-v6-compose-components (Compose equivalent), cometchat-android-v6-kotlin-theming, cometchat-android-v6-kotlin-customization, cometchat-android-v6-kotlin-placement

Purpose

Complete catalog of all Kotlin Views components in CometChat UIKit v6. Each component is a custom View class in com.cometchat.uikit.kotlin.presentation.

Use this skill when

  • Adding a CometChat Views component to an Activity or Fragment
  • Looking up component properties and methods
  • Understanding which component to use for a specific chat feature
  • Finding the style class for a component

Do not use this skill when

  • Working with Compose components (use cometchat-android-v6-compose-components)
  • Customizing bubble rendering (use cometchat-android-v6-kotlin-customization)
  • Placing components in navigation (use cometchat-android-v6-kotlin-placement)

1. Component Catalog

Only the components in THIS catalog exist — do not invent or recall names from v4/older memory. Before emitting any CometChat* view, confirm it's listed below; if it's not here, it doesn't exist (→ "unresolved reference" compile error). There is no all-in-one component: the v4-era composites CometChatConversationsWithMessages / CometChatUsersWithMessages / CometChatGroupsWithMessages / CometChatMessages and the CometChatUI god-view are absent in the v6 Kotlin-Views kit (verified against the published chatuikit-kotlin-android:6.0.1 AAR — the only top-level CometChat* views are CometChatConversations, CometChatMessageHeader, CometChatMessageList, CometChatMessageComposer, CometChatMessageInformation, CometChatUsers, CometChatGroups). Compose a two-pane experience yourself: CometChatConversations (list) → on item-click, host CometChatMessageHeader + CometChatMessageList + CometChatMessageComposer for the selected User/Group.

1.1 List Components

ComponentPackageTypePurpose
CometChatConversationspresentation.conversations.uiViewRecent conversations list
CometChatUserspresentation.users.uiViewUser list
CometChatGroupspresentation.groups.uiViewGroup list
CometChatGroupMemberspresentation.groupmembers.uiViewMembers of a group
CometChatCallLogspresentation.calllogs.uiViewCall history

1.2 Messaging Components

⚠️ There is NO combined CometChatMessages View on Android v6 Kotlin-Views either. Like the Compose surface, v6 Kotlin-Views ships the pieces separately — compose the chat screen manually as CometChatMessageHeader + CometChatMessageList + CometChatMessageComposer (see §2.4). No com.cometchat.uikit.kotlin.presentation.cometchatmessages.CometChatMessages exists on either surface.

ComponentPackageTypePurpose
CometChatMessageListpresentation.messagelist.uiViewMessage list with bubbles
CometChatMessageComposerpresentation.messagecomposer.uiViewMessage input with attachments
CometChatMessageHeaderpresentation.messageheader.uiViewChat header (name, status, actions)
CometChatMessageInformationpresentation.messageinformation.uiViewMessage delivery/read info
CometChatThreadHeaderpresentation.threadheader.uiViewThread parent message header

1.3 Call Components

ComponentPackageTypePurpose
CometChatCallButtonspresentation.callbuttonsViewAudio/video call buttons
CometChatIncomingCallpresentation.incomingcallViewIncoming call screen
CometChatOutgoingCallpresentation.outgoingcallViewOutgoing call screen
CometChatOngoingCallpresentation.ongoingcall.uiViewActive call screen
CometChatCallActivitycallsActivityActivity wrapper for calls

1.4 Utility Components

ComponentPackageTypePurpose
CometChatSearchpresentation.search.uiViewGlobal search
CometChatReactionListpresentation.reactionlist.uiViewReaction details
CometChatEmojiKeyboardpresentation.emojikeyboard.uiViewEmoji picker
CometChatStickerKeyboardpresentation.stickerkeyboard.uiViewSticker picker
CometChatFlagMessageDialogpresentation.reportDialogReport/flag message
CometChatAIAssistantChatHistorypresentation.aiassistantchathistory.uiViewAI chat history (extends MaterialCardView)
CometChatNotificationFeedpresentation.notificationfeed.uiViewFull-screen notification feed (category filter chips, timestamp grouping, rich cards, real-time updates) — extends FrameLayout

1.5 Shared Elements

Located in presentation.shared/:

  • AI features: aiconversationstarter/, aiconversationsummary/, aismartreplies/
  • Base elements: baseelements/
  • Message bubble: messagebubble/ (BubbleFactory, CometChatMessageBubble, InternalContentRenderer)
  • Dialog: dialog/
  • Media: mediarecorder/, mediaselection/, mediaviewer/, inlineaudiorecorder/
  • Message preview: messagepreview/
  • Moderation: moderation/
  • Permissions: permission/
  • Popup menu: popupmenu/
  • Reactions: reaction/
  • Receipts: receipts/
  • Search box: searchbox/
  • Shimmer: shimmer/
  • Status indicator: statusindicator/
  • Suggestion list: suggestionlist/
  • Toolbar: toolbar/
  • Typing indicator: typingindicator/

1.6 Adapters

List components use RecyclerView adapters:

AdapterComponent
ConversationsAdapterCometChatConversations
MessageAdapterCometChatMessageList
Group/User adapters in respective packagesCometChatGroups, CometChatUsers

2. Basic Usage Examples

2.1 Conversations List in an Activity

import com.cometchat.uikit.kotlin.presentation.conversations.ui.CometChatConversations

class ConversationsActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val conversations = CometChatConversations(this)
        conversations.setOnItemClick { conversation ->
            // Navigate to chat
        }
        setContentView(conversations)
    }
}

2.2 Message List in XML Layout

<com.cometchat.uikit.kotlin.presentation.messagelist.ui.CometChatMessageList
    android:id="@+id/messageList"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
val messageList = findViewById<CometChatMessageList>(R.id.messageList)
messageList.setUser(user)

2.3 Users List

val users = CometChatUsers(this)
users.setOnItemClick { user ->
    // Navigate to chat with user
}
setContentView(users)

2.4 Full Chat Screen

class MessagesActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_messages)

        val header = findViewById<CometChatMessageHeader>(R.id.messageHeader)
        val messageList = findViewById<CometChatMessageList>(R.id.messageList)
        val composer = findViewById<CometChatMessageComposer>(R.id.messageComposer)

        header.setUser(user)
        messageList.setUser(user)
        composer.setUser(user)
    }
}

3. Style Classes

Every component has a corresponding style class in its style/ subpackage:

ComponentStyle Class
CometChatConversationsCometChatConversationsStyle
CometChatUsersCometChatUsersStyle
CometChatGroupsCometChatGroupsStyle
CometChatGroupMembersCometChatGroupMembersStyle
CometChatMessageListCometChatMessageListStyle
CometChatMessageComposerCometChatMessageComposerStyle
CometChatMessageHeaderCometChatMessageHeaderStyle
CometChatCallLogsCometChatCallLogsStyle
CometChatThreadHeaderCometChatThreadHeaderStyle
CometChatNotificationFeedCometChatNotificationFeedStyle (@ColorInt Int props; .default() factory; setStyle(style))
CometChatAIAssistantChatHistoryCometChatAIAssistantChatHistoryStyle (.default(context))

Style classes resolve defaults from XML theme attributes and CometChatTheme singleton.

4. ViewModel Integration

Each component creates its own ViewModel internally via factories from chatuikit-core. ViewModels are shared with the Compose stack — the same CometChatConversationsViewModel powers both CometChatConversations (View) and CometChatConversations (@Composable).

5. Custom State Views (empty / error / loading)

The list/data components expose three setters to replace the built-in empty, error, and loading states with your own View:

fun setEmptyView(view: View?)
fun setErrorView(view: View?)
fun setLoadingView(view: View?)

Verified present on CometChatConversations, CometChatUsers, CometChatGroups, CometChatGroupMembers, CometChatCallLogs, and CometChatSearch (e.g. CometChatConversations.kt:1045/1052/1059, CometChatUsers.kt:735/742/749). Pass null to fall back to the default state view.

val users = findViewById<CometChatUsers>(R.id.users)
users.setEmptyView(layoutInflater.inflate(R.layout.my_empty_state, null))
users.setErrorView(layoutInflater.inflate(R.layout.my_error_state, null))
users.setLoadingView(layoutInflater.inflate(R.layout.my_loading_state, null))

CometChatMessageList does NOT expose these set*View state setters — customize its empty/error/loading states through styling/bubble customization instead (see cometchat-android-v6-kotlin-customization). CometChatNotificationFeed instead takes its own programmatic empty/error/loading rendering internally (see §1.4).

Hard rules

  • Activity theme MUST inherit from CometChatTheme.DayNight (or .Light / .Dark) — Theme.AppCompat.*, Theme.MaterialComponents.*.Bridge, plain Theme.MaterialComponents.*, and Theme.Material3.* all crash at component inflation. See cometchat-android-v6-kotlin-placement "Activity theme" section.
  • Components create their own ViewModels internally — do NOT try to create or inject ViewModels manually
  • Use setUser(user) or setGroup(group) to configure messaging components — they need a target to load messages
  • For bubble customization, use setBubbleFactories() and set*ViewProvider() — see cometchat-android-v6-kotlin-customization

Signals

GitHub stars
105
Forks
2
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
cometchat-android-v6-kotlin-components
Source
github.com/cometchat/cometchat-skills