cometchat-android-v6-extensions
SkillDocs & knowledgeTurn on CometChat Dashboard extensions in an Android v6 app — stickers, polls, collaborative whiteboard and document, message translation, link preview, thumbnail generation, message shortcuts — and know exactly where each one appears in the UI once enabled (mostly zero client code). Triggers: 'enab
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the cometchat-android-v6-extensions skill
What this skill tells your AI
The instructions your AI receives, as published by cometchat/cometchat-skills in skills/cometchat-android-v6-extensions/SKILL.md and read by ahel’s review.
Ground truth:
com.cometchat:chatuikit-{compose,kotlin}-android:6.x(+calls-sdk-android:5.x) — resolved AAR (javap) +ui-kit/android/v6. Official docs: https://www.cometchat.com/docs/fundamentals/extensions-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-features (feature catalog), cometchat-android-v6-kotlin-customization, cometchat-android-v6-compose-customization
Purpose
Extend the CometChat UIKit v6 data layer using the clean architecture DataSource/Repository pattern. Create custom DataSource implementations, override repository behavior, and register custom message types.
Use this skill when
- Creating a custom DataSource implementation to change how data is fetched
- Overriding default repository behavior
- Registering custom message types
- Understanding the data flow from DataSource → Repository → ViewModel
Do not use this skill when
- Customizing UI/bubble rendering (use
cometchat-*-customization— that's the BubbleFactory layer) - Working with component APIs (use
cometchat-*-components)
1. Clean Architecture Overview
The chatuikit-core module follows clean architecture with three layers:
┌─────────────────────────────────────────┐
│ UI Layer (chatuikit-kotlin / compose) │
│ Components observe ViewModel state │
├─────────────────────────────────────────┤
│ ViewModel Layer (core/viewmodel/) │
│ Calls use cases / repositories │
├─────────────────────────────────────────┤
│ Domain Layer (core/domain/) │
│ Repository interfaces, Use cases │
├─────────────────────────────────────────┤
│ Data Layer (core/data/) │
│ DataSource interfaces + impls │
│ Repository implementations │
└─────────────────────────────────────────┘
2. DataSource Pattern
Each feature area has a DataSource interface and default implementation:
core/data/datasource/
├── ConversationListDataSource.kt (interface)
├── ConversationListDataSourceImpl.kt (default implementation)
├── MessageListDataSource.kt
├── MessageListDataSourceImpl.kt
├── ...
2.1 All DataSource Types
| DataSource | Implementation | What it provides |
|---|---|---|
CallButtonsDataSource | CallButtonsDataSourceImpl | Call button actions |
CallLogsDataSource | CallLogsDataSourceImpl | Call history fetching |
CollaborativeDataSource | CollaborativeDataSourceImpl | Document/whiteboard data |
ConversationListDataSource | ConversationListDataSourceImpl | Conversation list fetching |
GroupMembersDataSource | GroupMembersDataSourceImpl | Group member operations |
GroupsDataSource | GroupsDataSourceImpl | Group list fetching |
MessageComposerDataSource | MessageComposerDataSourceImpl | Composer actions/attachments |
MessageHeaderDataSource | MessageHeaderDataSourceImpl | Header data (name, status) |
MessageInformationDataSource | MessageInformationDataSourceImpl | Read receipts, delivery info |
MessageListDataSource | MessageListDataSourceImpl | Message fetching/pagination |
PollDataSource | PollDataSourceImpl | Poll creation/voting |
ReactionListDataSource | ReactionListDataSourceImpl | Reaction data |
SearchDataSource | SearchDataSourceImpl | Global search |
StickerDataSource | StickerDataSourceImpl | Sticker fetching |
UsersDataSource | UsersDataSourceImpl | User list fetching |
2.2 Additional DataSource
| File | Purpose |
|---|---|
MessageReceiptEventListener.kt | Listens for receipt events at the data layer |
3. Repository Pattern
Repositories in core/data/repository/ implement domain interfaces from core/domain/repository/:
core/data/repository/
├── CallButtonsRepositoryImpl.kt
├── CallLogsRepositoryImpl.kt
├── ConversationListRepositoryImpl.kt
├── GroupMembersRepositoryImpl.kt
├── GroupsRepositoryImpl.kt
├── MessageComposerRepositoryImpl.kt
├── MessageHeaderRepositoryImpl.kt
├── MessageInformationRepositoryImpl.kt
├── MessageListRepositoryImpl.kt
├── PollRepositoryImpl.kt
├── ReactionListRepositoryImpl.kt
├── SearchRepositoryImpl.kt
├── StickerRepositoryImpl.kt
├── UsersRepositoryImpl.kt
Each repository wraps a DataSource and adds business logic, caching, or transformation.
4. ViewModel Layer
ViewModels in core/viewmodel/ consume repositories and expose UI state:
// Example: CometChatConversationsViewModel
// - Injected via CometChatConversationsViewModelFactory
// - Exposes StateFlow<ConversationListUIState>
// - Calls ConversationListRepositoryImpl internally
ViewModel factories in core/factory/ handle dependency injection:
| Factory | ViewModel |
|---|---|
CometChatConversationsViewModelFactory | CometChatConversationsViewModel |
CometChatMessageListViewModelFactory | CometChatMessageListViewModel |
CometChatGroupsViewModelFactory | CometChatGroupsViewModel |
CometChatUsersViewModelFactory | CometChatUsersViewModel |
CometChatCallLogsViewModelFactory | CometChatCallLogsViewModel |
CometChatMessageComposerViewModelFactory | CometChatMessageComposerViewModel |
CometChatMessageHeaderViewModelFactory | CometChatMessageHeaderViewModel |
CometChatGroupMembersViewModelFactory | CometChatGroupMembersViewModel |
CometChatMessageInformationViewModelFactory | CometChatMessageInformationViewModel |
CometChatReactionListViewModelFactory | CometChatReactionListViewModel |
CometChatSearchViewModelFactory | CometChatSearchViewModel |
CometChatCallButtonsViewModelFactory | CometChatCallButtonsViewModel |
CometChatCreatePollViewModelFactory | CometChatCreatePollViewModel |
CometChatThreadHeaderViewModelFactory | CometChatThreadHeaderViewModel |
CometChatStickerKeyboardViewModelFactory | CometChatStickerKeyboardViewModel |
CometChatIncomingCallViewModelFactory | CometChatIncomingCallViewModel |
CometChatOutgoingCallViewModelFactory | CometChatOutgoingCallViewModel |
CometChatAIAssistantChatHistoryViewModelFactory | CometChatAIAssistantChatHistoryViewModel |
5. UI State Classes
Each ViewModel exposes a sealed UI state from core/state/:
| State Class | Used By |
|---|---|
CallLogsUIState | Call logs |
MessageListUIState | Message list |
GroupsUIState | Groups list |
UsersUIState | Users list |
GroupMembersUIState | Group members |
MessageComposerUIState | Composer |
MessageHeaderUIState | Header |
MessageInformationUIState | Message info |
ReactionListUIState | Reactions |
SearchUIState | Search |
CallButtonsUIState | Call buttons |
CreatePollUIState | Poll creation |
ThreadHeaderUIState | Thread header |
StickerKeyboardUIState | Sticker keyboard |
IncomingCallUIState | Incoming call |
OutgoingCallUIState | Outgoing call |
ChatHistoryUIState | AI chat history |
ConversationStarterUIState | AI conversation starter |
ConversationSummaryUIState | AI conversation summary |
SmartRepliesUIState | AI smart replies |
DeleteState | Delete operations |
UIState | Base UI state |
6. Data Flow
User Action → Component → ViewModel → Repository → DataSource → CometChat SDK
↓
UI Update ← Component ← ViewModel ← StateFlow ← Repository ← SDK Response
Hard rules
- DataSources are the DATA layer — they fetch and mutate data. Do NOT confuse with BubbleFactory which is the UI rendering layer
- The v5
DataSourcedecorator /ChatConfiguratorpattern for bubble customization does NOT exist in v6 — use BubbleFactory instead (seecometchat-*-customization) - ViewModels are shared across both UI stacks (Kotlin Views and Compose) — they live in
chatuikit-core - Always use the provided ViewModel factories — do not instantiate ViewModels directly
Signals
- GitHub stars
- 105
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
cometchat-android-v6-extensions- Source
- github.com/cometchat/cometchat-skills