Channel

data class Channel(    var cid: String = "",     var id: String = "",     var type: String = "",     var name: String = "",     var image: String = "",     var watcherCount: Int = 0,     var frozen: Boolean = false,     var lastMessageAt: Date? = null,     var createdAt: Date? = null,     var deletedAt: Date? = null,     var updatedAt: Date? = null,     var syncStatus: SyncStatus = SyncStatus.COMPLETED,     var memberCount: Int = 0,     var messages: List<Message> = mutableListOf(),     var members: List<Member> = mutableListOf(),     var watchers: List<User> = mutableListOf(),     var read: List<ChannelUserRead> = mutableListOf(),     var config: Config = Config(),     var createdBy: User = User(),     var unreadCount: Int? = null,     val team: String = "",     var hidden: Boolean? = null,     var hiddenMessagesBefore: Date? = null,     val cooldown: Int = 0,     var pinnedMessages: List<Message> = mutableListOf(),     var ownCapabilities: Set<String> = setOf(),     var membership: Member? = null,     var extraData: MutableMap<String, Any> = mutableMapOf()) : CustomObject, ComparableFieldProvider

Channel is where conversations take place between two or more chat users. It contains a list of messages and have a list of the member users that are participating in the conversation.

Parameters

cid

The channel id in the format messaging:123.

id

Channel's unique ID.

type

Type of the channel.

name

Channel's name.

image

Channel's image.

watcherCount

Number of channel watchers.

frozen

Whether channel is frozen or not.

lastMessageAt

Date of the last message sent.

createdAt

Date/time of creation.

deletedAt

Date/time of deletion.

updatedAt

Date/time of the last update.

syncStatus

Local field used to store channel's sync status and retry requests if needed.

memberCount

Number of members in the channel.

messages

The list of channel's messages.

members

The list of channel's members.

watchers

The list of channel's watchers.

read

The list of read states.

config

Channel's configuration.

createdBy

Creator of the channel.

unreadCount

The number of unread messages for the current user.

team

Team the channel belongs to (multi-tenant only).

hidden

Whether this channel is hidden by current user or not.

hiddenMessagesBefore

Messages before this date are hidden from the user.

cooldown

Cooldown period after sending each message in seconds.

pinnedMessages

The list of pinned messages in the channel.

ownCapabilities

Channel's capabilities available for the current user. Note that the field is not provided in the events.

membership

Represents relationship of the current user to this channel.

extraData

A map of custom fields for the channel.

Constructors

Link copied to clipboard
fun Channel(    cid: String = "",     id: String = "",     type: String = "",     name: String = "",     image: String = "",     watcherCount: Int = 0,     frozen: Boolean = false,     lastMessageAt: Date? = null,     createdAt: Date? = null,     deletedAt: Date? = null,     updatedAt: Date? = null,     syncStatus: SyncStatus = SyncStatus.COMPLETED,     memberCount: Int = 0,     messages: List<Message> = mutableListOf(),     members: List<Member> = mutableListOf(),     watchers: List<User> = mutableListOf(),     read: List<ChannelUserRead> = mutableListOf(),     config: Config = Config(),     createdBy: User = User(),     unreadCount: Int? = null,     team: String = "",     hidden: Boolean? = null,     hiddenMessagesBefore: Date? = null,     cooldown: Int = 0,     pinnedMessages: List<Message> = mutableListOf(),     ownCapabilities: Set<String> = setOf(),     membership: Member? = null,     extraData: MutableMap<String, Any> = mutableMapOf())

Properties

Link copied to clipboard
var cid: String
Link copied to clipboard
var config: Config
Link copied to clipboard
val cooldown: Int = 0
Link copied to clipboard
var createdAt: Date? = null
Link copied to clipboard
var createdBy: User
Link copied to clipboard
var deletedAt: Date? = null
Link copied to clipboard
open override var extraData: MutableMap<String, Any>
Link copied to clipboard
var frozen: Boolean = false
Link copied to clipboard
val hasUnread: Boolean

Whether a channel contains unread messages or not.

