Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
## NEXT

## 4.0.0+1
## 4.0.0+2

#### 修复

- 修复图片消息和视频消息转换失败的问题。
- 修复List<String>? 转换失败;
- 修复图片消息和视频消息转换失败;

## 4.0.0

Expand Down
16 changes: 8 additions & 8 deletions lib/src/em_chat_room_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_MUTE_LIST_ADDED:
String roomId = event['roomId'];
List<String> mutes = List.from(event['mutes']);
List<String> mutes = List.from(event['mutes'] ?? []);
String? expireTime = event['expireTime'];
item.onMuteListAddedFromChatRoom?.call(roomId, mutes, expireTime);
break;
case EMChatRoomEvent.ON_MUTE_LIST_REMOVED:
String roomId = event['roomId'];
List<String> mutes = List.from(event['mutes']);
List<String> mutes = List.from(event['mutes'] ?? []);
item.onMuteListRemovedFromChatRoom?.call(roomId, mutes);
break;
case EMChatRoomEvent.ON_ADMIN_ADDED:
Expand All @@ -96,12 +96,12 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_WHITE_LIST_ADDED:
String roomId = event['roomId'];
List<String> members = List.from(event["whitelist"]);
List<String> members = List.from(event["whitelist"] ?? []);
item.onAllowListAddedFromChatRoom?.call(roomId, members);
break;
case EMChatRoomEvent.ON_WHITE_LIST_REMOVED:
String roomId = event['roomId'];
List<String> members = List.from(event["whitelist"]);
List<String> members = List.from(event["whitelist"] ?? []);
item.onAllowListRemovedFromChatRoom?.call(roomId, members);
break;
case EMChatRoomEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down Expand Up @@ -163,13 +163,13 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_MUTE_LIST_ADDED:
String roomId = event['roomId'];
List<String> mutes = List.from(event['mutes']);
List<String> mutes = List.from(event['mutes'] ?? []);
String? expireTime = event['expireTime'];
listener.onMuteListAddedFromChatRoom(roomId, mutes, expireTime);
break;
case EMChatRoomEvent.ON_MUTE_LIST_REMOVED:
String roomId = event['roomId'];
List<String> mutes = List.from(event['mutes']);
List<String> mutes = List.from(event['mutes'] ?? []);
listener.onMuteListRemovedFromChatRoom(roomId, mutes);
break;
case EMChatRoomEvent.ON_ADMIN_ADDED:
Expand All @@ -195,12 +195,12 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_WHITE_LIST_ADDED:
String roomId = event['roomId'];
List<String> members = List.from(event["whitelist"]);
List<String> members = List.from(event["whitelist"] ?? []);
listener.onAllowListAddedFromChatRoom(roomId, members);
break;
case EMChatRoomEvent.ON_WHITE_LIST_REMOVED:
String roomId = event['roomId'];
List<String> members = List.from(event["whitelist"]);
List<String> members = List.from(event["whitelist"] ?? []);
listener.onAllowListRemovedFromChatRoom(roomId, members);
break;
case EMChatRoomEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down
2 changes: 1 addition & 1 deletion lib/src/em_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ class EMClient {
Future<void> _onMultiDeviceGroupEvent(Map map) async {
EMMultiDevicesEvent event = convertIntToEMMultiDevicesEvent(map['event'])!;
String target = map['target'];
List<String> users = map['users'];
List<String>? users = map.getList("users");

for (var handler in _multiDeviceEventHandler.values) {
handler.onGroupEvent?.call(event, target, users);
Expand Down
16 changes: 8 additions & 8 deletions lib/src/em_group_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1319,13 +1319,13 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_MUTE_LIST_ADDED:
String groupId = map['groupId'];
List<String> mutes = List.from(map['mutes']);
List<String> mutes = List.from(map['mutes'] ?? []);
int? muteExpire = map['muteExpire'];
element.onMuteListAddedFromGroup?.call(groupId, mutes, muteExpire);
break;
case EMGroupChangeEvent.ON_MUTE_LIST_REMOVED:
String groupId = map['groupId'];
List<String> mutes = List.from(map['mutes']);
List<String> mutes = List.from(map['mutes'] ?? []);
element.onMuteListRemovedFromGroup?.call(groupId, mutes);
break;
case EMGroupChangeEvent.ON_ADMIN_ADDED:
Expand Down Expand Up @@ -1372,12 +1372,12 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_WHITE_LIST_ADDED:
String groupId = map["groupId"];
List<String> members = List.from(map['whitelist']);
List<String> members = List.from(map['whitelist'] ?? []);
element.onAllowListAddedFromGroup?.call(groupId, members);
break;
case EMGroupChangeEvent.ON_WHITE_LIST_REMOVED:
String groupId = map["groupId"];
List<String> members = List.from(map['whitelist']);
List<String> members = List.from(map['whitelist'] ?? []);
element.onAllowListRemovedFromGroup?.call(groupId, members);
break;
case EMGroupChangeEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down Expand Up @@ -1462,13 +1462,13 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_MUTE_LIST_ADDED:
String groupId = map['groupId'];
List<String> mutes = List.from(map['mutes']);
List<String> mutes = List.from(map['mutes'] ?? []);
int? muteExpire = map['muteExpire'];
listener.onMuteListAddedFromGroup(groupId, mutes, muteExpire);
break;
case EMGroupChangeEvent.ON_MUTE_LIST_REMOVED:
String groupId = map['groupId'];
List<String> mutes = List.from(map['mutes']);
List<String> mutes = List.from(map['mutes'] ?? []);
listener.onMuteListRemovedFromGroup(groupId, mutes);
break;
case EMGroupChangeEvent.ON_ADMIN_ADDED:
Expand Down Expand Up @@ -1515,12 +1515,12 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_WHITE_LIST_ADDED:
String groupId = map["groupId"];
List<String> members = List.from(map['whitelist']);
List<String> members = List.from(map['whitelist'] ?? []);
listener.onAllowListAddedFromGroup(groupId, members);
break;
case EMGroupChangeEvent.ON_WHITE_LIST_REMOVED:
String groupId = map["groupId"];
List<String> members = List.from(map['whitelist']);
List<String> members = List.from(map['whitelist'] ?? []);
listener.onAllowListRemovedFromGroup(groupId, members);
break;
case EMGroupChangeEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down
8 changes: 4 additions & 4 deletions lib/src/models/em_chat_room.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ class EMChatRoom {
owner: map["owner"],
memberCount: map["memberCount"],
maxUsers: map["maxUsers"],
adminList: map["adminList"],
memberList: map["memberList"],
blockList: map["blockList"],
muteList: map["muteList"],
adminList: map.getList("adminList"),
memberList: map.getList("memberList"),
blockList: map.getList("blockList"),
muteList: map.getList("muteList"),
announcement: map["announcement"],
permissionType: chatRoomPermissionTypeFromInt(map["permissionType"]),
isAllMemberMuted: map.boolValue("isAllMemberMuted"));
Expand Down
8 changes: 4 additions & 4 deletions lib/src/models/em_group.dart
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,10 @@ class EMGroup {
String? owner = map["owner"];
String? announcement = map["announcement"];
int? memberCount = map["memberCount"];
List<String>? memberList = map["memberList"];
List<String>? adminList = map["adminList"];
List<String>? blockList = map["blockList"];
List<String>? muteList = map["muteList"];
List<String>? memberList = map.getList("memberList");
List<String>? adminList = map.getList("adminList");
List<String>? blockList = map.getList("blockList");
List<String>? muteList = map.getList("muteList");
bool? messageBlocked = map["messageBlocked"];
bool? isAllMemberMuted = map["isAllMemberMuted"];
EMGroupPermissionType? permissionType =
Expand Down
7 changes: 1 addition & 6 deletions lib/src/models/em_message.dart
Original file line number Diff line number Diff line change
Expand Up @@ -933,12 +933,7 @@ class EMTextMessageBody extends EMMessageBody {
type: MessageType.TXT,
) {
this.content = map["content"] ?? "";
this.targetLanguages = map.getList<String>(
"targetLanguages",
valueCallback: (item) {
return item;
},
);
this.targetLanguages = map.getList("targetLanguages");
if (map.containsKey("translations")) {
this.translations = map["translations"]?.cast<String, String>();
}
Expand Down
4 changes: 1 addition & 3 deletions lib/src/models/em_message_reaction.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,7 @@ class EMMessageReaction {

bool isAddedBySelf = map["isAddedBySelf"] ?? false;
List<String> userList = [];
List<String>? tmp = map.getList("userList", valueCallback: (str) {
return str;
});
List<String>? tmp = map.getList("userList");
if (tmp != null) {
userList.addAll(tmp);
}
Expand Down
10 changes: 8 additions & 2 deletions lib/src/tools/em_extension.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,20 @@ extension MapExtension on Map {
return ret;
}

List<T>? getList<T>(String key, {valueCallback = MapResultCallback}) {
List<T>? getList<T>(String key, {MapResultCallback? valueCallback}) {
List<T>? ret;
if (this.containsKey(key)) {
List list = this[key];

List<T> typeList = [];
for (var item in list) {
typeList.add(valueCallback(item));
if (valueCallback != null) {
typeList.add(valueCallback(item));
} else {
if (item is T) {
typeList.add(item);
}
}
}
if (typeList.length > 0) {
ret = typeList;
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: im_flutter_sdk
description: Integrate the Chat SDK to enjoy the global IM services with high reliability, ultra-low latency, and high concurrency.
version: 4.0.0+1
version: 4.0.0+2
homepage: https://www.easemob.com/product/im

environment:
Expand Down