Skip to main content
Version: v4

All Real-time Listeners

CometChat provides 4 listeners viz.

  1. UserListener
  2. GroupListener
  3. MessageListener

User Listener

The UserListener class provides you with live events related to users. Below are the callback methods provided by the UserListener class.

MethodInformation
onUserOnline(User user)This method is triggered when a user comes online and is available to chat. The details of the user can be obtained from the user object received as the method parameter.
onUserOffline(User user)This method is triggered when a user goes offline. The details of the user can be obtained from the User object received as the parameter.

To add the UserListener, you need to use the addUserListener() method provided by the CometChat class.

class Class_Name with UserListener {
//CometChat.addUserListener("user_Listener_id", this);

void onUserOnline(User user) {

}


void onUserOffline(User user) {

}

}

where UNIQUE_LISTENER_ID is the unique identifier for the listener. Please make sure that no two listeners are added with the same listener id as this could lead to unexpected behavior resulting in loss of events.

Once the activity/fragment where the UserListener is declared is not in use, you need to remove the listener using the removeUserListener() method which takes the id of the listener to be removed as the parameter. We suggest you call this method in the onPause() method of the activity/fragment.

CometChat.removeUserListener(UNIQUE_LISTENER_ID)

Group Listener

The GroupListener class provides you with all the real-time events related to groups. Below are the callback methods provided by the GroupListener class.

MethodInformation
onGroupMemberJoined(Action action, User joinedUser, Group joinedGroup)This method is triggered when a user joins any group. All the members present in the group will receive this event.
onGroupMemberLeft(Action action, User leftUser, Group leftGroup)This method is triggered when a user who was a member of any group leaves the group. All the members of the group receive this event.
onGroupMemberKicked(Action action, User kickedUser, User kickedBy, Group kickedFrom)This method is triggered when a user is kicked from a group. All the members including the user receive this event
onGroupMemberBanned(Action action, User bannedUser, User bannedBy, Group bannedFrom)This method is triggered when a user is banned from a group. All the members including the user receive this event
onGroupMemberUnbanned(Action action, User unbannedUser, User unbannedBy, Group unbannedFrom)This method is triggered when a user is banned from a group. All the members of the group receive this event.
onGroupMemberScopeChanged(Action action, User updatedBy, User updatedUser, String scopeChangedTo, String scopeChangedFrom, Group group)This method is triggered when the scope of any Group Member has been changed. All the members that are a part of that group receive this event
onMemberAddedToGroup(Action action, User addedBy, User userAdded, Group addedTo)This method is triggered when a user is added to any group. All the members including the user himself receive this event.

To add the GroupListener, you need to use the addGroupListener() method provided by the CometChat class.

class Class_Name with GroupListener {
//CometChat.addGroupListener("UNIQUE_LISTENER_ID", this);


void onGroupMemberJoined(Action action, User joinedUser, Group joinedGroup) {

}


void onGroupMemberLeft(Action action, User leftUser, Group leftGroup) {

}


void onGroupMemberKicked(Action action, User kickedUser, User kickedBy, Group kickedFrom) {

}


void onGroupMemberBanned(Action action, User bannedUser, User bannedBy, Group bannedFrom) {

}


void onGroupMemberUnbanned(Action action, User unbannedUser, User unbannedBy, Group unbannedFrom) {

}


void onGroupMemberScopeChanged(Action action, User updatedBy, User updatedUser, String scopeChangedTo, String scopeChangedFrom, Group group) {

}


void onMemberAddedToGroup(Action action, User addedby, User userAdded, Group addedTo) {

}

}

where UNIQUE_LISTENER_ID is the unique identifier for the listener. Please make sure that no two listeners are added with the same listener id as this could lead to unexpected behavior resulting in loss of events.

Once the activity/fragment where the GroupListener is declared is not in use, you need to remove the listener using the removeGroupListener() method which takes the id of the listener to be removed as the parameter. We suggest you call this method in the onPause() method of the activity/fragment.

CometChat.removeGroupListener(UNIQUE_LISTENER_ID)

Message Listener

The MessageListener class provides you with live events related to messages. Below are the callback methods provided by the MessageListener class.

MethodInformation
onTextMessageReceived(TextMessage message)This event is triggered when a Text Message is received.
onMediaMessageReceived(MediaMessage message)This event is triggered when a Media Message is received.
onCustomMessageReceived(CustomMessage message)This event is triggered when a Custom Message is received.
onTypingStarted(TypingIndicator typingIndicator)This event is triggered when a user starts typing in a user/group conversation
onTypingEnded(TypingIndicator typingIndicator)This event is triggered when a user stops typing in a user/group conversation.
onMessagesDelivered(MessageReceipt messageReceipt)This event is triggered when a set of messages are marked as delivered for any particular conversation.
onMessagesRead(MessageReceipt messageReceipt)This event is triggered when a set of messages are marked as read for any particular conversation.
onMessageEdited(BaseMessage message)This method is triggered when a particular message has been edited in a user/group conversation.
onMessageDeleted(BaseMessage message)This event is triggered when a particular message is deleted in a user/group conversation.
onInteractiveMessageReceived(InteractiveMessage message)This event is triggered when an Interactive Message is received.
onInteractionGoalCompleted(InteractionReceipt receipt)This event is triggered when an interaction Goal is achieved.
onTransientMessageReceived(TransientMessage transientMessage)This event is triggered when a Transient Message is received.
onMessageReactionAdded(ReactionEvent reactionEvent)This event is triggered when a reaction is added to a message in a user/group conversation.
onMessageReactionRemoved(ReactionEvent reactionEvent)This event is triggered when a reaction is remove from a message in a user/group conversation.

To add the MessageListener, you need to use the addMessageListener() method provided by the CometChat class.

class Class_Name with MessageListener {

//CometChat.addMessageListener("listenerId", this);

void onTextMessageReceived(TextMessage textMessage) {

}


void onMediaMessageReceived(MediaMessage mediaMessage) {

}


void onCustomMessageReceived(CustomMessage customMessage) {

}


void onTypingStarted(TypingIndicator typingIndicator) {

}


void onTypingEnded(TypingIndicator typingIndicator) {

}



void onMessagesDelivered(MessageReceipt messageReceipt) {

}


void onMessagesRead(MessageReceipt messageReceipt) {

}


void onMessageEdited(BaseMessage message) {

}


void onMessageDeleted(BaseMessage message) {

}


void onInteractionGoalCompleted(InteractionReceipt receipt) {


}


void onInteractiveMessageReceived(InteractiveMessage message) {

}



public void onTransientMessageReceived(TransientMessage transientMessage) {

}


public void onMessageReactionAdded(ReactionEvent reactionEvent) {

}


public void onMessageReactionRemoved(ReactionEvent reactionEvent) {

}

}

where UNIQUE_LISTENER_ID is the unique identifier for the listener. Please make sure that no two listeners are added with the same listener id as this could lead to unexpected behavior resulting in loss of events.

Once the activity/fragment where the MessageListener is declared is not in use, you need to remove the listener using the removeMessageListener() method which takes the id of the listener to be removed as the parameter. We suggest you call this method in the onPause() method of the activity/fragment.