Skip to main content
Quick Reference for AI Agents & Developers
// Block users
val uids = listOf("UID1", "UID2", "UID3")
CometChat.blockUsers(uids, object : CometChat.CallbackListener<HashMap<String, String>>() {
    override fun onSuccess(resultMap: HashMap<String, String>) {
        // resultMap contains UID -> "success"/"fail"
    }
    override fun onError(e: CometChatException) { }
})

// Unblock users
CometChat.unblockUsers(uids, object : CometChat.CallbackListener<HashMap<String, String>>() {
    override fun onSuccess(resultMap: HashMap<String, String>) { }
    override fun onError(e: CometChatException) { }
})

// Get blocked users list
val request = BlockedUsersRequestBuilder()
    .setLimit(30)
    .setDirection(BlockedUsersRequest.DIRECTION_BLOCKED_BY_ME)
    .build()
request.fetchNext(object : CallbackListener<List<User>>() {
    override fun onSuccess(users: List<User>) { }
    override fun onError(e: CometChatException) { }
})
Available via: SDK | REST API | UI Kits

Block Users

As a logged-in user, how do I block a user from sending me messages? You can block users using the blockUsers() method. Once any user is blocked, all communication to and from that user will be completely blocked. You can block multiple users in a single operation. The blockUsers() method takes a List<String> as a parameter which holds the list of UIDs to be blocked.
List<String > uids = new ArrayList<>();
uids.add("UID1");
uids.add("UID2");
uids.add("UID3");
CometChat.blockUsers(uids, new CometChat.CallbackListener<HashMap<String, String>>() {
@Override
public void onSuccess(HashMap<String, String> resultMap) {
  // Handle block users success.
}

@Override
public void onError(CometChatException e) {
  // Handle block users failure
}
});
In the onSuccess() callback, you receive a HashMap which contains UIDs as the keys and success or fail as the value based on whether the block operation for the UID was successful or not.

Unblock Users

As a logged-in user, how do I unblock a user I previously blocked? You can unblock previously blocked users using the unblockUsers() method. You can unblock multiple users in a single operation. The unblockUsers() method takes a List<String> as a parameter which holds the list of UIDs to be unblocked.
List<String > uids = new ArrayList<>();
uids.add("UID1");
uids.add("UID2");
uids.add("UID3");
CometChat.unblockUsers(uids, new CometChat.CallbackListener<HashMap<String, String>>() {
@Override
public void onSuccess(HashMap<String, String> resultMap) {
  // Handle unblock users success.
}

@Override
public void onError(CometChatException e) {
  // Handle unblock users failure
}
});
In the onSuccess() callback, you receive a HashMap which contains UIDs as the keys and success or fail as the value based on whether the unblock operation for the UID was successful or not.

Get list of blocked users

As a logged-in user, how do I get a list of all users I’ve blocked? To fetch the list of blocked users, you can use the BlockedUsersRequest class. To create an object of the BlockedUsersRequest class, you need to use the BlockedUsersRequestBuilder class. The BlockedUsersRequestBuilder class allows you to set the parameters based on which the blocked users are to be fetched. The BlockedUsersRequestBuilder class allows you to set the following parameters:

Set Limit

This method sets the limit i.e. the number of blocked users that should be fetched in a single iteration.
BlockedUsersRequest blockedUsersRequest = new BlockedUsersRequest.BlockedUsersRequestBuilder()
.setLimit(10)
.build();

Set Search Keyword

This method allows you to set the search string based on which the blocked users are to be fetched.
BlockedUsersRequest blockedUsersRequest = new BlockedUsersRequest.BlockedUsersRequestBuilder()
.setSearchKeyword("abc")
.build();

Set Direction

  • CometChat.BlockedUsersRequest.DIRECTION.BLOCKED_BY_ME - Ensures that the list of blocked users only contains users blocked by the logged-in user.
  • CometChat.BlockedUsersRequest.DIRECTION.HAS_BLOCKED_ME - Ensures that the list of blocked users only contains users that have blocked the logged-in user.
  • CometChat.BlockedUsersRequest.DIRECTION.BOTH - Ensures the list of users includes both of the above cases. This is the default value for the direction variable if it is not set.
BlockedUsersRequest blockedUsersRequest = new BlockedUsersRequest.BlockedUsersRequestBuilder()
.setDirection(BlockedUsersRequest.DIRECTION_BLOCKED_BY_ME)
.build();
Finally, once all the parameters are set in the builder class, you need to call the build() method to get the object of the BlockedUsersRequest class. Once you have the object of the BlockedUsersRequest class, you need to call the fetchNext() method. Calling this method will return a list of User objects containing n number of blocked users where N is the limit set in the builder class.
BlockedUsersRequest blockedUsersRequest = new BlockedUsersRequest.BlockedUsersRequestBuilder().setLimit(10).build();

blockedUsersRequest.fetchNext(new CometChat.CallbackListener<List<User>>() {
@Override
public void onSuccess(List<User> users) {
  for(User user : users){
    Log.e(TAG, user.getUid());
  }
}

@Override
public void onError(CometChatException e) {
  Log.e(TAG, e.getMessage());
}
});

Best Practices

When blocking multiple users, use a single blockUsers() call with a list of UIDs instead of multiple individual calls. This reduces network overhead and improves performance.
The onSuccess() callback returns a HashMap with individual success/fail status for each UID. Always check the result map to handle cases where some users were blocked successfully while others failed.
After blocking a user, update your UI to reflect the change immediately. Remove blocked users from conversation lists and prevent message sending to blocked users on the client side for better UX.

Next Steps