- Added flag options in
SBUGlobals
that let you choose to show a loading indicator in cases where the indicator is undisplayed by defaultSBUGlobals.loadingIndicator.groupChannelList.cachedChannels
SBUGlobals.loadingIndicator.groupChannel.cachedMessages
- Added functionality to retry up to 10 times if an individual message template cannot be retrieved from the server
- Fixed a bug where the category filter was positioned outside the safe area
- Fixed a bug where the category filter was positioned outside the safe area
- Fixed crash when markdown link string is invalid
- Fixed the behaviour of
extended_message_payload.disable_chat_input
to work correctly with sequential messages in a workflow. - Improved stability
- SendbirdChatSDK dependency version has been updated to v4.21.1
- Fixed incorrect exposure of trailing layouts when rendering templates
- Replaced the deprecated method
markAsViewed()
withlogViewed()
from SendbirdChatSDK
- Added support for EmojiCategory. You can now filter emojis for different messages when adding Reactions to a message.
- Interfaces
SBUGlobals.emojiCategoryFilter: (BaseMessage) -> [Int64]?
- Note: You need to set your custom EmojiCategory using Sendbird Platform API in advance.
- Interfaces
-
Added views for
MessageForm
that work with the Sendbird dashboard (interfaces related toform
have been deprecated)-
Added
SBUMessageFormView
data base view class -
Added
SBUSimpleMessageFormView
view class -
Added
SBUMessageFormItemView
data base view class -
Added
SBUMessageFormChipsItemView
,SBUMessageFormSingleTextItemView
andSBUMessageFormMultiTextItemView
item view classes -
Added
SBUMessageFormFallbackView
fallback view class -
Added
SBUMesageFormChipView
,SBUTextView
view classes -
Added
SBUMessageFormViewDelegate
andSBUMessageFormItemViewDelegate
protocols -
Added
submitMessageForm(message:)
inSBUGroupChannelViewModel
class -
Added
getChatInputDisabledState(hasNext:)
method in extension ofBaseMessage
-
Added
isFormSubmitting
,formItemValidationStatus
properties in extension ofBaseMessage
-
Added
isValidVersion
property in extension ofMessageForm
-
Added
keyboardType
andisTextInputType
properties in extension ofMessageFormItem.LayoutType
-
Added
canUpdate(_:)
andisValid(_:)
functions in extension ofMessageFormItem.ResultCount
-
Added
isOnlyOne
property in extension ofMessageFormItem.ResultCount
-
Deprecated
SBUFormViewDelegate
andSBUFormFieldViewDelegate
protocols -
Deprecated
SBUFormFieldView
andSBUSimpleFormFieldView
classes -
Deprecated
SBUFormFieldInputType
enum -
Deprecated
SBUFormView
andSBUSimpleFormView
classes
-
- Added support for EmojiCategory. You can now filter emojis for different messages when adding Reactions to a message.
- Interfaces
SBUGlobals.emojiCategoryFilter: (BaseMessage) -> [Int64]?
- Note: You need to set your custom EmojiCategory using Sendbird Platform API in advance.
- Interfaces
-
Added views for
MessageForm
that work with the Sendbird dashboard (interfaces related toform
have been deprecated)-
Added
SBUMessageFormView
data base view class -
Added
SBUSimpleMessageFormView
view class -
Added
SBUMessageFormItemView
data base view class -
Added
SBUMessageFormChipsItemView
,SBUMessageFormSingleTextItemView
andSBUMessageFormMultiTextItemView
item view classes -
Added
SBUMessageFormFallbackView
fallback view class -
Added
SBUMesageFormChipView
,SBUTextView
view classes -
Added
SBUMessageFormViewDelegate
andSBUMessageFormItemViewDelegate
protocols -
Added
submitMessageForm(message:)
inSBUGroupChannelViewModel
class -
Added
getChatInputDisabledState(hasNext:)
method in extension ofBaseMessage
-
Added
isFormSubmitting
,formItemValidationStatus
properties in extension ofBaseMessage
-
Added
isValidVersion
property in extension ofMessageForm
-
Added
keyboardType
andisTextInputType
properties in extension ofMessageFormItem.LayoutType
-
Added
canUpdate(_:)
andisValid(_:)
functions in extension ofMessageFormItem.ResultCount
-
Added
isOnlyOne
property in extension ofMessageFormItem.ResultCount
-
Deprecated
SBUFormViewDelegate
andSBUFormFieldViewDelegate
protocols -
Deprecated
SBUFormFieldView
andSBUSimpleFormFieldView
classes -
Deprecated
SBUFormFieldInputType
enum -
Deprecated
SBUFormView
andSBUSimpleFormView
classes
-
- Fixed wrong background color issue in mention limit guide
- Improve stream message determination criteria
- Fixed an issue where the alignment of menu and aciton sheet was exposed as rtl style.
- Fixed text alignment in
SBUUserMessageTextView
andSBUMessageInputView
to be changed by checking the RTL property of the input message if the app is RTL layout- Add
isRTLCharacter(with:)
static method inSBUUtils
- Add
rtlCharacterSet
static property inSBUUtils
- Add
- Support Right-to-Left (RTL) languages
- Added a static method to force a change to the value of a view's semantic content attribute
- Added setSemanticContentAttributeRecursively(view: UIView, attribute: UISemanticContentAttribute) in UIView Extension
- Resolved the autolayout warnings for the message template
- Fixed Markdown syntax exposed in channel preview even when Markdown is enabled
- ChatSDK dependency version has been updated to v4.19.9
- Fixed menu sheet item background color appearing white after theme change
- Fixed issue with
voiceMessageInputView
being drawn behind tabbar - Fixed
voiceMessageInputView
layouts to be drawn without being affected by rotation - Fixed minor bugs in MessageTemplate and default layout values
- ChatSDK dependency version has been updated to v4.19.8
- Remove the deprecated
ALAssetsLibrary
import logic that is not used by Sendbird UIKit - Added crash defense logic when setting autolayout constraints
- Fixed suggested-replies view not displaying correctly
- Fixed channel preview messages in the channel list to not expose markdown syntax.
- (when
SendbirdUI.config.groupChannel.channel.isMarkdownForUserMessageEnabled
istrue
)
- (when
- Fixed download failures due to logic issues with storing files in cache
- ChatSDK dependency version has been updated to v4.19.7
- Changed timing of Builder internal calls related to send of
SBUGlobalCustomParams
- If
replyType
value of UIKit config is not of type none andmessageListParams.replyType
value is set, it will not be overwritten by UIKit config value - Changed the naming of SBUColor inside SBUColorSet (e.g.,
primary300
->primaryMain
) - Renamed
information
in SBUColorSet toinformationLight
and added a newinformation
color set - Deprecated the setter of
isSuperGroupReactionsEnabled
, which is disabled by default. If you wish to use this feature, contact us. - Fixed link not working correctly when markdown syntax is nested
- Fixed a bug where the updated theme is not applied
- Applied
safeAreaLayoutGuide
tolistComponent
- Add markdown (link, bold) message feature
SendbirdUI.config.groupChannel.channel.isMarkdownForUserMessageEnabled = true
- Added Horizontal suggested replies view
SendbirdUI.config.groupChannel.channel.suggestedRepliesDirection = .vertical
- Improved stability
- Added
public func setInputState(_:placeholder:)
inSBUMessageInputView
that enables or disables the input view inside a ChannelViewController
- Fixed image rendering issues in message templates
- Separated deprecated logic from the ModuleSet into files
- Modified the access level of keyboard height calculation functions from 'private' to 'open'
getAdjustedKeyboardHeight(with:)
getTabBarHeight()
- Added interfaces to SBUGlobals to set the ws host and api host up
- Message templates are now supported in group channels
- Added Carousel ui component for message template root body items
- Added
default
andwide
container types support for message contents size
- Fixed
Abnormal number of gesture recognizer dependencies
issues - Fixed empty channels showing up in the channel list
- Fixed an issue where changing categories in FeedChannel would not work
- Fixed an issue where the reaction of the last message was not updated
- Updated the corner radius of the reaction container in the message bubble
- Updated iOS deployment target to 12.0
- Updated Xcode version to 15.0
- Added PrivacyInfo.xcprivacy for Apple Privacy Manifest
- Improved UI updates for single stream message to work smoothly
- Updated internal code to be compatible with ChatSDK 4.18.0
Reactions is now supported for Super Group Channels in Sendbird UIKit. To enable this feature, you must enable the Reactions attribute for your application in Sendbird server, and also enable Reactions for Super Group Channel in UIKit Config.
Here are the new interfaces.
SBUConfig.GroupChannel.channel.isSuperGroupReactionsEnabled
SBUAvailable.isSupportSuperGroupReactions()
SBUContentBaseMessageCell.enableEmojiLongPress
SBUUserMessageCellParams.enableEmojiLongPress
SBUFileMessageCellParams.enableEmojiLongPress
SBUMultipleFilesMessageCellParams.enableEmojiLongPress
SBUMessageReactionView.enableEmojiLongPress
- Added
SBUSuggestedRepliesRenderType' to specify the conditions for displaying
suggested replies`.
SendbirdUI.config.groupChannel.channel.isSuggestedRepliesEnabled = true
SendbirdUI.config.groupChannel.channel.showSuggestedRepliesFor = .allMessages
- Fixed an issue where unnecessary API calls caused loading during functionality access in offline mode while using LocalCaching
- Removed
v
from Sendbird UIKit tags - SwiftLint integration and warning fixes
- Made the initializer of
SBUFeedNotificationChannelViewParams
public
- Added
SBUFeedNotificationChannelViewParams
to control how the views inSBUFeedNotificationChannelViewController
are displayed.
- Added
SBUFeedNotificationChannelViewParams
to control how the views inSBUFeedNotificationChannelViewController
are displayed.
- Supported for updating the playback rate of voicePlayer
- Added
updatePlaybackRate(_:)
function onSBUVoicePlayer
class - Changed the
voicePlayer
access level topublic
SBUGroupChannelModule.List
classSBUMessageThreadModule.List
classSBUVoiceMessageInputView
class
- Added
- Enhanced documentation regarding the default view type for placeholder view properties.
- Fixed template generator bug causing improper variable-value binding
- Fixed a bug where the label is always None in Chat notification channel
- Fixed a bug where the template renderer for notifications is not finished
- Replaced the
SuggestedReplies
andForm
interfaces with the ChatSDK model-based- Added Interfaces
- Added
groupChannelModule(_:form:messageCell:)
inSBUGroupChannelModuleListDelegate
- Added
formFieldView(_:SBUFormFieldView,didUpdate:SendbirdChatSDK.FormField)
inSBUFormFieldViewDelegate
- Added
formField
property inSBUFormFieldView
- Added
configure(form:field:delegate:)
inSBUFormFieldView
- Added
SBUFormFieldInputType
interface - Added
formView(_:SBUFormView, didSubmit: SendbirdChatSDK.Form)
inSBUFormViewDelegate
- Added
groupChannelModule(_:didSubmit:messageCell:)
inSBUGroupChannelModuleListDelegate
- Added
formFieldView(_:formField:)
inSBUFormFieldViewDelegate
- Added
formField
property inSBUFormFieldView
- Added
configure(form:field:delegate:)
inSBUFormFieldView
- Added
groupChannelModule(_:didSubmit:messageCell:)
inSBUGroupChannelViewController
- Added
submitForm(message:form:)
inSBUGroupChannelViewModel
- Replaced
form
property type inSBUFormView
- Replaced
createFormFieldViews(with:)
interface type inSBUFormView
- Replaced
formFieldView(_:didUpdate:)
inSBUFormView
- Replaced
form
property type inSBUFormViewParams
- Added
- Removed SBUForm Interfaces
- Removed
asForms
inBaseMessage
class - Removed
SBUForm
interface - Removed
SBUForm.Answer
interface - Removed
SBUForm.Field
interface - Removed
SBUForm.Field.Updated
interface - Remvoed
forms
property inSBUExtendedMessagePayload
- Removed
formAnswers
property in SBUUserMessageCellParams - Removed
updateFormView(with:,answers:)
function inSBUUserMessageCell
- Removed
formView(_:SBUFormView, didSubmit: SBUForm.Answer)
inSBUFormViewDelegate
- Removed
formView(_:SBUFormView, didUpdate: SBUForm.Answer)
inSBUFormViewDelegate
- Removed
formFieldView(_:SBUFormFieldView,didUpdate: SBUForm.Field.Updated)
inSBUFormFieldViewDelegate
- Removed
init(messageId: Int64, form: SBUForm)
inSBUFormViewParams
- Removed
answer
property inSBUFormView
- Removed
createFormFieldViews(with: SBUForm?)
function inSBUFormView
- Removed
formFieldView(_:SBUFormFieldView,didUpdate:SBUForm.Field.Updated)
inSBUFormView
- Removed
configure(form:field:value:delegate:)
inSBUFormFieldView
- Removed
groupChannelModule(_:didSubmit:messageCell:)
inSBUGroupChannelModuleListDelegate
- Removed
groupChannelModule(_:didUpdate:messageCell:)
inSBUGroupChannelModuleListDelegate
- Removed
groupChannelModule(_:didSubmit:messageCell:)
inSBUGroupChannelViewController
- Removed
groupChannelModule(_:didUpdate:messageCell:)
inSBUGroupChannelViewController
- Removed
groupChannelModule(_:answersFor:) -> [SBUForm.Answer]?
inSBUGroupChannelViewController
- Removed
SBUFormFieldView.StatusType
interface - Removed
submitForm(message:answer:)
inSBUGroupChannelViewModel
- Removed
updateForm(message:answer:)
inSBUGroupChannelViewModel
- Removed
groupChannelModule(_:answersFor:)
inSBUGroupChannelModuleListDataSource
- Removed
- Deprecated
asSuggestedReplies
inBaseMessage
, useBaseMessage.suggestedReplies
- Added Interfaces
- Fixed voice message preview string in the channel list not working issue
- Deprecated
getFileTypeString(by:)
function ofSBUUtils
class: renamed togetFileTypePreviewString(by:)
- Added disable chat input based on last message response
- Added
SBULoadingDatasource
for customizing touch events in the loading view
-
Fixed a bug where duplicated deleted messages in the response of the message changeglogs cause a crash
-
Limited the maximum corner radius of the category filter to half of the height
-
Added
isFeedbackEnabled
config property forSBUConfig.GroupChannel
-
Added
SBUToastView
-
Added
Feedback
feature- Added
SBUFeedbackAnswer
for handling internal data - Added
groupChannelModule(_ listComponent:didUpdate:messageCell:)
inSBUGroupChannelModuleListDelegate
- Added
SBUFeedbackViewDelegate
- Added
SBUFeedbackView
andSBUSimpleFeedbackView
- Added
SBUFeedbackViewParams
- Added
shouldHideFeedback
inSBUBaseMessageCellParams
- Added
updateFeedbackView(with:)
method inSBUBaseMessageCell
- Added
shouldHideFeedback
andfeedbackView
properties inSBUBaseMessageCell
- Added
feedbackView(_ view:didAnswer:)
delegate method inSBUBaseMessageCell
- Added
groupChannelModule(_ listComponent:didUpdate:messageCell:)
inSBUBaseChannelViewController
- Added feedback handling methods in
SBUGroupChannelViewModel
- Added
submitFeedback(message:answer:completionHandler:)
- Added
updateFeedback(message:answer:completionHandler:)
- Added
deleteFeedback(message:completionHandler:)
- Added
- Added
-
Updated theme values in
SBUMessageCellTheme
- Added
feedbackRadius
- Added
feedbackIconColor
- Added
feedbackIconSelectColor
- Added
feedbackIconDeselectColor
- Added
feedbackBorderColor
- Added
feedbackBorderSelectColor
- Added
feedbackBorderDeselectColor
- Added
feedbackBackgroundNormalColor
- Added
feedbackBackgroundSelectColor
- Added
feedbackBackgroundDeselectColor
- Added
-
Updated theme values in
SBUComponentTheme
- AddedtoastContainerColor
- AddedtoastTitleColor
- AddedfeedbackToastUpdateDoneColor
-
Updated StringSet values in
SBUMessageCellTheme
- Added
Feedback_Comment_Title
- Added
Feedback_Comment_Placeholder
- Added
Feedback_Edit_Comment
- Added
Feedback_Remove
- Added
Feedback_Update_Done
- Added
-
Updated icons in
SBUIconSet
- Added
iconGood
- Added
iconBad
- Added
- Initialization improving
- Added
initialize(applicationId:initParamsBuilder:startHandler:migrationHandler:completionHandler:)
function ofSendbirdUI
class - For more information on the improved initialization, see this link
- Added
- Fixed link image loading bug
- Remove time view from
SBUTypingIndicatorMessageCell
class - Improving the image loading process
- Add
errorHandler(error:message:)
optional function inSBUExtendedMessagePayloadCustomViewFactory
protocol - Supported remote notifications on iOS 16 or later simulators
- Added functionality to log impressions for notifications
- Fixed file downloads not working issue
-
Added
SBUScrollPostionConfiguration
configuration class- Added
scrollPostionConfiguration
peroperty inSBUGlobals
- Added
-
Added
SBUScrollOptions
model -
Added
SBUScrollOptions.Result
model -
Added
SBUScrollPosition
enum -
Added and modified methods in
SBUBaseChannelModule.List
class- Modified
position
parameter inscrollToMessage(id:enablesScrollAnimation:enablesMessageAnimation:position:)
- Added
scrollToMessage(message:enablesScrollAnimation:enablesMessageAnimation:position)
- Modified
-
Added and modified methods in
SBUBaseChannelViewController
class- Modified
position
parameter inscrollToMessage(id:enablesScrollAnimation:enablesMessageAnimation:position:)
- Added
scrollToMessage(message:enablesScrollAnimation:enablesMessageAnimation:position)
- Modified
-
Fixed message menu sheet not showing when emojiList is empty
-
We are now supporting a new type of a typing indicator, the Typing Indicator Bubble.
-
Enabling Typing Indicator Bubble shows an animated typing bubble when another member(s) in a Group Channel is/are typing.
-
You can use this feature by enabling
SendbirdUI.config.groupChannel.channel.isTypingIndicatorEnabled
totrue
, then settingSendbirdUI.config.groupChannel.channel.typingIndicatorTypes
to[.bubble]
. -
New enum
public enum SBUTypingIndicatorType
-
New classes / structs
public class SBUTypingIndicatorMessageManager
public struct SBUTypingIndicatorInfo
public class SBUTypingIndicatorMessage
public class SBUTypingIndicatorMessageCellParams
open class SBUTypingIndicatorMessageCell
public class SBUTypingIndicatorBubbleView
-
New properties
public var typingIndicatorTypes: Set<SBUTypingIndicatorType>
inSBUConfig.GroupChannel.Channel
public var typingMessageManager
inSBUBaseChannelViewModel
public private(set) var typingIndicatorMessageCell
inSBUGroupChannelModule.List
public static var Message_Typers_Count
inSBUStringSet
public lazy var profilesStackView
inSBUContentBaseMessageCell
public lazy var numberLabel
inSBUMessageProfileView
-
New methods
open func register(typingIndicatorMessageCell: SBUBaseMessageCell, nib: UINib? = nil)
inSBUGroupChannelModule.List
public func configureMessageProfileViews(message:)
inSBUContentBaseMessageCell
open func configureTyperProfileViews(typingInfo:)
inSBUContentBaseMessageCell
open func configureUserProfileView(message:)
inSBUContentBaseMessageCell
public func configureTyperProfileImageView()
inSBUMessageProfileView
public func configureNumberLabel(_:)
-
New theme properties
public var typingMessageProfileBorderColor: UIColor
inSBUTheme
public var typingMessageDotColor: UIColor
inSBUTheme
public var typingMessageDotTransformColor: UIColor
inSBUTheme
- Fixed navigationBar looking weird after entering message search function
- Added
needRollbackNavigationBarSetting
property inSBUBaseViewController
- Added
- Applied UIKit configuration to LimitedPhotoLibraryPicker
- Improved stability
- Support Suggested Replies feature for user message
- Added
SBUSuggestedReplyView
class - Added
SBUVerticalSuggestedReplyView
class - Added
SBUSuggestedReplyViewDelegate
delegate - Added
SBUSuggestedReplyViewParams
struct - Added
SBUSuggestedReplyOptionView
class - Added
SBUSimpleSuggestedReplyOptionView
class - Added
SBUSuggestedReplyOptionViewDelegate
delegate
- Added
- Support Form Type Message feature for user message
- Added
SBUForm
struct - Added
SBUForm.Field
struct - Added
SBUForm.Field.InputTypeValue
enum - Added
SBUForm.Answer
struct - Added
SBUFormViewParams
struct - Added
SBUFormView
class - Added
SBUSimpleFormView
class - Added
SBUFormViewDelegate
protocol - Added
SBUFormFieldView
class - Added
SBUFormFieldView.StatusType
enum - Added
SBUSimpleFormFieldView
class - Added
SBUFormFieldViewDelegate
protocol - Added
useOnlyFromView
property inSBUBaseMessageCellParams
- Added
- Support ExtendedMessagePayload CustomView feature for user message
- Added
SBUExtendedMessagePayloadCustomViewFactory
protocol - Added
SBUExtendedMessagePayloadCustomViewFactoryInternal
protocol
- Added
- Support common for new features
- Added properties and methods in
SBUUserMessageCell
shouldHideSuggestedReplies
propertysuggestedReplyView
propertyshouldHideFormTypeMessage
propertyformViews
propertyextendedMessagePayloadCustomViewFactory
propertyupdateSuggestedReplyView(with:)
methodcreateSuggestedReplyView()
methodupdateFormView(with:answers:)
methodcreateFormView()
methodsuggestedReplyView(_:didSelectOption:)
delegate methodfunc formView(_:didSubmit:)
delegate methodfunc formView(_:didUpdate:)
delegate method
- Added properties in
SBUUserMessageCellParams
shouldHideSuggestedReplies
propertyshouldHideFormTypeMessage
propertyformAnswers
property
- Added handlers in
SBUBaseMessageCell
suggestedReplySelectHandler
handlersubmitFormAnswerHandler
handlerupdateFormAnswerHandler
handler
- Added
mainContainerVStackView
proeprty inSBUContentBaseMessageCell
- Added
SBUConfig.GroupChannel
configsisFormTypeMessageEnabled
propertyisSuggestedRepliesEnabled
property
- Added extension methods and properties in
BaseMessage
.asSuggestedReplies
propertyasForms
propertyasCustomView
propertydecodeCustomViewData<ViewData: Decodable>()
method
- Added methods in
SBUGroupChannelModuleListDelegate
groupChannelModule(_:didSelect:)
methodgroupChannelModule(_:didSubmit:messageCell:)
methodgroupChannelModule(_:didUpdate:messageCell:)
methodgroupChannelModule(_:answersFor:)
method
- Added delegate methods in
SBUGroupChannelViewController
groupChannelModule(_:didSelect:)
methodgroupChannelModule(_:didSubmit:messageCell:)
methodgroupChannelModule(_:didUpdate:messageCell:)
methodgroupChannelModule(_:answersFor:)
method
- Added methods in
SBUGroupChannelViewModel
submitForm(message:answer:)
methodupdateForm(message:answer:)
method
- Added properties and methods in
- Support actions on userList item of
SBUReactionsViewController
.- Added
showUserProfile(user:)
method inSBUBaseChannelViewController
class - Added
setUserProfileTapGesture(_:)
method inSBUReactionsViewController
class - Added
SBUReactionsViewControllerDelegate
delegate - Added delegate methods in
SBUGroupChannelViewController
andSBUMessageThreadViewController
classesreactionsViewController(_:didTapUserProfile:)
reactionsViewController(_:tableView:didSelect:forRowAt:)
- Added
- We are now supporting Multiple Files Message feature!
- You can select multiple images and videos in the message inputs, and send multiple images in a single message.
- You can learn more about the feature in our Multiple Files Message docs page.
- Added classes, structs, and enum
SBUCollectionViewCell
classSBUMultipleFilesMessageCellParams
classSBUMultipleFilesMessageCell
classSBUMultipleFilesMessageCollectionView
classSBUMultipleFilesMessageCollectionViewCell
classGroupChannel.Preview
struct inSBUStringSet
classFileUpload.Error
struct inSBUStringSet
classSBUFileType
enum
- Added methods
getFileTypeString(by:)
inSBUUtils
classopenFile(_:)
inSBUBaseChannelViewController
classmultipleFilesMessageFileSizeErrorHandler(_:)
inSBUGroupChannelViewController
classsendMultipleFilesMessageCompletionHandler
inSBUGroupChannelViewController
classsendMultipleFilesMessage(fileInfoList:)
inSBUGroupChannelViewModel
classupdateMultipleFilesMessageCell(requestId:index:)
inSBUGroupChannelViewModel
classpickMultipleImageFiles(itemProviders:)
inSBUGroupChannelModule.Input
class (>= iOS14.0)register(multipleFilesMessageCell:nib:)
inSBUGroupChannelModule.List
classonSelectFile(sender:)
inSBUParentMessageInfoView
classregister(multipleFilesMessageCell:nib:) in
SBUMessageThreadMoudle.List` classmessageThreadModule(_:didSelectFileAt:multipleFilesMessageCell:forRowAt) in
SBUMessageThreadMoudle.List` classsave(fileData:viewController:) in
SBUDownloadManager` classsave(fileMessage:parent:) in
SBUDownloadManager` class
- Added properties
filesCount
inMultipleFilesMessage
class extensionmultipleFilesMessageFileCountLimit
inSBUAvailable
classuploadSizeLimitBytes
inSBUAvailable
classuploadSizeLimitMB
inSBUAvailable
classisMultipleFilesMessageEnabled
inSBUConfig.GroupChannel.Channel
classmultipleFilesMessageParamsSendBuilder
inSBUGlobalCustomParams
classshowPhotoLibraryPicker
inSBUGroupChannelViewController
classmultipleFilesMessageCell
inSBUGroupChannelModule.List
classisMultipleFilesMessage
inSBUQuoteMessageInputViewParams
classfileCollectionView
inSBUParentMessageInfoView
classfileSelectHandler
inSBUParentMessageInfoView
classonSelectFile(sender:)
inSBUParentMessageInfoView
classmultipleFilesMessageCell
inSBUMessageThreadMoudle.List
class
- Added delegate methods
groupChannelModule(_:didPickMultipleFiles:parentMessage:)
inSBUGroupChannelModuleInputDelegate
groupChannelModule(_:didSelectFileAt:multipleFilesMessageCell:forRowAt:)
inSBUGroupChannelModuleListDelegate
- Fixed autolayout warnings that occur during runtime and cleaned up the entire autolayout-related logic
- Added
sbu_activate(baseView:constraints:)
function onNSLayoutConstraint
class extension - Added
Constants
struct onSBUParentMessageInfoView
class - Added
updateMessageTextWidth(with:)
function onSBUParentMessageInfoView
class
- Added
- Fixed layout issue with message time labels appearing oversized horizontally
- Fixed incorrect date separator padding size
- Modified condition to check user's
isActive
property when filtering mentionable users
- Supported enlarged font size on dateLabel of group channel list and message cell
- Added a
inputVStackView
that wraps themessageInputView
atSBUBaseChannelModule.Input
- Improved stability
- Fixed an issue where deleting a message didn't work
- Fixed a problem with truncated reaction counts
- Improved stability
- Improved image cache stability
- Improved unavailable message display condition check logic
- Improved reactions related logic stability
- Modified menu item action and menu sheet dismiss timing
- Added
scrollToMessage(id:enablesScrollAnimation:enablesMessageAnimation:)
toSBUBaseChannelModule.List
andSBUBaseChannelViewController
- Supports category filtering in a feed channel. Categories by which messages can be filtered can be created and edited in the dashboard
- Improved timing of
markAsRead
calls - Fixed an issue where pending messages were not processed when changing channels in the same view controller
- Fixed text view height not resetting on state change
- Fixed an issue when using customized userList where the first list would continue to be added after the last was loaded
- Added chatbot start interface
startChatWithAIBot(id:distinct:errorHandler:)
inSendbirdUI
// Before using it, need to call app initialize and connect. SendbirdUI.startChatWithAIBot(botId: "BOT_ID_GOES_HERE", isDistinct: true) { error in // This code block will be invoked when there's an error }
- Improved stability
- Removed beta information on
CFBundleShortVersionString
- Change the default authentication method for FeedChannel from WebSocket connection to API.
- Added
authenticatedFeed(completionHandler:)
inSendbirdUI
- Improved stability
- Changed file cache key policy.
- Improved the issue of exposing empty images when message status updating from pending to succeed.
- Fixed infinite getChannel request issue when initializing
SBUGroupChannelViewController
with invalidchannelURL
- Applied thread message policy for pending or failed state
- Modified sample rate and bit rate in recorder settings
- sample rate: 11025
- bit rate: 12000
- Improved stability
- Improved stability of file cache logic
- Support metatype interfaces in
SBUModuleSet
- Added the new public static properties corresponding to the previous in
SBUModuleSet
- Added the new public static properties corresponding to the previous in each SBU module classes.
- Deprecated all of the previous public static properties in
SBUModuleSet
- Deprecated all of the previous public static properties in each SBU module classes.
SBUModuleSet.GroupChannelListModule = CustomModule.self // Metatype Type SBUModuleSet.GroupChannelListModule.HeaderComponent = CustomComponent.self // Metatype Type
- Added the new public static properties corresponding to the previous in
- Support feature configuration
- Added
SBUConfig
class - Added
config
property inSendbirdUI
class - Added
SBUPrioritizedConfig
propertyWrapper - Applied decoder on
SBUReplyType
,SBUThreadReplySelectType
enum - Deprecated
replyType
,threadReplySelectType
property inSBUReplyType
classinit(type:threadReplySelectType:)
method inSBUReplyType
classisVoiceMessageEnabled
property inSBUVoiceMessageConfiguration
classisChannelListTypingIndicatorEnabled
property inSBUGlobals
classisChannelListMessageReceiptStateEnabled
property inSBUGlobals
classisOpenChannelUserProfileEnabled
property inSBUGlobals
classisUserMentionEnabled
property inSBUGlobals
classisVoiceMessageEnabled
property inSBUGlobals
class
- Added
- Fixed a problem that tintcolor is not applied properly in
SBUEmptyView
class - Fixed an issue of changing 'AVAudioSession' before using the player.
- Improved stability
- Improved stability
- Added
notifications
property inSBUFontSet.FontFamily
class- This property is for the Notification feature
- Added statistics for the action of notification
- Improved stability
- Update iOS deployment target to 11.0 for Xcode 14.1+
- Modified access level to the public of
SBUChannelTitleView
class and properties. - Improved pending message update logic in thread message list
- Improved stability
- Separated
quotedMessageBackgroundColor
asquotedMessageLeftBackgroundColor
andquotedMessageRightBackgroundColor
inSBUMessageCellTheme
- Deprecated
quotedMessageBackgroundColor
inSBUMessageCellTheme
- Added
quotedMessageLeftBackgroundColor
andquotedMessageRightBackgroundColor
inSBUMessageCellTheme
- Deprecated
- Modified access level to the public of
SBUCommonItem
properties. - Supported multi-line title of channel cell
- Improved stability
- Modified voice message maximum recording time from 1 min to 10 min
- Improved stability
- Added
SBUCommonViewControllerSet
- Added
FileViewController
toSBUCommonViewControllerSet
- Renamed
SBUFileViewer
toSBUFileViewController
- Added
- Added new static properties in
SBUGlobals
- Added
isTintColorEnabledForCustomizedIcon
andisCustomizedIconResizable
- Added
- Improved stability
- Improved stability
- Added Support for Notification Channels
SBUFeedNotificationChannelViewController
andSBUFeedNotificationChannelModule
(Header
,List
) addedSBUChatNotificationChannelViewController
andSBUChatNotificationChannelModule
(Header
,List
) added
- Support voice message features in Group Channel
- Added views
- Added
SBUVoiceMessageInputView
- Added
SBUVoiceContentView
- Added voice message features to
SBUMessageInputView
- Added
voiceMessageButton
- Added
showsVoiceMessageButton
- Added
- Added
- Added delegates
- Added
messageInputViewDidTapVoiceMessage(_:)
toSBUMessageInputViewDelegate
- Added
- Added classes
- Added
SBUVoiceRecorder
- Added
SBUVoicePlayer
- Added
SBUVoiceFileInfo
- Added
- Added static properties in
SBUGlobals
- Added
SBUVoiceMessageConfiguration
class- Added
isVoiceMessageEnabled
inSBUVoiceMessageConfiguration
- Added
minRecordingTime
inSBUVoiceMessageConfiguration/Recorder
- Added
maxRecordingTime
inSBUVoiceMessageConfiguration/Recorder
- Added
- Added
voiceMessageConfig
inSBUGlobals
- Added
isAVPlayerAlwaysEnabled
inSBUGlobals
- Added
- Added new strings in
SBUStringSet
- Added
SBUStringSet/VoiceMessage
class- Added
Input
nested string set class inVoiceMessage
- Added
Alert
nested string set class inVoiceMessage
- Added
Preview
nested string set class inVoiceMessage
- Added
fileName
string inVoiceMessage
- Added
- Added
- Added views
- Opened
SBUChannelInfoHeaderView
- Improved stability
- Opened
popToChannel()
inSBUBaseSelectUserViewController
- Added
UITableView
header interfaces to the list components- Opened
tableView(_:viewForHeaderInSection:)
- Opened
tableView(_:heightForHeaderInSection:)
- Opened
- Improved stability
- Modify the channel initialization logic to draw first with cached messages
- Added web preview image width restriction
- Changed image compression option's default value to
true
- Added processing for
SendbirdChat
initializer errors inSendbirdUI
Initializer.
- Added
enablesReaction
inSBUParentMessageInfoView
- Fixed
contentMode
issue while loading image - Improved stability
- Added
isUserIdUsedForNickname
inSBUGlobals
- Improved image compression process
- Improved date formats for past year's format
SBUGroupChannelCell
SBUMessageSearchResultCell
SBUMessageDateView
SBUParentMessageInfoView
- Added formatted date getter functions in Date extension class
lastUpdatedTimeForChannelCell(baseTimestamp:)
lastUpdatedTimeForMessageSearchResultCell(baseTimestamp:)
messageCreatedTimeForParentInfo(baseTimestamp:)
dateSeparatedTime(baseTimestamp:)
- Added static properties in
SBUDateFormatSet
yyyyMMdd
MMMddhhmma
MMMddyyyyhhmma
- Channel
lastUpdatedPastYearFormat
- Message *
dateSeparatorDateFormat
*dateSeparatorPastYearFormat
*dateSeparatorTimeFormat
*dateSeparatorYesterdayFormat
- MessageSearch
lastUpdatedDateFormat
lastUpdatedPastYearFormat
*lastUpdatedTimeFormat
- MessageThread *
sentDateDateFormat
*sentDatePastYearFormat
*sentDateTimeFormat
*sentDateYesterdayFormat
- Improved image caching and gif handling process
- Improved file data handling process
- File name and mime type will set based on original file if possible
- Added classes
SBUMessageThreadModule
SBUMessageThreadModule.Header
,SBUMessageThreadModuleHeaderDelegate
SBUMessageThreadModule.List
,SBUMessageThreadModuleListDelegate
,SBUMessageThreadModuleListDataSource
SBUMessageThreadModule.Input
,SBUMessageThreadModuleInputDelegate
,SBUMessageThreadModuleInputDataSource
SBUThreadInfoView
,SBUThreadInfoViewDelegate
SBUParentMessageInfoReactionView
SBUMessageThreadTitleView
,SBUMessageThreadTitleViewDelegate
SBUMessageThreadViewController
,SBUMessageThreadViewControllerDelegate
SBUParentMessageInfoView
,SBUParentMessageInfoViewDelegate
SBUMessageThreadViewModel
,SBUMessageThreadViewModelDelegate
,SBUMessageThreadViewModelDataSource
- Added module
SBUModuleSet
messageThreadModule
- Added viewController in
SBUViewControllerSet
MessageThreadViewController
- Added properties
useQuotedMessage
,useThreadInfo
,joinedAt
inSBUBaseMessageCellParams
classquotedMessageCreatedAt
,messageCreatedAt
,joinedAt
inSBUQuotedBaseMessageViewParams
classuseQuotedMessage
,useThreadInfo
,threadHStackView
,threadInfoSpacing
,threadInfoView
inSBUContentBaseMessageCell
classemptyViewTopConstraint
inSBUEmptyView
params
property inSBUQuotedBaseMessageView
classsendFileMessageCompletionHandler
,sendUserMessageCompletionHandler
,pendingMessageManager
inSBUBaseChannelViewModel
- Added functions
setupThreadInfoView()
function inSBUContentBaseMessageCell
classupdatePlaceholderText()
function inSBUMessageInputView
classshowMessageThread(channelURL:parentMessageId:parentMessageCreatedAt:startingPoint:)
function inSBUBaseChannelViewController
classupdateTopAnchorConstraint(constant:)
function inSBUEmptyView
classSBUMessageThreadViewControllerDelegate
functions inSBUGroupChannelViewController
classgroupChannelModuleDidTapThreadInfoView(_:)
delegate function inSBUGroupChannelModuleListDelegate
baseChannelModule(_:didTapTitleView:)
delegate function inSBUBaseChannelModuleHeaderDelegate
baseChannelModule(_:pendingMessageManagerForCell:)
datasource function inSBUBaseChannelModuleListDataSource
MessageThread()
class function inSBUDateFormatSet
needsToRemoveMargin()
function inSBUUserMessageTextView
classsetupSendUserMessageCompletionHandlers()
,setupSendFileMessageCompletionHandlers()
functions inSBUOpenChannelViewModel
class
- Added parameters in function
forMessageThread
parameter in functions ofSBUPendingMessageManager
classfileName
andmimeType
parameters inpickImageData
function ofSBUBaseChannelModule.Input
classfileName
andmimeType
parameters indidTapSendImageData
function ofSBUSelectablePhotoViewDelegate
imageSize
parameter inconfigure
function ofSBUMessageProfileView
classremoveMargin
parameter in initialize function ofSBUUserMessageTextView
classisThreadMessage
andjoinedAt
parameters in initialize function ofSBUBaseMessageCellParams
,SBUUserMessageCellParams
,SBUFileMessageCellParams
, andSBUUnknownMessageCellParams
classesjoinedAt
parameter in initialize function ofSBUQuotedBaseMessageViewParams
classjoinedAt
parameter insetupQuotedMessageView
function ofSBUContentBaseMessageCell
classcompletionHandler
parameter inloadChannel
function ofSBUBaseChannelViewModel
class
- Added theme properties
- in
SBUChannelTheme
messageThreadTitleColor
messageThreadTitleFont
messageThreadTitleChannelNameColor
messageThreadTitleChannelNameFont
- in
SBUMessageCellTheme
repliedCountTextColor
repliedCountTextFont
repliedUsersMoreIconBackgroundColor
repliedUsersMoreIconTintColor
parentInfoBackgroundColor
parentInfoUserNameTextFont
parentInfoUserNameTextColor
parentInfoDateFont
parentInfoDateTextColor
parentInfoMoreButtonTintColor
parentInfoSeparateBarColor
parentInfoReplyCountTextColor
parentInfoReplyCountTextFont
- in
- Added strings in
SBUStringSet
Message_Replied_Users_Count: (Int, Bool)
Message_Reply_Cannot_Found_Original
Message_Unavailable
MessageThread.Menu.replyInThread
MessageThread.MessageInput.replyInThread
MessageThread.MessageInput.replyToThread
MessageThread.Header.title
- Added icons in
SBUIconSet
iconEmpty
iconThread
- Added
SBUReplyConfiguration
- Added
thread
type inSBUReplyType
enumeration - Added
SBUThreadReplySelectType
enumeration - Added
dismissHandler
inSBUAlertView
,SBUActionSheet
- Modified
caption3
font weight.medium
to.bold
- Renamed
usingQuotedMessage
touseQuotedMessage
inSBUBaseMessageCellParams
,SBUContentBaseMessageCell
, andSBUQuotedBaseMessageViewParams
classes - Deprecated
SBUGlobals
class DeprecatedreplyType
property, usereply.replyType
insteadSBUQuotedBaseMessageViewParams
class- Deprecated
init(message:position:usingQuotedMessage:joinedAt:)
function, useinit(message:position:useQuotedMessage:joinedAt:)
instead - Deprecated
init(messageId:messagePosition:quotedMessageNickname:replierNickname:text:usingQuotedMessage:quotedMessageCreatedAt:)
function, useinit(messageId:messagePosition:quotedMessageNickname:replierNickname:text:useQuotedMessage:quotedMessageCreatedAt:)
instead - Deprecated
init(messageId:messagePosition:quotedMessageNickname:replierNickname:name:type:urlString:usingQuotedMessage:quotedMessageCreatedAt:)
function, useinit(messageId:messagePosition:quotedMessageNickname:replierNickname:name:type:urlString:useQuotedMessage:quotedMessageCreatedAt:)
instead
- Deprecated
IMPORTANT If you use Swift Package Manager, Please reset package cache before download the current version.
- Opened keyboard events:
keyboardWillShow(_:)
andkeyboardWillHide(_:)
- Updated
navigationBar
shadowColor - Modified the type of class that includes the
UIControl
type object toNSObject
- Improved logic to update the 'startPoint' in the channel
- Improved logic moving to the original message of a quoted message
- Improved channel initialization process.
- Improved stability
- Fixed
scrollToBottom
button flickers when send a message - Improved fileMessage related processing
- Added
messageCellConfiguration
inSBUGlobals
- Modified fonts and colors in
SBUTheme
- Renamed
ChannelListTheme
toSBUGroupChannelListTheme
(alsoSBUTheme.groupChannelListTheme
) - Renamed
ChannelCellTheme
toSBUGroupChannelCellTheme
(alsoSBUTheme.groupChannelCellTheme
) - Renamed
SBUTheme.setChannelList(channelListTheme:channelCellTheme:)
toSBUTheme.setGroupChannelList(channelListTheme:channelCellTheme:)
SBUGroupChannelListTheme
notificationOnTintColor
: light (SBUColorSet.background50
->SBUColorSet.ondark01
)
SBUGroupChannelCellTheme
- Added
fileIconBackgroundColor
,fileIconTintColor
- Added
SBUOpenChannelCellTheme
participantCountFont
: light(SBUFontSet.caption1
->SBUFontSet.caption2
)
SBUChannelTheme
- Added
openChannelOGTitleColor
,buttonBackgroundColor
,buttonTitleColor
,sideButtonIconColor
,newMessageBadgeColor
menuItemDisabledColor
: light(SBUColorSet.ondark04
->SBUColorSet.onlight04
)mentionLimitGuideTextFont
: (SBUFontSet.body1
->SBUFontSet.body3
)quotedMessageBackgroundColor
: light(removed alpha value 0.5)
- Added
SBUMessageCellTheme
- Renamed
unknownMessageDescTextColor
tounknownMessageDescLeftTextColor
- Added
unknownMessageDescRightTextColor
- Renamed
SBUChannelSettingsTheme
userNameFont
(subtitle1 -> h1)urlFont
(body3 -> body1)cellDescriptionTextFont
(subtitle3 -> body3)
SBUCreateOpenChannelTheme
textFieldFont
(body3 -> subtitle1)
- Please add the code below in
AppDelegate
orSceneDelegate
to use the values before the change.SBUTheme.groupChannelListTheme.notificationOnTintColor = SBUColorSet.background50 SBUTheme.openChannelCellTheme.participantCountFont = SBUFontSet.caption1 SBUTheme.channelTheme.menuItemDisabledColor = SBUColorSet.ondark04 SBUTheme.channelTheme.mentionLimitGuideTextFont = SBUFontSet.body1 SBUTheme.channelSettingsTheme.userNameFont = SBUFontSet.subtitle1 SBUTheme.channelSettingsTheme.urlFont = SBUFontSet.body3 SBUTheme.channelSettingsTheme.cellDescriptionTextFont = SBUFontSet.subtitle3 SBUTheme.createOpenChannelTheme.textFieldFont = SBUFontSet.body3
- Renamed
- Fixed bcsymbolmap issue for SPM
- Added
contentMode
parameter tosetImage(withImage:backgroundColor:makeCircle:)
inSBUCoverImageView
- Modified SendbirdUIKit initializer to synchronously
- Deprecated functions in
SBUGroupChannelListViewModel
updateChannels(_:needReload:)
upsertChannels(_:needReload:)
deleteChannels(_:needReload:)
sortChannelList(needReload:)
- Improved stability
IMPORTANT If you use Swift Package Manager, Please reset package cache before download the current version.
- Support Open channel list features
- Added classes
SBUOpenChannelListViewController
SBUOpenChannelCell
SBUOpenChannelListViewModel
SBUOpenChannelListModule
,SBUOpenChannelListModule.Header
andSBUOpenChannelListModule.List
- Added
OpenChannelListViewController
inSBUViewControllerSet
- Added
openChannelListModule
inSBUModuleSet
- Added
openChannelListTheme
andopenChannelCellTheme
inSBUTheme
- Added
isPullToRefreshEnabled
property inSBUBaseChannelListModule.List
- Added
pullToRefresh(_:)
function inSBUBaseChannelListModule.List
- Added
baseChannelListModuleDidSelectRefresh(_:)
protocol inSBUBaseChannelListModuleListDelegate
- Added
iconChannels
inSBUIconSetType
- Supported openChannelList feature on
moveToChannel
function inSendbirdUI
- Added classes
- Support Create open channel features
- Added classes
SBUCreateOpenChannelViewController
SBUCreateOpenChannelViewModel
SBUCreateOpenChannelModule
,SBUCreateOpenChannelModule.Header
andSBUCreateOpenChannelModule.ProfileInput
- Added
CreateOpenChannelViewController
inSBUViewControllerSet
- Added
createOpenChannelModule
inSBUModuleSet
- Added
createOpenChannelTheme
inSBUTheme
- Added
openChannelParamsCreateBuilder
inSBUGlobalCustomParams
- Added create open channel related Strings in
SBUStringSet
CreateOpenChannel_Create
,CreateOpenChannel_Header_Title
,CreateOpenChannel_ProfileInput_Placeholder
- Added
user
object inSBUUser
for accessing ChatSDK's user
- Added classes
- Added
openChannelModule(_:didTapMediaView:)
inOpenChannelModuleMediaDelegate
method. - Added
UITextField
related classesUITextField+SBUIKit
SBUUnderLineTextField
- Added
tag
parameter inSBUCommonItem
- Added
delete
case inMediaResourceType
- Added
SBUBaseChannelListViewModel
- Added
SBUBaseChannelListModule
,SBUBaseChannelListModule.Header
,SBUBaseChannelListModule.List
classes - Renamed
SBUGroupChannelListModuleListDelegate
functionschannelListModule(_:didSelectRowAt:)
togroupChannelListModule(_:didSelectRowAt:)
channelListModule(_:didDetectPreloadingPosition:)
togroupChannelListModule(_:didDetectPreloadingPosition:)
channelListModule(_:didSelectLeave:)
togroupChannelListModule(_:didSelectLeave:)
channelListModule(_:didChangePushTriggerOption:channel:)
togroupChannelListModule(_:didChangePushTriggerOption:channel:)
channelListModuleDidSelectRetry(_:)
togroupChannelListModuleDidSelectRetry(_:)
- Renamed
SBUGroupChannelListModuleListDataSource
functionchannelListModule(_:channelsInTableView:)
togroupChannelListModule(_:channelsInTableView:)
- Renamed
channelListModule
inSBUModuleSet
togroupChannelListModule
- Renmaed
defaultLeftButton
,defaultRightButton
todefaultLeftBarButton
,defaultRightBarButton
- Replaced
setPlaceholderImage(iconSize:)
tosetPlaceholder(type:iconSize:)
inSBUCoverImageView
- Added
setPlaceholder(type:iconSize:)
- Deprecated
setPlaceholderImage(iconSize:)
- Added
- Improved stability
- Added message menu interfaces and events to
BaseChannelModuleList
- List
showMessageMenu(on:forRowAt:)
showFailedMessageMenu(on:)
showDeleteMessageAlert(on:oneTimeTheme:)
showMessageMenuSheet(for:cell:)
showMessageContextMenu(for:cell:forRowAt:)
createMessageMenuItems(for:) -> [SBUMenuItem]
createCopyMenuItem(for:) -> SBUMenuItem
createDeleteMenuItem(for:) -> SBUMenuItem
createEditMenuItem(for:) -> SBUMenuItem
createSaveMenuItem(for:) -> SBUMenuItem
createReplyMenuItem(for:) -> SBUMenuItem
- Delegate
baseChannelModule(_:didTapRetryFailedMessage:)
baseChannelModule(_:didTapDeleteFailedMessage:)
baseChannelModule(_:didTapCopyMessage:)
baseChannelModule(_:didTapDeleteMessage:)
baseChannelModule(_:didTapEditMessage:)
baseChannelModule(_:didTapSaveMessage:)
baseChannelModule(_:didTapReplyMessage:)
baseChannelModule(_:didReactToMessage:withEmoji:selected:)
baseChannelModule(_:didTapMoreEmojisOnMessage:)
baseChannelModule(_:didDismissMenuForCell:)
- DataSource
baseChannelModule(_:parentViewControllerDisplayMenuItems:) -> UIViewController?
- List
- Improved stability
- Improved logic in
SBUUserListViewController
- Fixed typo in
SBUViewControllerSet
- Improved logic in
- Improved stability
- Support moderation in OpenChannel
SBUModuleSet
- Deprecated
moderationsModule
property, usegroupModerationsModule
oropenModerationsModule
instead - Deprecated
registerOperatorModule
property, usegroupRegisterOperatorModule
oropenRegisterOperatorModule
instead - Deprecated
userListModule
property, usegroupUserListModule
oropenUserListModule
instead - Deprecated
init(channelListModule:baseChannelModule:groupChannelModule:openChannelModule:inviteUserModule:registerOperatorModule:userListModule:groupChannelPushSettingsModule:createChannelModule:groupChannelSettingsModule:openChannelSettingsModule:moderationsModule:messageSearchModule:)
function, useinit(channelListModule:baseChannelModule:groupChannelModule:openChannelModule:inviteUserModule:groupRegisterOperatorModule:openRegisterOperatorModule:groupUserListModule:openUserListModule:groupChannelPushSettingsModule:createChannelModule:groupChannelSettingsModule:openChannelSettingsModule:groupModerationsModule:openModerationsModule:messageSearchModule:)
instead
- Deprecated
SBUViewControllerSet
- Renmaed
groupChannelPushSettingsViewController
toGroupChannelPushSettingsViewController
- Deprecated
RegisterOperatorViewController
, useGroupChannelRegisterOperatorViewController
orOpenChannelRegisterOperatorViewController
instead - Deprecated
UserListViewController
, useGroupUserListViewController
orOpenUserListViewController
instead - Deprecated
ModerationsViewController
, useGroupModerationsViewController
orOpenModerationsViewController
instead
- Renmaed
SBUEnums
- Added
allTypes(channel:)
function inModerationItemType
enum - Added
noMutedParticipants
case inEmptyViewType
- Added
SBUModerationsViewController
- Deprecated
init(channelURL:)
, useinit(channelURL:channelType:)
instead - Deprecated
createViewModel(channel:channelURL:)
, usecreateViewModel(channel:)
orcreateViewModel(channelURL:channelType:)
instead
- Deprecated
- Added functions in
SBUOpenChannelSettingsViewController
classshowModerationList()
showDeleteChannelAlert()
- Deprecated function in
SBUModerationsViewModel
classinit(channe:channelURL:delegate:)
-> Useinit(channel:delegate:)
orinit(channelURL:channelType:delegate:)
instead
- Added
channelType
parameter in configuration function ofSBUUserListModule.Header
- Added
channelType
parameter in initialization function ofSBURegisterOperatorViewController
- Added
participantListQuery
parameter in initialization function ofSBUBaseSelectUserViewModel
- Added
mutedParticipantListQuery
parameter in initialization function ofSBUUserListViewModel
- Added
sbu_updateOperatorStatus(channel:)
- Improved list item customization of Group/OpenChannelSettings
- Added
SBUChannelSettingItem
- Added
SBUBaseChannelSettingCell
,SBUGroupChannelSettingCell
andSBUOpenChannelSettingCell
- Added did select related delegates in
SBUGroupChannelSettingsModule.List
andSBUOpenChannelSettingsModule.List
- Modified
configureCell
ofSBUGroupChannelSettingsModule.List
andSBUOpenChannelSettingsModule.List
to useSBUChannelSettingItem
- Added
- Added moderations menu in OpenChannelSettings
- Added
itemDeleteTextColor
property inSBUChannelSettingsTheme
- Added strings
ChannelSettings_Delete_Question_Mark
ChannelSettings_Delete_Description
- Added
- Added ChannelSetting item's notification strings
ChannelSettings_Notifications_On
ChannelSettings_Notifications_Off
ChannelSettings_Notifications_Mentiones_Only
- Modified
loadAllEmojis(completionHandler:)
function access level topublic
inSBUEmojiManager
class - Improved stability
- UIKit v3.0.0 officially version
- Applied
SBUSelectablePhotoViewDelegate
andPHPickerViewControllerDelegate
toSBUBaseChannelSettingViewController
- Added
showCamera()
,showPhotoLibraryPicker()
,showLimitedPhotoLibraryPicker()
andshowPermissionAlert()
toSBUBaseChannelSettingViewController
- Added
- Added
init(mediaType:)
toSBUSelectablePhotoViewController
- Added
startHandler
toSendbirdUI
initializer- Renamed to
initialize(applicationId:startHandler:migrationHandler:completionHandler:)
- Renamed to
- Set
setMemberInfoInMessage
option totrue
- Added muted mode feature in OpenChannel
- Fixed quoted message long name layout issue
- Modified access level of message cell interfaces
- Added
messageInputView(_:willChangeMode:message:mentionManager:)
toSBUGroupChannelModule.Input
- Changed
SBUMessageInputView option
to read-only - Renamed
SBUStringSet
ChannelSettings_Banned_Members
toChannelSettings_Banned_Users
Empty_No_Banned_Members
toEmpty_No_Banned_Users
InviteChannel_Header_Select_Members
toInviteChannel_Header_Select_Users
InviteChannel_Add
toInviteChannel_Register
MemberList_Me
toUserList_Me
MemberList_Ban
toUserList_Ban
MemberList_Unban
toUserList_Unban
MemberList_Mute
toUserList_Mute
MemberList_Unmute
toUserList_Unmute
MemberList_Dismiss_Operator
toUserList_Unregister_Operator
MemberList_Promote_Operator
toUserList_Register_Operator
MemberList_Title_Members
toUserList_Title_Members
MemberList_Title_Operators
toUserList_Title_Operators
MemberList_Title_Muted_Members
toUserList_Title_Muted_Members
MemberList_Title_Banned_Members
toUserList_Title_Banned_Users
MemberList_Title_Participants
toUserList_Title_Participants
UserProfile_Promote
toUserProfile_Register
UserProfile_Dismiss
toUserProfile_Unregister
- Added new
SBUStringSet
UserList_Title_Muted_Participants
Empty_No_Muted_Participants
- Removed unused
SBUStringSet
MemberList_Header_Title
- Renamed
SBUEnums
ChannelMemberListType
toChannelUserListType
channelMembers
,mutedMembers
,bannedMembers
tomembers
,muted
,banned
inChannelMemberListType
bannedMembers
tobannedUsers
inModerationItemType
channelMembers
,inviteUser
,mutedMembers
,bannedMembers
tomembers
,invite
,muted
,banned
inUserListType
noBannedMembers
tonoBannedUsers
inEmptyViewType
- Renamed
SBUMemberListViewController
toSBUUserListViewController
- Renamed properties, functions in
SBUMemberListViewController
memberList
,memberListType
touserList
,userListType
init(channel:memberListType:)
toinit(channel:userListType:)
init(channel:members:type:)
toinit(channel:users:userListType:)
init(channelURL:channelType:members:memberListType:)
toinit(channelURL:channelType:users:userListType:)
- Modified some view to be able to change its date format
- Opened
SBUMessageDateView
- Opened
SBUChannelCell
- Added
SBUMessageDateView.dateFormat
- Added
SBUOpenChannelContentBaseMessageCell.dateFormat
- Added
SBUMessageSearchResultCell.dateFormat
- Added parameters to
SBUChannelCell buildLastUpdatedDate()
:dateFormat
,timeFormat
- Opened
- Added public classes and interfaces regarding message cells
- Added open/public interfaces in message cells.
- Added
SBULinkClickableTextView
- Added
SBUMessageWebView
,SBUMessageWebViewModel
andSBUOpenChannelMessageWebView
- Added
SBUUserMessageTextViewDelegate
,SBUUserMessageTextViewModel
andSBUUserMessageTextView
- Added
SBUUserNameView
- Added
SBUFileViewerDelegate
andSBUFileViewer
- Added
QuotedFileCommonContentView
andQuotedFileImageContentView
- Added
SBUMessageReactionView
- Added
SBUDateFormatSet
- Added
Date.sbu_toString(dateFormat:localizedFormat)
- Changed
Date.lastUpdatedTime
function inData+SBUIKit
access level to public - Fixed not called completion handler on unregister pushToken
- Added channel push settings feature.
- Added
SBUGroupChannelPushSettingsViewController
class. - Added
SBUGroupChannelPushSettingsModule
,SBUGroupChannelPushSettingsModule.Header
and
SBUGroupChannelPushSettingsModule.List
classes. - Added
SBUGroupChannelPushSettingsViewModel
class. - Added
ChannelPushSettings_Header_Title
,ChannelPushSettings_Notification_Title
,ChannelPushSettings_Item_All
,ChannelPushSettings_Item_Mentions_Only
,ChannelPushSettings_Notification_Description
.
- Added
- Added
keyword
toSBUHighlightInfo
- Modify parameter
highlight
tohighlightKeyword
inSBUCommonContentView
- Modified searched message cell display method (highlight -> animation)
- Added mentioned user nickname highlighting.
- Added show mini profile function when touch mentioned nickname.
- Added initialize function in
SBUCreateChannelVC
. - Renamed
SBUStringSet.Channel_Header_Typing
toSBUStringSet.Channel_Typing
- Updated
SBUTheme.channelCell
- Added
succeededStateColor
- Added
deliveryReceiptStateColor
- Added
readReceiptStateColor
- Added
- Added
leftBarButton
toSBUSelectablePhotoViewController
- Added
leftBarButton
- Added
didTapLeftBarButton()
- Added
- Improved stability.
- Added User Mention Features
- Added Mention feature to
SBUGlobals
userMentionConfig
isUserMentionEnabled
- Added
Mention
toSBUStringSet
Mention.Trigger_Key
Mention.Limit_Guide
- Added
SBUUserMentionConfiguration
- Added
SBUBaseChannelViewModel
methodssendUserMessage(text:mentionedMessageTemplate:mentionedUserIds:parentMessage:)
updateUserMessage(message:text:mentionedMessageTemplate:mentionedUserIds:)
- Added properties to
SBUMessageInputView
defaultAttributes
,mentionedAttributes
- Added
SBUMessageInputViewDelegate
methodsmessageInputView(_:shouldChangeTextIn:replacementText:) -> Bool
messageInputView(_:shouldInteractWith:in:interaction:) -> Bool
messageInputView(_:didChangeSelection:)
- Added
SBUGroupChannelModuleInputDelegate
methodsgroupChannelModule(_:didTapSend:mentionedMessageTemplate:mentionedUserIds:parentMessage:)
groupChannelModule(_:didTapEdit:mentionedMessageTemplate:mentionedUserIds:)
groupChannelModule(_:shouldLoadSuggestedMentions:)
- Added
SBUMentionManager
,SBUMentionManagerDelegate
andmentionManager(_didChangeSuggestedMention:filteredText:isTriggered:)
,mentionManager(_:didInsertMentionsTo:)``SBUMentionManagerDataSource
- Added
SBUSuggestedMentionList
,SBSBUSuggestedMentionListDelegate
Mention_Limit_Guide
toSBUStringSet
isMentionGuideEnabled
SBUMentionLimitGuideCell
suggestedUserList(_:didSelectUser:)
- Updated
SBUGroupChannelCell
unreadMentionLabel
- Updated
SBUGroupChannelModule.Input
mentionManager
suggestedMentionList
setupMentionManager
,updateSuggestedMentionList(with:)
,presentSuggestedMentionList()
,dismissSuggestedMentionList()
- Updated
SBUUserCell
to supportSBUSuggestedMentionList
UserListType.suggestedMention
nicknameLabel
anduserIdLabel
- Renamed
userNickname
tonicknameLabel
- Renamed
userNameTextColor
anduserNameFont
tonicknameTextColor
andnicknameFont
- Updated
SBUTheme
for the mention featuresmentionTextFont
,mentionLeftTextColor
,mentionRightTextColor
,mentionLeftTextBackgroundColor
,mentionRightTextBackgroundColor
for message cell.mentionTextFont
,mentionTextColor
,mentionTextBackgroundColor
for message input.mentionLimitGuideTextFont
,mentionLimitGuideTextColor
,separatorColor
for channel.unreadMentionTextFont
,unreadMentionTextColor
for channel cell.nicknameTextFont
,nicknameTextColor
,nonameTextColor
,userIdTextFont
anduserIdTextColor
- Added Mention feature to
- Applied modularization.
- The structure has been changed to use
Module
for functions related to UI, and to useViewModel
for functions related to data processing.
- The structure has been changed to use
- Please refer to the Breaking changes v3.
- Please refer to the Changelog v2.