GroupChannel

Represents a group channel.

Types

Link copied to clipboard
object Companion
Link copied to clipboard

Properties

Link copied to clipboard

All locally cached metadata as a map. Cached metadata is updated under following circumstances:

Link copied to clipboard
Link copied to clipboard

The cover image URL.

Link copied to clipboard
open var createdAt: Long

The creation time of the channel in milliseconds.

Link copied to clipboard

The creator of this channel.

Link copied to clipboard

The custom type of the channel. You can set custom type of this channel by createChannel or updateChannel.

Link copied to clipboard

The channel data.

Link copied to clipboard

Indicates whether this channel includes any AI bots.

Link copied to clipboard

Indicates whether this channel includes any bots

Link copied to clipboard

The HiddenState of this channel.

Link copied to clipboard

My invitation timestamp.

Link copied to clipboard

The inviter of the current User to this channel.

Link copied to clipboard

Whether this channel requires access code to join. This value is valid only if this channel is a public GroupChannel.

Link copied to clipboard

Checks whether this channel is a broadcast GroupChannel.

Link copied to clipboard

Checks whether this channel is a chat notification GroupChannel.

Link copied to clipboard

Checks whether this channel is discoverable in the result of PublicGroupChannelListQuery. If it is false, it will not appear on the result of PublicGroupChannelListQuery.

Link copied to clipboard

Checks whether this channel is a distinct GroupChannel. For a distinct GroupChannel, later when you create GroupChannel with same User and isDistinct flag being true (refer to createChannel), the channel URL does not change, which means the messages between Users remain at the channel. If the channel is not distinct one, a new GroupChannel is created even though Users are same. As a result, you get a totally new channel URL (the old channel still remains), which means the Users start new conversation.

Link copied to clipboard

Whether the channel is ephemeral.

Link copied to clipboard

Checks whether this channel is an exclusive GroupChannel.

Link copied to clipboard

Whether the instance is FeedChannel type.

Link copied to clipboard

Whether the channel is frozen.

Link copied to clipboard

Whether the instance is GroupChannel type.

Link copied to clipboard

Checks whether this channel is hidden.

Link copied to clipboard

Whether the instance is OpenChannel type.

Link copied to clipboard

Checks whether this channel is a public GroupChannel.

Link copied to clipboard

Checks whether this channel is a super GroupChannel.

Link copied to clipboard

Weather the template label is enabled or not.

Link copied to clipboard

Whether one or more members are typing.

Link copied to clipboard

The timestamp when the current user joined.

Link copied to clipboard

The total joined member count for this channel.

Link copied to clipboard

The last message of the channel.

Link copied to clipboard
open override var lastPinnedMessage: BaseMessage?

The last message among channel's pinned messages.

Link copied to clipboard

The total member count for this channel.

Link copied to clipboard

Member list for this channel.

Link copied to clipboard

The local timestamp of when this channel has been used in a MessageCollection.

Link copied to clipboard

This property is set when resetMyHistory and hide is called.

Link copied to clipboard

Checks whether unread message count is enabled for this channel. This count preference can be set by setMyCountPreference.

Link copied to clipboard

Current user's last read receipt timestamp in channel.

Link copied to clipboard

My member state.

Link copied to clipboard

My muted state in this channel.

Link copied to clipboard

My push trigger option. The push trigger setting can be updated by setMyPushTriggerOption.

Link copied to clipboard

My Role in this channel.

Link copied to clipboard
open var name: String

The topic or name of the channel.

Link copied to clipboard
open override var pinnedMessageIds: List<Long>

The pinned message ids of the channel.

Link copied to clipboard

The typing user list.

Link copied to clipboard

The unread mention count for this channel for the current User.

Link copied to clipboard

The unread message count for this channel for the current User.

Link copied to clipboard
open var url: String

The unique channel URL.

Functions

Link copied to clipboard
fun acceptInvitation(accessCode: String?, handler: CompletionHandler?)

Accepts the invitation sent to the current User. After the acceptance, the User will be joined to this GroupChannel.

Link copied to clipboard

Adds message meta array values.

Link copied to clipboard

