Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0dec034a55 | ||
|
|
2b3f062e5c | ||
|
|
a4b52f5895 |
@@ -1,3 +1,7 @@
|
|||||||
|
## 3.4.0+1
|
||||||
|
|
||||||
|
- Adjust some fields and APIs.
|
||||||
|
|
||||||
## 3.4.0
|
## 3.4.0
|
||||||
|
|
||||||
- [Bug fixes and performance enhancements.](https://github.com/openimsdk/openim-sdk-core/releases/tag/v3.4.0)
|
- [Bug fixes and performance enhancements.](https://github.com/openimsdk/openim-sdk-core/releases/tag/v3.4.0)
|
||||||
|
|||||||
@@ -63,13 +63,13 @@ class FriendshipManager {
|
|||||||
.then((value) => Utils.toList(value, (v) => FriendApplicationInfo.fromJson(v)));
|
.then((value) => Utils.toList(value, (v) => FriendApplicationInfo.fromJson(v)));
|
||||||
|
|
||||||
/// Get Friend List, including friends who have been put into the blacklist
|
/// Get Friend List, including friends who have been put into the blacklist
|
||||||
Future<List<FriendInfo>> getFriendList({String? operationID}) => _channel
|
Future<List<FullUserInfo>> getFriendList({String? operationID}) => _channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'getFriendList',
|
'getFriendList',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
"operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toList(value, (v) => FriendInfo.fromJson(v)));
|
.then((value) => Utils.toList(value, (v) => FullUserInfo.fromJson(v)));
|
||||||
|
|
||||||
/// Get Friend List, including friends who have been put into the blacklist (returns a map)
|
/// Get Friend List, including friends who have been put into the blacklist (returns a map)
|
||||||
Future<List<dynamic>> getFriendListMap({String? operationID}) => _channel
|
Future<List<dynamic>> getFriendListMap({String? operationID}) => _channel
|
||||||
|
|||||||
@@ -566,8 +566,6 @@ class GroupManager {
|
|||||||
|
|
||||||
/// Modify the GroupMemberInfo ex field
|
/// Modify the GroupMemberInfo ex field
|
||||||
Future<dynamic> setGroupMemberInfo({
|
Future<dynamic> setGroupMemberInfo({
|
||||||
required String groupID,
|
|
||||||
required String userID,
|
|
||||||
required GroupMembersInfo groupMembersInfo,
|
required GroupMembersInfo groupMembersInfo,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class UserManager {
|
|||||||
|
|
||||||
/// Get user information
|
/// Get user information
|
||||||
/// [userIDList] List of user IDs
|
/// [userIDList] List of user IDs
|
||||||
Future<List<UserInfo>> getUsersInfo({
|
Future<List<FullUserInfo>> getUsersInfo({
|
||||||
required List<String> userIDList,
|
required List<String> userIDList,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
@@ -26,7 +26,7 @@ class UserManager {
|
|||||||
'userIDList': userIDList,
|
'userIDList': userIDList,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toList(value, (v) => UserInfo.fromJson(v)));
|
.then((value) => Utils.toList(value, (v) => FullUserInfo.fromJson(v)));
|
||||||
|
|
||||||
/// Get information of the currently logged-in user
|
/// Get information of the currently logged-in user
|
||||||
Future<UserInfo> getSelfUserInfo({
|
Future<UserInfo> getSelfUserInfo({
|
||||||
@@ -115,7 +115,7 @@ class UserManager {
|
|||||||
.then((value) => Utils.toList(value, (map) => UserStatusInfo.fromJson(map)));
|
.then((value) => Utils.toList(value, (map) => UserStatusInfo.fromJson(map)));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<UserInfo>> getUsersInfoWithCache(
|
Future<List<FullUserInfo>> getUsersInfoWithCache(
|
||||||
List<String> userIDs, {
|
List<String> userIDs, {
|
||||||
String? groupID,
|
String? groupID,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
@@ -128,7 +128,7 @@ class UserManager {
|
|||||||
'groupID': groupID,
|
'groupID': groupID,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => Utils.toList(value, (map) => UserInfo.fromJson(map)));
|
.then((value) => Utils.toList(value, (map) => FullUserInfo.fromJson(map)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Map _buildParam(Map param) {
|
static Map _buildParam(Map param) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class ConversationInfo {
|
|||||||
int? recvMsgOpt;
|
int? recvMsgOpt;
|
||||||
|
|
||||||
// Number of unread messages in the conversation
|
// Number of unread messages in the conversation
|
||||||
int? unreadCount;
|
int unreadCount = 0;
|
||||||
|
|
||||||
// Latest message in the conversation
|
// Latest message in the conversation
|
||||||
Message? latestMsg;
|
Message? latestMsg;
|
||||||
@@ -72,7 +72,7 @@ class ConversationInfo {
|
|||||||
this.showName,
|
this.showName,
|
||||||
this.faceURL,
|
this.faceURL,
|
||||||
this.recvMsgOpt,
|
this.recvMsgOpt,
|
||||||
this.unreadCount,
|
this.unreadCount = 0,
|
||||||
this.latestMsg,
|
this.latestMsg,
|
||||||
this.latestMsgSendTime,
|
this.latestMsgSendTime,
|
||||||
this.draftText,
|
this.draftText,
|
||||||
@@ -87,8 +87,7 @@ class ConversationInfo {
|
|||||||
this.msgDestructTime,
|
this.msgDestructTime,
|
||||||
});
|
});
|
||||||
|
|
||||||
ConversationInfo.fromJson(Map<String, dynamic> json)
|
ConversationInfo.fromJson(Map<String, dynamic> json) : conversationID = json['conversationID'] {
|
||||||
: conversationID = json['conversationID'] {
|
|
||||||
conversationType = json['conversationType'];
|
conversationType = json['conversationType'];
|
||||||
userID = json['userID'];
|
userID = json['userID'];
|
||||||
groupID = json['groupID'];
|
groupID = json['groupID'];
|
||||||
@@ -146,19 +145,14 @@ class ConversationInfo {
|
|||||||
bool get isSingleChat => conversationType == ConversationType.single;
|
bool get isSingleChat => conversationType == ConversationType.single;
|
||||||
|
|
||||||
// Check if it's a group chat
|
// Check if it's a group chat
|
||||||
bool get isGroupChat =>
|
bool get isGroupChat => conversationType == ConversationType.group || conversationType == ConversationType.superGroup;
|
||||||
conversationType == ConversationType.group ||
|
|
||||||
conversationType == ConversationType.superGroup;
|
|
||||||
|
|
||||||
// Check if it's a valid conversation (not in a group if isNotInGroup is true)
|
// Check if it's a valid conversation (not in a group if isNotInGroup is true)
|
||||||
bool get isValid => isSingleChat || (isGroupChat && !isNotInGroup!);
|
bool get isValid => isSingleChat || (isGroupChat && !isNotInGroup!);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) || other is ConversationInfo && runtimeType == other.runtimeType && conversationID == other.conversationID;
|
||||||
other is ConversationInfo &&
|
|
||||||
runtimeType == other.runtimeType &&
|
|
||||||
conversationID == other.conversationID;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode => conversationID.hashCode;
|
int get hashCode => conversationID.hashCode;
|
||||||
|
|||||||
@@ -920,37 +920,27 @@ class MessageEntity {
|
|||||||
|
|
||||||
/// Group message read information
|
/// Group message read information
|
||||||
class GroupHasReadInfo {
|
class GroupHasReadInfo {
|
||||||
/// List of user IDs that have read the message
|
/// Total number of reads
|
||||||
List<String>? hasReadUserIDList;
|
|
||||||
|
|
||||||
/// Total number of messages read
|
|
||||||
int? hasReadCount;
|
int? hasReadCount;
|
||||||
|
|
||||||
/// Number of group members when this message was sent
|
int? unreadCount;
|
||||||
int? groupMemberCount;
|
|
||||||
|
|
||||||
GroupHasReadInfo.fromJson(Map<String, dynamic> json) {
|
GroupHasReadInfo.fromJson(Map<String, dynamic> json) {
|
||||||
if (json['hasReadUserIDList'] == null) {
|
|
||||||
hasReadUserIDList = <String>[];
|
|
||||||
} else {
|
|
||||||
hasReadUserIDList = (json['hasReadUserIDList'] as List).cast<String>();
|
|
||||||
}
|
|
||||||
hasReadCount = json['hasReadCount'] ?? 0;
|
hasReadCount = json['hasReadCount'] ?? 0;
|
||||||
groupMemberCount = json['groupMemberCount'] ?? 0;
|
unreadCount = json['unreadCount'] ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final data = Map<String, dynamic>();
|
final data = Map<String, dynamic>();
|
||||||
data['hasReadUserIDList'] = this.hasReadUserIDList;
|
|
||||||
data['hasReadCount'] = this.hasReadCount;
|
data['hasReadCount'] = this.hasReadCount;
|
||||||
data['groupMemberCount'] = this.groupMemberCount;
|
data['unreadCount'] = this.unreadCount;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Message read receipt information
|
/// Message read receipt information
|
||||||
class ReadReceiptInfo {
|
class ReadReceiptInfo {
|
||||||
/// Sender's ID
|
/// Sender ID
|
||||||
String? userID;
|
String? userID;
|
||||||
|
|
||||||
/// Group ID
|
/// Group ID
|
||||||
|
|||||||
@@ -98,6 +98,22 @@ class FullUserInfo {
|
|||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get userID {
|
||||||
|
return publicInfo?.userID ?? friendInfo?.userID ?? blackInfo?.userID ?? '';
|
||||||
|
}
|
||||||
|
|
||||||
|
String get nickname {
|
||||||
|
return publicInfo?.nickname ?? friendInfo?.nickname ?? blackInfo?.nickname ?? '';
|
||||||
|
}
|
||||||
|
|
||||||
|
String get faceURL {
|
||||||
|
return publicInfo?.faceURL ?? friendInfo?.faceURL ?? blackInfo?.faceURL ?? '';
|
||||||
|
}
|
||||||
|
|
||||||
|
String get showName {
|
||||||
|
return friendInfo?.nickname ?? nickname;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PublicUserInfo {
|
class PublicUserInfo {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
||||||
|
|
||||||
class OpenIM {
|
class OpenIM {
|
||||||
static const version = '3.4.0';
|
static const version = '3.4.0+1';
|
||||||
|
|
||||||
static const _channel = const MethodChannel('flutter_openim_sdk');
|
static const _channel = const MethodChannel('flutter_openim_sdk');
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name: flutter_openim_sdk
|
name: flutter_openim_sdk
|
||||||
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
|
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
|
||||||
version: 3.4.0
|
version: 3.4.0+1
|
||||||
homepage: https://www.rentsoft.cn
|
homepage: https://www.rentsoft.cn
|
||||||
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
|
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user