agora_chat_sdk 1.3.3
agora_chat_sdk: ^1.3.3 copied to clipboard
Integrate the Chat SDK to enjoy the global IM services with high reliability, ultra-low latency, and high concurrency.
1.3.3 #
New features #
- Added the
ChatRoomManager.joinChatRoom(String, bool, String)method; - Added the
ChatRoomEventHandler.onMemberJoinedFromChatRoom(String, String, String)callback;
Issues fixed #
- Fixed an issue where the return format of
GroupManager.fetchMemberAttributeswas incorrect on the Android platform.
1.3.2 #
New features #
- Added the
ChatGroupManager.isMemberInGroupMuteListmethod to check whether the current user is in the group mute list. - Added the
ChatRoomManager.isMemberInChatRoomMuteListmethod to check whether the current user is in the chat room mute list.
Issues fixed #
- Build issue for Android platform on Flutter 3.29.0.
1.3.1+1 #
Improvements
- Pin message support 1v1 chat.
- Optimized the success rate of server connection under weak network conditions.
Issues fixed
- native: Fixed the issue where the second request to get the friend list (including friend remarks) from the server would not get data if there was no change in the friend list.
- native: Fixed the issue where the message would still be sent successfully when the attachment failed to send under special circumstances.
- native: Fixed the issue of incorrect nextkey when pulling roaming messages.
- native: Optimized the success rate of server connection under weak network conditions.
- native: Fixed the issue where the cache was not updated in time when blacklisting contacts.
- native: Fixed the issue where push notifications might not work after logging out and logging back in.
1.3.0 #
New features
- Added the
ChatManager#deleteAllMessageAndConversationmethod to uni-directionally clear all conversations and messages in them. Meanwhile, you can choose whether to clear the chat history on the server. - Added the function of searching for messages by search scope in
MessageSearchScopeduring keyword-based search.MessageSearchScope: Includes three message search scopes: the message content, message extension information, and both.ChatManager#loadMessagesWithKeyword: Searches for messages in all conversations by search scope.conversation#loadMessagesWithKeyword: Searches for messages in a conversation by search scope.
- Added the function of marking a conversation:
ConversationFetchOptions: Includes options for filtering conversations retrieved from the server. You can only retrieve pinned conversations or marked conversations by setting the options.ChatManager#addRemoteAndLocalConversationsMark: Marks a conversation.ChatManager#deleteRemoteAndLocalConversationsMark: Unmarks a conversation.ChatManager#fetchConversationsByOptions: Gets conversations from the server by settingConversationFetchOptions.Conversation#marks: Gets all marks of a local conversation.ChatMultiDevicesEvent#CONVERSATION_UPDATE_MARK: Conversation mark update event in a multi-device login scenario. If a user adds or removes a conversation mark on one device, this event is received on other devices of the user.
- Added the
ChatMessage#isBroadcastproperty to indicate whether the message is a broadcast message sent via a RESTful API to all chat rooms under an app. - Added the
ChatMessage#deliverOnlineOnlyproperty to set whether the message is delivered only when the recipient(s) is/are online. If this property is set totrue, the message is discarded when the recipient is offline. - Added the
GroupManager#fetchJoinedGroupCountmethod to allow the current user to retrieve the total number of joined groups. - Added the error code 706
CHATROOM_OWNER_NOT_ALLOW_LEAVEthat occurs when the chat room owner leaves the chat room. IfChatOptions#isChatRoomOwnerLeaveAllowedis set tofalseduring SDK initialization, the chat room is not allowed to leave the chat room. In this case, error 706 is reported if the chat room owner calls theleaveChatRoommethod to leave the chat room. - Added the support for retrieval of historical messages of chat rooms from the server.
- Added the
ChatOptions#useReplacedMessageContentsproperty to determine whether the server returns the adjusted text message to the sender if the message content is replaced during text moderation. - Added the function of pinning a message:
ChatManager#pinMessage: Pins a message.ChatManager#unpinMessage: Unpins a message.ChatManager#fetchPinnedMessages: Gets the list of pinned messages in a conversation from the server.Conversation#loadPinnedMessages: Gets the list of pinned messages in a local conversation.MessagePinInfo: Includes the operator that pins or unpins the message and the operation time.ChatMessage#pinInfo: Includes the message pinning information.ChatEventHandler#onMessagePinChanged: Occurs when the message pinning status changed. When a message is pinned or unpinned in a group or chat room, all members in the group or chat room receive this event.
- Added the
ChatOptions#enableEmptyConversationproperty to set whether to include empty conversations in the retrieved list of local conversations. This property is set during SDK initialization. - Added the
applicantanddeclinerparameters to theChatGroupEventHandler#onRequestToJoinDeclinedFromGroupevent to respectively indicate the user that applies to join the group and the user that declines the join request. - Added the
ChatOptions#messagesReceiveCallbackIncludeSendproperty to set whether to return the successfully sent message in theChatEventHandler#onMessagesReceivedevent. - Added the support for returning the modified custom message via the
ChatEventHandler#onMessageContentChangedevent if the message is modified via the RESTful API.
Improvements
- Marked
ChatManager#fetchConversationandChatManager#fetchPinnedConversationsdeprecated. UseChatManager#fetchConversationsByOptionsinstead. - Supported the forwarding of single attachment messages by passing in the message body and extension fields, without reuploading the attachment.
- Reduced the number of times group specifications are retrieved when a large number of group member events are received during certain scenarios.
- Delivered a more accurate chat room member count by optimizing the way to update the member count when members join or leave the chat room.
- Shortened the time used to call the
ChatManager#markAllConversationsAsReadmethod by marking all conversations read more efficiently. - Optimized the way the SDK randomly gets server addresses to increase the success rate of requests.
- Adjusted the timeout period for joining or leaving chat rooms.
- Optimized the way the connection is re-established upon a connection failure in certain scenarios.
- Supported for uploading the attachment by fragment when sending an attachment message.
- Marked the
ChatClient#loginWithAgoraTokenmethod deprecated. Use theChatClient#loginWithTokenmethod instead. - Fine tuned the error message for token-based login for the sake of accuracy.
- Optimized the way messages are resent.
- Removed the internal
NetworkOnMainThreadExceptionexception catching during a network request. - Optimized the database upgrade logic.
- Increased the maximum allowed size of a log file from 2 MB to 5 MB.
- Added the iOS privacy protocol
PrivacyInfo.xcprivacy. - Updates minimum supported SDK version to Flutter 3.3.0/Dart 3.3.0 .
Issues fixed
- For a modified message, the
fromproperty is missing from the body of the message pulled from the server by an offline user that gets online. - In special scenarios, chat room events are missing when users exit the SDK before login to it.
- The SDK reconnects to the server twice after the network is back to normal.
- An incorrect error message is returned for an unlogged-in user that calls the
leaveChatRoommethod. - The members in a group are double counted in certain scenarios.
- The data reporting module crashes occasionally.
- The SDK is instantiated repeatedly when the
ChatManager#updateMessagemethod is called frequently for SDK initialization in multi-thread scenarios.
v1.2.0(Dec 5, 2023) #
New features
- Adds the function of sending a combined message:
MessageType.COMBINE: The combined message type.CombineMessageBody: The combined message body class.ChatManager#fetchCombineMessageDetail:Gets the list of original messages included in a combined message from the server.
- Adds the function of modifying a text message that is sent:
ChatManager#modifyMessage: Modifies a text message that is sent.ChatEventHandler#onMessageContentChanged: Occurs when a sent message is modified. The message recipient receives this callback.ChatTextMessageBody#lastModifyTime: Indicates when the content of a sent message is modified last time.ChatTextMessageBody#lastModifyOperatorId: Indicates the user ID of user that modifies a sent message last time.ChatTextMessageBody#modifyCount: Indicates the number of times a sent message is modified.
- Adds the function of pinning a conversation:
ChatManager#pinConversation: Pins or unpins a conversation.ChatManager#fetchPinnedConversations: Gets the list of pinned conversations from the server.ChatConversation#isPinned: Specifies whether the conversation is pinned.ChatConversation#pinnedTime: Specifies when the conversation is pinned.
- Adds the
fetchConversationmethod to get the conversation list from the server. Marks theChatManager#getConversationsFromServermethod deprecated. - Adds
FetchMessageOptionsas the parameter configuration class for pulling historical messages from the server. - Adds the
ChatManager#fetchHistoryMessagesByOptionmethod to get historical messages of a conversation from the server according toFetchMessageOptions, the parameter configuration class for pulling historical messages. - Adds the
directionparameter toChatManager#fetchHistoryMessagesto allow you to retrieve historical messages from the server according to the message search direction. - Adds the
ChatConversation#deleteMessagesWithTsmethod to delete messages sent or received in a certain period from the local database. - Adds the
ChatMessage#deliverOnlineOnlyfield to specify whether the message is delivered only when the recipient(s) is/are online. - Adds the function of managing custom attributes of group members:
ChatGroupManager#setMemberAttributes: Sets custom attributes of a group member.ChatGroupManager#fetchMemberAttributesandGroupManager#fetchMembersAttributes: Gets custom attributes of group members.ChatGroupEventHandler#onAttributesChangedOfGroupMember: Occurs when a custom attribute is changed for a group member.
- Adds the
reasonparameter toChatRoomEventHandler#onRemovedFromChatRoomso that the member removed from the chat room knows the removal reason. - Adds the
ChatConnectionEventHandler#onAppActiveNumberReachLimitcallback that occurs when the number of daily active users (DAU) or monthly active users (MAU) for the app has reached the upper limit. - Adds the
IMultiDeviceDelegate#OnRoamDeleteMultiDevicesEventcallback that occurs when historical messages in a conversation are deleted from the server on one device. This event is received by other devices. - Adds the support for user tokens in the following methods:
ChatClient#fetchLoggedInDevices: Gets the list of online login devices of a user.ChatClient#kickDevice: Kicks a user out of the app on a device.ChatClient#kickAllDevices: Kicks a user out of the app on all devices.
- Adds the
ChatMultiDeviceEventHandler#onRemoteMessagesRemovedcallback that occurs when historical messages in a conversation are deleted from the server on one device. This event is received by other devices. - Adds the Reaction operation class
ReactionOperate:Add: Adds a Reaction.Remove:Removes a Reaction.
- Adds the
ChatRoomEventHandler#onSpecificationChangedcallback that occurs when details of a chat room are changed.
Improvements #
- Optimized the
ChatManager#searchMsgFromDBmethod to include custom messages in the message retrieval result. - Adapted to the Android 14 system.
Issues fixed
ConnectionEventHandler#onConnectedandConnectionEventHandler#onDisconnectedcannot be received on the iOS system.- Message extension attributes of the string type in the Android system turn into the Int type.
- Upon a hot reload on Android, the callback is triggered repeatedly.
- When you retrieve custom chat room attributes, passing
nullto the key of an attribute causes the app to crash. - Chat room events cannot be received by a user that logs in to the Agora Chat server again after logout on the Android platform.
ChatManager#getThreadConversationerror.- The
ChatMessage#chatThreaderror. - The
ChatRoomEventHandler#onSpecificationChangedis not triggered when the chat room announcement changes. - The Android platform crashes when a user is removed from a thread.
- An error occurs when
ChatThreadManager#fetchChatThreadMembersis called.
v1.1.1(June 16, 2023) #
Issues fixed
- Fix: Callback methods executing multiple times due to multiple initialization of android.
v1.1.0+1(April 4, 2023) #
Issues fixed
- Fixed Android sending video message url error.
v1.1.0(February 28, 2023) #
New features
- Upgrades the native platforms
iOSandAndroidthat the Flutter platform depends on to v1.1.0. - Adds the function of managing custom chat room attributes to implement functions like seat control and synchronization in voice chatrooms.
- Adds the
ChatManager#fetchConversationListFromServermethod to allow users to get the conversation list from the server with pagination. - Adds the
ChatMessage#chatroomMessagePriorityattribute to implement the chat room message priority function to ensure that high-priority messages are dealt with first.
Improvements
Changed the message sending result callback from ChatMessage#setMessageStatusCallBack to ChatManager#addMessageEvent.
Issues fixed
ChatManager#deleteMessagesBeforeTimestamp execution failures.
v1.0.9(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
updateMessagemethod in rare scenarios. - The
ChatGroupEventHandler#onDestroyedFromGroupcallback that occurs when a group is destroyed does not work on the Android platform. - The
ChatGroupEventHandler#onAutoAcceptInvitationFromGroupcallback that occurs when a user's group invitation is accepted automatically does not work on the Android platform. - Crashes in rare scenarios.
v1.0.8(November 22, 2022) #
Improvements
Removed some redundant logs of the SDK.
Issues fixed
- Failures in getting a large number of messages from the server in few scenarios.
- The issue of incorrect data statistics.
- Crashes caused by log printing in rare scenarios.
v1.0.7(September 7, 2022) #
New features
- Adds the
customEventHandlerattribute inChatClientto allow you to set custom listeners to receive the data sent from the Android or iOS device to the Flutter. - Adds event listener classes for event listening.
- Adds the
PushTemplatemethod in `PushManager to support custom push templates. - Adds the
isDisabledattribute inGroupto 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 thefetchGroupInfoFromServermethod to get group details. - Adds the the
displayNameattribute inPushConfigsto allow you to check the nickname displayed in your push notifications.
Improvements
-
Marked
AddXXXManagerListenermethods (likeaddChatManagerListenerandaddContactManagerListener) as deprecated. -
Modified API references.
v1.0.6(July 21, 2022) #
Issues fixed
- The callbacks for messaging thread were not triggered on iOS.
- The callbacks for reaction were not triggered in iOS.
- Occasional crashes occurred on Android when retrieving conversations from the server.
v1.0.5(June 17, 2022) #
This is the first release for the Agora Chat Flutter SDK, which enables you to add real-time chatting functionalities to an Android or iOS app. Major features include the following:
- Sending and receiving messages in one-to-one chats, chat groups, and chat rooms.
- Retrieving and managing conversations and messages.
- Managing chat groups and chat rooms.
- Managing contact and block lists.
For the complete feature list, see Product Overview.
Agora Chat is charged on a MAU (Monthly Active Users) basis. For details, see Pricing for Agora Chat and Pricing Plan Details.
Refer to the following documentations to enable Agora Chat and use the Chat SDK to implement real-time chatting functionalities in your app:
- Enable and Configure Agora Chat
- Get Started with Agora Chat
- Messages
- Chat Group
- Chat Room
- API Reference