Enable messaging

  1. Get the recent chat list, this API will return a maximum of three recent chats, as follows:
PTChatService.getInstance().getRecentChats(new ProtoApiCallback<List<Chat>>() {
    @Override
    public void onComplete(List<Chat> chats) {
        if (chats != null) {
            Log.d(TAG, "get recent chats");
            //do something
        }
    }

    @Override
    public void onError(String errorMessage) {
        Log.e(TAG, "get recent chat: " + errorMessage);
    }
});
  1. Create new chats:
PTChatService.getInstance().createNewChat(new ProtoApiCallback<Chat>() {
    @Override
    public void onComplete(@Nullable Chat chat) {
        if (chat != null) {
            //do something
        }
    }

    @Override
    public void onError(String errorMessage) {

    }
});
  1. Load all previous messages in a chat:
PTChatService.getInstance().getMessages(chatId, new ProtoApiCallback<List<Message>>() {
    @Override
    public void onComplete(@Nullable List<Message> messages) {
        if (messages != null) {
            // do something
        }
    }

    @Override
    public void onError(String errorMessage) {

    }
});
  1. Send a new message in a chat:
PTChatService.getInstance().sendMessage(chatId, message, new ProtoApiCallback<Message>() {
    @Override
    public void onComplete(@Nullable Message message) {
        if (message != null) {
            // do something
        }
    }

    @Override
    public void onError(String errorMessage) {

    }
});
  1. Receive messages in your app by implementing PTChatMessageListener interface in your activity/fragment class:
public class MyActivity extends AppCompatActivity implements PTChatService.PTChatMessageListener {
        // your activity code
    }
  • Register and unregister your activity/fragment class to listen to this listener:
@Override
public void onCreate() {
    super.onCreate();
    PTChatService.getInstance().registerMessageListener(this);
}

@Override
public void onDestroy() {
    super.onDestroy();
    PTChatService.getInstance().unregisterMessageListener(this);
}
  • By overriding the method onMessageReceived, you can perform actions based on the received Message object:
@Override
public void onMessageReceived(@Nullable Message message) {
    if (message != null) {
        Log.e(TAG, "onMessageReceived: " + message.getText());
    }
}

What’s Next