Chat / Android
Chat Android v4
Chat Android
Chat
Android
Version 4
Home
/
Chat
/
Android
/
Message

Receive messages in an open channel

Users can receive messages from other participants through the onMessageReceived() method in the channel event handler. A BaseMessage object for each received message is one of the following message types.

Message typeDescription

UserMessage

A text message sent by a user

FileMessage

A binary file message sent by a user

AdminMessage

A text message sent by an admin through the Chat API

To register multiple concurrent handlers, pass a UNIQUE_HANDLER_ID argument as a unique identifier into the SendbirdChat.addChannelHandler() method.

SendbirdChat.addChannelHandler(
    UNIQUE_HANDLER_ID,
    object : OpenChannelHandler() {
        override fun onMessageReceived(channel: BaseChannel, message: BaseMessage) {
            // You can customize how to display the different types of messages with the result object in the message parameter.
            when (message) {
                is UserMessage -> {}
                is FileMessage -> {}
                is AdminMessage -> {}
            }
        }
    }
)

When the UI isn't valid anymore, remove the channel event handler.

SendbirdChat.removeChannelHandler(UNIQUE_HANDLER_ID);

Event handler for message threading

Once a reply is created or deleted from a thread, the onThreadInfoUpdated() event handler is invoked. The method returns a ThreadInfoUpdateEvent object that has the latest information about the thread. This object needs to be applied to the parent message object.

Note: Like other messages, when a reply is created in a channel, the onMessageReceived() method of the channel event handler in client apps is called.

override fun onThreadInfoUpdated(channel: BaseChannel, threadInfoUpdateEvent: ThreadInfoUpdateEvent) {
    // Look for a message that has threadInfoUpdateEvent.targetMessageId
    // Apply the event to the message.
    parentMessage.applyThreadInfoUpdateEvent(threadInfoUpdateEvent)
}

List of parameters

Parameter nameTypeDescription

channel

BaseChannel

Specifies the channel that has the message thread.

threadInfoUpdateEvent

ThreadInfoUpdateEvent

Specifies a ThreadInfoUpdateEvent object that has the latest information about the thread.