From dc46c16f3e95c93ad47bcc5a86d86b1427bc66e9 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 12 Dec 2023 10:50:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=92=A4=E5=9B=9E=E5=90=8E=E6=9C=AC=E5=9C=B0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=AD=89=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/application/XChatApplication.java | 1 + .../nnbc123/app/avroom/widget/BottomView.java | 4 ++-- app/src/main/res/layout/popup_message_tip.xml | 2 +- .../nnbc123/core/manager/IMMessageManager.java | 16 ++++++++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nnbc123/app/application/XChatApplication.java b/app/src/main/java/com/nnbc123/app/application/XChatApplication.java index 4335f8bf8..9521e5207 100644 --- a/app/src/main/java/com/nnbc123/app/application/XChatApplication.java +++ b/app/src/main/java/com/nnbc123/app/application/XChatApplication.java @@ -389,6 +389,7 @@ public class XChatApplication extends BaseApp { options.messageNotifierCustomization = messageNotifierCustomization; options.appKey = Constants.nimAppKey; + options.shouldConsiderRevokedMessageUnreadCount = true; // 配置保存图片,文件,log 等数据的目录 // 如果 options 中没有设置这个值,SDK 会使用下面代码示例中的位置作为 SDK 的数据目录。 diff --git a/app/src/main/java/com/nnbc123/app/avroom/widget/BottomView.java b/app/src/main/java/com/nnbc123/app/avroom/widget/BottomView.java index 727e2d479..0abdf7b51 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/widget/BottomView.java +++ b/app/src/main/java/com/nnbc123/app/avroom/widget/BottomView.java @@ -402,10 +402,10 @@ public class BottomView extends FrameLayout implements View.OnClickListener { } ImageView ivAvatar = contentView.findViewById(R.id.iv_avatar); TextView tvNickname = contentView.findViewById(R.id.tv_nickname); - TextView tvContent = contentView.findViewById(R.id.tv_content); +// TextView tvContent = contentView.findViewById(R.id.tv_content); ImageLoadUtils.loadAvatar(userInfo.getAvatar(), ivAvatar); tvNickname.setText(StringExtensionKt.subAndReplaceDot(userInfo.getName(), 4)); - tvContent.setText(ImHelperUtils.getMsgDigest(recentContact)); +// tvContent.setText(ImHelperUtils.getMsgDigest(recentContact)); contentView.setOnClickListener(v -> RoomMsgActivity.startForPrivateChat(getContext(), recentContact.getFromAccount())); int[] vLoc = new int[2]; diff --git a/app/src/main/res/layout/popup_message_tip.xml b/app/src/main/res/layout/popup_message_tip.xml index c57a28281..fc6139a30 100644 --- a/app/src/main/res/layout/popup_message_tip.xml +++ b/app/src/main/res/layout/popup_message_tip.xml @@ -44,6 +44,6 @@ android:lines="1" android:textColor="@color/color_333333" android:textSize="10dp" - tools:text="一二三四五六七八" /> + android:text="收到一条新消息"/> \ No newline at end of file diff --git a/core/src/main/java/com/nnbc123/core/manager/IMMessageManager.java b/core/src/main/java/com/nnbc123/core/manager/IMMessageManager.java index ade430c6b..4fa7b39ff 100644 --- a/core/src/main/java/com/nnbc123/core/manager/IMMessageManager.java +++ b/core/src/main/java/com/nnbc123/core/manager/IMMessageManager.java @@ -27,6 +27,7 @@ import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; import com.netease.nimlib.sdk.msg.model.IMMessage; import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum; import com.netease.nimlib.sdk.msg.model.RecentContact; +import com.netease.nimlib.sdk.msg.model.RevokeMsgNotification; import com.nnbc123.core.activity.event.ActivityEvent; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.event.RoomInviteEvent; @@ -80,6 +81,7 @@ public class IMMessageManager { registerMsgStatusObserver(); + registerRevokeMessageObserver(); // pullMessageHistory(); } @@ -96,6 +98,20 @@ public class IMMessageManager { msgStatusObserver, true); } + private void registerRevokeMessageObserver() { + Observer revokeMessageObserver = new Observer() { + @Override + public void onEvent(RevokeMsgNotification notification) { + if (notification == null || notification.getMessage() == null) { + return; + } + IMMessage message = notification.getMessage(); + NIMClient.getService(MsgService.class).deleteRecentContact2(message.getSessionId(), message.getSessionType()); + } + }; + NIMClient.getService(MsgServiceObserve.class).observeRevokeMessage(revokeMessageObserver, true); + } + private void registerRecentContactObserver() { //会话改变监听 Observer> recentContactObserver = (Observer>) recentContacts -> {