Skip to content

Commit 6df6a43

Browse files
committed
add 通知消息sessionBody
1 parent 69a0cbf commit 6df6a43

File tree

2 files changed

+49
-31
lines changed

2 files changed

+49
-31
lines changed

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

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,35 +78,45 @@ public static Bundle openIntent(Intent intent) {
7878
}
7979

8080
public static WritableMap getWritableMap(Intent intent) {
81-
WritableMap r = Arguments.createMap();
81+
WritableMap rr = Arguments.createMap();
8282
if (intent != null && canAutoLogin()) {
83+
WritableMap r = Arguments.createMap();
8384
if (intent.hasExtra(NimIntent.EXTRA_NOTIFY_CONTENT)) {
8485
ArrayList<IMMessage> messages = (ArrayList<IMMessage>) intent.getSerializableExtra(NimIntent.EXTRA_NOTIFY_CONTENT);
8586
if (messages == null || messages.size() > 1) {
86-
r.putString("type", "sessionList");
87+
rr.putString("type", "sessionList");
8788
} else {
8889
IMMessage message = messages.get(0);
89-
r.putString("type", "session");
90+
rr.putString("type", "session");
9091
r.putString("sessionType", Integer.toString(message.getSessionType().getValue()));
9192
r.putString("sessionId", message.getSessionId());
92-
r.putString("sessionName", SessionUtil.getSessionName(message.getSessionId(),message.getSessionType(),false));
93+
r.putString("sessionName", SessionUtil.getSessionName(message.getSessionId(), message.getSessionType(), false));
9394
}
9495
} else if (intent.hasExtra(Extras.EXTRA_JUMP_P2P)) {
9596
Intent data = intent.getParcelableExtra(Extras.EXTRA_DATA);
9697
String account = data.getStringExtra(Extras.EXTRA_ACCOUNT);
9798
if (!TextUtils.isEmpty(account)) {
98-
r.putString("type", "session");
99+
rr.putString("type", "session");
99100
r.putString("sessionType", Integer.toString(SessionTypeEnum.P2P.getValue()));
100101
r.putString("sessionId", account);
101-
r.putString("sessionName", SessionUtil.getSessionName(account,SessionTypeEnum.P2P,false));
102+
r.putString("sessionName", SessionUtil.getSessionName(account, SessionTypeEnum.P2P, false));
102103
}
103104
}
104-
105-
LogUtil.w("ReceiverMsgParser", intent + "");
105+
rr.putMap("sessionBody", r);
106+
printIntent(intent);
106107
}
107108

108-
LogUtil.w("ReceiverMsgParser", result + "");
109-
return r;
109+
LogUtil.w("ReceiverMsgParser", rr + "");
110+
return rr;
111+
}
112+
113+
static void printIntent(Intent intent) {
114+
LogUtil.w("ReceiverMsgParser", intent + "");
115+
Bundle extra = intent.getExtras();
116+
for (String key : extra.keySet()) {
117+
LogUtil.w("ReceiverMsgParser", "key:" + key);
118+
LogUtil.w("ReceiverMsgParser", "v:" + extra.get(key));
119+
}
110120
}
111121

