Skip to content

Commit 9766629

Browse files
committed
[sdk] SDK 4.6.0更新到4.7.3&fix api
1 parent ddb7055 commit 9766629

File tree

5 files changed

+72
-8
lines changed

5 files changed

+72
-8
lines changed

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.netease.nimlib.sdk.msg.MsgServiceObserve;
4040
import com.netease.nimlib.sdk.msg.model.CustomNotification;
4141
import com.netease.nimlib.sdk.msg.model.IMMessage;
42+
import com.netease.nimlib.sdk.msg.model.RevokeMsgNotification;
4243
import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
4344
import com.netease.nimlib.sdk.util.NIMUtil;
4445

@@ -243,6 +244,10 @@ public String makeNotifyContent(String nick, IMMessage message) {
243244
public String makeTicker(String nick, IMMessage message) {
244245
return null; // 采用SDK默认文案
245246
}
247+
@Override
248+
public String makeRevokeMsgTip(String revokeAccount, IMMessage item) {
249+
return MessageUtil.getRevokeTipContent(item, revokeAccount);
250+
}
246251
};
247252

248253

@@ -288,14 +293,14 @@ public static boolean isApkDebugable(Context context) {
288293
}
289294

290295
private static void registerMsgRevokeObserver() {
291-
NIMClient.getService(MsgServiceObserve.class).observeRevokeMessage(new Observer<IMMessage>() {
296+
NIMClient.getService(MsgServiceObserve.class).observeRevokeMessage(new Observer<RevokeMsgNotification>() {
292297
@Override
293-
public void onEvent(IMMessage message) {
294-
if (message == null) {
298+
public void onEvent(RevokeMsgNotification message) {
299+
if (message == null && message.getMessage() == null) {
295300
return;
296301
}
297302

298-
MessageHelper.getInstance().onRevokeMessage(message);
303+
MessageHelper.getInstance().onRevokeMessage(message.getMessage());
299304
}
300305
}, true);
301306
}

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

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
package com.netease.im;
22

3+
import android.text.TextUtils;
4+
5+
import com.netease.im.login.LoginService;
36
import com.netease.im.session.extension.BankTransferAttachment;
47
import com.netease.im.session.extension.RedPacketAttachement;
8+
import com.netease.im.uikit.cache.TeamDataCache;
59
import com.netease.nimlib.sdk.msg.constant.AttachStatusEnum;
610
import com.netease.nimlib.sdk.msg.constant.MsgDirectionEnum;
711
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
12+
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
813
import com.netease.nimlib.sdk.msg.model.IMMessage;
14+
import com.netease.nimlib.sdk.robot.model.RobotAttachment;
15+
import com.netease.nimlib.sdk.team.constant.TeamMemberType;
16+
import com.netease.nimlib.sdk.team.model.TeamMember;
917

1018
/**
1119
* Created by dowin on 2017/6/14.
@@ -38,4 +46,52 @@ public class MessageUtil {
3846
}
3947
return false;
4048
}
49+
50+
public static String getRevokeTipContent(IMMessage item, String revokeAccount) {
51+
52+
String fromAccount = item.getFromAccount();
53+
if (item.getMsgType() == MsgTypeEnum.robot) {
54+
RobotAttachment robotAttachment = (RobotAttachment) item.getAttachment();
55+
if (robotAttachment.isRobotSend()) {
56+
fromAccount = robotAttachment.getFromRobotAccount();
57+
}
58+
}
59+
60+
if (!TextUtils.isEmpty(
61+
revokeAccount) && !revokeAccount.equals(fromAccount)) {
62+
return getRevokeTipOfOther(item.getSessionId(), item.getSessionType(), revokeAccount);
63+
} else {
64+
String revokeNick = ""; // 撤回者
65+
if (item.getSessionType() == SessionTypeEnum.Team) {
66+
revokeNick = TeamDataCache.getInstance().getTeamMemberDisplayNameYou(item.getSessionId(), item.getFromAccount());
67+
} else if (item.getSessionType() == SessionTypeEnum.P2P) {
68+
revokeNick = item.getFromAccount().equals(LoginService.getInstance().getAccount()) ? "你" : "对方";
69+
}
70+
return revokeNick + "撤回了一条消息";
71+
}
72+
}
73+
74+
// 撤回其他人的消息时,获取tip
75+
public static String getRevokeTipOfOther(String sessionID, SessionTypeEnum sessionType, String revokeAccount) {
76+
if (sessionType == SessionTypeEnum.Team) {
77+
String revokeNick = ""; // 撤回者
78+
79+
if (LoginService.getInstance().getAccount().equals(revokeAccount)) {
80+
revokeNick = "你";
81+
} else {
82+
TeamMember member = TeamDataCache.getInstance().getTeamMember(sessionID, revokeAccount);
83+
84+
String revoker = TeamDataCache.getInstance().getDisplayNameWithoutMe(sessionID, revokeAccount);
85+
86+
if (member == null || member.getType() == TeamMemberType.Manager) {
87+
revokeNick = "管理员 " + revoker + " ";
88+
} else if (member.getType() == TeamMemberType.Owner) {
89+
revokeNick = "群主 " + revoker + " ";
90+
}
91+
}
92+
return revokeNick + "撤回了一条成员消息";
93+
} else {
94+
return "撤回了一条消息";
95+
}
96+
}
4197
}

android/src/main/java/com/netease/im/common/push/NimMixPushMessageHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public boolean onNotificationClicked(Context context, Map<String, String> payloa
5151
}
5252

5353
@Override
54-
public boolean cleanHuaWeiNotifications() {
55-
return false;
54+
public boolean cleanMixPushNotifications(int pushType) {
55+
return true;
5656
}
5757

5858
private ComponentName initLaunchComponent(Context context) {

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.netease.nimlib.sdk.msg.model.MemberPushOption;
5656
import com.netease.nimlib.sdk.msg.model.MessageReceipt;
5757
import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum;
58+
import com.netease.nimlib.sdk.msg.model.RevokeMsgNotification;
5859
import com.netease.nimlib.sdk.team.model.Team;
5960

6061
import java.io.File;
@@ -408,9 +409,11 @@ public void onClearMessages(String account) {
408409
/**
409410
* 消息撤回观察者
410411
*/
411-
Observer<IMMessage> revokeMessageObserver = new Observer<IMMessage>() {
412+
Observer<RevokeMsgNotification> revokeMessageObserver = new Observer<RevokeMsgNotification>() {
412413
@Override
413-
public void onEvent(IMMessage message) {
414+
public void onEvent(RevokeMsgNotification item) {
415+
if (item == null) {return;}
416+
IMMessage message = item.getMessage();
414417
if (message == null || sessionId == null || !sessionId.equals(message.getSessionId())) {
415418
return;
416419
}

0 commit comments

Comments
 (0)