77 红包 bug修改。

This commit is contained in:
2025-12-22 18:32:11 +08:00
parent 435d2084d1
commit daba3d9872
2 changed files with 20 additions and 5 deletions

View File

@@ -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());
}
}

View File

@@ -1473,7 +1473,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
} 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
) //点歌房下一首歌曲发生变化