cometchat-android-v6-extensions

Turn on CometChat Dashboard extensions in an Android v6 app — stickers, polls, collaborative whiteboard and document, message translation, link preview, thumbnail generation, message shortcuts — and k

SKILL.md

GitHub

Ground truth: features.android-v6.json (the extension entries + their enablement) + catalog android-v6.json + the live page /ui-kit/android/extensions (the manual — 8 built-ins) and each extension's /fundamentals/* page. Verify symbols against the catalog; fetch details from docs; never invent an extension.

Companion skills (read first)

  • cometchat-android-v6-core — install, credentials, initFromSettings → login → render, the fetch map. Assumed here, never repeated.
  • cometchat-android-v6-features — the general feature-lookup skill; come here for the Dashboard-extension slice specifically.

Use this skill when

"enable stickers/polls/whiteboard/document/translation/link preview/thumbnails", "add message shortcuts", "which extensions work with the Android UI Kit?", "I enabled it in the Dashboard but nothing shows up".

Prerequisites & install

Same kit + initFromSettings → login as core. No Gradle dependency and (for the 7 auto-rendered ones) no client code — the UI Kit detects an enabled extension after init+login and renders it in the right component.

The 8 built-ins — enable in Dashboard, appears here

Extension Enable Where it appears once enabled
Stickers Dashboard → Extensions Composer (sticker keyboard → CometChatStickerKeyboard; sent as CometChatStickerBubble)
Polls Dashboard → Extensions Composer action sheet (CometChatCreatePoll; rendered as CometChatPollBubble)
Collaborative Whiteboard Dashboard → Extensions Composer action sheet; opens as a collaborative bubble in the list
Collaborative Document Dashboard → Extensions Composer action sheet; opens as a collaborative bubble in the list
Message Translation Dashboard → Extensions Message long-press/action sheet in CometChatMessageList
Link Preview Dashboard → Extensions Automatically inside message bubbles for URLs
Thumbnail Generation Dashboard → Extensions Automatically on image/video bubbles (smaller previews)
Profanity Filter Dashboard → Extensions Message bubbles (censored text) — ⚠️ LEGACY

Message Shortcuts is the one extension that is NOT zero-code: enable it in the Dashboard, then implement a shortcut formatter extending CometChatTextFormatter — build it from the docs recipe /ui-kit/android/shortcut-formatter-guide (→ cometchat-android-v6-{kotlin,compose}-customization for the formatter mechanism).

Enablement — the whole flow

  1. Ask which are already enabled — per-app Dashboard state is not readable from code; never assume OFF (and never re-suggest one that's already on).
  2. Enable in the CometChat Dashboard → your app → Extensions → the extension. That's the actual "installation".
  3. Re-login / restart the app — the kit picks extensions up at init+login; a session started before you toggled won't show it.
  4. Verify in the right place (table above). No code change, no rebuild, for the 7 auto-rendered ones.
  5. Only if the ask is styling the extension's UI → cometchat-android-v6-{kotlin,compose}-customization.

Deprecated / superseded — don't offer these

Profanity Filter is LEGACY: the extensions page still lists it, but its guide points at the legacy-docs archive. For new work steer to the Moderation product (features.android-v6.json → moderation, dashboard-configured rules + AI moderation) — say this plainly rather than wiring the legacy path. Anything not in the table above and not in features.android-v6.json does not exist for this kit: don't invent extensions (no "reactions extension" — reactions are core in v6; same for mentions).

Common pitfalls

Writing client code for an auto-rendered extension (never needed) · hand-rolling polls/stickers UI that the kit already renders · enabling in the Dashboard but not re-logging in · expecting an extension before init+login succeed · offering Profanity Filter for new work · treating reactions/mentions as extensions (they're core in v6) · assuming an extension enabled on one app applies to another (per-app setting).

Verify it works

No catalog/compile change is expected for the auto-rendered ones (nothing was emitted); for Message Shortcuts, compile (./gradlew :app:assembleDebug # in YOUR app (npm run verify:fences:android-v6 is a pack-repo gate)) and confirm the formatter is registered. On device, after enabling + re-login: the extension's entry point is present where the table says (composer action sheet / sticker keyboard / message action sheet / inside the bubble) and a sent artifact renders as its bubble type. Nothing showing ⇒ check init/login succeeded, then the Dashboard toggle for THIS app, then re-login — in that order.