Skip to content

Commit e0c9dfa

Browse files
authored
Merge pull request #499 from easemob/flutter2_dev
Flutter2 dev
2 parents 2e7bb66 + 223c7af commit e0c9dfa

File tree

5 files changed

+108
-83
lines changed

5 files changed

+108
-83
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
## NEXT
22

3+
## 3.9.0+1
4+
- 修复message.attribute不准;
5+
36
## 3.9.0
47

58
- 增加单人推送免打扰接口;

android/src/main/java/com/easemob/im_flutter_sdk/EMChatManagerWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ public void onConversationRead(String from, String to) {
593593
}
594594

595595
private EMConversation.EMSearchDirection searchDirectionFromString(String direction) {
596-
return direction == "up" ? EMConversation.EMSearchDirection.UP : EMConversation.EMSearchDirection.DOWN;
596+
return direction.equals("up") ? EMConversation.EMSearchDirection.UP : EMConversation.EMSearchDirection.DOWN;
597597
}
598598

599599
private EMConversation.EMConversationType typeFromInt(int intType) {

android/src/main/java/com/easemob/im_flutter_sdk/EMHelper.java

Lines changed: 83 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -323,89 +323,95 @@ static EMMessage fromJson(JSONObject json) throws JSONException {
323323
String type = bodyJson.getString("type");
324324
if (json.getString("direction").equals("send")) {
325325
switch (type) {
326-
case "txt": {
327-
message = EMMessage.createSendMessage(Type.TXT);
328-
message.addBody(EMMessageBodyHelper.textBodyFromJson(bodyJson));
329-
}
330-
break;
331-
case "img": {
332-
message = EMMessage.createSendMessage(Type.IMAGE);
333-
message.addBody(EMMessageBodyHelper.imageBodyFromJson(bodyJson));
334-
}
335-
break;
336-
case "loc": {
337-
message = EMMessage.createSendMessage(Type.LOCATION);
338-
message.addBody(EMMessageBodyHelper.localBodyFromJson(bodyJson));
339-
}
340-
break;
341-
case "video": {
342-
message = EMMessage.createSendMessage(Type.VIDEO);
343-
message.addBody(EMMessageBodyHelper.videoBodyFromJson(bodyJson));
344-
}
345-
break;
346-
case "voice": {
347-
message = EMMessage.createSendMessage(Type.VOICE);
348-
message.addBody(EMMessageBodyHelper.voiceBodyFromJson(bodyJson));
349-
}
350-
break;
351-
case "file": {
352-
message = EMMessage.createSendMessage(Type.FILE);
353-
message.addBody(EMMessageBodyHelper.fileBodyFromJson(bodyJson));
354-
}
355-
break;
356-
case "cmd": {
357-
message = EMMessage.createSendMessage(Type.CMD);
358-
message.addBody(EMMessageBodyHelper.cmdBodyFromJson(bodyJson));
359-
}
360-
break;
361-
case "custom": {
362-
message = EMMessage.createSendMessage(Type.CUSTOM);
363-
message.addBody(EMMessageBodyHelper.customBodyFromJson(bodyJson));
326+
case "txt": {
327+
message = EMMessage.createSendMessage(Type.TXT);
328+
message.addBody(EMMessageBodyHelper.textBodyFromJson(bodyJson));
329+
}
330+
break;
331+
case "img": {
332+
message = EMMessage.createSendMessage(Type.IMAGE);
333+
message.addBody(EMMessageBodyHelper.imageBodyFromJson(bodyJson));
334+
}
335+
break;
336+
case "loc": {
337+
message = EMMessage.createSendMessage(Type.LOCATION);
338+
message.addBody(EMMessageBodyHelper.localBodyFromJson(bodyJson));
339+
}
340+
break;
341+
case "video": {
342+
message = EMMessage.createSendMessage(Type.VIDEO);
343+
message.addBody(EMMessageBodyHelper.videoBodyFromJson(bodyJson));
344+
}
345+
break;
346+
case "voice": {
347+
message = EMMessage.createSendMessage(Type.VOICE);
348+
message.addBody(EMMessageBodyHelper.voiceBodyFromJson(bodyJson));
349+
}
350+
break;
351+
case "file": {
352+
message = EMMessage.createSendMessage(Type.FILE);
353+
message.addBody(EMMessageBodyHelper.fileBodyFromJson(bodyJson));
354+
}
355+
break;
356+
case "cmd": {
357+
message = EMMessage.createSendMessage(Type.CMD);
358+
message.addBody(EMMessageBodyHelper.cmdBodyFromJson(bodyJson));
359+
}
360+
break;
361+
case "custom": {
362+
message = EMMessage.createSendMessage(Type.CUSTOM);
363+
message.addBody(EMMessageBodyHelper.customBodyFromJson(bodyJson));
364+
}
365+
break;
364366
}
365-
break;
367+
if (message != null) {
368+
message.setDirection(EMMessage.Direct.SEND);
366369
}
367370
} else {
368371
switch (type) {
369-
case "txt": {
370-
message = EMMessage.createReceiveMessage(Type.TXT);
371-
message.addBody(EMMessageBodyHelper.textBodyFromJson(bodyJson));
372-
}
373-
break;
374-
case "img": {
375-
message = EMMessage.createReceiveMessage(Type.IMAGE);
376-
message.addBody(EMMessageBodyHelper.imageBodyFromJson(bodyJson));
377-
}
378-
break;
379-
case "loc": {
380-
message = EMMessage.createReceiveMessage(Type.LOCATION);
381-
message.addBody(EMMessageBodyHelper.localBodyFromJson(bodyJson));
382-
}
383-
break;
384-
case "video": {
385-
message = EMMessage.createReceiveMessage(Type.VIDEO);
386-
message.addBody(EMMessageBodyHelper.videoBodyFromJson(bodyJson));
387-
}
388-
break;
389-
case "voice": {
390-
message = EMMessage.createReceiveMessage(Type.VOICE);
391-
message.addBody(EMMessageBodyHelper.voiceBodyFromJson(bodyJson));
392-
}
393-
break;
394-
case "file": {
395-
message = EMMessage.createReceiveMessage(Type.FILE);
396-
message.addBody(EMMessageBodyHelper.fileBodyFromJson(bodyJson));
397-
}
398-
break;
399-
case "cmd": {
400-
message = EMMessage.createReceiveMessage(Type.CMD);
401-
message.addBody(EMMessageBodyHelper.cmdBodyFromJson(bodyJson));
402-
}
372+
case "txt": {
373+
message = EMMessage.createReceiveMessage(Type.TXT);
374+
message.addBody(EMMessageBodyHelper.textBodyFromJson(bodyJson));
375+
}
376+
break;
377+
case "img": {
378+
message = EMMessage.createReceiveMessage(Type.IMAGE);
379+
message.addBody(EMMessageBodyHelper.imageBodyFromJson(bodyJson));
380+
}
381+
break;
382+
case "loc": {
383+
message = EMMessage.createReceiveMessage(Type.LOCATION);
384+
message.addBody(EMMessageBodyHelper.localBodyFromJson(bodyJson));
385+
}
386+
break;
387+
case "video": {
388+
message = EMMessage.createReceiveMessage(Type.VIDEO);
389+
message.addBody(EMMessageBodyHelper.videoBodyFromJson(bodyJson));
390+
}
391+
break;
392+
case "voice": {
393+
message = EMMessage.createReceiveMessage(Type.VOICE);
394+
message.addBody(EMMessageBodyHelper.voiceBodyFromJson(bodyJson));
395+
}
396+
break;
397+
case "file": {
398+
message = EMMessage.createReceiveMessage(Type.FILE);
399+
message.addBody(EMMessageBodyHelper.fileBodyFromJson(bodyJson));
400+
}
401+
break;
402+
case "cmd": {
403+
message = EMMessage.createReceiveMessage(Type.CMD);
404+
message.addBody(EMMessageBodyHelper.cmdBodyFromJson(bodyJson));
405+
}
406+
break;
407+
case "custom": {
408+
message = EMMessage.createReceiveMessage(Type.CUSTOM);
409+
message.addBody(EMMessageBodyHelper.customBodyFromJson(bodyJson));
410+
}
403411
break;
404-
case "custom": {
405-
message = EMMessage.createReceiveMessage(Type.CUSTOM);
406-
message.addBody(EMMessageBodyHelper.customBodyFromJson(bodyJson));
407412
}
408-
break;
413+
if (message != null) {
414+
message.setDirection(EMMessage.Direct.RECEIVE);
409415
}
410416
}
411417

lib/src/tools/em_extension.dart

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import '../models/em_group_shared_file.dart';
2+
import 'dart:convert' as convert;
23

34
Type typeOf<T>() => T;
45

@@ -119,13 +120,28 @@ extension MapExtension on Map {
119120
}
120121

121122
Map? getMapValue(String key, {Map? defaultValue}) {
122-
Map? ret = defaultValue;
123+
Map? ret = {};
123124
if (this.containsKey(key)) {
124-
Map? value = this[key];
125-
if (value is double) {
126-
ret = value;
125+
Map tmpMap = this[key];
126+
for (var tmpKey in tmpMap.keys) {
127+
dynamic value = tmpMap[tmpKey];
128+
if (value is String) {
129+
do {
130+
try {
131+
dynamic data = convert.jsonDecode(value);
132+
value = data;
133+
break;
134+
} on FormatException {}
135+
} while (false);
136+
ret[tmpKey] = value;
137+
} else {
138+
ret[tmpKey] = value;
139+
}
127140
}
128141
}
142+
if (ret.length == 0) {
143+
ret = defaultValue;
144+
}
129145
return ret;
130146
}
131147
}

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: im_flutter_sdk
22
description: Easemob IM flutter SDK.
3-
version: 3.9.0
3+
version: 3.9.0+1
44
homepage: http://www.easemob.com/product/im
55

66
environment:

0 commit comments

Comments
 (0)