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
12 changes: 10 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
## NEXT

* 支持gcm推送点击
## 3.8.3+4
* 修复消息attribute类型变为bool类型;
* 修复群组免打扰属性不准;
* 修复ios importMessages方法bug;
* 修复群、聊天室禁言时不执行回调的bug;
* 修复下载方法不执行callback;
* 构造文件消息提供设置文件大小属性;
* 修改`EMGroupChangeListener` 为 `EMGroupEventListener`

## 3.8.3+3
* 修复安卓下resendMessage方法发送失败时不回调onError。
* 修复安卓下resendMessage方法发送失败时不回调onError;
* 修复fetchChatRoomMembers返回类型错误;

## 3.8.3+2
* 增加群组已读回执;
Expand Down
25 changes: 9 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Demo中使用的音视频是针对声网音视频封装的[EaseCallKit](https://
1. 修改 `pubspec.yaml`;
```dart
dependencies:
im_flutter_sdk: ^3.8.3+3
im_flutter_sdk: ^3.8.3+4
```

2. 执行`flutter pub get`;
Expand Down Expand Up @@ -1656,25 +1656,18 @@ try{
#### 更新自己的用户属性
```dart
try {

Map aMap = {'nickName': 'gagaga', 'mail': 'xxx@easemob.com'};
EMUserInfo updateUserInfo =
await EMClient.getInstance.userInfoManager.updateOwnUserInfo(aMap);
} on EMError catch (e) {
print('操作失败,原因是: $e');
}
```
#### 更新自己的某一个用户属性
```dart
try {
EMUserInfoType infoType = EMUserInfoType.EMUserInfoTypeBirth;
String updateValue = '2021.01.01';
EMUserInfo updateUserInfo = await EMClient.getInstance.userInfoManager
.updateOwnUserInfoWithType(infoType, updateValue);
EMUserInfo info = EMUserInfo(EMClient.getInstance.currentUsername);
info.copyWith(
sign: "修改签名",
nickName: "用户属性昵称",
mail: "xxx@easemob.com",
);
await EMClient.getInstance.userInfoManager.updateOwnUserInfo(info);
} on EMError catch (e) {
print('操作失败,原因是: $e');
}
```

#### 获取多用户的用户属性
```dart
try {
Expand Down
39 changes: 1 addition & 38 deletions android/src/main/java/com/easemob/im_flutter_sdk/EMHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -526,44 +526,7 @@ static Map<String, Object> toJson(EMMessage message) {
}

if (message.ext().size() > 0 && null != message.ext()) {
HashMap<String, Object> map = new HashMap<>();
for (Map.Entry entry:message.ext().entrySet()) {
String key = entry.getKey().toString();
try {
JSONObject value = message.getJSONObjectAttribute(key);
map.put(key, value);
continue;
}
catch (HyphenateException e) {
}
try {
boolean value = message.getBooleanAttribute(key);
map.put(key, value);
continue;
} catch (HyphenateException e) {
}

try {
JSONArray value = message.getJSONArrayAttribute(key);
map.put(key, value);
continue;
} catch (HyphenateException e) {
}
try {
int value = message.getIntAttribute(key);
map.put(key, value);
continue;
} catch (HyphenateException e){
}

try {
String value = message.getStringAttribute(key);
map.put(key, value);
continue;
} catch (HyphenateException e) {
}
}
data.put("attributes", map);
data.put("attributes", message.ext());
}
data.put("from", message.getFrom());
data.put("to", message.getTo());
Expand Down
2 changes: 1 addition & 1 deletion example/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 0 additions & 2 deletions example/lib/pages/account/login_page.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:ui';

import 'package:easeim_flutter_demo/widgets/common_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
Expand Down
7 changes: 0 additions & 7 deletions example/lib/pages/chat/chat_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -372,13 +372,6 @@ class _ChatPageState extends State<ChatPage>
/// 消息长按
_messageOnLongPress(EMMessage msg) async {
print('长按消息 $msg');
String toAddUsername;
String reason;
try {
EMClient.getInstance.contactManager.addContact(toAddUsername, reason);
} on EMError catch (e) {
debugPrint(e.toString());
}
}

/// 发送文字消息
Expand Down
3 changes: 0 additions & 3 deletions example/lib/widgets/wx_expression.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import 'dart:ui';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

///表情组件
Expand Down
9 changes: 6 additions & 3 deletions ios/Classes/EMChatManagerWrapper.m
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ - (void)importMessages:(NSDictionary *)param
result:(FlutterResult)result {
__weak typeof(self) weakSelf = self;
NSArray *dictAry = param[@"messages"];
NSMutableArray *messages;
NSMutableArray *messages = [NSMutableArray array];
for (NSDictionary *dict in dictAry) {
[messages addObject:[EMMessage fromJson:dict]];
}
Expand All @@ -395,7 +395,8 @@ - (void)downloadAttachment:(NSDictionary *)param
result:(FlutterResult)result {
__weak typeof(self) weakSelf = self;
__block EMMessage *msg = [EMMessage fromJson:param[@"message"]];
[EMClient.sharedClient.chatManager downloadMessageAttachment:msg
EMMessage *needDownMSg = [EMClient.sharedClient.chatManager getMessageWithMessageId:msg.messageId];
[EMClient.sharedClient.chatManager downloadMessageAttachment:needDownMSg
progress:^(int progress)
{
[weakSelf.messageChannel invokeMethod:EMMethodKeyOnMessageProgressUpdate
Expand Down Expand Up @@ -432,7 +433,8 @@ - (void)downloadThumbnail:(NSDictionary *)param
result:(FlutterResult)result {
__weak typeof(self) weakSelf = self;
__block EMMessage *msg = [EMMessage fromJson:param[@"message"]];
[EMClient.sharedClient.chatManager downloadMessageThumbnail:msg
EMMessage *needDownMSg = [EMClient.sharedClient.chatManager getMessageWithMessageId:msg.messageId];
[EMClient.sharedClient.chatManager downloadMessageThumbnail:needDownMSg
progress:^(int progress)
{
[weakSelf.messageChannel invokeMethod:EMMethodKeyOnMessageProgressUpdate
Expand Down Expand Up @@ -638,6 +640,7 @@ - (void)onConversationRead:(NSString *)from
- (void)messagesDidReceive:(NSArray *)aMessages {
NSMutableArray *msgList = [NSMutableArray array];
for (EMMessage *msg in aMessages) {

[msgList addObject:[msg toJson]];
}
[self.channel invokeMethod:EMMethodKeyOnMessagesReceived
Expand Down
2 changes: 0 additions & 2 deletions lib/src/em_chat_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ import "dart:async";

import 'package:flutter/services.dart';
import 'package:im_flutter_sdk/im_flutter_sdk.dart';
import 'models/em_domain_terms.dart';
import 'em_sdk_method.dart';

class EMChatManager implements EMMessageStatusListener {
static const _channelPrefix = 'com.easemob.im';
Expand Down
11 changes: 4 additions & 7 deletions lib/src/em_chat_room_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ import "dart:async";
import 'package:flutter/services.dart';
import 'package:im_flutter_sdk/src/models/em_domain_terms.dart';
import "em_listeners.dart";
import 'em_sdk_method.dart';
import 'package:im_flutter_sdk/src/models/em_cursor_result.dart';
import 'package:im_flutter_sdk/src/models/em_page_result.dart';

class EMChatRoomManager {
static const _channelPrefix = 'com.easemob.im';
Expand Down Expand Up @@ -65,13 +62,13 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_MUTE_LIST_ADDED:
String roomId = event['roomId'];
List<String> mutes = 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 = event['mutes'];
List<String> mutes = List.from(event['mutes']);
listener.onMuteListRemovedFromChatRoom(roomId, mutes);
break;
case EMChatRoomEvent.ON_ADMIN_ADDED:
Expand All @@ -97,12 +94,12 @@ class EMChatRoomManager {
break;
case EMChatRoomEvent.ON_WHITE_LIST_ADDED:
String roomId = event['roomId'];
List<String> members = event["whitelist"];
List<String> members = List.from(event["whitelist"]);
listener.onWhiteListAddedFromChatRoom(roomId, members);
break;
case EMChatRoomEvent.ON_WHITE_LIST_REMOVED:
String roomId = event['roomId'];
List<String> members = event["whitelist"];
List<String> members = List.from(event["whitelist"]);
listener.onWhiteListRemovedFromChatRoom(roomId, members);
break;
case EMChatRoomEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down
3 changes: 1 addition & 2 deletions lib/src/em_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ import 'em_userInfo_manager.dart';
import 'em_group_manager.dart';
import 'em_listeners.dart';
import 'em_push_manager.dart';
import 'em_sdk_method.dart';

import 'models/em_domain_terms.dart';
import 'models/em_options.dart';

import 'tools/em_log.dart';

class EMClient {
Expand Down
4 changes: 0 additions & 4 deletions lib/src/em_contact_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ import 'dart:async';
import 'package:flutter/services.dart';
import 'package:im_flutter_sdk/im_flutter_sdk.dart';

import 'em_listeners.dart';
import 'em_sdk_method.dart';
import 'models/em_domain_terms.dart';

class EMContactManager {
static const _channelPrefix = 'com.easemob.im';
static const MethodChannel _channel = const MethodChannel(
Expand Down
19 changes: 7 additions & 12 deletions lib/src/em_group_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ import 'dart:async';
import 'package:flutter/services.dart';
import 'package:im_flutter_sdk/im_flutter_sdk.dart';

import 'models/em_domain_terms.dart';
import 'em_sdk_method.dart';
//import 'em_domain_terms.dart';
import 'em_listeners.dart';

class EMGroupManager {
static const _channelPrefix = 'com.easemob.im';
static const MethodChannel _channel = const MethodChannel(
Expand Down Expand Up @@ -560,20 +555,20 @@ class EMGroupManager {
}

/// @nodoc addGroupChangeListener - Adds [listener] to be aware of group change events.
void addGroupChangeListener(EMGroupChangeListener listener) {
void addGroupChangeListener(EMGroupEventListener listener) {
_groupChangeListeners.add(listener);
}

/// @nodoc removeGroupChangeListener - Remove [listener] from the listener list.
void removeGroupChangeListener(EMGroupChangeListener listener) {
void removeGroupChangeListener(EMGroupEventListener listener) {
if (_groupChangeListeners.contains(listener)) {
_groupChangeListeners.remove(listener);
}
}

/// @nodoc
Future<void> _onGroupChanged(Map? map) async {
for (EMGroupChangeListener listener in _groupChangeListeners) {
for (EMGroupEventListener listener in _groupChangeListeners) {
var type = map!['type'];
switch (type) {
case EMGroupChangeEvent.ON_INVITATION_RECEIVED:
Expand Down Expand Up @@ -638,13 +633,13 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_MUTE_LIST_ADDED:
String groupId = map['groupId'];
List<String> mutes = 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 = map['mutes'];
List<String> mutes = List.from(map['mutes']);
listener.onMuteListRemovedFromGroup(groupId, mutes);
break;
case EMGroupChangeEvent.ON_ADMIN_ADDED:
Expand Down Expand Up @@ -691,12 +686,12 @@ class EMGroupManager {
break;
case EMGroupChangeEvent.ON_WHITE_LIST_ADDED:
String groupId = map["groupId"];
List<String> members = map['whitelist'];
List<String> members = List.from(map['whitelist']);
listener.onWhiteListAddedFromGroup(groupId, members);
break;
case EMGroupChangeEvent.ON_WHITE_LIST_REMOVED:
String groupId = map["groupId"];
List<String> members = map['whitelist'];
List<String> members = List.from(map['whitelist']);
listener.onWhiteListRemovedFromGroup(groupId, members);
break;
case EMGroupChangeEvent.ON_ALL_MEMBER_MUTE_STATE_CHANGED:
Expand Down
Loading