Skip to content

Releases: sendbird/sendbird-chat-sdk-ios

4.29.3

02 Sep 04:11
bc9929c
Compare
Choose a tag to compare

Improvements

  • Resolved a bug in the API call logic that could lead to a crash in certain edge cases

4.29.2

04 Aug 16:49
5bf7045
Compare
Choose a tag to compare

Improvements

  • Fixed completionHandler not being called in loadNextPage(completionHandler:) in PreviousMessageListQuery when the query is declared as a local variable
  • Fixed an issue where incorrect stat log were generated during WebSocket reconnection attempts

4.29.1

01 Aug 07:17
df13d06
Compare
Choose a tag to compare

Improvements

  • Improved stability in real-time event handling

4.29.0

23 Jul 17:49
88c7e26
Compare
Choose a tag to compare

New Features

  • Context Object Management API: Added new public methods for managing AI Agent context objects

    • GroupChannel.getContextObject(aiAgentId:completionHandler:) - Retrieve context object for an AI agent
    • GroupChannel.updateContext(_:aiAgentId:completionHandler:) - Replace entire context data (PUT operation)
    • GroupChannel.patchContext(_:aiAgentId:completionHandler:) - Merge context data with existing data (PATCH operation)
  • AIAgent: Added a new class for AI Agent channel list management

    • Added AIAgent.getGroupChannelCount(params:completionHandler:) for getting AI Agent channel count
    • Added AIAgent.getMyGroupChannelChangeLogs(token:params:completionHandler:) for AI Agent channel change logs
    • Added AIAgent.getMyGroupChannelChangeLogs(timestamp:params:completionHandler:) for AI Agent channel change logs by timestamp
    • Added AIAgent.getUnreadItemCount(params:completionHandler:) for AI Agent channel unread count
    • Added isAIAgent property to GroupChannel
    • Added isDesk property to GroupChannel
    • Added aiAgentChannelFilter and deskChannelFilter to GroupChannelListQueryParams
    • Added AIAgentGroupChannelListQueryParams for AI Agent channel list queries
    • Added AIAgentMyGroupChannelChangeLogsParams for AI Agent channel change logs
    • Added AIAgentUnreadItemCountParams for AI Agent unread count queries

4.28.1

21 Jul 04:02
7f5a646
Compare
Choose a tag to compare

Improvements

  • Fixed a potential deadlock issue that could occur during stat log processing
  • Improved stability of API request handling

4.28.0

25 Jun 07:18
7f5a646
Compare
Choose a tag to compare

New Interfaces

  • The below delegate methods have been added to GroupChannelDelegate

    • func channelDidMarkAsRead(_ channel: GroupChannel, userIds: [String]): called when a member in a Group Channel marks the channel as read
    • func channelDidMarkAsUnread(_ channel: GroupChannel, userIds: [String]): called when a member in a Group Channel marks a message as unread
  • Accordingly, the below GroupChannelDelegate method has been deprecated. The above new delegate methods replace the below method

    • func channelDidUpdateReadStatus(_ channel: GroupChannel, userIds: [String])
  • Added knownActiveChannelURL in MessengerSettingsParams for AIAgent channel reuse

4.27.3

20 Jun 02:12
f1f6aa7
Compare
Choose a tag to compare

Improvements

  • Fixed exposed database error message when running after initial installation
  • Resolved an issue where some channels were missing when loading the channel list using GroupChannelCollection
  • Fixed a crash that could occur during repeated WebSocket reconnection attempts

4.27.2

10 Jun 02:24
324720a
Compare
Choose a tag to compare

Improvements

  • Improved performance of real-time event handling to prevent possible delays

4.27.1

30 May 07:18
ee6ce2b
Compare
Choose a tag to compare

Improvements

  • Improved internal channel sync logic

4.27.0

26 May 03:02
a19be54
Compare
Choose a tag to compare

New Feature

  • Added markAsUnread(message: BaseMessage, completionHandler: SBErrorHandler?) to GroupChannel. This new feature changes the read status of messages in the channel to unread, starting from the specified message.
groupChannel.markAsUnread(message) { error in 
  // Handle error if any.
}

// Listen to updates in the current user's `myLastRead` of the channel in the below `GroupChannelDelegate`.
// Also use this delegate method to listen to updates in the read status by other channel members.
func channelDidUpdateReadStatus(_ channel: BaseChannel, userIds: [String]) {
    // ...
}

// Listen to updates in the current user's unread message count in the below `UserEventDelegate`.
func didUpdateTotalUnreadMessageCount(unreadMessageCount:) {
    let totalUnreadCount = unreadMessageCount.groupChannelCount 
}

New Interfaces

  • A new delegate method is added in GroupChannelDelegate.
    • This delegate method is called when the readReceipts of group channel is updated or when the current user's myLastRead of group channel is updated.
optional func channelDidUpdateReadStatus(_ channel: GroupChannel, userIds: [String])
  • The below GroupChannelDelegate is deprecated.
optional func channelDidUpdateReadStatus(_ channel: GroupChannel)
  • Added apiHost and wsHost parameters to the InitParams initialization method
    • This allows custom API and WebSocket hosts to be set during initialization.

Improvements

  • Added isAIAgent and isDesk flags to GroupChannel class to indicate whether a channel is an AI Agent or Desk channel.