Add operators to the channel. See [

Link copied to clipboard
fun addPollOption(pollId: Long, optionText: String, handler: PollHandler?)

Adds an option with optionText to this poll. Once added successfully, a non-null Poll instance will be passed to the PollHandler.

Link copied to clipboard
fun addReaction(message: BaseMessage, key: String, handler: ReactionHandler?)

Adds Reaction.

Link copied to clipboard
fun banUser(user: User, description: String?, seconds: Int, handler: CompletionHandler?)
fun banUser(userId: String, description: String?, seconds: Int, handler: CompletionHandler?)

Bans a member. Operators can ban members from this channel. Banned member is kicked out of this channel and cannot enter during the specified seconds. If you want to ban the user indefinitely, pass -1 to seconds as the argument.

Link copied to clipboard

Cancels an ongoing FileMessage upload.

Link copied to clipboard
fun cancelScheduledMessage(scheduledMessageId: Long, handler: CompletionHandler?)

Cancels a scheduled message with scheduledMessageId.

Link copied to clipboard
Link copied to clipboard
fun closePoll(pollId: Long, handler: PollHandler?)

Closes this poll. Once closed successfully, a non-null Poll instance will be passed to the handler.

Link copied to clipboard
fun copyFileMessage(targetChannel: BaseChannel, fileMessage: FileMessage, handler: FileMessageHandler?): FileMessage?

Copies a file message from this channel to the target channel.

Link copied to clipboard

This is a function that copies a MultipleFilesMessage to another channel.

Link copied to clipboard
fun copyUserMessage(targetChannel: BaseChannel, userMessage: UserMessage, handler: UserMessageHandler?): UserMessage?

Copies a user message from this channel to the target channel.

Link copied to clipboard

Creates a query instance to get the banned user list from this channel.

Link copied to clipboard

Creates a query instance to get members.

Link copied to clipboard
fun createMessageMetaArrayKeys(message: BaseMessage, metaArrayKeys: List<String>, handler: BaseMessageHandler?)

Creates message meta array keys.

Link copied to clipboard
fun createMetaCounters(metaCounterMap: Map<String, Int>, handler: MetaCounterHandler?)

Creates meta counters. This can be used to customize the channel.

Link copied to clipboard
fun createMetaData(metaDataMap: Map<String, String>, handler: MetaDataHandler?)

Creates meta data. This can be used to customize the channel.

Link copied to clipboard
fun createMutedUserListQuery(limit: Int = QUERY_DEFAULT_LIMIT): MutedUserListQuery

Creates a query instance to get the muted user (online and offline both) list of this channel.

Link copied to clipboard
fun createOperatorListQuery(limit: Int = QUERY_DEFAULT_LIMIT): OperatorListQuery

Creates a query instance to get the operator list from this channel.

Link copied to clipboard
fun createPollListQuery(limit: Int = QUERY_DEFAULT_LIMIT): PollListQuery

Creates a query instance to get the poll list from this channel.

Link copied to clipboard
fun createPollVoterListQuery(pollId: Long, pollOptionId: Long, limit: Int = QUERY_DEFAULT_LIMIT): PollVoterListQuery

Creates a query instance to get the voters of a poll option.

Link copied to clipboard

Creates previous message list query for this channel.

Link copied to clipboard

Creates a file message to be sent at the specified time.

Link copied to clipboard

Creates a user message to be sent at the specified time.

Link copied to clipboard

Declines the invitation sent to the current User.

Link copied to clipboard
fun decreaseMetaCounters(metaCounterMap: Map<String, Int>, handler: MetaCounterHandler?)

Decreases meta counters. This decreases atomically the keyed meta counter by the specified value.

Link copied to clipboard
fun delete(handler: CompletionHandler?)

Deletes this GroupChannel. Note that only operators of a channel are able to delete it or else, an error will be returned to the handler.

Link copied to clipboard

Deletes all meta counters.

Link copied to clipboard

Deletes all meta data.

Link copied to clipboard

Deletes a message.

fun deleteMessage(messageId: Long, handler: CompletionHandler?)

Deletes a message with message ID. To delete message in OpenChannel with ephemeral mode, use deleteMessage with BaseMessage object instead.

Link copied to clipboard
fun deleteMessageMetaArrayKeys(message: BaseMessage, metaArrayKeys: List<String>, handler: BaseMessageHandler?)

Deletes message meta array keys.

Link copied to clipboard

Deletes a meta counter.

Link copied to clipboard

Deletes a meta data.

Link copied to clipboard
fun deletePoll(pollId: Long, handler: CompletionHandler?)

Deletes this poll. Once deleted successfully, a null will be passed to the handler as the error.

Link copied to clipboard
fun deletePollOption(pollId: Long, pollOptionId: Long, handler: CompletionHandler?)

Deletes this poll option. Once deleted successfully, a null will be passed to the handler as error.

Link copied to clipboard
fun deleteReaction(message: BaseMessage, key: String, handler: ReactionHandler?)

Deletes Reaction.

Link copied to clipboard
fun endTyping()

Sends end typing event.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
fun freeze(handler: CompletionHandler?)

Freeze this GroupChannel.

Link copied to clipboard

Get all meta counters.

Link copied to clipboard

Gets all meta data.

Link copied to clipboard

Gets delivered time for all members in this GroupChannel.

Link copied to clipboard

Requests message change logs after given timestamp. The result is passed to handler.

Link copied to clipboard

Requests message change logs after given token. The result is passed to handler.

Link copied to clipboard

Retrieves previous or next messages based on the message ID in a specific channel. The result is passed to handler as list.

Link copied to clipboard

Retrieves previous or next messages based on the timestamp in a specific channel. The result is passed to handler as list.

Link copied to clipboard

Gets meta counters.

Link copied to clipboard

Gets meta data.

Link copied to clipboard

Gets my muted information in this channel.

Link copied to clipboard

Gets push trigger option of this channel. Refer to GroupChannel.PushTriggerOption. For details of push trigger option, refer to setMyPushTriggerOption

Link copied to clipboard

Requests poll change logs after given timestamp. The result is passed to handler.

Link copied to clipboard

Requests poll change logs after given token. The result is passed to handler.

Link copied to clipboard
fun getReadMembers(message: BaseMessage, includeAllMembers: Boolean): List<Member>

Gets the member list who have read the given message.

Link copied to clipboard

Gets ReadStatus for all members in this GroupChannel.

Link copied to clipboard

Returns the number of member's that haven't received the given message. This excludes the current logged-in User and the Sender of the message. It will always be zero if the passed on message is an AdminMessage, or if this channel is a super group channel.

Link copied to clipboard

Returns the number of member's that haven't read the given message. This excludes the current logged-in User and the Sender of the message. It will always be zero if the passed on message is an AdminMessage, or if this channel is a super group channel.

Link copied to clipboard
fun getUnreadMembers(message: BaseMessage, includeAllMembers: Boolean): List<Member>

Gets the member list who haven't read the given message.

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
fun hide(handler: CompletionHandler?)

Hides this channel from the current User's GroupChannel` list. When a new message is received from the channel, it appears again.

fun hide(hidePreviousMessages: Boolean, handler: CompletionHandler?)

Hides this channel from the current User's GroupChannel list. When a new message is received from the channel, it appears again.

fun hide(hidePreviousMessages: Boolean, allowAutoUnhide: Boolean, handler: CompletionHandler?)

Hides this channel from the current User's GroupChannel list.

Link copied to clipboard
fun increaseMetaCounters(metaCounterMap: Map<String, Int>, handler: MetaCounterHandler?)

Increases meta counters. This increases atomically the keyed meta counter by the specified value.

Link copied to clipboard
fun invite(userIds: List<String>, handler: CompletionHandler?)

Invites Users top this channel.

Link copied to clipboard
fun join(handler: CompletionHandler?)
fun join(accessCode: String?, handler: CompletionHandler?)

Joins this channel if this channel is public.

Link copied to clipboard
fun leave(shouldRemoveOperatorStatus: Boolean = false, handler: CompletionHandler?)

Leaves this channel.

Link copied to clipboard

Sends mark as read to this channel with a CompletionHandler.

Link copied to clipboard
fun muteUser(user: User, handler: CompletionHandler?)
fun muteUser(userId: String, handler: CompletionHandler?)

Mutes User. Muted User's messages are no longer delivered to current User.

fun muteUser(user: User, description: String?, seconds: Int, handler: CompletionHandler?)
fun muteUser(userId: String, description: String?, seconds: Int, handler: CompletionHandler?)

Mutes User. Muted User's messages are no longer delivered to current User. If you want to mute the user indefinitely, pass -1 to seconds as the argument. Or you can use muteUser.

Link copied to clipboard
open override fun pinMessage(messageId: Long, handler: CompletionHandler?)

Pins a message to the channel.

Link copied to clipboard
fun refresh(handler: CompletionHandler?)

Refreshes all the data of this channel.

Link copied to clipboard

Remove all operators from the channel. See https://docs.sendbird.com/platform/user_type#3_operator for the explanations on the operators.

Link copied to clipboard

Removes message meta array values.

Link copied to clipboard

Remove operators from the channel. See [

Link copied to clipboard
fun report(reportCategory: ReportCategory, reportDescription: String?, handler: CompletionHandler?)

Reports this channel of inappropriate activities.

Link copied to clipboard
fun reportMessage(message: BaseMessage, reportCategory: ReportCategory, reportDescription: String?, handler: CompletionHandler?)

Reports a malicious message.

Link copied to clipboard
fun reportUser(offendingUser: User, reportCategory: ReportCategory, reportDescription: String?, handler: CompletionHandler?)

Reports a user of suspicious activities.

Link copied to clipboard
fun resendFileMessage(fileMessage: FileMessage, file: File?, handler: FileMessageHandler?)

Resends a file with given file information.

Resends a file with given file information and gets callback for uploading progress.

Link copied to clipboard

Resends a file message. File information is used from the failed message.

Resends a failed user message.

fun resendMessage(fileMessage: FileMessage, file: File?, handler: FileMessageHandler?): FileMessage?

Resends a file with given file information.

Resends a file with given file information and gets callback for uploading progress.

fun resendMessage(multipleFilesMessage: MultipleFilesMessage, fileUploadHandler: FileUploadHandler? = null, multipleFilesMessageHandler: MultipleFilesMessageHandler?): MultipleFilesMessage?

Resends multiple files or file URLs as a single MultipleFilesMessage.

Link copied to clipboard
fun resendUserMessage(userMessage: UserMessage, handler: UserMessageHandler?)

Resends a failed user message.

Link copied to clipboard

Resets the chat history of this channel for the current User. After this call, the messages created before the call will not be loaded.

Link copied to clipboard

Sends a file with given file information.

Sends a file with given file information and gets callback for uploading progress.

Link copied to clipboard

Sends files with given files information. The maximum number of files is 20.

Sends files with given files information and gets callback for uploading progress. The maximum number of files is 20. This method handles FileMessageCreateParams only which have set binary file not URL.

Link copied to clipboard

This is a function that sends multiple files or file URLs as a single MultipleFilesMessage.

Link copied to clipboard
fun sendScheduledMessageNow(scheduledMessageId: Long, handler: CompletionHandler?)

Sends a scheduled message now.

Link copied to clipboard

Sends a user message.

Link copied to clipboard

Serializes the GroupChannel or OpenChannel instance. This byte array can be stored in the database in your application. The instance can be restored by buildFromSerializedData.

Link copied to clipboard

Sets my count preference for this channel.

Link copied to clipboard

Sets push trigger option of this channel. If channel's push trigger option is set to GroupChannel.PushTriggerOption.DEFAULT, it works according to the state of SendbirdChat.PushTriggerOption. If not, push messages will be triggered according to the state of GroupChannel.PushTriggerOption.

Link copied to clipboard

Sends start typing event.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
fun translateUserMessage(userMessage: UserMessage, targetLanguages: List<String>, handler: UserMessageHandler?)

Translates a user message.

Link copied to clipboard
fun unbanUser(user: User, handler: CompletionHandler?)
fun unbanUser(userId: String, handler: CompletionHandler?)

Unbans User. Operators can unban User who has been banned from this channel.

Link copied to clipboard

Unfreeze this GroupChannel.

Link copied to clipboard
fun unhide(handler: CompletionHandler?)

Unhides this channel from the current User's GroupChannel list.

Link copied to clipboard
fun unmuteUser(user: User, handler: CompletionHandler?)
fun unmuteUser(userId: String, handler: CompletionHandler?)

Unmutes User. Unmuted User's messages are again shown to current User.

Link copied to clipboard
open override fun unpinMessage(messageId: Long, handler: CompletionHandler?)

Removes the message from the channel's pinned messages.

Link copied to clipboard

Update this channel with GroupChannelUpdateParams.

Link copied to clipboard

Updates a FileMessage that was previously sent in the channel. Note that the file itself cannot be changed; only the fields stored within the message can be modified.

Link copied to clipboard
fun updateMetaCounters(metaCounterMap: Map<String, Int>, handler: MetaCounterHandler?)

Updates meta counters.

Link copied to clipboard
fun updateMetaData(metaDataMap: Map<String, String>, handler: MetaDataHandler?)

Updates meta data.

Link copied to clipboard
fun updatePoll(pollId: Long, params: PollUpdateParams, handler: PollHandler?)

Updates fields of this poll with given params. Once updated successfully, a non-null Poll instance will be passed to the handler.

Link copied to clipboard
fun updatePollOption(pollId: Long, pollOptionId: Long, optionText: String, handler: PollHandler?)

Updates optionText fields of this poll option. Once updated successfully, a non-null PollOption instance will be passed to the handler.

Link copied to clipboard
fun updateScheduledFileMessage(scheduledMessageId: Long, scheduledFileMessageUpdateParams: ScheduledFileMessageUpdateParams, handler: FileMessageHandler?)

Update a scheduled file message with scheduledMessageId and ScheduledFileMessageUpdateParams.

Link copied to clipboard
fun updateScheduledUserMessage(scheduledMessageId: Long, scheduledUserMessageUpdateParams: ScheduledUserMessageUpdateParams, handler: UserMessageHandler?)

Update a scheduled user message with scheduledMessageId and ScheduledUserMessageUpdateParams.

Link copied to clipboard

Updates a UserMessage that was previously sent in the channel.

Link copied to clipboard
fun votePoll(pollId: Long, pollOptionIds: List<Long>, handler: PollVoteEventHandler?)

Vote on pollOptionIds. This operation overrides previous vote actions, so to update previous vote, pass new pollOptionIds as parameter. To cancel votes, pass an empty list as pollOptionIds.