cometchat-android-v5-theming — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cometchat-android-v5-theming (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ground truth:com.cometchat:chat-uikit-android:5.x(legacy/maintenance-only; +calls-sdk-android:5.x) — resolved AAR (javap) +ui-kit/android. Official docs: https://www.cometchat.com/docs/ui-kit/android/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-v5-corecovers initialization;cometchat-android-v5-componentsprovides the component catalog;cometchat-android-v5-customizationcovers deeper component-level overrides.
This skill teaches how to theme CometChat Android UI Kit v5 to match your app's design system. CometChat uses a combination of XML theme attributes, the CometChatTheme static class, and per-component style resources.
cometchat-android-v5-customizationcometchat-android-v5-featuresCometChat's visual identity is driven by XML theme attributes defined in attrs.xml files. Every CometChat* component reads these attributes from the current theme. To override: define the attributes in your app's theme.
CometChatTheme is a static utility class that provides programmatic access to theme colors. It reads from XML theme attributes and supports runtime overrides.
Key static methods:
| Method | Description |
|---|---|
setPrimaryColor(int) | Override primary color at runtime |
getPrimaryColor(Context) | Get current primary color |
getExtendedPrimaryColor50(Context) through getExtendedPrimaryColor900(Context) | Get extended primary color shades (auto-generated from primary) |
getBackgroundColor1(Context) | Primary background color |
getTextColorPrimary(Context) | Primary text color |
getTextColorSecondary(Context) | Secondary text color |
getIconTintHighlight(Context) | Highlighted icon tint |
getIconTintSecondary(Context) | Secondary icon tint |
Java:
CometChatTheme.setPrimaryColor(Color.parseColor("#6C63FF"));Kotlin:
CometChatTheme.setPrimaryColor(Color.parseColor("#6C63FF"))This must be called before any CometChat component is inflated. The extended color shades (50–900) are auto-generated by blending the primary color with white (light mode) or black (dark mode).
Override CometChat colors in your app's themes.xml:
<style name="AppTheme" parent="CometChatTheme.DayNight">
<!-- CometChat primary color -->
<item name="cometchatPrimaryColor">#6C63FF</item>
<!-- Background colors -->
<item name="cometchatBackgroundColor1">#FFFFFF</item>
<item name="cometchatBackgroundColor2">#F5F5F5</item>
<!-- Text colors -->
<item name="cometchatTextColorPrimary">#141414</item>
<item name="cometchatTextColorSecondary">#727272</item>
<!-- Extended primary shades (optional — auto-generated if not set) -->
<item name="cometchatExtendedPrimaryColor50">#F0EEFF</item>
<item name="cometchatExtendedPrimaryColor100">#D9D5FF</item>
</style>Each component has its own style attribute that can be overridden in your theme. The naming convention is cometchat<ComponentName>Style.
| Component | Style attribute | Example |
|---|---|---|
CometChatConversations | cometchatConversationsStyle | @style/CustomConversationsStyle |
CometChatMessageList | cometchatMessageListStyle | @style/CustomMessageListStyle |
CometChatMessageComposer | cometchatMessageComposerStyle | @style/CustomComposerStyle |
CometChatMessageHeader | cometchatMessageHeaderStyle | @style/CustomHeaderStyle |
CometChatUsers | cometchatUsersStyle | @style/CustomUsersStyle |
CometChatGroups | cometchatGroupsStyle | @style/CustomGroupsStyle |
CometChatAvatar | cometchatAvatarStyle | @style/CustomAvatarStyle |
CometChatBadge | cometchatBadgeStyle | @style/CustomBadgeStyle |
CometChatStatusIndicator | cometchatStatusIndicatorStyle | @style/CustomStatusStyle |
CometChatMessageReceipt | cometchatMessageReceiptStyle | @style/CustomReceiptStyle |
Every component exposes setter methods for colors, text appearances, and drawables:
Java:
CometChatConversations conversations = findViewById(R.id.conversations);
conversations.setBackgroundColor(Color.WHITE);
conversations.setTitleTextColor(Color.BLACK);
conversations.setTitleTextAppearance(R.style.MyTitleStyle);
conversations.setSeparatorColor(Color.LTGRAY);
conversations.setAvatarStyle(R.style.MyAvatarStyle);
conversations.setStatusIndicatorStyle(R.style.MyStatusStyle);CometChat respects Android's DayNight theme. Define separate values in values-night/themes.xml:
<!-- values/themes.xml (light) -->
<style name="AppTheme" parent="CometChatTheme.DayNight">
<item name="cometchatPrimaryColor">#6C63FF</item>
<item name="cometchatBackgroundColor1">#FFFFFF</item>
<item name="cometchatTextColorPrimary">#141414</item>
</style>
<!-- values-night/themes.xml (dark) -->
<style name="AppTheme" parent="CometChatTheme.DayNight">
<item name="cometchatPrimaryColor">#7B73FF</item>
<item name="cometchatBackgroundColor1">#1A1A2E</item>
<item name="cometchatTextColorPrimary">#E0E0E0</item>
</style>The CometChatTheme class auto-detects the current night mode and adjusts extended color shades accordingly.
CometChatTheme.setPrimaryColor() must be called before setContentView() or component inflation.DayNight theme pattern.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.