112122
/**

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

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ public class SessionService {
8787
private Handler handler;
8888
private boolean mute = false;
8989

90-
private boolean canSended = true;
90+
private boolean isFriend = true;
91+
private boolean isInBlackList = false;
9192

9293
private SessionService() {
9394
}
@@ -557,15 +558,15 @@ public void startSession(Handler handler, String sessionId, String type) {
557558
sessionTypeEnum = SessionUtil.getSessionType(type);
558559

559560
if (sessionTypeEnum == SessionTypeEnum.P2P) {
560-
canSended = NIMClient.getService(FriendService.class).isMyFriend(sessionId);
561+
isFriend = NIMClient.getService(FriendService.class).isMyFriend(sessionId);
562+
isInBlackList = NIMClient.getService(FriendService.class).isInBlackList(sessionId);
563+
561564
this.mute = !NIMClient.getService(FriendService.class).isNeedMessageNotify(sessionId);
562565
} else {
563566
Team t = TeamDataCache.getInstance().getTeamById(sessionId);
564567
if (t != null) {
565568
this.mute = t.mute();
566-
canSended = t.isMyTeam();
567569
} else {
568-
canSended = false;
569570
}
570571
}
571572
registerObservers(true);
@@ -608,9 +609,10 @@ public int onResult(int code, IMMessage message) {
608609
IMMessage item = message;
609610
item.setStatus(MsgStatusEnum.sending);
610611
deleteItem(item, true);
611-
onMsgSend(item);
612-
appendPushConfig(item);
613-
getMsgService().sendMessage(item, true);
612+
// onMsgSend(item);
613+
// appendPushConfig(item);
614+
// getMsgService().sendMessage(item, true);
615+
sendMessageSelf(item, null, true);
614616
return 0;
615617
}
616618
});
@@ -628,7 +630,7 @@ public void sendTextMessage(String content, List<String> selectedMembers, OnSend
628630
// message.setPushContent("有人@了你");
629631
message.setMemberPushOption(option);
630632
}
631-
sendMessageSelf(message, onSendMessageListener);
633+
sendMessageSelf(message, onSendMessageListener, false);
632634
}
633635

634636
/**
@@ -649,7 +651,7 @@ public void sendTipMessage(String content, OnSendMessageListener onSendMessageLi
649651

650652
message.setContent(content);
651653
message.setConfig(config);
652-
sendMessageSelf(message, onSendMessageListener);
654+
sendMessageSelf(message, onSendMessageListener, false);
653655
}
654656
}
655657

@@ -663,15 +665,15 @@ public void sendImageMessage(String file, String displayName, OnSendMessageListe
663665
}
664666
LogUtil.w(TAG, "path:" + f.getPath() + "-size:" + FileUtil.formatFileSize(f.length()));
665667
IMMessage message = MessageBuilder.createImageMessage(sessionId, sessionTypeEnum, f, TextUtils.isEmpty(displayName) ? f.getName() : displayName);
666-
sendMessageSelf(message, onSendMessageListener);
668+
sendMessageSelf(message, onSendMessageListener, false);
667669
}
668670

669671
public void sendAudioMessage(String file, long duration, OnSendMessageListener onSendMessageListener) {
670672
file = Uri.parse(file).getPath();
671673
File f = new File(file);
672674

673675
IMMessage message = MessageBuilder.createAudioMessage(sessionId, sessionTypeEnum, f, duration);
674-
sendMessageSelf(message, onSendMessageListener);
676+
sendMessageSelf(message, onSendMessageListener, false);
675677
}
676678

677679
// String md5Path = StorageUtil.getWritePath(filename, StorageType.TYPE_VIDEO);
@@ -693,7 +695,7 @@ public void sendVideoMessage(String file, String duration, int width, int height
693695
e.printStackTrace();
694696
}
695697
IMMessage message = MessageBuilder.createVideoMessage(sessionId, sessionTypeEnum, f, durationL, width, height, md5);
696-
sendMessageSelf(message, onSendMessageListener);
698+
sendMessageSelf(message, onSendMessageListener, false);
697699
}
698700

699701
public void sendLocationMessage(String latitude, String longitude, String address, OnSendMessageListener onSendMessageListener) {
@@ -710,7 +712,7 @@ public void sendLocationMessage(String latitude, String longitude, String addres
710712
e.printStackTrace();
711713
}
712714
IMMessage message = MessageBuilder.createLocationMessage(sessionId, sessionTypeEnum, lat, lon, address);
713-
sendMessageSelf(message, onSendMessageListener);
715+
sendMessageSelf(message, onSendMessageListener, false);
714716
}
715717

716718
public void sendDefaultMessage(String type, String digst, String content, OnSendMessageListener onSendMessageListener) {
@@ -719,7 +721,7 @@ public void sendDefaultMessage(String type, String digst, String content, OnSend
719721
attachment.setDigst(digst);
720722
attachment.setContent(content);
721723
IMMessage message = MessageBuilder.createCustomMessage(sessionId, sessionTypeEnum, digst, attachment, config);
722-
sendMessageSelf(message, onSendMessageListener);
724+
sendMessageSelf(message, onSendMessageListener, false);
723725
}
724726

725727
public void sendRedPacketOpenMessage(String sendId, String openId, String hasRedPacket, String serialNo, OnSendMessageListener onSendMessageListener) {
@@ -731,7 +733,7 @@ public void sendRedPacketOpenMessage(String sendId, String openId, String hasRed
731733
// IMMessage message = MessageBuilder.createCustomMessage(sessionId, sessionTypeEnum, sendId + ";" + openId, attachment, config);
732734
//
733735
//// message.
734-
// sendMessageSelf(message, onSendMessageListener);
736+
// sendMessageSelf(message, onSendMessageListener,false);
735737
long timestamp = new Date().getTime() / 1000;
736738
SessionUtil.sendRedPacketOpenNotification(sessionId, sessionTypeEnum, sendId, openId, hasRedPacket, serialNo, timestamp);
737739
SessionUtil.sendRedPacketOpenLocal(sessionId, sessionTypeEnum, sendId, openId, hasRedPacket, serialNo, timestamp);
@@ -742,15 +744,15 @@ public void sendRedPacketMessage(String type, String comments, String serialNo,
742744
RedPacketAttachement attachment = new RedPacketAttachement();
743745
attachment.setParams(type, comments, serialNo);
744746
IMMessage message = MessageBuilder.createCustomMessage(sessionId, sessionTypeEnum, comments, attachment, config);
745-
sendMessageSelf(message, onSendMessageListener);
747+
sendMessageSelf(message, onSendMessageListener, false);
746748
}
747749

748750
public void sendBankTransferMessage(String amount, String comments, String serialNo, OnSendMessageListener onSendMessageListener) {
749751
CustomMessageConfig config = new CustomMessageConfig();
750752
BankTransferAttachment attachment = new BankTransferAttachment();
751753
attachment.setParams(amount, comments, serialNo);
752754
IMMessage message = MessageBuilder.createCustomMessage(sessionId, sessionTypeEnum, comments, attachment, config);
753-
sendMessageSelf(message, onSendMessageListener);
755+
sendMessageSelf(message, onSendMessageListener, false);
754756
}
755757

756758
public int sendForwardMessage(IMMessage selectMessage, final String sessionId, final String sessionType, String content, OnSendMessageListener onSendMessageListener) {
@@ -765,7 +767,7 @@ public int sendForwardMessage(IMMessage selectMessage, final String sessionId, f
765767
if (message == null) {
766768
return 1;
767769
}
768-
sendMessageSelf(message, onSendMessageListener);
770+
sendMessageSelf(message, onSendMessageListener, false);
769771
return 2;
770772
}
771773

@@ -841,12 +843,18 @@ public void updateMessage(final IMMessage message, MsgStatusEnum statusEnum) {
841843
getMsgService().updateIMMessageStatus(message);
842844
}
843845

844-
public void sendMessageSelf(final IMMessage message, final OnSendMessageListener onSendMessageListener) {
846+
public void sendMessageSelf(final IMMessage message, final OnSendMessageListener onSendMessageListener, boolean send) {
845847

846848

847849
appendPushConfig(message);
850+
if(isInBlackList){
851+
852+
}
853+
if(!isFriend){
854+
855+
}
848856

849-
getMsgService().sendMessage(message, false);
857+
getMsgService().sendMessage(message, send);
850858
onMessageStatusChange(message, true);
851859

852860
}
@@ -867,7 +875,7 @@ private void appendPushConfig(IMMessage message) {
867875
body.put("sessionId", message.getSessionId());
868876

869877
}
870-
body.put("sessionName", SessionUtil.getSessionName(sessionId,message.getSessionType(),true));
878+
body.put("sessionName", SessionUtil.getSessionName(sessionId, message.getSessionType(), true));
871879
payload.put("sessionBody", body);
872880
message.setPushPayload(payload);
873881
// }

0 commit comments

Comments
 (0)