Skip to main content

Overview

The Conversations is a Component, That shows all conversations related to the currently logged-in user,

Usage

Integration

There are multiple ways in which you can use Conversations in your app. Layout File: To use Conversations in your `layout_activity.xml, use the following code snippet.
layout_activity.xml
  1. Activity: To use Conversations in your Activity, use the following code snippet.
YourActivity.java
  1. Fragment: To use Conversations in your Fragment, use the following code snippet.
YourFragment.java

Actions

Actions dictate how a component functions. They are divided into two types: Predefined and User-defined. You can override either type, allowing you to tailor the behavior of the component to fit your specific needs.
1. ItemClickListener
ItemClickListener is triggered when you click on a ListItem of the Conversations component. The ItemClickListener action doesn’t have a predefined behavior. You can override this action using the following code snippet.
YourActivity.java

2. OnBackPressListener
OnBackPressListener is triggered when you press the back button in the app bar. It has a predefined behavior; when clicked, it navigates to the previous activity. However, you can override this action using the following code snippet.
YourActivity.java

3. OnSelection
The OnSelection event is triggered upon the completion of a selection in SelectionMode. It does not have a default behavior. However, you can override its behavior using the following code snippet.
YourActivity.java

4. OnError
This action doesn’t change the behavior of the component but rather listens for any errors that occur in the Conversations component.
YourActivity.java

Filters

You can set ConversationsRequestBuilder in the Conversations Component to filter the conversation list. You can modify the builder as per your specific requirements with multiple options available to know more refer to ConversationRequestBuilder. You can set filters using the following parameters.
  1. Conversation Type: Filters on type of Conversation, User or Groups
  2. Limit: Number of conversations fetched in a single request.
  3. WithTags: Filter on fetching conversations containing tags
  4. Tags: Filters on specific Tag
  5. UserTags: Filters on specific User Tag
  6. GroupTags: Filters on specific Group Tag
YourActivity.java

Events

Events are emitted by a Component. By using event you can extend existing functionality. Being global events, they can be applied in Multiple Locations and are capable of being Added or Removed.
1. ConversationDeleted
This event will be emitted when the user deletes a conversation
Add Listener
Remove Listener

Customization

To fit your app’s design requirements, you can customize the appearance of the conversation component. We provide exposed methods that allow you to modify the experience and behavior according to your specific needs.

Style

Using Style you can customize the look and feel of the component in your app, These parameters typically control elements such as the color, size, shape, and fonts used within the component.
1. Conversation Style
You can set the ConversationsStyle to the Conversations Component to customize the styling.
List of properties exposed by ConversationStyle
2. Avatar Style
To apply customized styles to the Avatar component in the Conversations Component, you can use the following code snippet. For more information, visit Avatar Styles.
3. StatusIndicator Style
To apply customized styles to the Status Indicator component in the Conversations Component, you can use the following code snippet. For more information, visit Indicator Styles.
4. Date Style
To apply customized styles to the Date component in the Conversations Component, you can use the following code snippet. For more information, visit Date Styles.
5. Badge Style
To apply customized styles to the Badge component in the Conversations Component, you can use the following code snippet. For more information, visit Badge Styles.
6. LisItem Style
To apply customized styles to the ListItemStyle component in the Conversations Component, you can use the following code snippet. For more information, visit List Item Styles.

Functionality

These are a set of small functional customizations that allow you to fine-tune the overall experience of the component. With these, you can change text, set custom icons, and toggle the visibility of UI elements.
Below is a list of customizations along with corresponding code snippets

Advanced

For advanced-level customization, you can set custom views to the component. This lets you tailor each aspect of the component to fit your exact needs and application aesthetics. You can create and define your views, layouts, and UI elements and then incorporate those into the component.

SetListItemView

With this function, you can assign a custom ListItem to the Conversations Component.
Demonstration
You can create an item_converation_list.xml as a custom layout file. Which we will inflate in setListItemView()
In the method setListItemView you need to inflate the XML and initialize the views using the conversation objects.
YourActivity.java

SetTextFormatters

Assigns the list of text formatters. If the provided list is not null, it sets the list. Otherwise, it assigns the default text formatters retrieved from the data source. To configure the existing Mentions look and feel check out MentionsFormatter Guide Example

SetMenu

You can set the Custom Menu view to add more options to the Conversations component.
Demonstration
You can create a view_menu.xml as a custom view file. Which we will inflate and pass it to .setMenu.
view_menu.xml
You inflate the view and pass it to setMenu. You can get the child view reference and can handle click actions.

SetDatePattern

You can modify the date pattern to your requirement using .setDatePattern. This method accepts a function with a return type String. Inside the function, you can create your own pattern and return it as a String.
Demonstration

SetSubtitleView

You can customize the subtitle view for each conversation item to meet your requirements
Demonstration
You need to create subtitle_layout.xml and inflate it in the setSubtitleView apply function. Then, you can define individual actions depending on your requirements.
subtitle_layout.xml
YourActivity.java

SetTail

used to generate a custom trailing view for the conversation item, by default it shows the time sent of the last message and the unread messages count

SetOptions

You can set a List of ‘CometChatOption’ for a conversation item to add your custom actions to the conversation. These options will be visible when swiping any conversation item.
Demonstration
YourActivity.java

SetLoadingStateView

You can set a custom loader view using setLoadingStateView to match the loading view of your app.
Demonstration
We have added a ContentLoadingProgressBar to loading_view_layout.xml. You can choose any view you prefer. This view should be inflated and passed to the setLoadingStateView() method.
loading_view_layout.xml
YourActivity.java

SetErrorStateView

You can set a custom ErrorStateView using setEmptyStateView to match the error view of your app.
Demonstration
We have added an error view to error_state_view_layout.xml. You can choose any view you prefer. This view should be inflated and passed to the setErrorStateView() method.
error_state_view_layout.xml
YourActivity.java