Overview
Blocking a user stops them from sending messages to the blocker. The CometChat UIKit handles most behaviors internally:- Composer Hidden: The message composer is hidden when chatting with a blocked user.
- Unblock Prompt: An “Unblock” button is displayed to reverse the block.
- Message Restrictions: Blocked users cannot send messages to the blocker.
Prerequisites
- Android Studio project with CometChat Android UI Kit v5 added to
build.gradle. - CometChat App ID, Auth Key, and Region configured and initialized.
<uses-permission android:name="android.permission.INTERNET"/>inAndroidManifest.xml.- Logged-in user via
CometChat.login(). - Existing one-on-one chat screen using
CometChatMessageListandCometChatMessageComposer.
Components
Integration Steps
1. Detect Block Status
Update UI when block state changes.MessagesActivity.java
Ensures the composer and unblock UI reflect the current block state.
2. Hide Composer & Show Unblock UI
Define layout elements and their visibility toggles.activity_messages.xml
Prepares the UI containers for dynamic show/hide operations.
3. Trigger Unblock Action
Call the unblock API and observe status updates.4. Trigger Block from Detail Screen
Allow blocking directly from a user’s profile.UserDetailActivity.java
Integrates block action into the profile menu, triggering the UI toggle via LiveData.
Implementation Flow
Customization Options
- Feedback UI: Show a Toast or Snackbar upon success/failure.
- Menu Icons/Text: Toggle icon and text dynamically after block/unblock.
- Disable History: Optionally gray out or hide past messages when blocked.
Filtering & Edge Cases
Error Handling
- Handle errors from
blockUsersandunblockUserscallbacks by showing alerts or retry prompts. - Ensure UI LiveData states revert on failure.
Group vs. User-Level Differences
Summary / Feature Matrix
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