Release notes
This page provides release notes for Chat SDK for Android.
Client API
v1.2.1
v1.2.1 was released on December 8, 2023.
Improvements
- Added support for dynamic registration broadcasts in Android 14, which requires setting the
RECEIVER_EXPORTED
orRECEIVER_NOT_EXPORTED
flag.
Issues fixed
- Fixed the problem of losing chat room listener in some scenarios after logging out and logging in again.
- Fixed the problem of occasionally failing to save the token when logging in manually.
v1.2.0
v1.2.0 was released on December 6, 2023.
New features
- Added the function of forwarding multiple messages:
ChatMessage#createCombinedSendMessage
: Creates a combined message.ChatManager#downloadAndParseCombineMessage
: Downloads and parses a combined message.
- Added the function of modifying sent messages:
ChatManager#asyncModifyMessage
: Modifies a sent text message.MessageListener#onMessageContentChanged
: Occurs when a sent message is modified. The message recipient receives this callback.
- Added the
ChatRoomManager#leaveChatRoom(String, CallBack)
method to leave a chat room and allow the user to know whether they successfully left the chat room. - Added the function of pinning a conversation:
ChatManager#asyncPinConversation
: Pins a conversation.ChatManager#asyncFetchPinnedConversationsFromServer
: Retrieves the list of pinned conversations from the server with pagination.
- Added the
ChatManager#asyncFetchConversationsFromServer
method to retrieve the conversation list from the server. Marked theChatManager#asyncFetchConversationsFromServer(int, int, EMValueCallBack)
method and theChatManager#asyncFetchConversationsFromServer(EMValueCallBack)
method deprecated. - Added the
ChatManager#getAllConversationsBySort
method to retrieve local conversations in the reverse chronological order of when conversations are active. - Added multi-device operations:
MultiDeviceListener#CONVERSATION_PINNED
: A conversation is pinned on one device. This event is received by other devices.MultiDeviceListener#CONVERSATION_UNPINNED
: A conversation is unpinned on one device. This event is received by other devices.MultiDeviceListener#CONVERSATION_DELETED
: A conversation is deleted from one device. This event is received by other devices.
- Added the
ChatManager#asyncFetchHistoryMessages
method to retrieve historical messages of a conversation from the server according toFetchMessageOption
, the parameter configuration class for retrieving historical messages. - Added
FetchMessageOption
as the parameter configuration class for retrieving historical messages from the server. - Added the
Conversation#removeMessages
method to delete messages sent or received in a certain period from the local database. - Added the
List<MessageReactionOperation>
attribute inMessageReactionChange
:MessageReactionOperation#getUserId
: The user ID of the operator.MessageReactionOperation#getReaction
: The changed Reaction.MessageReactionOperation#getOperation
: The operation.
- Added the function of managing custom attributes of group members:
GroupManager#asyncSetGroupMemberAttributes
: Sets custom attributes of a group member.GroupManager#asyncFetchGroupMemberAllAttributes
: Retrieves all custom attributes of a group member.GroupManager#asyncFetchGroupMembersAttributes
: Retrieves custom attributes of multiple group members by attribute key.GroupChangeListener#onGroupMemberAttributeChanged
: Occurs when a custom attribute is changed for a group member.MultiDeviceListener#GROUP_METADATA_CHANGED
: Custom attributes are set for a group member on one device. This event is received by other devices.
- Added error codes:
Error#APP_ACTIVE_NUMBER_REACH_LIMITATION
: The number of daily active users (DAU) or monthly active users (MAU) for the app has reached the upper limit.Error#MESSAGE_SIZE_LIMIT
: You have exceeded the maximum allowed size of a message body.Error#GROUP_MEMBER_ATTRIBUTES_REACH_LIMIT
: The total length of custom attributes of the group member has exceeded the upper limit (4 KB).Error#GROUP_MEMBER_ATTRIBUTES_UPDATE_FAILED
: Fails to set the custom attribute(s) of the group member.Error#GROUP_MEMBER_ATTRIBUTES_KEY_REACH_LIMIT
: The key of a custom attribute(s) of the group member has exceeded the maximum allowed length of 16 bytes.Error#GROUP_MEMBER_ATTRIBUTES_VALUE_REACH_LIMIT
: The value of a custom attribute(s) of the group member has exceeded the maximum allowed length of 512 bytes.
Improvements
- Optimized the callback logic of
ChatClient#addConnectionListener
. After a connection listener is added,ConnectionListener#onDisconnected
is triggered only after login. - Optimized the
searchMsgFromDB
method to include custom messages in the search scope. - Optimized the logic of binding and unbinding a push token.
Issues fixed
- The message read status is not updated in certain scenarios.
- In some scenarios, when the user calls
ChatManager#downloadAttachment
to download message attachments, the attachments are not downloaded to the private directory. - When
ChatManager#deleteMessagesBeforeTimestamp
is called, messages in the local database are deleted, but those in the cache remain. - The app crashes when you send a video message and set the first frame to be empty.
v1.1.0
v1.1.0 was released on April 28, 2023.
New features
- Adds the function of managing custom chat room attributes to implement functions like seat control and synchronization in voice chat rooms. See Manage chat room attributes.
- Adds the
ChatMessage#setPriority(ChatRoomMessagePriority)
method to implement the chat room message priority function to ensure that high-priority messages are dealt with first. See Set message priority. - Adds the pagination parameters
pageNum
andpageSize
to theChatManager#asyncFetchConversationsFromServer
method to allow users to get the conversation list from the server with pagination. See Retrieve a list of conversations from the server. - Adds the support for push notifications on the server side to allow you to send push notifications to all users, individual users specified by IDs, or groups of users by labels. For how to configure and send push notifications, see Push notification management.
- Adds an additional option to delete messages on the server side. See Delete conversations and historical messages.
Improvements
Improved code security.
v1.0.9
v1.0.9 was released on December 19, 2022.
Issues fixed
- Some alerts on Android 12.
- The inconsistency of messages in the memory and the database due to a call to the
updateMessage
method in rare scenarios. - Crashes in rare scenarios.
v1.0.8
v1.0.8 was released on November 22, 2022.
Issues fixed
- Failures in getting a large number of messages from the server in a few scenarios.
- An issue with incorrect data statistics.
- Crashes caused by log printing in rare scenarios.
v1.0.7
v1.0.7 was released on September 7, 2022.
New features
- Adds the
isDisabled()
attribute toGroup
to indicate whether a group is disabled. This attribute needs to be set by developers at the server side. This attribute is returned when you call thegetGroupFromServer()
method inGroupManager
to get group details. - Adds custom error information to the error information returned to the message sender when the pre-sending callback service declines to send the message.
- Adds the error code 1101 (
PRESENCE_CANNOT_SUBSCRIBE_YOURSELF
) inError
to indicate users cannot subscribe to their own presence. - Adds
ChatLogListener
to implement SDK running log callbacks.
Improvements
- Optimized the login process for quicker login.
- Optimized the access point update policy that is used in the case of a connection failure, in order to improve the availability.
- Upgraded the message encryption algorithm from CBC to GCM.
- Supported TLS 1.3 for SDK-related HTTP requests.
- Upgraded OpenSSL, a dependency of libcipherdb, to 1.1.1q.
- Optimized the display of parameters in the methods in the SDK.
Issues fixed
- Data deduplication was not implemented for the
getAllMessage
method inConversation
. - Occasional crashes during login with user IDs and passwords.
- Once the
fetchHistoryMessages()
method inChatManager
was called, the method was repeatedly called to get messages from the server.
v1.0.6
v1.0.6 was released on Jul 22, 2022.
New features
- Supports marking whether a message is an online message by using the
isOnlineState
member inChatMessage
. - Adds an error code 509
MESSAGE_CURRENT_LIMITING
inError
, which means that the chat group message has exceeded the concurrent limit. - Adds an
onSpecificationChanged
callback inGroupChangeListener
, which occurs when the state specification updates. - Adds a
bindDeviceToken
method inPushManager
, which binds the device token.
Improvements
- Improved thread-related methods and classes. Compared with 1.0.4, this release used
ChatThread
to replaceChatThreadInfo
. - Assigned a value to
groupName
in theonInvitationReceived
callback. - Removed the CBC and EBC encryption algorithm in the Android layer.
- Upgraded the network link library.
- Supported sending messages with a remote address as the attachment.
Issues fixed
- The retrieved reaction object was empty.
- Devices running earlier Android versions failed to load the database.
v1.0.4
v1.0.4 was released on May 17, 2022.
New features
- Supports reaction, which enables users to add reaction emojis to the specified message.
- Supports content moderation with the reportMessage method.
- Supports message push configuration, which enables users to configure various push settings.
Improvements
- Enhanced DNS configuration for retrieving the server access point.
- Improved data reports.
- Changed the file name of libsqlcipher to avoid conflict when using the official AAR.
- Added support for double and float data types for the ext attribute in ChatMessage.
- Changed openssl to boringssl.
- Changed the minimum API level to 21 (Android 5.0).
Issues fixed
- Issues reported when uploading the app to Google Play caused by encryption algorithm.
- The translation API did not take effect.
v1.0.3.1
v1.0.3.1 was released on April 27, 2022. This release fixed the occasional issue of not being to display the retrieved historical messages.
v1.0.3
v1.0.3 was released on April 19, 2022.
New features
Supports the presence feature, which indicates the online status of the user.
Improvements
- Shortened the time out for sending messages.
- Enhanced the request success rate.
- Supported the upgraded OPPO push (from 2.1.0 to 3.0.0) and VIVO push (from 2.3.1 to 3.is 0.0.4_484).
Issues fixed
Fixed PendingIntent, which caused warnings when uploading apps to Google Play.
v1.0.2
v1.0.2 was released on Feb 22, 2022.
New features
- Supports deleting conversations on the server by calling deleteConversationFromServer.
- Supports customizing messages using extension fields, badges, CMD messages for message push.
- Adds an error code 221
USER_NOT_ON_ROSTER
which is reported when the user sends a message to another user that is not a contact. - Supports recalling messages using the RESTful API.
Improvements
Reduced the time for preparing to send messages under poor network conditions.
Issues fixed
- The message re-sending was interrupted by the connection success event.
- Memory leak.
- Crashes caused by incorrect time calculation.
v1.0.1.1
v1.0.1.1 was released on December 30, 2021.
This release fixed an issue where the database failed to load under extreme conditions.
v1.0.1
v1.0.1 was released on December 27, 2021.
New features
v1.0.1 adds the following features:
- Supports setting the building name when creating a location message.
- Supports deleting local messages before a specific time.
- Supports getting the count of messages in one conversation.
Fixed issues
This release fixed the following issues:
- Some crash issues occurred.
- An issue occurred in the database encryption.
API changes
v1.0.1 adds the following APIs:
createLocationSendMessage
[1/2]deleteMessagesBeforeTimestamp
getAllMsgCount
v1.0.0
v1.0.0 was released on December 6, 2021.
New features
This release supports getting the users' login status through the isLoggedIn
and isLoggedInBefore
methods.
Improvements
This release makes the following improvements:
- Optimizes the logic of renewing push tokens, reducing server request times.
- Improves the login speed.
- Uses only HTTPS for REST operations by default.
- Optimizes the logic of token expiration.
Fixed issues
This release fixed the following issues:
- The fetched history messages were incomplete.
- Crashes occurred in certain scenarios.
- An issue occurred in displaying the unread status of messages.
RESTful API
v1.2.0
-
Added new REST APIs for management of custom attributes of group members:
- Setting custom attributes of a group member
- Retrieving all custom attributes of a group member
- Retrieving custom attributes of multiple group members by attribute key
-
Removed the
nickname
parameter from the RESTful APIs for adding one user or multiple users