CometChat Pro Documentation

You'll find comprehensive guides and documentation to help you start working with CometChat as quickly as possible. Let's jump right in!

Quick Start

Learn how to add CometChat to your Android app in minutes.

This guide demonstrates how to add chat to an Android application. Before you begin, we strongly recommend you read the Key Concepts guide.

I want to run a sample app

Import the app into Android Studio and follow the steps mentioned in the README.md file.

Download Java Chat App

Download Kotlin Chat App

View on Github

Get your Application Keys

Signup for CometChat and then:

  1. Create a new app
  2. Head over to the API Keys section and note the Auth Key, App ID & Region

📘

Minimum Requirements

  • Android API Level 21
  • Androidx Compatibility
  • Compile and Target SDK version 29
  • Build Tool Version 29

Add the CometChat Dependency

First, add the repository URL to the project level build.gradle file in the repositories block under the allprojects section.

allprojects {
  repositories {
    maven {
      url "https://dl.bintray.com/cometchat/pro"
    }
  }
}

Then, add CometChat to the app level build.gradle file in the dependencies section.

dependencies {
  implementation 'com.cometchat:pro-android-chat-sdk:2.0.7'
}

Finally, add the below lines android section of the app level gradle file

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Initialize CometChat

The init() method initializes the settings required for CometChat. We suggest calling the init() method on app startup, preferably in the onCreate() method of the Application class.

String appID = "APP_ID"; // Replace with your App ID
String region = "REGION"; // Replace with your App Region ("eu" or "us")

AppSettings appSettings=new AppSettings.AppSettingsBuilder().subscribePresenceForAllUsers().setRegion(region).build();

CometChat.init(this, appID,appSettings, new CometChat.CallbackListener<String>() {
  @Override
  public void onSuccess(String successMessage) {
    Log.d(TAG, "Initialization completed successfully");
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Initialization failed with exception: " + e.getMessage());
  }
});
val appID:String="APP_ID" // Replace with your App ID
val region:String="REGION" // Replace with your App Region ("eu" or "us")

val appSettings = AppSettings.AppSettingsBuilder().subscribePresenceForAllUsers().setRegion(region).build()  

CometChat.init(this,appID,appSettings, object : CometChat.CallbackListener<String>() {
 override fun onSuccess(p0: String?) {
    Log.d(TAG, "Initialization completed successfully")
  }

  override fun onError(p0: CometChatException?) {
    Log.d(TAG, "Initialization failed with exception: " + p0?.message)
  }
  
 })

Make sure you replace the APP_ID with your CometChat App ID and region with your App Region in the above code.

Register and Login your User

Once initialisation is successful, you will need to create a user.

To create users on the fly, you can use the createUser() method. This method takes an User object and the Auth Key as input parameters and returns the created User object if the request is successful.

String authKey = "AUTH_KEY"; // Replace with your App Auth Key
User user = new User();
user.setUid("user1"); // Replace with the UID for the user to be created
user.setName("Kevin"); // Replace with the name of the user

CometChat.createUser(user, authKey, new CometChat.CallbackListener<User>() {
  @Override
    public void onSuccess(User user) {
    Log.d("createUser", user.toString());
  }

  @Override
    public void onError(CometChatException e) {
    Log.e("createUser", e.getMessage());
  }
});
val authKey = "AUTH_KEY" // Replace with your App Auth Key
val user = User()
user.uid = "user1" // Replace with the UID for the user to be created
user.name = "Kevin" // Replace with the name of the user

CometChat.createUser(user, authKey, object : CometChat.CallbackListener<User>() {
  override fun onSuccess(user: User) {
    Log.d("createUser", user.toString()
  }

  override fun onError(e: CometChatException) {
    Log.e("createUser", e.message)
  }
})

Make sure that UID and name are specified as these are mandatory fields to create a user.

Once you have created the user successfully, you will need to log the user into CometChat using the login() method.

We recommend you call the CometChat login() method once your user logs into your app. The login() method needs to be called only once.

String UID = "user1"; // Replace with the UID of the user to login
String authKey = "AUTH_KEY"; // Replace with your App Auth Key

 if (CometChat.getLoggedInUser() == null) {
     CometChat.login(UID, authKey, new CometChat.CallbackListener<User>() {

      @Override
      public void onSuccess(User user) {
        Log.d(TAG, "Login Successful : " + user.toString());
  }

   @Override
    public void onError(CometChatException e) {
        Log.d(TAG, "Login failed with exception: " + e.getMessage());
   }
 });
 } else {
   // User already logged in
 }
val UID:String="user1" // Replace with the UID of the user to login
 val authKey:String="AUTH_KEY" // Replace with your App Auth Key

if (CometChat.getLoggedInUser() == null) {   
CometChat.login(UID,authKey, object : CometChat.CallbackListener<User>() {
     override fun onSuccess(p0: User?) {
         Log.d(TAG, "Login Successful : " + p0?.toString())        
      }

     override fun onError(p0: CometChatException?) {
         Log.d(TAG, "Login failed with exception: " +  p0?.message)        
      }

   })
}else{
   // User already logged in
 }

Make sure you replace the AUTH_KEY with your App Auth Key in the above code.

The login() method returns the User object containing all the information of the logged-in user.

🚧

UID can be alphanumeric with underscore and hyphen. Spaces, punctuation and other special characters are not allowed.

Add the UI Kit Library

To integrate the UI Kit, please follow the steps below:

  1. Clone the UI Kit Library from the android-chat-ui-kit repository or
  1. Import uikit module from the downloaded codebase by visiting the Module Settings in Android Studio. (View detailed steps in the Import UI Kit Library page)

🚧

Enable dataBinding

As the UI Kit uses dataBinding you must enable dataBinding

To configure your app to use data binding, add the dataBinding element to your build.gradle file in the app module, as shown in the following example:

android {
    ...
    dataBinding {
        enabled = true
    }
}
android {
    defaultConfig {
        manifestPlaceholders = [file_provider: "YOUR_PACKAGE_NAME"] 
        //add your application package.
    }
}

🚧

Add Theme.MaterialComponents

As UI Kit is using material components your app's theme should extend Theme.MaterialComponents. Follow the guide at Getting started with Material Components.

Make sure you add the below dependency to your app-level build.gradle file

dependencies {
  implementation 'com.google.android.material:material:1.2.0-alpha04'
}

The following is the list of Material Components themes you can use to get the latest component styles and theme-level attributes.

Theme.MaterialComponents
Theme.MaterialComponents.NoActionBar
Theme.MaterialComponents.Light
Theme.MaterialComponents.Light.NoActionBar
Theme.MaterialComponents.Light.DarkActionBar
Theme.MaterialComponents.DayNight
Theme.MaterialComponents.DayNight.NoActionBar
Theme.MaterialComponents.DayNight.DarkActionBar

Update your app theme to inherit from one of these themes, e.g.:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
    
    <!-- Customize your theme here. -->

    </style>

Launch UI Unified

UI Unified is a way to launch a fully working chat application using the UI Kit. UI Unified all UI Screens and UI Components working together to give the full experience of a chat application with minimal coding effort.

You can launch UI Unified after a successful login using CometChat. To use Unified UI you have to launch CometChatUnified Activity. Make sure to add the following code snippet in onSuccess of CometChat login.

startActivity(new Intent(YourActivity.this,CometChatUnified.class));

You can also use individual UI Screens or UI Components present in UI Kit.

Updated 23 days ago


Quick Start


Learn how to add CometChat to your Android app in minutes.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.