cometchat-android-v5-features
Add features (calls, reactions, polls, file sharing, AI, etc.) to an already-integrated CometChat project. Routes to the right sub-flow based on feature type.
What it does
Companion skills:
cometchat-android-v5-corecovers initialization;cometchat-android-v5-customizationcovers deeper component customization;cometchat-android-v5-extensionscovers the extension architecture.
Purpose
This skill teaches how CometChat features are structured and what work is required to enable each one. Most features require zero code — they are either already built into the UI Kit, toggled via the cometchat apply-feature CLI (extensions + AI features), or activated by adding a dependency (calls).
Use this skill when
- "Add reactions to my chat"
- "Add video calling"
- "Enable polls"
- "Add file sharing"
- "Enable smart replies"
Do not use this skill when
- Customizing how a feature looks → use
cometchat-android-v5-customization - Setting up the initial integration → use
cometchat-android-v5-core
1. Feature types
| Type | What it means | Action required |
|---|---|---|
| Type 1 — Default | Built into the UI Kit at compile time | None — already there |
| Type 2a — Extension | Backend extension, pure boolean toggle | cometchat apply-feature <id> --app-id <X> (CLI hits dashboard API) |
| Type 2b — AI feature | Backend AI feature requiring an OpenAI key | cometchat apply-feature <id> --app-id <X> --openai-key sk-... |
| Type 2c — Dashboard-only | Third-party API key / multi-field config (Giphy, Stipop, Tenor, Chatwoot, Intercom) | Open https://app.cometchat.com → Extensions → configure |
| Type 3 — Package-install | Requires a separate SDK dependency | Add Gradle dependency |
| Type 4 — Component-toggle | Hide/show via setHide* / disable* methods on the relevant component | Call the setter on the component instance (see catalog) |
2. Type 1 — Default features (already enabled)
| Feature | Component | Notes |
|---|---|---|
| Text messaging | CometChatMessageComposer + CometChatMessageList | Core feature |
| Media sharing (image/video/audio/file) | CometChatMessageComposer | Attachment button |
| Read receipts | CometChatMessageList | setReceiptsVisibility() |
| Typing indicators | CometChatMessageList + CometChatConversations | Auto-enabled |
| User presence (online/offline) | CometChatConversations, CometChatUsers | Requires subscribePresenceForAllUsers() in init |
| Reactions | CometChatMessageList | Long-press message → react |
| Mentions (@user, @all) | CometChatMessageComposer | Type @ to trigger |
| Threaded conversations | CometChatMessageList | setReplyInThreadOptionVisibility() |
| Quoted replies | CometChatMessageList | Swipe to reply |
| Edit/delete messages | CometChatMessageList | Long-press options |
| Group chat | All components | Use setGroup() instead of setUser() |
| Report message | CometChatMessageList | Long-press → Report |
| Search | CometChatSearch | Standalone component |
3. Type 2 — Backend toggle features (no code needed)
Android projects don't run cometchat apply, so call the CLI in stateless mode with --app-id:
# Pure boolean extensions:
cometchat apply-feature polls --app-id <your-app-id>
cometchat apply-feature stickers --app-id <your-app-id>
# AI features (require OpenAI key):
cometchat apply-feature smart-replies --app-id <your-app-id> --openai-key sk-...
cometchat apply-feature conversation-summary --app-id <your-app-id>
cometchat apply-feature conversation-starter --app-id <your-app-id>
Requires cometchat auth login once per machine.
Extensions (CLI-toggleable — pure boolean):
- User Engagement: Polls, Message Translation, Reminders
- Collaboration: Collaborative Document, Collaborative Whiteboard
- Security: Disappearing Messages, E2E Encryption (Enterprise)
- Moderation: Profanity Filter, Image Moderation, Data Masking, Sentiment Analysis, XSS Filter
AI Features (CLI-toggleable — needs --openai-key):
Conversation Starter, Conversation Summary, Smart Reply
Dashboard-only (third-party config — open https://app.cometchat.com → Extensions): Stickers (Stipop), Giphy, Tenor, Chatwoot, Intercom — these require API keys / webhooks the user must enter manually.
4. Type 3 — Package-install features
Voice/Video Calling
Add the calling SDK:
implementation 'com.cometchat:calls-sdk-android:4.+'
The UI Kit auto-detects the calling SDK and enables call buttons in CometChatMessageHeader. No additional code needed — CometChatIncomingCall, CometChatOutgoingCall, and CometChatOngoingCall activate automatically.
Configure call buttons visibility:
CometChatMessageHeader header = findViewById(R.id.header);
header.setVoiceCallButtonVisibility(View.VISIBLE);
header.setVideoCallButtonVisibility(View.VISIBLE);
Hard rules
- Don't write code for Type 1 features. They're already there. Tell the user where to find them.
- Don't write code for Type 2a/2b features. Run
cometchat apply-feature <id> --app-id <X>(extension) or... --openai-key sk-...(ai-feature). The CLI flips the dashboard toggle via API. Never tell the user to "open the dashboard and toggle X" for an extension or ai-feature — that's what the CLI does. - For Type 2c (dashboard-only) features, the CLI cannot automate (third-party keys / multi-field config). Walk the user through the dashboard path returned by
cometchat apply-feature <id>'smanual-action-requiredresponse. - For Type 3 (calls), just add the Gradle dependency. The UI Kit handles the rest.
- Always run
cometchat apply-feature <id>first for extensions and AI features. If the user reports a "missing feature," it's almost always an unflipped toggle the CLI can fix in one call.
Capabilities
Install
Quality
deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 27 github stars · SKILL.md body (5,671 chars)