Releases: sendbird/sendbird-chat-sdk-ios
v4.3.2
- Fixed group channel querying with nickname filters (
nicknameContainsFilter
,nicknameExactMatchFilter
,nicknameExactMatchFilter
) to behave the same whether or not local caching is enabled
v4.3.1
- 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
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
returnsUser
list, but it can be casted intoParticipant
- For backward compatibility, the
v4.2.4
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
andGroupChannelHandler.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
Improvements
- Improved database synchronization stability
v4.2.2
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
Improvements
- Fixed a bug where channel filters (ex:
channelURLFilter
) were not applied properly inGroupChannelCollection
v4.2.0
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
Improvements
- Added
urlSession(_:task:didCompleteWithError:)
method implementation to the native web socket engine
v4.1.7
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