Skip to content

Commit 7001a66

Browse files
guangyaoguangyao
authored andcommitted
2 parents 8d9cf0b + 19af77c commit 7001a66

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.netease.im.contact.FriendListService;
3131
import com.netease.im.contact.FriendObserver;
3232
import com.netease.im.login.LoginService;
33+
import com.netease.im.login.RecentContactObserver;
3334
import com.netease.im.login.SysMessageObserver;
3435
import com.netease.im.session.AudioMessageService;
3536
import com.netease.im.session.AudioPlayService;
@@ -471,6 +472,7 @@ public void setMessageNotify(String contactId, String mute, final Promise promis
471472
@Override
472473
public void onResult(int code, Void aVoid, Throwable throwable) {
473474
if (code == ResponseCode.RES_SUCCESS) {
475+
RecentContactObserver.getInstance().refreshMessages(true);
474476
promise.resolve("" + code);
475477
} else {
476478
promise.reject("" + code, "");
@@ -494,6 +496,7 @@ public void setTeamNotify(String teamId, String mute, final Promise promise) {
494496
@Override
495497
public void onResult(int code, Void aVoid, Throwable throwable) {
496498
if (code == ResponseCode.RES_SUCCESS) {
499+
RecentContactObserver.getInstance().refreshMessages(true);
497500
promise.resolve("" + code);
498501
} else {
499502
promise.reject("" + code, "");

android/src/main/java/com/netease/im/login/LoginService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private void queryRecentContacts() {
105105

106106
volatile boolean hasRegister;
107107

108-
RecentContactObserver recentContactObserver = new RecentContactObserver();
108+
RecentContactObserver recentContactObserver = RecentContactObserver.getInstance();
109109
// SysMessageObserver sysMessageObserver = new SysMessageObserver();
110110

111111
synchronized void registerObserver(boolean register) {

android/src/main/java/com/netease/im/login/RecentContactObserver.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@
3232

3333
public class RecentContactObserver {
3434
final static String TAG = "RecentContactObserver";
35+
36+
private RecentContactObserver() {
37+
38+
}
39+
40+
static class InstanceHolder {
41+
final static RecentContactObserver instance = new RecentContactObserver();
42+
}
43+
44+
public static RecentContactObserver getInstance() {
45+
return InstanceHolder.instance;
46+
}
3547
/*******************************最近会话********************************/
3648

3749
private List<RecentContact> items = new ArrayList<>();
@@ -139,7 +151,7 @@ public void onResult(boolean success, Team result) {
139151

140152
int unreadNum = 0;
141153

142-
private void refreshMessages(boolean unreadChanged) {
154+
public void refreshMessages(boolean unreadChanged) {
143155
sortRecentContacts(items);
144156

145157

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.netease.im.session.extension.DefaultCustomAttachment;
1818
import com.netease.im.session.extension.RedPacketAttachement;
1919
import com.netease.im.session.extension.RedPacketOpenAttachement;
20+
import com.netease.im.uikit.cache.TeamDataCache;
2021
import com.netease.im.uikit.common.util.log.LogUtil;
2122
import com.netease.im.uikit.common.util.string.MD5;
2223
import com.netease.im.uikit.session.helper.MessageHelper;
@@ -28,6 +29,7 @@
2829
import com.netease.nimlib.sdk.Observer;
2930
import com.netease.nimlib.sdk.RequestCallbackWrapper;
3031
import com.netease.nimlib.sdk.ResponseCode;
32+
import com.netease.nimlib.sdk.friend.FriendService;
3133
import com.netease.nimlib.sdk.msg.MessageBuilder;
3234
import com.netease.nimlib.sdk.msg.MsgService;
3335
import com.netease.nimlib.sdk.msg.MsgServiceObserve;
@@ -44,6 +46,7 @@
4446
import com.netease.nimlib.sdk.msg.model.MemberPushOption;
4547
import com.netease.nimlib.sdk.msg.model.MessageReceipt;
4648
import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum;
49+
import com.netease.nimlib.sdk.team.model.Team;
4750

4851
import java.io.File;
4952
import java.util.ArrayList;
@@ -78,6 +81,7 @@ public class SessionService {
7881
private IMMessage lastShowTimeItem; // 用于消息时间显示,判断和上条消息间的时间间隔
7982

8083
private Handler handler;
84+
private boolean mute = false;
8185

8286
private SessionService() {
8387
}
@@ -131,7 +135,7 @@ public void onIncomingMessage(@NonNull List<IMMessage> messages) {
131135
updateShowTimeItem(addedListItems, false);
132136
}
133137
List<IMMessage> r = onQuery(addedListItems);
134-
if (r.size() > 0) {
138+
if (!this.mute && r.size() > 0) {
135139
AudioPlayService.getInstance().playAudio(handler, ReactCache.getReactContext(), AudioManager.STREAM_RING, "raw", "msg");
136140
}
137141
refreshMessageList(r);
@@ -529,7 +533,15 @@ public void startSession(Handler handler, String sessionId, String type) {
529533
clear();
530534
this.handler = handler;
531535
this.sessionId = sessionId;
536+
532537
sessionTypeEnum = SessionUtil.getSessionType(type);
538+
539+
if (sessionTypeEnum == SessionTypeEnum.P2P) {
540+
this.mute = !NIMClient.getService(FriendService.class).isNeedMessageNotify(sessionId);
541+
} else {
542+
Team t = TeamDataCache.getInstance().getTeamById(sessionId);
543+
this.mute = t.mute();
544+
}
533545
registerObservers(true);
534546
getMsgService().setChattingAccount(sessionId, sessionTypeEnum);
535547
}

0 commit comments

Comments
 (0)