From daba3d9872b15b3fd77ba522b1fb47c9d1ad2b08 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Mon, 22 Dec 2025 18:32:11 +0800 Subject: [PATCH] =?UTF-8?q?77=20=20=E7=BA=A2=E5=8C=85=20bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduleutil/utils/QXRedPacketManager.java | 23 +++++++++++++++---- .../activity/room/activity/RoomActivity.kt | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java b/BaseModule/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java index e3ded90c..c1a6ef36 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java @@ -2,8 +2,12 @@ package com.xscm.moduleutil.utils; import android.os.Handler; import android.os.Looper; +import android.text.TextUtils; + import com.blankj.utilcode.util.LogUtils; import com.xscm.moduleutil.bean.RedPacketInfo; +import com.xscm.moduleutil.bean.room.EMMessageInfo; + import lombok.Getter; import lombok.Setter; @@ -83,7 +87,7 @@ public class QXRedPacketManager { // 在添加数据后启动定时器(如果尚未启动) startCheckTimer(); if (this.delegate != null && this.delegate instanceof QXRedPacketManagerDelegate) { - ((QXRedPacketManagerDelegate) this.delegate).onRedPacketAdded(redPacket, this.redPackets.size()); + this.delegate.onRedPacketAdded(redPacket, this.redPackets.size()); } } @@ -92,11 +96,19 @@ public class QXRedPacketManager { * * @param packetId 红包ID */ - public void removeRedPacket(String packetId) { + public void removeRedPacket(int status,String packetId) { + if (status == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRedRemove) { + if (redPackets.get(packetId) != null) { + RedPacketInfo info = redPackets.get(packetId); + if (info.getCountdown() != 0) { + return; + } + } + } this.redPackets.remove(packetId); if (this.delegate != null && this.delegate instanceof QXRedPacketManagerDelegate) { - ((QXRedPacketManagerDelegate) this.delegate).onRedPacketRemoved(packetId, this.redPackets.size()); + this.delegate.onRedPacketRemoved(packetId, this.redPackets.size()); } } @@ -162,6 +174,9 @@ public class QXRedPacketManager { } if (packet.getCountdown()==0){ + if (packetTime <= -redpacketTime) { + removeRedPacket(0,packet.getRedpacket_id()); + } continue; } @@ -180,7 +195,7 @@ public class QXRedPacketManager { } if (packetTime <= 0) { - removeRedPacket(packet.getRedpacket_id()); + removeRedPacket(0,packet.getRedpacket_id()); } } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt index b7160e57..3d573ab6 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt @@ -1473,7 +1473,7 @@ class RoomActivity : BaseMvpActivity(), } else if (msgType == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRed) { qxRedPacketManager!!.addRedPacket(roomId, messageEvent.text.redpacketInfo) } else if (msgType == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRedRemove) { -// qxRedPacketManager!!.removeRedPacket(messageEvent.text.redpacket_id) + qxRedPacketManager!!.removeRedPacket(EMMessageInfo.QXRoomMessageTypeQXRoomMessageRedRemove,messageEvent.text.redpacket_id) } else if (msgType == EMMessageInfo.QXRoomMessageTypeSongerNum || //房间点歌数量变化 msgType == EMMessageInfo.QXRoomMessageTypeSingerRoomNextSongDidChanged ) //点歌房下一首歌曲发生变化