Skip to content

Commit c786a61

Browse files
guangyaoguangyao
authored andcommitted
2 parents dbc2dc3 + ee5f25e commit c786a61

File tree

3 files changed

+46
-2
lines changed

3 files changed

+46
-2
lines changed

android/src/main/java/com/netease/im/ReactCache.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@
3131
import com.netease.nimlib.sdk.NIMClient;
3232
import com.netease.nimlib.sdk.friend.FriendService;
3333
import com.netease.nimlib.sdk.friend.model.AddFriendNotify;
34+
import com.netease.nimlib.sdk.msg.MsgService;
3435
import com.netease.nimlib.sdk.msg.attachment.AudioAttachment;
3536
import com.netease.nimlib.sdk.msg.attachment.ImageAttachment;
3637
import com.netease.nimlib.sdk.msg.attachment.LocationAttachment;
3738
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
39+
import com.netease.nimlib.sdk.msg.attachment.NotificationAttachment;
3840
import com.netease.nimlib.sdk.msg.attachment.VideoAttachment;
3941
import com.netease.nimlib.sdk.msg.constant.MsgDirectionEnum;
4042
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
@@ -50,6 +52,7 @@
5052
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
5153
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
5254

55+
import java.util.ArrayList;
5356
import java.util.HashMap;
5457
import java.util.List;
5558
import java.util.Map;
@@ -67,6 +70,8 @@ public class ReactCache {
6770
public final static String observeFriend = "observeFriend";//'联系人'
6871
public final static String observeTeam = "observeTeam";//'群组'
6972
public final static String observeReceiveMessage = "observeReceiveMessage";//'接收消息'
73+
74+
public final static String observeDeleteMessage = "observeDeleteMessage";//'撤销后删除消息'
7075
public final static String observeReceiveSystemMsg = "observeReceiveSystemMsg";//'系统通知'
7176
public final static String observeMsgStatus = "observeMsgStatus";//'发送消息状态变化'
7277
public final static String observeAudioRecord = "observeAudioRecord";//'录音状态'
@@ -137,6 +142,35 @@ public static Object createRecentList(List<RecentContact> recents, int unreadNum
137142
map.putString("fromAccount", fromAccount);
138143

139144
String content = contact.getContent();
145+
switch (contact.getMsgType()) {
146+
case text:
147+
return contact.getContent();
148+
case image:
149+
return "[图片]";
150+
case video:
151+
return "[视频]";
152+
case audio:
153+
return "[语音消息]";
154+
case location:
155+
return "[位置]";
156+
case tip:
157+
List<String> uuids = new ArrayList<>();
158+
uuids.add(contact.getRecentMessageId());
159+
List<IMMessage> messages = NIMClient.getService(MsgService.class).queryMessageListByUuidBlock(uuids);
160+
if (messages != null && messages.size() > 0) {
161+
content = messages.get(0).getContent();
162+
}
163+
break;
164+
case notification:
165+
if (sessionType == SessionTypeEnum.Team) {
166+
content = TeamNotificationHelper.getTeamNotificationText(contact.getContactId(),
167+
contact.getFromAccount(),
168+
(NotificationAttachment) contact.getAttachment());
169+
}
170+
break;
171+
default:
172+
break;
173+
}
140174
map.putString("time", TimeUtil.getTimeShowString(contact.getTime(), true));
141175

142176
String fromNick = "";
@@ -190,7 +224,7 @@ public static Object createRecentList(List<RecentContact> recents, int unreadNum
190224
// if (sessionType == SessionTypeEnum.Team && !rpOpen.isSelf()) {
191225
// content = "";
192226
// } else {
193-
content = rpOpen.getTipMsg(false);
227+
content = rpOpen.getTipMsg(false);
194228
// }
195229
}
196230
break;

android/src/main/java/com/netease/im/session/SessionService.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import android.support.annotation.NonNull;
55
import android.text.TextUtils;
66

7+
import com.facebook.react.bridge.Arguments;
8+
import com.facebook.react.bridge.WritableMap;
79
import com.netease.im.MessageUtil;
810
import com.netease.im.ReactCache;
911
import com.netease.im.login.LoginService;
@@ -371,7 +373,8 @@ public void onEvent(IMMessage message) {
371373
}
372374

373375
deleteItem(message, false);
374-
MessageHelper.getInstance().onRevokeMessage(message);
376+
revokMessage(message);
377+
// MessageHelper.getInstance().onRevokeMessage(message);
375378
}
376379
};
377380
private UserInfoObservable.UserInfoObserver uinfoObserver;
@@ -701,6 +704,11 @@ public int sendForwardMessage(IMMessage selectMessage, final String sessionId, f
701704
return 2;
702705
}
703706

707+
void revokMessage(IMMessage message){
708+
WritableMap msg = Arguments.createMap();
709+
msg.putString("_id", message.getUuid());
710+
ReactCache.emit(ReactCache.observeDeleteMessage,msg);
711+
}
704712
public int revokeMessage(final IMMessage selectMessage, final OnSendMessageListener onSendMessageListener) {
705713
if (selectMessage == null) {
706714
return 0;
@@ -710,6 +718,7 @@ public int revokeMessage(final IMMessage selectMessage, final OnSendMessageListe
710718
public void onResult(int code, Void aVoid, Throwable throwable) {
711719
if (code == ResponseCode.RES_SUCCESS) {
712720
deleteItem(selectMessage, false);
721+
revokMessage(selectMessage);
713722
MessageHelper.getInstance().onRevokeMessage(selectMessage);
714723
}
715724
if (onSendMessageListener != null) {

android/src/main/java/com/netease/im/uikit/session/helper/MessageHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public void onRevokeMessage(IMMessage item) {
4242
nick = item.getFromAccount().equals(LoginService.getInstance().getAccount()) ? "你" : "对方";
4343
}
4444
message.setContent(nick + "撤回了一条消息");
45+
// message.setPushContent(nick + "撤回了一条消息");
4546
message.setStatus(MsgStatusEnum.success);
4647
CustomMessageConfig config = new CustomMessageConfig();
4748
config.enableUnreadCount = false;

0 commit comments

Comments
 (0)