CometChatUsers
+ CometChatGroups
), providing a seamless flow from your conversation list to a specific chat.
Overview
Users can tap the “+” icon in the conversation toolbar or bottom navigation to:- Browse and search CometChat users.
- Browse and search CometChat groups.
- Select a user or group to launch a chat.
Prerequisites
- Android project with CometChat UIKit Android v5 added in
build.gradle
. - CometChat credentials (App ID, Auth Key, Region) initialized.
- Navigation configured:
ConversationActivity
→NewChatActivity
→MessagesActivity
. - Internet and network permissions granted in
AndroidManifest.xml
.
Components
Component / Class | Role |
---|---|
ConversationActivity | Entry point; hosts “+” icon to launch New Chat screen. |
NewChatActivity | Displays tabbed Users/Groups lists. |
activity_new_chat.xml | Layout defining TabLayout , CometChatUsers , CometChatGroups . |
CometChatUsers | Lists and searches users; exposes setOnItemClick() . |
CometChatGroups | Lists and searches groups; exposes setOnItemClick() . |
UsersRequestBuilder | Configures user query filters (e.g. pagination). |
GroupsRequestBuilder | Configures group query filters (e.g. pagination). |
MessagesActivity | Chat UI for the selected user or group. |
activity_messages.xml | Layout for the chat header, message list, and composer. |
Integration Steps
1. Add Entry Point to New Chat
Show a “+” icon that launchesNewChatActivity
.
2. Implement New Chat Screen
Build a tabbed interface with Users and Groups lists.NewChatActivity.java
Layout reference:activity_new_chat.xml
Initializes tabs and loads CometChatUsers
/ CometChatGroups
fragments.
3. Handle User or Group Selection
LaunchMessagesActivity
when an item is tapped.
NewChatActivity.java
Routes selection to the chat interface with proper context.
4. Open the Messages Screen
Read intent extras and configure chat UI.MessagesActivity.java
Layout reference:activity_messages.xml
Binds the selected conversation context to the UI Kit components.
Implementation Flow
- User taps the “+” icon →
NewChatActivity
launches. - Tabs switch between Users and Groups.
- Selection triggers
MessagesActivity
with JSON payload. - Chat UI initializes with the passed user/group.
- Real-time messaging begins via the UI Kit.
Customization Options
- Styling: Apply
cometchatTheme
attributes toTabLayout
and list items. - Filtering: Customize
UsersRequestBuilder
/GroupsRequestBuilder
(e.g.,hideBlockedUsers(true)
). - Navigation: Replace default
MessagesActivity
with a custom screen. - Layout Tweaks: Use
android:fitsSystemWindows="true"
to avoid overlap.
Filtering & Edge Cases
- Empty States: Built-in empty views in
CometChatUsers
andCometChatGroups
. - Protected Groups: Prompt for password or disable selection.
- Network Errors: Observe error callbacks and show
Snackbar
messages.
Error Handling
- Default loading and error states are handled by the UI Kit.
- Attach observers on
CometChatUsers
/CometChatGroups
to handle failures. - Use Toast or Snackbar for custom error feedback.
Summary / Feature Matrix
Feature | Component / Method | File(s) |
---|---|---|
Launch New Chat screen | Menu item click in ConversationActivity | ConversationActivity.java |
Tabbed lists | TabLayout + ViewPager2 | activity_new_chat.xml |
List/search users | CometChatUsers + UsersRequestBuilder | activity_new_chat.xml |
List/search groups | CometChatGroups + GroupsRequestBuilder | activity_new_chat.xml |
Selection handling | setOnItemClick() | NewChatActivity.java |
Initialize chat | messageHeader , messageList , composer | MessagesActivity.java , activity_messages.xml |
Next Steps & Further Reading
Android Sample App (Java)
Explore this feature in the CometChat SampleApp:
GitHub → SampleApp
Android Sample App (Kotlin)
Explore this feature in the CometChat SampleApp:
GitHub → SampleApp