Releases: sendbird/sendbird-chat-sdk-android
Releases · sendbird/sendbird-chat-sdk-android
4.28.0
Features
-
Added support for managing context objects for AI Agent in
GroupChannel
GroupChannel.updateContext(aiAgentId: String, contextMap: Map<String, String>, handler: AIAgentContextHandler?)
GroupChannel.patchContext(aiAgentId: String, contextMap: Map<String, String>, handler: AIAgentContextHandler?)
GroupChannel.getContextObject(aiAgentId: String, handler: AIAgentContextHandler?)
-
Added AI Agent group channel query APIs to
SendbirdChat.AIAgent
createMyGroupChannelListQuery()
getMyGroupChannelChangeLogsByTimestamp()
getMyGroupChannelChangeLogsByToken()
getUnreadMessageCount()
Improvements
- Improved
SendbirdChat.init()
to handle multiple synchronous calls more reliably
4.27.3
Improvements
- Fixed an issue where
GroupChannelCollection.loadMore()
callback was not called in certain cases due to inaccurate filtering logic withGroupChannelListQuery
.
4.27.2
Features
- Added
knownActiveChannelUrl: String
toMessengerSettingsParams
for AI Agent - Added new
GroupChannelHandler
events:- Added
GroupChannelHandler.onUserMarkedRead(channel: GroupChannel, userIds: List<String>)
andGroupChannelHandler.onUserMarkedUnread(channel: GroupChannel, userIds: List<String>)
. - Added
EVENT_USER_MARKED_READ
andEVENT_USER_MARKED_UNREAD
event sources toCollectionEventSource
. - Added
OnUserMarkedRead(userIds: List<String>)
andOnUserMarkedUnread(userIds: List<String>)
toEventDetail
. - Deprecated
GroupChannelHandler.onReadStatusUpdated(channel: GroupChannel)
.
- Added
Improvements
- Fixed an issue where
GroupChannelCollection.loadMore()
did not fetch all available channels in certain cases.
4.27.1
Improvements
- Fixed an issue where some channels were not being received when fetching changes to channels.
4.27.0
Features
-
AI Agent/Desk Channel Filtering
- Added
AIAgentChannelFilter
andDeskChannelFilter
enums to support filtering of AI Agent and Desk channels in GroupChannel queries (INCLUDE
/EXCLUDE
options). - Added
aiAgentChannelFilter
anddeskChannelFilter
properties toGroupChannelListQueryParams
,GroupChannelListQuery
, andGroupChannelChangeLogsParams
. - Internal APIs and query logic were updated to consistently pass and apply these filters.
- Added
-
New Channel Properties
- Added
isAIAgent: Boolean
andisDesk: Boolean
properties toGroupChannel
to indicate whether a channel is an AI Agent or Desk channel.
- Added
Example
// Example: Filtering AI Agent/Desk channels
val params = GroupChannelListQueryParams().apply {
aiAgentChannelFilter = AIAgentChannelFilter.EXCLUDE
deskChannelFilter = DeskChannelFilter.EXCLUDE
}
val query = SendbirdChat.createGroupChannelListQuery(params)
// Example: Using new properties on GroupChannel
if (channel.isAIAgent) {
// Handle AI Agent channel
}
if (channel.isDesk) {
// Handle Desk channel
}
4.26.0
Feature
- Added
markAsUnread(message: BaseMessage)
toGroupChannel
. This new feature changes the read status of messages in the channel tounread
, starting from the specified message.
groupChannel.markAsUnread(message, null)
SendbirdChat.addChannelHandler(
UNIQUE_CHANNEL_HANDLER_ID,
object : GroupChannelHandler() {
override fun onMessageReceived(channel: BaseChannel, message: BaseMessage) {}
override fun onChannelChanged(channel: BaseChannel) {
// broadcast when the channel's read status changes
}
override fun onReadStatusUpdated(channel: GroupChannel) {
// broadcast when another member's read status in the channel changes
}
}
)
SendbirdChat.addUserEventHandler(
UNIQUE_USER_EVENT_HANDLER_ID,
object : UserEventHandler() {
override fun onFriendsDiscovered(users: List<User>) {
}
override fun onTotalUnreadMessageCountChanged(unreadMessageCount: UnreadMessageCount) {
// broadcast when the channel's total unread message count changes
}
}
)
AI Agent support is now available natively in the Chat SDK 🎉
You can now enhance your chat with smart AI-driven interactions without separate integration.
Includes conversation list, message templates, CSAT, agent handoff, and more — fully embedded in the SDK.
-
GroupChannel
- Added
submitCSAT(params: CSATSubmitParams, handler: SubmitCSATHandler?)
: Submit a CSAT (Customer Satisfaction) rating for a conversation. - Added
markConversationAsHandoff(handler: MarkConversationAsHandoffHandler?)
: Mark a conversation as handed off to a human agent.
- Added
-
SendbirdChat.AIAgent
- Added
requestMessengerSettings(params: MessengerSettingsParams, handler: MessengerSettingsHandler?)
: Fetch settings such as startup options and UI preferences for the AI agent. - Added
createConversationListQuery(params: ConversationListQueryParams): ConversationListQuery
: Create a query to retrieve the user's AI agent conversation list. - Added
getMessageTemplateList(params: AIAgentMessageTemplateListParams, handler: AIAgentMessageTemplatesResultHandler?)
: Fetch a list of available AI message templates for UI rendering.
- Added
-
Etc
- Added
AI_AGENT
enum value inSendbirdProduct
for analytics. - Added
custom-api-host
field inInitParams
to allow using a custom API host endpoint.
- Added
Improvements
- FileMessage
- Now supports sending both file and message simultaneously.
FileMessageCreateParams().apply {
message = "description of file"
}
4.25.0
Improvements
- The Chat SDK no longer includes
Conscrypt
by default. If your app targets Android 9 (Pie, API level 28) or lower and you want to enable TLS 1.3, you need to manually add theConscrypt
dependency as shown below. Android 10 and above natively support TLS 1.3, so this step is only necessary for older OS versions. Even if you don’t add theConscrypt
dependency, the SDK will still work using TLS 1.2 without any functional issues. Once the dependency is added, the SDK will automatically detect and useConscrypt
—no additional code is needed.
dependencies {
implementation("org.conscrypt:conscrypt-android:2.5.2")
}
4.24.2
Improvements
- Fixed a bug where calling
GroupChannel.markAsRead()
too frequently within a short latency period caused ackTimeout error.
4.24.1
Improvements
Fixed a bug that parts of the local cache data were reset after calling connect()
or authenticate()
. This fix improves local cache performance and messages loading.
4.24.0
Features
- Added
GroupChannel.messageDeletionTimestamp
representing the message deletion timestamp from the message archive.
Improvements
- Fixed a duplicated module namespace warning.
- Added
AuthTokenType
- Added authTokenType parameter to
authenticate()
(Default Value: AuthTokenType.SESSION_TOKEN)
// using AccessToken
SendbirdChat.authenticate(userId: USER_ID, authToken: ACCESS_TOKEN, authTokenType: AuthTokenType.ACCESS_TOKEN)
// using SessionToken
SendbirdChat.authenticate(userId: USER_ID, authToken: SESSION_TOKEN)
SendbirdChat.authenticate(userId: USER_ID, authToken: SESSION_TOKEN, authTokenType: AuthTokenType.SESSION_TOKEN)