Link copied to clipboard
var hidden: Boolean? = null
Link copied to clipboard
var hiddenMessagesBefore: Date? = null
Link copied to clipboard
var id: String
Link copied to clipboard
var image: String
Link copied to clipboard
var lastMessageAt: Date? = null
Link copied to clipboard
val lastUpdated: Date?

Determines the last updated date/time. Returns either lastMessageAt or createdAt.

Link copied to clipboard
var memberCount: Int = 0
Link copied to clipboard
var members: List<Member>
Link copied to clipboard
var membership: Member? = null
Link copied to clipboard
var messages: List<Message>
Link copied to clipboard
var name: String
Link copied to clipboard
var ownCapabilities: Set<String>
Link copied to clipboard
var pinnedMessages: List<Message>
Link copied to clipboard
var read: List<ChannelUserRead>
Link copied to clipboard
var syncStatus: SyncStatus
Link copied to clipboard
val team: String
Link copied to clipboard
var type: String
Link copied to clipboard
var unreadCount: Int? = null
Link copied to clipboard
var updatedAt: Date? = null
Link copied to clipboard
var watcherCount: Int = 0
Link copied to clipboard
var watchers: List<User>

Functions

Link copied to clipboard
open override fun getComparableField(fieldName: String): Comparable<*>?

Gets a comparable fields from a name.

Inherited functions

Link copied to clipboard
open fun <T> getExtraValue(key: String, default: T): T
Link copied to clipboard
open fun putExtraValue(key: String, value: Any)

Extensions

Link copied to clipboard
fun Channel.addMember(member: Member?): Channel

Adds member to the Channel.members and aligns Channel.memberCount.

Link copied to clipboard
fun Channel.addMembership(currentUserId: String?, member: Member?): Channel

Sets Channel.membership to member if currentUserId equals to member.user.id.

Link copied to clipboard
fun Channel.countUnreadMentionsForUser(user: User): Int

Counts messages in which user is mentioned. The method relies on the Channel.messages list and doesn't do any API call. Therefore, the count might be not reliable as it relies on the local data.

Link copied to clipboard
fun Channel.getUnreadMessagesCount(forUserId: String = ""): Int
Link copied to clipboard
fun Channel.getUsersExcludingCurrent(currentUser: User? = ChatClient.instance().getCurrentUser()): List<User>

Returns a list of users that are members of the channel excluding the currently logged in user.

Link copied to clipboard
fun Channel.incrementUnreadCount(currentUserId: String, lastMessageSeenDate: Date?)

Increments channel's unread for the specific user.

Link copied to clipboard
val Channel.initials: String
Link copied to clipboard
fun Channel.isAnonymousChannel(): Boolean
Link copied to clipboard
fun Channel.isMutedFor(user: User): Boolean

Checks if Channel is muted for user.

Link copied to clipboard
val Channel.lastMessage: Message?
Link copied to clipboard
fun Channel.removeMember(memberUserId: String?): Channel

Removes member from the Channel.members and aligns Channel.memberCount.

Link copied to clipboard
fun Channel.removeMembership(currentUserId: String?): Channel

Sets Channel.membership to null if currentUserId equals to membership.user.id.

Link copied to clipboard
fun Channel.updateLastMessage(message: Message)
Link copied to clipboard
fun Channel.updateMember(member: Member?): Channel

Updates Channel member.

Link copied to clipboard
fun Channel.updateMemberBanned(memberUserId: String?, banned: Boolean): Channel

Updates Member.banned property inside the Channel.members.

Link copied to clipboard
fun Channel.updateMembership(member: Member?): Channel

Sets Channel.membership to member if member.user.id equals to Channel.membership.user.id.

Link copied to clipboard
fun Channel.updateMembershipBanned(memberUserId: String?, banned: Boolean): Channel

Sets Channel.membership.banned to banned if memberUserId equals to membership.user.id.

Link copied to clipboard
fun Channel.updateReads(newRead: ChannelUserRead)
Link copied to clipboard
fun Channel.users(): List<User>

Returns all users including watchers of a channel that are associated with it.