Skip to content

Releases: sendbird/sendbird-chat-sdk-ios

v4.3.2

16 Feb 09:02
Compare
Choose a tag to compare
  • Fixed group channel querying with nickname filters (nicknameContainsFilter, nicknameExactMatchFilter, nicknameExactMatchFilter) to behave the same whether or not local caching is enabled

v4.3.1

15 Feb 11:01
Compare
Choose a tag to compare
  • Added default value for params argument in each interface:
    • BaseChannel.getMessageChangeLogs(token:params:completionHandler)
    • BaseChannel.getMessageChangeLogs(timestamp:params:completionHandler)
    • SendbirdChat.getMyGroupChannelChangeLogs(token:params:completionHandler)
    • SendbirdChat.getMyGroupChannelChangeLogs(timestamp:params:completionHandler)
  • registerDevicePushToken(_:unique:completionHandler:) passes error to completionHandler when called before SendbirdChat is initialized
  • Fix a bug that the collection's callback is not called

v4.3.0

01 Feb 10:01
Compare
Choose a tag to compare

Features

Participant class in Open Channel

Participant is a new interface for User who joined Open Channel. It's optimized for scalability and contains much lighter information about the User than a Member in Group Channel.
Now clients can implement Open Channels easier in SDK with more built-in capabilities. You can compare how Member, Participant, and User are different here.

  • Participant holds essential information about the participant like below. They contain their muted status (is_muted) on top of basic User information.
@objc(SBDParticipant)
public class Participant: User {

    @objc
    public internal(set) var isMuted: Bool

    @objc
    public func serialize() -> Data?

    @objc
    public class func build(fromSerializedData data: Data?) -> Self?
}
  • ParticipantListQuery.loadNextPage(completionHandler: @escaping UserListHandler) now returns [Participant]
    • For backward compatibility, the UsersHandler returns User list, but it can be casted into Participant

v4.2.4

20 Jan 02:25
Compare
Choose a tag to compare

Features

You can now set longer timeout value (Previously 10s) for session token expiry. (Default: 60s, Maximum: 1800s). This means that Sendbird SDK will wait longer for your new session token, making it easier for you to reconnect to our service.

  • @objc class func setSessionTokenRefreshTimeout(_ timeout: Int)

Improvements

  • Fixed bug where BaseChannelHandler.onChannelChanged and GroupChannelHandler.onPinnedMessageUpdated are not being called when the pinned message is updated
  • Fixed channelURL filter not working when fetching pendingMessage
  • Fixed wrong channels being returned in copyMessage completionHandler

v4.2.3

10 Jan 02:14
Compare
Choose a tag to compare

Improvements

  • Improved database synchronization stability

v4.2.2

04 Jan 08:45
Compare
Choose a tag to compare

Improvements

  • Fixed a bug where unread count of channels is not updated in time
  • Changed to ensure reachability notification is called on the main thread

v4.2.1

15 Dec 06:29
Compare
Choose a tag to compare

Improvements

  • Fixed a bug where channel filters (ex: channelURLFilter) were not applied properly in GroupChannelCollection

v4.2.0

09 Dec 07:00
Compare
Choose a tag to compare

Features

Pinned Message 📌

Pinned Message is released. You can now maintain a special set of messages (up to 10 per channel) that you want everyone in the channel to share. It can be anything from announcements, surveys, upcoming events, and any many more. Pin your messages and never miss them!
Stay tuned for updates as we are rolling out more exciting features and see below for exact specifications:point_down:

Specification

  • Pin when sending a message
    • UserMessageCreateParams.isPinnedMessage: Bool = false
    • FileMessageCreateParams.isPinnedMessage: Bool = false
  • Pin existing message
    • GroupChannel.pinMessage(messageId:completionHandler:)
  • Unpin a message
    • GroupChannel.unpinMessage(messageId:completionHandler:)
  • Pinned messages
    • GroupChannel.lastPinnedMessage: BaseMessage? = nil
    • GroupChannel.pinnedMessageIds: [Int64]? = nil

We strongly recommend using Collections (Message, Channel) to implement Pinned Messages as it would automatically take care of numerous events out of the box when messages are created, updated, and deleted.


Improvements

  • Added use_local_cache to the request header
  • Removed internal logs

v4.1.8

02 Dec 05:41
Compare
Choose a tag to compare

Improvements

  • Added urlSession(_:task:didCompleteWithError:) method implementation to the native web socket engine

v4.1.7

29 Nov 06:45
Compare
Choose a tag to compare

Improvements

  • Fixed a memory leak in the web socket engine
  • Added error log when using uninitialized Sendbird instance
  • Fixed to upsert channel change into database when receiving events
  • Fixed to use cached open channel when receiving system event