- Fixed an issue where the okhttp library throws an
IllegalArgumentException: port out of range:-1
error and causes a crash.
- Fixed unread message count to be updated when an unread message is deleted
- Improved stability
- Fixed an
IllegalArgumentException
from serializing theFileMessage.fileMessageParams
when it contained an additional property that the SDK is not aware of
- Improved stability
- Added MessageSearchQuery's totalCount and made it public (MessageSearchQuery.getTotalCount())
- Implemented channel membership history where clients can retrieve whether users have joined or left the channel (
MemberState.LEFT
for left members of aGroupChannel
) - Fixed a bug where
onSessionTokenRequired()
is not called immediately after session expires
- Improved thread management to reduce total thread count
- Improved memory management related to network I/O to reduce memory usage
- Changed way to detect internet availabilty when uploading a file
- Return error when empty or null value is passed on as APP_ID in
SendBird.init()
- Fixed a bug where when reconnected, an updated message gets removed and added again in
MessageCollection
- Improved stability.
- Improved stability.
- Fill
BaseMessage.mentionedUsers
payload in pending messages if it was set byBaseMessageParams.setMentionedUsers()
.
- Added
HiddenChannelFilter.ALL
. - Fixed bug where nicknameContainsFilter is filtered incorrectly in regards to case sensitivity.
- Fix a bug where an auto-resendable messages could've been sent multiple times.
- Fix a bug where an auto-resendable messages could've been sent multiple times.
- Improved stability.
- Fixed NPE in
AbstractPushHandlers.isUniquePushToken()
. - Fixed bugs.
- Channel not being removed from the
GroupChannelCollection
when a user leaves a public group channel. - Channel's metadata related events not being delivered to
MessageCollectionHandler.onChannelUpdated()
. - Message events not being fired when sending a new message right after creating a new
MessageCollection
instance.
- Channel not being removed from the
- Added
SendBird.getTotalUnreadChannelCount(GroupChannelTotalUnreadChannelCountParams, GroupChannel.GroupChannelTotalUnreadChannelCountHandler)
.
- Fixed a bug where
ACK_TIMEOUT(800180)
errors were incorrectly being sent. - Fixed a bug in MessageCollection where pending messages could remain in a pending state after being sent.
- Fixed a bug in
baseChannel.sendUserMessage()
andbaseChannel.sendFileMessage()
, where the callback could've been called twice when the message failed to be sent.
- Fixed a bug in GroupChannelCollection that caused crashes when channels are loaded after the collection is disposed.
- Deprecated
ConnectionManager
.
- Added static method to create
Query
instances.static PreviousMessageListQuery.create(channelType, channelUrl)
static OperatorListQuery.create(channelType, channelUrl)
static PollListQuery.create(channelUrl)
static PollVoterListQuery.create(pollId, pollOptionId, channelUrl)
static BannedUserListQuery.create(channelType, channelUrl)
static GroupChannelMemberListQuery.create(channelUrl)
static ParticipantListQuery.create(channelUrl)
static MutedUserListQuery.create(channelType, channelUrl)
- Added
applyParentMessage(BaseMessage)
inBaseMessage
to allow a child (reply) message to update a parent message object when updated. - Fixed a bug that could cause an ANR (Application Not Responding) in
SendBird.connect()
.
- Fixed an issue that channels created in the background do not properly load from GroupChannelCollection.
- Fixed channel’s metadata not being cached in database which causes
BaseChannel.getCachedMetaData()
returning an empty Map.
- Fixed
NoSuchFieldException
on deserializing a BaseMessage object when proguard is enabled. - Fixed bugs related to updating a message.
BaseMessage.message
being reset if UserMessageParams.message is not set explicitly.BaseMessage.requestId
getting parsed with wrong key.
- Improved stability.
-
Deprecated as this version would cause
NoSuchFieldException
fromBaseMessage.buildFromSerialzedData()
if ProGuard was enabled. -
Local caching support. See Local Caching for details.
- Added
MessageCollection
. - Added
MessageCollectionHandler
. - Added
MessageContext
. - Added
MessageCollectionInitPolicy
. - Added
GroupChannelCollection
. - Added
GroupChannelCollectionHandler
. - Added
GroupChannelContext
. - Added
CollectionEventSource
. - Deprecated
SendBird.init(String, Context)
.- Replaced by
SendBird.init(String, Context, boolean, InitResultHandler)
.
- Replaced by
- Deprecated
SendBird.initFromForeground(String, Context)
.- Replaced by
SendBird.initFromForeground(String, Context, boolean, InitResultHandler)
.
- Replaced by
- Added SendBird.clearCachedData(Context, CompletionHandler).
- Added SendBird.clearCachedMessages(String, CompletionHandler).
- Added SendBird.getCachedDataSize(Context).
- Added
-
Added Reply to Channel feature.
- Added
ReplyTypeFilter
for loading messages with respect to message's reply messages.- Added
setReplyTypeFilter
andgetReplyTypeFilter
inMessageListParams
,MessageChangeLogsParams
andPreviousMessageListQuery
. - Deprecated
setIncludeReplies
andshouldIncludeReplies
inMessageListParams
,MessageChangeLogsParams
andPreviousMessageListQuery
.
- Added
- Deprecated
setIncludeParentMessageText
andshouldIncludeParentMessageText
inMessageListParams
,MessageChangeLogsParams
andPreviousMessageListQuery
.- Replaced by
setMessagePayloadFilter
withMessagePayloadFilter.setIncludeParentMessageInfo()
set.
- Replaced by
- Added
isReplyToChannel
inBaseMessage
. - Added
setReplyToChannel
inBaseMessageParams
. - Added
getParentMessage
inBaseMessage
.
- Added
- Added
RestrictionInfo
which contains information for users who are either muted or banned. - Added
RestrictionUser
for muted or banned users, which containsRestrictionInfo
.MutedUserListQuery.next()
andBannedUserListQuery.next()
will give a list ofRestrictedUser
objects.ChannelHandler.onUserMuted()
andChannelHandler.onUserBanned()
will give aRestrictedUser
object.
- Added
getRestrictionInfo()
inMember
.
- Added
markAsRead(SendBird.MarkAsReadHandler)
and deprecatedmarkAsRead()
inGroupChannel
.
- Added
setMetaDataValuesFilter(String, List<String>)
,setMetaDataValueStartsWithFilter(String, String)
inGroupChannelListQuery
andPublicGroupChannelListQuery
. - Added
MessagePayloadFilter
which contains filters regarding message payload used in loading messages. Affected classes includes:MessageListParams
ThreadMessageListParams
MessageRetrievalParams
MessageChangeLogsParams
PreviousMessageListQuery
- Fixed an occasional NPE bug while parsing
BaseMessage
object.
- Deprecated following methods and these will be removed on new release after December 31, 2021. Refer to
DEPRECATED.md
for replacement details.getNextMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getNextMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getNextMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getNextMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getPreviousMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getPreviousMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getPreviousMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getPreviousMessagesByTimestamp(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getPreviousAndNextMessagesByTimestamp(long, int, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getPreviousAndNextMessagesByTimestamp(long, int, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getPreviousAndNextMessagesByTimestamp(long, int, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getPreviousAndNextMessagesByTimestamp(long, int, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getNextMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getNextMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getNextMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getNextMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getPreviousMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getPreviousMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getPreviousMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getPreviousMessagesById(long, boolean, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getPreviousAndNextMessagesById(long, int, int, boolean, MessageTypeFilter, String, GetMessagesHandler)
getPreviousAndNextMessagesById(long, int, int, boolean, MessageTypeFilter, String, List<String>, GetMessagesHandler)
getPreviousAndNextMessagesById(long, int, int, boolean, MessageTypeFilter, String, List<String>, boolean, GetMessagesHandler)
getPreviousAndNextMessagesById(long, int, int, boolean, MessageTypeFilter, String, List<String>, boolean, boolean, GetMessagesHandler)
getMessageChangeLogsByToken(String, GetMessageChangeLogsByTokenHandler)
getMessageChangeLogsByToken(String, boolean, GetMessageChangeLogsByTokenHandler)
getMessageChangeLogsByToken(String, boolean, boolean, GetMessageChangeLogsByTokenHandler)
getMessageChangeLogsByTimestamp(long, GetMessageChangeLogsHandler)
getMessageChangeLogsByTimestamp(long, boolean, GetMessageChangeLogsHandler)
getMessageChangeLogsByTimestamp(long, boolean, boolean, GetMessageChangeLogsHandler)
- Optimized Supergroup protocol handling to improve performance for specific use cases
- Improved stability.
- Improved stability.
- Added support for Firebase Cloud Messaging version 22.0.0 in
SendBirdPushHandler
. (for push notification with multi-device support)
- SDK now uses different strategy for creating thread when
SendBird.ThreadOption.NEW_THREAD
is enabled. This is done to save system resources. - Added
getJoinedAt()
inGroupChannel
- Fixed strict mode violations.
- Added
setNicknameStartsWithFilter()
inApplicationUserListQuery
- Improved stability.
- Improved stability.
- Added
LogLevel#NONE
. - Added
AppleCriticalAlertOptions
class andgetAppleCriticalAlertOptions
andsetAppleCriticalAlertOptions
inBaseMessage
,BaseMessageParams
,FileMessageParams
,UserMessageParams
, andScheduledUserMessageParams
. - From this version, it is not available on
jcenter
. This version can only be available from Sendbird's maven repository:maven { url "https://repo.sendbird.com/public/maven" }
. - From this version,
minSdkVersion
is upgraded to16
from14
.
- Internal changes and refactoring to improve stability.
- This is the last release that will be available on
jcenter
. From the next release, SDK binary will be available from Sendbird's maven repository:maven { url "https://repo.sendbird.com/public/maven" }
.
- Added
alwaysReceiveMessage()
inSendBirdPushHandler
andSendBirdHmsPushHandler
. - When using multi-device support for push notification, by default, the SDK ignores push payload when the app is connected to the Sendbird (online). To always receive push payload regardless of the connection state, override this method and return
true
. - Added
SendBird.ChannelHandler#onChannelMemberCountChanged
andSendBird.ChannelHandler#onChannelParticipantCountChanged
. - SDK now uses AndroidX libraries instead of support libraries. (with jetifier turned off)
- Deprecated
SendBirdError#ERR_ACCESS_TOKEN_NOT_VALID
,SendBirdError#ERR_SESSION_TOKEN_EXPIRED
. The two error codes had same value (400302
) and will be replaced bySendBirdError#ERR_INVALID_TOKEN
(400302). - Added
BaseChannel#getCachedMetaData
. - Added a new constructor
MessageSearchQuery.Builder(MessageSearchQuery)
inMessageSearchQuery.Builder
.
- Fixed a bug which response(
PushTokenRegistrationStatus
) forRegisterPushTokenWithStatusHandler
could be null.
- Changed the visibility scope of
AbstractPushHandler
frompackage-private
topublic
. This change was made to support Kotlin clients.
- Fixed a bug where the SDK tried to coerce non-integer into integer regarding OGImage's width and height. If the height and width are not numbers, the fields will be set to 0.
- Improved stability.
- OOM related to
APITaskQueue
has been fixed. - Now we provide a wider scope of logs related to network communications.
LogLevel
,SendBird#setLoggerLevel(LogLevel)
are added. The default log level isWarn
. - File size check logic for sending a file message has been added to the SDK.
- Deprecated
addOperator(User)
,addOperators(List<User>)
,addOperatorId(String)
,addOperatorIds(List<String>)
inOpenChannelParams
. - Added
setOperators(List<User>)
,setOperatorIds(List<String>)
inOpenChannelParams
. - Improved stability.
GroupChannel#setPushPreference(boolean, GroupChannelSetPushPreferenceHandler)
is now deprecated. Please useGroupChannel#setMyPushTriggerOption(PushTriggerOption, GroupChannelSetMyPushTriggerOptionHandler)
instead.- Improved stability.
- Added
createChannel()
withOpenChannelParams
inOpenChannel
. - Added
updateChannel()
withOpenChannelParams
inOpenChannel
. - Added
OpenChannelParams
. - Changes in
BaseChannel.sendFileMessage()
.- When sending a file message with a
File
object, SDK will calculate the file size internally. (fileSize
parameter will be overridden by our calculation result).
- When sending a file message with a
- Improved stability.
- Added
MessageListParams#setShowSubchannelMessagesOnly
andMessageListParams#shouldShowSubchannelMessagesOnly
. - Added
PreviousMessageListQuery#setShowSubchannelMessagesOnly
andPreviousMessageListQuery#shouldShowSubchannelMessagesOnly
GroupChannelListQuery#getCustomTypesFilter
now returns a copy of the filter list instead of directly returning the reference.- Improved stability.
- Modified
BaseMessage#buildFromSerializedData(byte[], SendingStatus)
- Added
BaseMessage#buildFromSerializedData(byte[], SendingStatus)
- Added
GroupChannel.getTypingUsers()
inGroupChannel
to retrieve the typing user list in current channel. - Deprecated
getTypingMembers()
inGroupChannel
. - Improved stability.
- Improved stability.
- Stabilize socket connection
- Added
getCreator()
inGroupChannel
to retrieve the creator of the channel. - Improved stability.
- Activated -
OperatorFilter
inGroupChannelMemberListQuery
- Added
setWebSocketResponseTimeout()
inSendBird.Options
to manually set timeout value.
- Added -
GroupChannelMemberListQuery#Order
,GroupChannelMemberListQuery#setOrder
for the member list query. - Added -
isMuted
property inMember
class - Added -
getAttributesInUse
inAppInfo
class - Modified TLS 1.3 support implementation to support dynamic delivery. (removed
SendBirdInitProvider
)
- Added open graph feature along with OGMetaData and OGImage class.
- Added ogMetaData property in BaseMessage.
- Improved stability.
- Fixed bug on userId not being set in certain cases for pending/failed messages.
- Improved stability.
- Added
addOperators(Collection<String>, AddOperatorsHandler)
,removeOperators(Collection<String>, RemoveOperatorsHandler)
,removeAllOperators(RemoveAllOperatorsHandler)
methods inBaseChannel
. - Improved stability.
- Added
from()
method inGroupChannelChangeLogsParams
to createGroupChannelChangeLogsParams
fromGroupChannelListQuery
. - Added
from()
method inMessageChangeLogsParams
to createMessageChangeLogsParams
fromPreviousMessageListQuery
,MessageListParams
andThreadMessageListParams
. - Added
getUnreadMemberCount
andgetUndeliveredMemberCount
inGroupChannel
. - Deprecated
getDeliveryReceipt
andgetReadReceipt
inGroupChannel
. - Improved stability.
- Improved stability.
- Add consumerProguardFile for libraries used in SDK
- Improved stability.
- Fixed bugs on push notification not being received when app is killed. (Only for apps that use push notifications for multi-device users (Android only))
- Added
includeFrozen
property inGroupChannelListQuery
,PublicGroupChannelListQuery
,OpenChannelListQuery
andGroupChannelChangeLogsParams
. - Added
GroupChannelChangeLogsParams
. - Added
getMyGroupChannelChangeLogsByTokenWithParams()
,getMyGroupChannelChangeLogsByTimestampWithParams()
and deprecatedgetMyGroupChannelChangeLogsByToken()
,getMyGroupChannelChangeLogsByTimestamp()
- Added
AppInfo
class (for UIKit) - Added emoji feature with
Emoji
,EmojiCategory
,EmojiContainer
class (for UIKit) - Improved stability.
- Added
setMetaArrays(List<MessageMetaArray>)
inUserMessageParams
andFileMessageParams
. - Deprecated
setMetaArrayKeys(List<String>)
inUserMessageParams
andFileMessageParams
. - Improved stability.
- Prevent crash issue on receiving custom push notification.
- Improved stability.
- Improved stability.
- Stabilize connection state.
- Improved stability.
- Improved stability.
- Added
getRole()
inMember
to specify whether the member is an operator of the channel or not. - Added
onOperatorUpdated(BaseChannel channel)
inChannelHandler
. OpenChannel.getOperators
now returns the operator list as an unmodifiableList.- Improved stability.
- Improved stability.
- Added multi-device support for push notifications.
- Improved stability.
- Deprecated 3.0.119 as
BaseChannel.resendUserMessage
causes crash when used with SyncManager's autoResend feature. - Added version control over the final state of
reactions
. - Changed the order of reactions.
- Removed a
ERR_REACTION_DUPLICATED
error code - Added
SendingStatus
inBaseMessage
, and deprecatedRequestState
inUserMessage
,FileMessage
.NONE
,PENDING
,FAILED
,SUCCEEDED
,CANCELED
.
- Improved stability.
resendUserMessage()
,resendFileMessage()
returns the corresponding messages withPENDING
state.- Improved stability.
- Moved
getRequestId()
,getMessage()
,getSender()
toBaseMessage
to prevent type-casting. - Redefined
equals()
,hashCode()
methods. Following objects is affected by this.BaseMessage
,UserMessage
,FileMessage
,AdminMessage
User
,Memeber
,Sender
- Improved stability.
- Improved stability.
- Supports Full-Text Message Search Feature
- Added
MessageSearchQuery
to search messages. - Added builder class
MessageSearchQuery.Builder
to buildMessageSearchQuery
.
- Added
- Improved stability.
- Fixed minor bugs.
- Supports reactions in
BaseMessage
- Added
Reaction
andReactionEvent
classes. - Added
addReaction(BaseMessage message, String key, ReactionHandler handler)
inBaseChannel
. - Added
deleteReaction(BaseMessage message, String key, ReactionHandler handler)
inBaseChannel
. - Added
includeReactions
parameter toget**MessagesById()
,get**MessagesByTimestamp()
inBaseChannel
. - Added
includeReactions
parameter togetMessageChangeLogsByToken()
,getMessageChangeLogsByTimestamp()
inBaseChannel
. - Added
onReactionUpdated(BaseChannel channel, ReactionEvent reactionEvent)
inChannelHandler
. - Added
getReactions()
inBaseMessage
. - Added
applyReactionEvent(ReactionEvent reactionEvent)
inBaseMessage
. - Added a
ERR_REACTION_DUPLICATED
error code for the send reaction request which usually occurs a duplicate reaction.
- Added
- Added
markAsDelivered()
inSendBird
. - Added
markAsDelivered()
,getDeliveryReceipt()
inGroupChannel
. - Added
onDeliveryReceiptUpdated
inChannelHandler
. - Improved stability.
- Improved stability.
- Added
errorCode
andisResendable()
inUserMessage
andFileMessage
.resendUserMessage()
andresendFileMessage()
work only whenisResendable()
istrue
.
- Supports push translation.
- Added
updateCurrentUserInfo(List<String> preferredLanguages, UserInfoUpdateHandler handler)
in SendBird. - Added
getPreferredLanguages()
in User.
- Added
- Improved stability.
- Added
getMessageOffsetTimestamp()
in GroupChannel.
- SendBird Android SDK has been changed from Java Archive(
JAR
) into Android Archive(AAR
). - Supports TLS1.3.
- Improved stability.
- Added
report(ReportCategory reportCategory, String reportDescription, ReportHandler handler)
in BaseChannel. - Added
reportUser(User offendingUser, ReportCategory reportCategory, String reportDescription, ReportUserHandler handler)
in BaseChannel. - Added
reportMessage(BaseMessage message, ReportCategory reportCategory, String reportDescription, ReportMessageHandler handler)
in BaseChannel. - Added
onTotalUnreadMessageCountChanged(int totalCount, Map<String, Integer> totalCountByCustomType)
in UserEventHandler.
- Improved stability.
- Improved stability.
- Improved stability.
- Improved stability.
- Improved stability.
- Improved
MetaArray
inBaseMessage
.MetaArray
order passed as a parameter will be kept.- Added
MessageMetaArray
class. - Added
getAllMetaArrays()
andgetMetaArrays(Collection<String> metaArrayKeys)
inBaseMessage
. - Added
addMessageMetaArrayValues(BaseMessage message, List<MessageMetaArray> metaArrays, MessageMetaArrayHandler handler)
andremoveMessageMetaArrayValues(BaseMessage message, List<MessageMetaArray> metaArrays, MessageMetaArrayHandler handler)
inBaseChannel
. - Deprecated
getAllMetaArray()
andgetMetaArray(Collection<String> metaArrayKeys)
inBaseMessage
. - Deprecated
addMessageMetaArrayValues(BaseMessage message, Map<String, List<String>> metaArrayMap, MessageMetaArrayHandler handler)
andremoveMessageMetaArrayValues(BaseMessage message, Map<String, List<String>> metaArrayMap, MessageMetaArrayHandler handler)
inBaseChannel
.
- Added
- Added
resendFileMessage(FileMessage fileMessage, File file, ResendFileMessageHandler handler)
andresendFileMessage(FileMessage fileMessage, File file, ResendFileMessageWithProgressHandler handler)
inBaseChannel
. - Added
getRequestState()
andenum RequestState { NONE, PENDING, FAILED, SUCCEEDED }
inFileMessage
. - Added
setStrict(boolean strict)
inGroupChannelParams
. If it is set to true, the channel creation will be failed if any of the users do not exist. - Added
translateUserMessage(UserMessage userMessage, List<String> targetLanguages, TranslateUserMessageHandler handler)
inBaseChannel
. - Added
getRequestedMentionUserIds()
inUserMessage
andFileMessage
.
- Added
setThreadOption(ThreadOption threadOption, Handler handler)
in SendBird.Option. - Deprecated
useUiThreadForCallbacks(boolean)
andsetHandlerForCallbacks(Handler handler)
in SendBird.Option. - Improved stability.
- Added
setHandlerForCallbacks(Handler handler)
in SendBird.Options. - Improved stability.
- Added
getRequestState()
andenum RequestState { NONE, PENDING, FAILED, SUCCEEDED }
in UserMessage. - Added
resendUserMessage(UserMessage userMessage, ResendUserMessageHandler handler)
in BaseChannel. - Added
getMyLastRead()
in GroupChannel. - Added
createChannelWithOperatorUserIds(String name, String channelUrl, Object coverUrlOrImage, String data, String customType, List<String> operatorUserIds, OpenChannelCreateHandler handler)
in OpenChannel.
- Added
delete(GroupChannelDeleteHandler handler)
inGroupChannel
.
- Added
isDiscoverable
property toGroupChannel
andGroupChannelParams
.- if
isDiscoverable
of a public group channel is set to false, then the channel will not appear on the result ofPublicGroupChannelListQuery
.
- if
- Improved stability.
- Improved stability.
- Improved stability.
- Fixed minor bug.
- Fixed minor bug.
- Added getter methods of
GroupChannelListQuery
andPublicGroupChannelListQuery
properties. - Added overriding method
equals()
inBaseMessage
,AdminMessage
,FileMessage
,UserMessage
,User
,Sender
andMember
. - Fixed minor bug.
- Fixed minor bug.
- Added
enum PushTriggerOption {ALL, OFF, MENTION_ONLY, DEFAULT}
inGroupChannel
.ALL
: It receives all push notifications.OFF
: It doesn't receive any push notifications.MENTION_ONLY
: It receives push notifications which mention me.DEFAULT
: It receives push notifications according to the state ofPushTriggerOption
inSendBird
.PushTriggerOption
ofGroupChannel
has higher priority thanSendBird
's. It depends onSendBird
'sPushTriggerOption
only whenGroupChannel
'sPushTriggerOption
isDEFAULT
.
- Added
setMyPushTriggerOption(PushTriggerOption pushTriggerOption, GroupChannelSetMyPushTriggerOptionHandler handler)
inGroupChannel
. - Added
getMyPushTriggerOption(GroupChannelGetMyPushTriggerOptionHandler handler)
inGroupChannel
. - Added
enum PushTriggerOption {ALL, OFF, MENTION_ONLY}
inSendBird
.ALL
: It receives all push notifications.OFF
: It doesn't receive any push notifications.MENTION_ONLY
: It receives push notifications which mention me.
- Added
setPushTriggerOption(PushTriggerOption pushTriggerOption, SetPushTriggerOptionHandler handler)
inSendBird
. - Added
getPushTriggerOption(GetPushTriggerOptionHandler handler)
inSendBird
. - Added
setSnoozePeriod(boolean snoozeOn, long startTs, long endTs, SetSnoozePeriodHandler handler)
inSendBird
.- It snooze or stop snooze push notification in specific duration.
- Added
getSnoozePeriod(GetSnoozePeriodHandler handler)
inSendBird
.
- Fixed minor bugs.
- Fixed minor bugs.
- Added
createDistinctChannelIfNotExist(GroupChannelParams params, GroupChannelCreateDistinctChannelIfNotExistHandler handler)
inGroupChannel
.- It creates distinct channel and gets the channel with
isCreated
flag which represents whether the channel is actually created or not.
- It creates distinct channel and gets the channel with
- Added
hide(boolean hidePreviousMessages, boolean allowAutoUnhide, GroupChannelHideHandler handler)
inGroupChannel
. - Added
unhide(GroupChannelUnhideHandler handler)
inGroupChannel
. - Added
getHiddenState()
inGroupChannel
. - Added
enum HiddenState { UNHIDDEN, HIDDEN_ALLOW_AUTO_UNHIDE, HIDDEN_PREVENT_AUTO_UNHIDE }
inGroupChannel
.UNHIDDEN
: It's not hidden channel.HIDDEN_ALLOW_AUTO_UNHIDE
: It's hidden channel which is automatically unhidden when new message comes in.HIDDEN_PREVENT_AUTO_UNHIDE
: It's hidden channel which is not unhidden when new message comes in.
- Added
setHiddenChannelFilter(HiddenChannelFilter hiddenChannelFilter)
inGroupChannelListQuery
. - Added
enum HiddenChannelFilter { UNHIDDEN, HIDDEN, HIDDEN_ALLOW_AUTO_UNHIDE, HIDDEN_PREVENT_AUTO_UNHIDE }
inGroupChannelListQuery
.UNHIDDEN
: Get all unhidden channels. (default)HIDDEN
: Get all hidden channels whichHiddenState
isHIDDEN_ALLOW_AUTO_UNHIDE
orHIDDEN_PREVENT_AUTO_UNHIDE
.HIDDEN_ALLOW_AUTO_UNHIDE
: Get channels whichHiddenState
isHIDDEN_ALLOW_AUTO_UNHIDE
.HIDDEN_PREVENT_AUTO_UNHIDE
: Get channels whichHiddenState
isHIDDEN_PREVENT_AUTO_UNHIDE
.
- Added
getMessageChangeLogsByTimestamp(long ts, GetMessageChangeLogsHandler handler)
inBaseChannel
.- It retrieves message change logs since the given timestamp.
- Changed type of
getSender()
inUserMessage
andFileMessage
fromUser
to a new classSender
which extendsUser
. Sender
hasisBlockedByMe()
which indicates that the message sender is blocked by the current user (default: false).isBlockedByMe()
is valid inGroupChannel
only.- Message from blocked users is delivered only when block_mode in SendBird application is set to explicit mode. Otherwise, it's not visible nor delivered.
- Fixed minor bugs.
- Added
ApplicationUserListQuery
,BlockedUserListQuery
,ParticipantListQuery
,MutedUserListQuery
andBannedUserListQuery
classes. - Added
setUserIdsFilter(List<String> userIds)
andsetMetaDataFilter(String metaDataKey, List<String> metaDataValues)
inApplicationUserListQuery
. - Added
setUserIdsFilter(List<String> userIds)
inBlockedUserListQuery
. - Updated
createBlockedUserListQuery()
inSendBird
to returnBlockedUserListQuery
instance. - Updated
createBannedUserListQuery()
inGroupChannel
to returnBannedUserListQuery
instance. - Updated
createParticipantListQuery()
inOpenChannel
to returnParticipantListQuery
instance. - Updated
createMutedUserListQuery()
inOpenChannel
to returnMutedUserListQuery
instance. - Updated
createBannedUserListQuery()
inOpenChannel
to returnBannedUserListQuery
instance. - Deprecated
UserListQuery
createUserListQuery()
inSendBird
. - Deprecated
UserListQuery
createUserListQuery(List<String> userIds)
inSendBird
. - Deprecated
setMetaDataFilter(String metaDataKey, List<String> metaDataValues)
inUserListQuery
. - Fixed minor bugs.
- Added
registerScheduledUserMessage(ScheduledUserMessageParams params, RegisterScheduledUserMessageHandler handler)
inGroupChannel
. - Added
ScheduledUserMessageParams
andScheduledUserMessage
. - Added
setTranslationTargetLanguages(List<String> targetLanguages)
and deprecatedsetTargetLanguages(List<String> targetLanguages)
inUserMessageParams
. - Improved stability.
- Fixed minor bugs.
- Added
getMyMutedInfo()
inBaseChannel
. - Added
muteUser(User user, String description, int seconds, GroupChannelMuteHandler handler)
inGroupChannel
. - Added
muteUserWithUserId(String userId, String description, int seconds, GroupChannelMuteHandler handler)
inGroupChannel
. - Added
muteUser(User user, String description, int seconds, OpenChannelMuteHandler handler)
inOpenChannel
. - Added
muteUserWithUserId(String userId, String description, int seconds, OpenChannelMuteHandler handler)
inOpenChannel
. - Added
setOrder(Order.METADATA_VALUE_ALPHABETICAL)
withsetMetaDataOrderKeyFilter()
inGroupChannelListQuery
andPublicGroupChannelListQuery
.
- Stabilized
updateCurrentUserInfoWithProfileImage()
.
- Added
getLastConnectedAt()
inSendBird
. - Fixed minor bugs.
- Improved stability.
- Added
getTotalUnreadMessageCount(GroupChannel.GroupChannelTotalUnreadMessageCountHandler handler)
inSendBird
. - Added
getTotalUnreadMessageCount(List<String> channelCustomTypes, GroupChannel.GroupChannelTotalUnreadMessageCountHandler handler)
inSendBird
. - Added
getTotalUnreadMessageCount(GroupChannelTotalUnreadMessageCountParams params, GroupChannel.GroupChannelTotalUnreadMessageCountHandler handler)
inSendBird
. - Added
getUnreadItemCount(Collection<GroupChannel.UnreadItemKey> keys, GroupChannel.GroupChannelGetUnreadItemCountHandler handler)
inSendBird
. - Added
getTotalUnreadChannelCount(GroupChannel.GroupChannelTotalUnreadChannelCountHandler handler)
inSendBird
. - Added
getGroupChannelCount(GroupChannelListQuery.MemberStateFilter memberStateFilter, GroupChannel.GroupChannelChannelCountHandler handler)
inSendBird
. - Added
getReadMembers(BaseMessage message, boolean includeAllMembers), getUnreadMembers(BaseMessage message, boolean includeAllMembers)
andgetReadStatus(boolean includeAllMembers)
inGroupChannel
. - Added a
ERR_CONNECTION_CANCELED
error code for the connect cancel event which usually occurs on disconnect while connecting. - Deprecated
CLOSING
in enumConnectionState
inSendBird
. - Deprecated
createChannel(List<User> users, boolean isDistinct, String name, Object coverUrlOrImage, String data, GroupChannelCreateHandler handler)
inGroupChannel
. - Deprecated
createChannelWithUserIds(List<String> userIds, boolean isDistinct, String name, Object coverUrlOrImage, String data, GroupChannelCreateHandler handler)
inGroupChannel
. - Deprecated
updateChannel(boolean isDistinct, String name, Object coverUrlOrImage, String data, GroupChannelUpdateHandler handler)
inGroupChannel
. - Deprecated
getTotalUnreadMessageCount(GroupChannelTotalUnreadMessageCountHandler handler)
inGroupChannel
. - Deprecated
getTotalUnreadMessageCount(List<String> channelCustomTypes, GroupChannelTotalUnreadMessageCountHandler handler)
inGroupChannel
. - Deprecated
getTotalUnreadMessageCount(GroupChannelTotalUnreadMessageCountParams params, GroupChannelTotalUnreadMessageCountHandler handler)
inGroupChannel
. - Deprecated
getUnreadItemCount(Collection<UnreadItemKey> keys, GroupChannelGetUnreadItemCountHandler handler)
inGroupChannel
. - Deprecated
getTotalUnreadChannelCount(GroupChannelTotalUnreadChannelCountHandler handler)
inGroupChannel
. - Deprecated
getChannelCount(GroupChannelListQuery.MemberStateFilter memberStateFilter, GroupChannelChannelCountHandler handler)
inGroupChannel
. - Deprecated
getReadMembers(BaseMessage message), getUnreadMembers(BaseMessage message)
andgetReadStatus()
inGroupChannel
. - Deprecated
createChannel(String name, Object coverUrlOrImage, String data, OpenChannelCreateHandler handler)
inOpenChannel
. - Deprecated
createChannel(String name, Object coverUrlOrImage, String data, List<User> operatorUsers, OpenChannelCreateHandler handler)
inOpenChannel
. - Deprecated
updateChannel(String name, Object coverUrlOrImage, String data, List<User> operatorUsers, OpenChannelUpdateHandler handler)
inOpenChannel
. - Deprecated
sendFileMessage(File file, String name, String type, int size, String data, String customType, SendFileMessageHandler handler)
inBaseChannel
. - Deprecated
sendFileMessage(File file, String name, String type, int size, String data, String customType, SendFileMessageWithProgressHandler handler)
inBaseChannel
. - Deprecated
sendUserMessage(String message, String data, SendUserMessageHandler handler)
inBaseChannel
. - Deprecated
sendUserMessage(String message, String data, String customType, SendUserMessageHandler handler)
inBaseChannel
. - Fixed minor bugs.
- Improved stability.
- From now,
useMemberAsMessageSender()
option is true by default. - Fixed a bug previous messages not showing the sender's latest user metadata.
- Added
SendBird.Options.useUiThreadForCallbacks()
to give developers an option for threads the callbacks are running. By default, it is UI thread but you can choose to run on background threads. - Fixed minor bugs.
- Added
updateUserMessage()
withUserMessageParams
inBaseChannel
. - Added
updateFileMessage()
withFileMessageParams
inBaseChannel
. - Added
UserMessageParams()
default constructor inUserMessageParams
. - Added
setMessage()
inUserMessageParams
. - Added
FileMessageParams()
default constructor inFileMessageParams
. - Added
setFileUrl()
andsetFile()
inFileMessageParams
. - Minor bug fixed.
- Improved connection management.
- Fixed a bug occasionally occurring when a group channel is created with multiple users.
- Fixed TLS handshake related bug in Android 8.1.0.
- Added
getInvitedAt()
inGroupChannel
.
- Minor bug fixed.
- Added
load(MessageListQueryResult handler)
,setLimit()
,setReverse()
,setMessageTypeFilter()
,setCustomTypeFilter()
,setSenderUserIdsFilter()
inPreviousMessageListQuery
. - Added
getNextMessagesByTimestamp()
,getPreviousMessagesByTimestamp()
,getPreviousAndNextMessagesByTimestamp()
,getNextMessagesById()
,getPreviousMessagesById()
,getPreviousAndNextMessagesById()
withsendUserIds
parameter inBaseChannel
.
- Disabled to put the current user into
mentionedUsers
,mentionedUserIds
inUserMessageParams
andFileMessageParams
. - Changed not to increase
unreadMentionCount
and not to callonMentionReceived
for CHANNEL mention by the current user (i.e. the message sender is the current user).
- Added
getUnreadMentionCount()
inGroupChannel
. - Added
UNREAD_MENTION_COUNT_ONLY
inCountPreference
inGroupChannel
. - Added
GROUP_CHANNEL_UNREAD_MESSAGE_COUNT
,GROUP_CHANNEL_UNREAD_MENTION_COUNT
,GROUP_CHANNEL_INVITATION_COUNT
,NONSUPER_UNREAD_MENTION_COUNT
,SUPER_UNREAD_MENTION_COUNT
in enumUnreadItemKey
inGroupChannel
. - Added
getMentionType()
inBaseMessage
with enumMentionType { USERS, CHANNEL }
inBaseMessageParams
. - Added
setMentionType()
inUserMessageParams
andFileMessageParams
.
- Added
getMyCountPreference()
andsetMyCountPreference()
inGroupChannel
. - Added
setNicknameStartsWithFilter()
inGroupChannelMemberListQuery
.
- Added
getJoinedMemberCount()
inGroupChannel
to show the total count of joined users in aGroupChannel
. - Added
getMyMutedState()
inGroupChannel
to show the state of the connected user in aGroupChannel
. - Added
setMemberStateFilter()
inGroupChannelMemberListQuery
to search members based on the state of the member in aGroupChannel
. - Added
getUnreadItemCount()
inGroupChannel
withenum UnreadItemKey
{NONSUPER_UNREAD_MESSAGE_COUNT
,SUPER_UNREAD_MESSAGE_COUNT
,NONSUPER_INVITATION_COUNT
,SUPER_INVITATION_COUNT
}.
- Added a typing indicator throttle option in
SendBird.Options
. - Fixed a minor bug when uploading file in background.
- Fixed an occasional member count mismatch in a super group channel.
- Added
getTotalUnreadMessageCount()
withGroupChannelTotalUnreadMessageCountParams
inGroupChannel
to support filter for total unread message count. - Added
getMyRole()
inGroupChannel
to specify the current user is operator of the channel or not.
- Now
GroupChannelMemberListQuery
returns the member list in nickname alphabetical order. - Improved connection stability.
- Added
createOperatorListQuery()
inBaseChannel
andOperatorListQuery
. - Deprecated
setOperatorFilter(OperatorFilter operatorFilter)
andOperatorFilter
inGroupChannelMemberListQuery
.
- Added
getTotalUnreadMessageCount()
with channel custom types filter inGroupChannel
. - Added
setPushNotificationDeliveryOption(PushNotificationDeliveryOption pushNotificationDeliveryOption)
inUserMessageParams
andFileMessageParams
.
- From now, an ephemeral
GroupChannel
maintains the last message and unread message count after the connection is made.
- Fixed
groupChannel.getMyMemberState()
returning not accurate value for the 1st time.
- Added
setConnectionTimeout()
toSendBird.Options
to support configurable connection timeout.
- Added
setEphemeral(boolean isEphemeral)
inGroupChannelParams
to create a channel not allowing message retention. - Added
isEphemeral()
inBaseChannel
. - Added
BaseMessageParams
,UserMessageParams
andFileMessageParams
to send messages in object form.BaseMessageParams
support mentioned messages bysetMentionedUserIds
andsetMentionedUsers
.
- Added
sendUserMessage(UserMessageParams params, SendUserMessageHandler handler)
inBaseChannel
. - Added
sendFileMessage(FileMessageParams params, SendFileMessageHandler handler)
inBaseChannel
. - Added
sendFileMessage(FileMessageParams params, SendFileMessageWithProgressHandler handler)
inBaseChannel
. - Added
onMentionReceived(BaseChannel channel, BaseMessage message)
inChannelHandler
to receive mentioned message. - Added
getMentionedUsers()
inBaseMessage
. - Added
getMyMemberState()
inGroupChannel
for current logged-in user's joined state for the channel. - Deprecated
MemberState
enumerator inGroupChannel
and addedMemberStateFilter
inGroupChannelListQuery
enumerator instead. - Deprecated
getChannelCount(MemberState memberState, GroupChannelChannelCountHandler handler)
inGroupChannel
. - Added
getChannelCount(GroupChannelListQuery.MemberStateFilter memberStateFilter, GroupChannelChannelCountHandler handler)
inGroupChannel
. - Deprecated
setMemberStateFilter(GroupChannel.MemberState memberState)
inGroupChannelListQuery
. - Added
setMemberStateFilter(MemberStateFilter memberStateFilter)
inGroupChannelListQuery
. - Deprecated
getState()
in Member and addedgetMemberState()
instead. - Improved stabilization.
- Fix minor bug.
- Added
setOperators()
andsetOperatorUserIds()
inGroupChannelParams
. - Added
freeze()
,unfreeze()
andisFrozen()
inGroupChannel
. - Added
banUser()
andbanUserWithUserId()
inGroupChannel
. - Added
unbanUser()
andunbanUserWithUserId()
inGroupChannel
. - Added
muteUser()
andmuteUserWithUserId()
inGroupChannel
. - Added
unmuteUser()
andunmuteUserWithUserId()
inGroupChannel
. - Added
createBannedUserListQuery()
inGroupChannel
. - Added
setOperatorFilter()
andsetMutedMemberFilter()
inGroupChannelMemberListQuery
. - Modified
onUserBanned(OpenChannel channel, User user)
toonUserBanned(BaseChannel channel, User user)
inChannelHandler
. - Modified
onUserUnbanned(OpenChannel channel, User user)
toonUserUnbanned(BaseChannel channel, User user)
inChannelHandler
. - Modified
onUserMuted(OpenChannel channel, User user)
toonUserMuted(BaseChannel channel, User user)
inChannelHandler
. - Modified
onUserUnmuted(OpenChannel channel, User user)
toonUserUnmuted(BaseChannel channel, User user)
inChannelHandler
. - Modified
onChannelFrozen(OpenChannel channel, User user)
toonChannelFrozen(BaseChannel channel, User user)
inChannelHandler
. - Modified
onChannelUnfrozen(OpenChannel channel, User user)
toonChannelUnfrozen(BaseChannel channel, User user)
inChannelHandler
. - Now
sender
inUserMessage
andFileMessage
supportgetMetaData()
.
- Added
createPublicGroupChannelListQuery()
inGroupChannel
. - Added
isPublic()
inGroupChannel
. - Added join in
GroupChannel
. - Added
CHANNEL_NAME_ALPHABETICAL
inOrder
inGroupChannelListQuery
. - Added
PublicChannelFilter
inGroupChannelListQuery
. - Added
setCustomTypeStartsWithFilter()
inGroupChannelListQuery
. - Added
setPublicChannelFilter()
inGroupChannelListQuery
. - Added
setPublic()
inGroupChannelParams
. - Added
setChannelUrl()
inGroupChannelParams
. - Added
PublicGroupChannelListQuery
. - Improved stabilization.
- Added
createChannel()
withGroupChannelParams
inGroupChannel
. - Added
createMemberListQuery()
inGroupChannel
. - Added
isSuper()
inGroupChannel
. - Added
updateChannel()
withGroupChannelParams
inGroupChannel
. - Deprecated
getLastSeenAtBy()
inGroupChannel
. - Deprecated
getLastSeenAtByWithUserId()
inGroupChannel
. - Added
SuperChannelFilter
inGroupChannelListQuery
. - Added
setSuperChannelFilter()
inGroupChannelListQuery
. - Added
GroupChannelMemberListQuery
. - Added
GroupChannelParams
.
- Improved stabilization of calling
disconnect()
while sending messages or mark as read. - Deprecated
markAsReadAll()
inGroupChannel
. - Added
INVITED_BY_FRIEND
,INVITED_BY_NON_FRIEND
insetMemberStateFilter()
inGroupChannelListQuery
. - Added
markAsReadAll()
inSendBird
. - Added
markAsReadWithChannelUrls()
inSendBird
. - Fixed Minor bugs.
- Added
FriendListQuery
. - Added
setCustomTypesFilter()
inGroupChannelListQuery
. - Added
addUserEventHandler()
inSendBird
. - Added ``removeUserEventHandler()
in
SendBird`. - Added
removeAllUserEventHandlers()
inSendBird
. - Added
addFriends()
inSendBird
. - Added
deleteFriends()
inSendBird
. - Added
deleteFriend()
inSendBird
. - Added
uploadFriendDiscoveries()
inSendBird
. - Added
deleteFriendDiscoveries()
inSendBird
. - Added
deleteFriendDiscovery()
inSendBird
. - Added
getFriendChangeLogsByToken()
inSendBird
. - Added
createFriendListQuery()
inSendBird
. - Added
getOriginalProfileUrl()
inUser
. - Improved
ConnectHandler
callback. - Fixed Minor bugs.
- Improved connection stability.
- Improved connection stability.
- Modified
getConnectionState()
method. - Added
isActive()
toUser
.
- Modified
init()
method.
- Stabilized to support Android O.
- Fixed
GroupChannel
isHidden()
bug.
- Added
onChannelHidden()
toChannelHandler
.
- Fixed bugs handler for connect is not called when the application becomes foreground.
- Added
isHidden()
toGroupChannel
. - Stabilized connection.
- Fixed a minor bug on blocking or unblocking users.
- Added
getChannelCount
toGroupChannel
. - Added
resetMyHistory
toGroupChannel
not to load messages created before the reset. - Added network detection and auto reconnect when the network is detected. (
SendBird.setNetworkAwarenessReconnection
is provided to enable this option - default true)
- Added
isBlockedByMe
andisBlockingMe
flag to group channel members. - Added
getMessageChangeLogsByToken
to channel to track updated or deleted messages.
- Added new group channel hide to give you change to select whether channel member can load previous messages when the channel reappears.
- Added user
MetaData
feature. - Added freeze status flag to open channel.
- Added
ChannelHandler
callback onMetaData
andMetaCounters
creation, update and deletion. - Added channel name filter for
GroupChannelListQuery
. - Added
getInviter()
toGroupChannel
.
- Minor bug fixes.
- No more crash when profile image with special characters in the file name is uploaded.
- Added messaging copy from one channel to other channels (Sender must be a member or participant of the channels).
- Support users to accept or decline other user's invitation to a group channel.
- Added group channel join preference for accepting invitation automatically.
- Notice: From this version, the return type of
GroupChannel
methods previously returningList<User>
such asGroupChannel.getMembers
,GroupChannel.getTypingMembers
and etc. now returnList<Member>
.
- Added feature to set and get push notification sound for the logged-in user.
- Fixed bug
BaseMessage.buildFromSerializedData
incurring crash for messages serialized by versions prior to v3.0.27.
- Added custom type filter to
OpenChannelListQuery
andGroupChannelListQuery
. - Added messaging editing feature.
- Added file uploading cancel.
- Added
OpenChannel
deletion.
- Fixed custom host bug.
- Added
connect()
custom host feature.
- Added real size property for generated thumbnails.
- Added progress handler for file uploading.
- Support file uploading on background.
- Fixed bug
GroupChannel.getUnreadMessageCount()
returning wrong value not covered on v3.0.20.
- Added
getTotalUnreadChannelCount()
toGroupChannel
to enable you get channel count of having unread messages. - Fixed
getTotalUnreadMessageCount()
to return correct value when it is called inChannelHandler.onChannelChanged
aftermarkAsRead()
is called.
- Added getting messages methods to
BaseChannel
and they support type/customType filtering. - Added option for using channel member's profile URL and nickname as message sender's.
- Support updating channel member's profile URL and nickname automatically.
- Fixed bug
GroupChannel.getUnreadMessageCount()
not returning correct value.
- Added file encryption and access control feature.
- Provide serialization/deserialization for user, channel and message objects for developers to take advantage of their own local cache.
- Sender is excluded from read receipt.
- Fixed bug
GroupChannel.getReadReceipt()
always returning the count of members of the channel after the first connection. - From now, empty string as user ID is not accepted.
- Fixed bug calling
ChannelHandler.onReadReceiptUpdated()
even whenmarkAsRead()
is called from the same user connected on other devices. - Improved stability by removing occasional NPE crash on connection or reconnection.
- Added
reconnect()
to support explicit reconnection process. - Added
removeAllConnectionHandlers()
andremoveAllChannelHandlers()
. - Improved network call performance after reconnection is established.
- Fixed bug removing connection handlers and channel handlers when
disconnect()
is called. - Improved stability.
- Fixed bugs returning wrong unread count of messages when users are invited to
GroupChannel
. - Fixed bugs occurring occasional crash when
getReadReceipt()
,getReadMembers()
or etc are called.
- Added thumbnail generating option when image file is uploaded.
- Changed connection protocol to avoid connection reset which can occur when application runs behind proxy.
- Added push notification template option, which gives option to users the way to display push notification messages.
- Improved to try connection without delay when reconnection is needed.
- Added unique push token registration option, which makes sure to maintain only one GCM/FCM token for the current user.
- Added
GroupChannel.isPushEnabled()
to check push preference for each group channel. - Deprecated
GroupChannel.getPushPreference()
. - Fixed randomly occurring NPE crash when user join event or read receipt update event happen.
- Improved stability.
- Added user IDs filters and query type to
GroupChannelListQuery
. - Added channel custom type for
OpenChannel
andGroupChannel
. - Fixed to call
ChannelHandler.onChannelChanged
when unread message count or last message has been updated.
- Fixed to update last message of group channel when
UserMessage
orFileMessage
is successfully sent. - Improved stability.
- Fixed connection bug.
- Added group channel list search by a member nickname. (Search by multiple nicknames option in v3.0.5 is no more supported.)
- Added auto-translating feature to
UserMessage
. - Improved connection performance.
- Improved stability.
- Added custom type to messages.
- Added group channel list search by member nicknames and user IDs.
- Added creating and updating channel cover image with binary file.
- Fixed file uploading timeout.
- Supports Android 7.0 (Nougat) and FCM.
- Fixed to increase unread message count only for others' message reception.
- Improved performance and stability.
- Added features like filtered user list, open channel keyword search, push preference setting, etc.
- Added auto background detection.
- Improved stability.
- Fixed minor bugs.
- First release.