From 518b9afd32be8a427a1dc508352e18c2b15f6833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=B0=8F=E6=B1=9F?= <461355754@qq.com> Date: Wed, 15 Oct 2025 18:57:40 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=9A=E7=BA=A2=E5=8C=85=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 10 + .../activity/BaseAppCompatActivity.java | 182 +++++++++++- .../moduleutil/activity/BaseMvpActivity.java | 18 -- .../moduleutil/base/CommonAppContext.java | 4 +- .../xscm/moduleutil/bean/RedPacketInfo.java | 12 +- .../xscm/moduleutil/bean/RedpacketDetail.java | 2 +- .../com/xscm/moduleutil/bean/UserInfo.java | 1 + .../com/xscm/moduleutil/bean/XLHBean.java | 5 +- .../com/xscm/moduleutil/event/HourlyBean.java | 5 +- .../com/xscm/moduleutil/event/RedBean.java | 14 + .../moduleutil/event/RedEnvelopeStatus.java | 14 +- .../com/xscm/moduleutil/http/ApiServer.java | 4 + .../xscm/moduleutil/http/RetrofitClient.java | 15 +- .../xscm/moduleutil/service/MqttConnect.java | 5 + .../moduleutil/service/MqttInitCallback.java | 41 +++ .../moduleutil/utils/QXRedPacketManager.java | 86 ++++-- .../com/xscm/moduleutil/widget/Constants.java | 1 + .../src/main/res/drawable/bg_r6_000000.xml | 2 +- .../src/main/res/layout/item_piaoping_red.xml | 35 +++ .../src/main/res/mipmap-mdpi/red_tx.png | Bin 0 -> 11770 bytes .../src/main/res/mipmap-mdpi/red_tx.webp | Bin 1756 -> 0 bytes .../src/main/res/mipmap-xxxhdpi/red_bj_h.png | Bin 0 -> 50416 bytes .../src/main/res/mipmap-xxxhdpi/red_kl_b.png | Bin 0 -> 2681 bytes .../main/res/mipmap-xxxhdpi/red_liet_bj.webp | Bin 0 -> 2646 bytes .../src/main/res/mipmap-xxxhdpi/red_pp.webp | Bin 0 -> 63186 bytes .../src/main/res/raw/red_packet_come.MP3 | Bin 0 -> 48533 bytes .../activity/RedResultActivity.java | 15 +- .../moduleroom/activity/RoomActivity.kt | 159 +++++++++-- .../moduleroom/adapter/RedAdapter.java | 2 +- .../moduleroom/adapter/RedBagAdapter.java | 96 +++++++ .../moduleroom/dialog/RedListDialog.java | 40 ++- .../fragment/RedEnvelopesFragment.java | 266 ++++++++++++++++-- .../src/main/res/layout/dialog_red_list.xml | 2 +- .../src/main/res/layout/fragment_red.xml | 2 +- .../res/layout/fragment_red_envelopes.xml | 94 ++++--- moduleroom/src/main/res/layout/item_red.xml | 2 + .../src/main/res/layout/item_red_bag.xml | 46 ++- 37 files changed, 986 insertions(+), 194 deletions(-) create mode 100644 moduleUtil/src/main/java/com/xscm/moduleutil/event/RedBean.java create mode 100644 moduleUtil/src/main/res/layout/item_piaoping_red.xml create mode 100644 moduleUtil/src/main/res/mipmap-mdpi/red_tx.png delete mode 100644 moduleUtil/src/main/res/mipmap-mdpi/red_tx.webp create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/red_bj_h.png create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/red_kl_b.png create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/red_liet_bj.webp create mode 100644 moduleUtil/src/main/res/mipmap-xxxhdpi/red_pp.webp create mode 100644 moduleUtil/src/main/res/raw/red_packet_come.MP3 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 65d80d5..2cf9741 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -927,6 +927,16 @@ public static java.lang.String TABLENAME; *; } +-keep class com.xscm.moduleutil.bean.RedBean** {*;} +-keepclassmembers class com.xscm.moduleutil.bean.RedBean** { + *; +} + +-keep class com.xscm.moduleutil.bean.HourlyBean** {*;} +-keepclassmembers class com.xscm.moduleutil.bean.HourlyBean** { + *; +} + # 保持EventBus相关类不被混淆 -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe ; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java index a13623c..692a510 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseAppCompatActivity.java @@ -14,6 +14,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.media.MediaPlayer; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -57,6 +58,7 @@ import com.xscm.moduleutil.base.RoomManager; import com.xscm.moduleutil.bean.XLHBean; import com.xscm.moduleutil.event.HourlyBean; import com.xscm.moduleutil.event.MqttBean; +import com.xscm.moduleutil.event.RedBean; import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.BackgroundManager; import com.xscm.moduleutil.utils.ColorManager; @@ -446,12 +448,16 @@ public abstract class BaseAppCompatActivity extends // 在类中添加以下成员变量 private final List mqttMessageQueue = new ArrayList<>(); // MQTT消息队列 private final List xlhMessageQueue = new ArrayList<>(); // XLH消息队列 + private final List redMessageQueue = new ArrayList<>(); // 红包队列 private boolean isMqttPlaying = false; // MQTT播放状态标志 private boolean isXlhPlaying = false; // XLH播放状态标志 + private boolean isRedPlaying = false; // XLH播放状态标志 private final Object mqttQueueLock = new Object(); // MQTT队列同步锁 private final Object xlhQueueLock = new Object(); // XLH队列同步锁 + private final Object RedQueueLock = new Object(); // XLH队列同步锁 private View currentMqttView = null; // 当前正在播放的MQTT视图 private View currentXlhView = null; // 当前正在播放的XLH视图 + private View currentRedView = null; // 当前正在播放的XLH视图 private final List hourlyMessageQueue = new ArrayList<>(); // 小时榜消息队列 private final Map currentHourlyViews = new HashMap<>(); // 当前显示的小时榜视图 @@ -711,6 +717,166 @@ public abstract class BaseAppCompatActivity extends } } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEvent(RedBean event){ + LogUtils.e("收到红包", event); + if (event==null) return; + if (SpUtil.getFloatingScreen()==1){ + + synchronized (RedQueueLock) { + redMessageQueue.add(event); + if (!isRedPlaying) { + isRedPlaying = true; + processNextRedMessage(); + } + } + } else { + redMessageQueue.clear(); + } + } + + private void processNextRedMessage() { + RedBean redBean; + synchronized (RedQueueLock) { + if (redMessageQueue.isEmpty()) { + isRedPlaying = false; + return; + } + redBean = redMessageQueue.remove(0); + } + showPiaoPingMessageRed(redBean); + } + + private void showPiaoPingMessageRed(RedBean redBean){ + try { + // 清理之前的视图(如果存在) + if (currentRedView != null && currentRedView.getParent() != null) { + ViewGroup parent = (ViewGroup) currentRedView.getParent(); + parent.removeView(currentRedView); + } + + if (decorView2 == null) { + decorView2 = (ViewGroup) getWindow().getDecorView(); + } + + currentRedView = LayoutInflater.from(this).inflate(R.layout.item_piaoping_red, null); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.WRAP_CONTENT); + layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 140); + layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; + currentRedView.setLayoutParams(layoutParams); + decorView2.addView(currentRedView); + + updateRedFloatingViewData(currentRedView, redBean); + // 播放红包音效 + playRedPacketSound(); + resetAndStartXlhAnimation(currentRedView, () -> { + // 清理当前视图 + if (currentRedView != null && currentRedView.getParent() != null) { + ViewGroup parent = (ViewGroup) currentRedView.getParent(); + parent.removeView(currentRedView); + } + currentRedView = null; + + // 处理队列中的下一条消息 + synchronized (RedQueueLock) { + isRedPlaying = false; + processNextRedMessage(); + } + }); + } catch (Exception e) { + LogUtils.e("显示红包飘屏失败", e); + // 出现异常时继续处理队列 + synchronized (RedQueueLock) { + isRedPlaying = false; + processNextRedMessage(); + } + } + } + // 在类中添加成员变量 + private MediaPlayer redPacketMediaPlayer = null; + private boolean isRedPacketMediaPrepared = false; + // 添加播放红包音效的方法 + private void playRedPacketSound() { + try { + if (!isRedPacketMediaPrepared) { + // 第一次初始化MediaPlayer + if (redPacketMediaPlayer == null) { + redPacketMediaPlayer = MediaPlayer.create(this, R.raw.red_packet_come); // 假设音效文件名为red_packet_sound.mp3 + redPacketMediaPlayer.setOnPreparedListener(mp -> { + isRedPacketMediaPrepared = true; + mp.start(); + }); + redPacketMediaPlayer.setOnCompletionListener(mp -> { + // 播放完成后重置,以便下次重新播放 + try { + mp.seekTo(0); + } catch (Exception e) { + LogUtils.e("MediaPlayer重置失败", e); + } + }); + } + + if (redPacketMediaPlayer != null) { + redPacketMediaPlayer.prepareAsync(); // 异步准备 + } + } else { + // 已经准备好了,直接重新播放 + if (redPacketMediaPlayer != null && !redPacketMediaPlayer.isPlaying()) { + redPacketMediaPlayer.seekTo(0); + redPacketMediaPlayer.start(); + } + } + } catch (Exception e) { + LogUtils.e("播放红包音效失败", e); + } + } + + private void updateRedFloatingViewData(View view, RedBean redBean){ + TextView textView = view.findViewById(R.id.tv_name); + + if (redBean != null) { + String fullText = redBean.getText(); + if (redBean.getNickname() != null && redBean.getRoom_name() != null) { + SpannableStringBuilder builder = new SpannableStringBuilder(fullText); + + // 为用户名设置蓝色 + int userNameStart = fullText.indexOf(redBean.getNickname()); + if (userNameStart >= 0) { + builder.setSpan( + new ForegroundColorSpan(ContextCompat.getColor(this, R.color.colorPrimary)), + userNameStart, + userNameStart + redBean.getNickname().length(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ); + } + + // 为房间名设置蓝色 + int roomNameStart = fullText.indexOf(redBean.getRoom_name()); + if (roomNameStart >= 0) { + builder.setSpan( + new ForegroundColorSpan(ContextCompat.getColor(this, R.color.colorPrimary)), + roomNameStart, + roomNameStart + redBean.getRoom_name().length(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ); + } + + textView.setText(builder); + } else { + textView.setText(fullText); + } + } else { + textView.setText(""); + } + + view.setOnClickListener(v -> { + // 点击时执行跳转操作 + handleRedItemClick(redBean); + }); + } + // 处理下一个MQTT消息 private void processNextMqttMessage() { MqttBean.ListBean mqttBean; @@ -737,8 +903,9 @@ public abstract class BaseAppCompatActivity extends showPiaoPingMessageXlh(xlhBean); } - ViewGroup decorView; - ViewGroup decorView1; + ViewGroup decorView;//礼物的 + ViewGroup decorView1;//巡乐会的 + ViewGroup decorView2;//红包的 private void showFloatingMessage(MqttBean.ListBean mqttBean) { @@ -977,7 +1144,7 @@ public abstract class BaseAppCompatActivity extends LogUtils.e("XLH动画执行失败", e); onAnimationEnd.run(); } - }, 3000); + }, 5000); } catch (Exception e) { LogUtils.e("XLH动画启动失败", e); onAnimationEnd.run(); @@ -1031,6 +1198,15 @@ public abstract class BaseAppCompatActivity extends } + private void handleRedItemClick(RedBean redBean) { + // 这里可以根据实际需求实现跳转逻辑 + // 例如:跳转到礼物详情页面、用户主页等 + // 使用缓存数据进入房间 + RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), redBean.getRoom_id(), ""); +// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", xlhBean.getRoom_id()).navigation(); + + } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEvent(ChatInfo event) { diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java index 2cbfc5b..8e9699d 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java @@ -213,24 +213,6 @@ public abstract class BaseMvpActivity

records; private MyRecord my_record; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/UserInfo.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/UserInfo.java index 6c64b59..faad91f 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/UserInfo.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/UserInfo.java @@ -64,6 +64,7 @@ public class UserInfo implements Serializable { private int heartId; // "heartId": 4, private int heartNum; // + private String red_num; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/XLHBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/XLHBean.java index 0505640..bd5e04a 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/XLHBean.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/XLHBean.java @@ -2,13 +2,16 @@ package com.xscm.moduleutil.bean; import lombok.Data; +import java.io.Serializable; + /** *@author qx *@data 2025/9/2 *@description: 巡乐会开始后推送的信息 */ @Data -public class XLHBean { +public class XLHBean implements Serializable { + private static final long serialVersionUID = 1L; private String text; private String room_id; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java index afe1d96..8b9015c 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/event/HourlyBean.java @@ -2,11 +2,14 @@ package com.xscm.moduleutil.event; import lombok.Data; +import java.io.Serializable; + /** * 小时榜飘屏 */ @Data -public class HourlyBean { +public class HourlyBean implements Serializable { + private static final long serialVersionUID = 1L; private String room_id; private String room_name; private String text; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedBean.java b/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedBean.java new file mode 100644 index 0000000..aadd00a --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedBean.java @@ -0,0 +1,14 @@ +package com.xscm.moduleutil.event; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class RedBean implements Serializable { + private static final long serialVersionUID = 1L; + private String room_id; + private String room_name; + private String text; + private String nickname; +} diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedEnvelopeStatus.java b/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedEnvelopeStatus.java index 82d24ef..df40bce 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedEnvelopeStatus.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/event/RedEnvelopeStatus.java @@ -4,8 +4,14 @@ package com.xscm.moduleutil.event; */ public enum RedEnvelopeStatus { - READY_TO_OPEN, // 可以直接打开 - COUNTDOWN_TO_OPEN, // 倒计时后可打开 - CONDITION_TO_OPEN, // 满足条件后可打开 - COUNTDOWN_AND_CONDITION // 先倒计时,再满足条件后可打开 + /// 打开红包 + QXRedBagDrawTypeOpen, + /// 仅倒计时 + QXRedBagDrawTypeTimeDown, + /// 仅收藏房间 + QXRedBagDrawTypeCollect, + /// 手慢了被领完了 + QXRedBagDrawTypeFinished, + /// 发送评论领红包 + QXRedBagDrawTypePwdSend, } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java index cc16ede..1db428e 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java @@ -387,6 +387,10 @@ public interface ApiServer { @POST(Constants.POST_GZ) Call> userGuanz(@Field("user_id") String userId, @Field("type") String type); + @FormUrlEncoded + @POST(Constants.POST_FOLLOW_ROOM) + Call> followRoom(@Field("room_id") String roomId, @Field("type") String type); + @FormUrlEncoded @POST(Constants.ACCEPT_PK) Call> acceptPk(@Field("pk_id") String pk_id, @Field("type") String type); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index 1f5a23d..6922d13 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -3418,6 +3418,20 @@ public class RetrofitClient { }); } + public void followRoom(String room_id, String type, BaseObserver observer) { + sApiServer.followRoom(room_id, type).enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + onNextRetu(response, observer); + } + + @Override + public void onFailure(Call> call, Throwable t) { + t.printStackTrace(); + } + }); + } + public void acceptPk(String pk_id, String type, BaseObserver observer) { sApiServer.acceptPk(pk_id, type).enqueue(new Callback>() { @Override @@ -3642,7 +3656,6 @@ public class RetrofitClient { } catch (ClassNotFoundException e) { throw new RuntimeException(e); } - ToastUtils.showShort(string.getMsg()); } else { ToastUtils.showShort(string.getMsg()); } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java index b4eaed1..34427f0 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttConnect.java @@ -32,6 +32,8 @@ public class MqttConnect { public static String shutdown = ""; public static String update_app = ""; public static String qx_hour_ranking = ""; + + public static String qx_redpacket_arrive="";//红包飘屏的主题 Handler handler = new Handler(Looper.getMainLooper()); String[] topic; int[] qos = {1,2,3,0,0,0,0,0,0,0,0,0,0}; // 消息质量 @@ -47,11 +49,13 @@ public class MqttConnect { update_app = "qx_xunlehui"; // 发送更新APP // qx_hour_ranking = "qx_hour_ranking"; qx_hour_ranking = "qx_hour_ranking"; + qx_redpacket_arrive="qx_redpacket_arrive"; ArrayList topicList = new ArrayList<>(); topicList.add(shutdown); topicList.add(update_app); topicList.add(qx_hour_ranking); + topicList.add(qx_redpacket_arrive); topic = topicList.toArray(new String[0]); } @@ -87,6 +91,7 @@ public class MqttConnect { sub(shutdown); sub(update_app); sub(qx_hour_ranking); + sub(qx_redpacket_arrive); // uiTip("MQTT连接成功"); }catch (MqttException e){ // uiTip("MQTT连接失败,准备重连。。。:"+e.getMessage()); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java index 79e3763..b794aed 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/service/MqttInitCallback.java @@ -13,6 +13,7 @@ import com.orhanobut.logger.Logger; import com.xscm.moduleutil.bean.MqttXlhEnd; import com.xscm.moduleutil.bean.XLHBean; import com.xscm.moduleutil.event.HourlyBean; +import com.xscm.moduleutil.event.RedBean; import com.xscm.moduleutil.event.RoomGiftRunable; import com.xscm.moduleutil.utils.SpUtil; @@ -63,9 +64,49 @@ public class MqttInitCallback implements MqttCallback { receiveXlhMessage(messageStr); }else if (topic.equals("qx_hour_ranking")){ receiveQXHourRanking(topic, messageStr); + }else if (topic.equals("qx_redpacket_arrive")){ + receiveRed(topic, messageStr); } } + private void receiveRed(String topic, String messageStr) { + try { + JSONObject jsonObject = JSON.parseObject(messageStr); + String message = jsonObject.getString("msg"); + // 将事件处理放到主线程执行 + new Handler(Looper.getMainLooper()).post(() -> { + processRedMessage(topic, message); + }); + } catch (Exception e) { + Log.e("MQTT", "解析MQTT消息异常", e); + } + } + + private void processRedMessage(String topic, String message) { + try { + // 如果 data 是集合字符串 + // 解析为集合 + RedBean dataList = JSON.parseObject(message, RedBean.class); + + // 在主线程处理集合数据 + new Handler(Looper.getMainLooper()).post(() -> { + processDataRed(dataList); + }); + } catch (Exception e) { + Log.e("MQTT", "解析MQTT消息异常", e); + } + } + + private void processDataRed(RedBean dataList) { + // 遍历集合并发送每个元素 +// for (HourlyBean dataItem : dataList) { +// EventBus.getDefault().post(dataItem); +// } + + // 或者发送整个集合 + EventBus.getDefault().post(dataList); + } + private void receiveQXHourRanking(String topic, String data) { try { JSONObject jsonObject = JSON.parseObject(data); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java index 5aebda6..21b84a8 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/QXRedPacketManager.java @@ -2,12 +2,16 @@ package com.xscm.moduleutil.utils; import android.os.Handler; import android.os.Looper; +import com.blankj.utilcode.util.LogUtils; import com.xscm.moduleutil.bean.RedPacketInfo; +import lombok.Getter; +import lombok.Setter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * 红包管理器单例类 @@ -20,7 +24,7 @@ public class QXRedPacketManager { // 私有构造函数,防止外部实例化 private QXRedPacketManager() { - this.redPackets = new HashMap<>(); + this.redPackets = new ConcurrentHashMap<>(); } /** @@ -53,6 +57,8 @@ public class QXRedPacketManager { this.redPackets.put(model.getRedpacket_id(), model); } + // 在添加数据后启动定时器(如果尚未启动) + startCheckTimer(); if (this.delegate != null && this.delegate instanceof QXRedPacketManagerDelegate) { ((QXRedPacketManagerDelegate) this.delegate).onRedPacketsAdded(redPackets, this.redPackets.size()); } @@ -70,6 +76,8 @@ public class QXRedPacketManager { this.redPackets.put(redPacket.getRedpacket_id(), redPacket); + // 在添加数据后启动定时器(如果尚未启动) + startCheckTimer(); if (this.delegate != null && this.delegate instanceof QXRedPacketManagerDelegate) { ((QXRedPacketManagerDelegate) this.delegate).onRedPacketAdded(redPacket, this.redPackets.size()); } @@ -111,6 +119,10 @@ public class QXRedPacketManager { * 开始检查定时器 */ public void startCheckTimer() { + // 如果定时器已经在运行,直接返回 + if (checkTimerRunnable != null && checkTimerHandler != null) { + return; + } if (checkTimerRunnable == null) { checkTimerRunnable = new Runnable() { @Override @@ -128,9 +140,35 @@ public class QXRedPacketManager { * 检查并更新红包状态 */ private void checkAndUpdateRedPackets() { + // 添加空值检查 + if (this.redPackets == null || this.redPackets.isEmpty()) { + return; + } List packets = new ArrayList<>(this.redPackets.values()); for (RedPacketInfo packet : packets) { + long packetTime = packet.remainingTime(); + LogUtils.e("红包剩余时间:" + packet.getRedpacket_time()); + long redpacketTime = 0; + try { + if (packet.getRedpacket_time() != null) { + redpacketTime = Long.parseLong(packet.getRedpacket_time()); + } + } catch (NumberFormatException e) { + LogUtils.e("红包时间格式错误: " + packet.getRedpacket_time()); + } + if (packetTime <= -redpacketTime) { + + removeRedPacket(packet.getRedpacket_id()); + } + if (packet.getCountdown()==0){ + continue; + } + + if (this.delegate != null && this.delegate instanceof QXRedPacketManagerDelegate) { + ((QXRedPacketManagerDelegate) this.delegate).didUpdateRedPacketTime(packet, packetTime); + } + boolean wasAvailable = packet.isAvailable(); packet.setAvailable(packet.canOpenNow()); @@ -140,12 +178,6 @@ public class QXRedPacketManager { ((QXRedPacketManagerDelegate) this.delegate).onRedPacketUpdated(packet, this.redPackets.size()); } } - - // 倒计时结束的红包可以设置自动移除 - if (packet.getCountdown() > 0 && packet.remainingTime() <= -(Long.getLong(packet.getRedpacket_time()))) { - // 倒计时结束10秒后自动移除 - removeRedPacket(packet.getRedpacket_id()); - } } // 继续执行定时任务 @@ -157,6 +189,7 @@ public class QXRedPacketManager { */ public void removeAllRedPackets() { this.redPackets.clear(); + endCheckTimer(); } /** @@ -179,24 +212,6 @@ public class QXRedPacketManager { this.delegate = null; } - /** - * 设置委托对象 - * - * @param delegate 委托对象 - */ - public void setDelegate(QXRedPacketManagerDelegate delegate) { - this.delegate = delegate; - } - - /** - * 获取委托对象 - * - * @return 委托对象 - */ - public QXRedPacketManagerDelegate getDelegate() { - return this.delegate; - } - /** * 委托接口 */ @@ -232,8 +247,29 @@ public class QXRedPacketManager { * @param remainingCount 剩余数量 */ void onRedPacketUpdated(RedPacketInfo packet, int remainingCount); + + /** + * 更新红包时间回调 + * + * @param packet 红包模型 + * @param packetTime 红包剩余时间 + */ + void didUpdateRedPacketTime(RedPacketInfo packet, long packetTime); } + /** + * -- SETTER -- + * 设置委托对象 + * + * + * -- GETTER -- + * 获取委托对象 + * + @param delegate 委托对象 + * @return 委托对象 + */ + @Getter + @Setter private QXRedPacketManagerDelegate delegate; } diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java index 22d521b..d5776ad 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java @@ -248,6 +248,7 @@ public class Constants { public static final String GET_USER_HOME_ZONE = "/api/User/user_home_zone";//获取用户动态 public static final String GET_LIKE_LIST = "/api/UserZone/like_list";//获取点赞列表 public static final String POST_GZ = "/api/User/follow";//关注、回关、取关 + public static final String POST_FOLLOW_ROOM = "/api/User/follow_room";//收藏 public static final String GET_ALBUM_DETAIL = "/api/User/get_album_detail";//相册详情 public static final String UP_ALBUM = "/api/User/add_album_content";//添加相册图片 public static final String MOVE_ALBUM = "/api/User/move_album_images";//移动相册图片 diff --git a/moduleUtil/src/main/res/drawable/bg_r6_000000.xml b/moduleUtil/src/main/res/drawable/bg_r6_000000.xml index 484611d..a9d95c1 100644 --- a/moduleUtil/src/main/res/drawable/bg_r6_000000.xml +++ b/moduleUtil/src/main/res/drawable/bg_r6_000000.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/moduleUtil/src/main/res/layout/item_piaoping_red.xml b/moduleUtil/src/main/res/layout/item_piaoping_red.xml new file mode 100644 index 0000000..8025789 --- /dev/null +++ b/moduleUtil/src/main/res/layout/item_piaoping_red.xml @@ -0,0 +1,35 @@ + + + + + + + + + \ No newline at end of file diff --git a/moduleUtil/src/main/res/mipmap-mdpi/red_tx.png b/moduleUtil/src/main/res/mipmap-mdpi/red_tx.png new file mode 100644 index 0000000000000000000000000000000000000000..d303fcd60ce726f6f26997392a8fc0450e49d981 GIT binary patch literal 11770 zcmVVH@Fud2Jx4D1E=a=x#=?yj!OuYOf?X6DS9nTd&u^wFI- z@v-imcP{VVeRq=g2fM%j`@<|pyMOqH6Rex&^*vrYUMZ~oUf1a$@4ovYug8M#yYEi% zdL^GfF0m&rJuaL<867`<#qROr2f~2JaJ>624h6Bki)Si^rgm=WB~C9VLayV-r&zAI zG*IW$z(~X1efMB^c94PS8%o40X@j#q>5994n2aCg0V&QEo8TMcy%>gxpPeps=%Y3; z@4WMIZq6Y(etf`d$7|m_S&ttNtJ9^k?$uUpK$izbeRQvPV2gQ7&X|j_PO}^yz4_)9 zmpb<$J%oH27?wqP=bcU@3`$&8;yK;nJ^FkQaWT7E{4_-Gyi?|R`|U7D-P>>f{-utd zi!XNHe)}pW{umRl4UpA0hE&((a~IDPeAGY2=(0U^>W?<+3qIs*JDbzQ?jT+~V;qqa zQro32pPivONN>Hh7#mM!2;O?DOM5G1&ejg^sOzO~wuKhtp?WnK;yR`bf&&hWk#5P!Z z>F>2B9WrYlhUn5%?BlWX#v505Z@&57?i+6ea%*eYH}vsr@8a3pReZXdjfsIe@Y8*9 z7qRYE{3<#f9)mU7PVc<_`sAevsXf~qJ9Zh9d@MEX_1E(n_ofNGkgjNtcIvM->VrD; zi}!?iYj{!|#ijNhx62>nk;h7qry4Kc9o=BAE=^2)Y`^x}f!)_$8w7HCNzEhIgs3B` zG-x;a1^?GxQ#-1}ql&MM(fg%*ZmrrU9p?_>YC#`kUz6xxt*t*Fyy%~8c3yk!SR%V2 zLfFo$ulA(J!Dz`&siVE(L!)Rf9DBy?ZEANkCRR)K$~WD;{`&7-e9tzoymDao)mH~B z9WgOsI9`180s{%$HxL-F{DwWYH7YP{ogSUV6zi1Me{w#Ps=fPjH{?ssm7B$*~)F&~F!G zMEhD?yo;D<*ZJ?}8Z_RtaDCytcJuPfS8-8;KnBaMuG;*%kQtDM&3^Shj-GeXR(0CA zG5&iAV&88K(XKxqJ7(kceAHr5l?UehydRw1W5*5#A~G3d&Uqj7yKcq1sJA+MM<%|P zicd{OHGHbqfrENR8nY6AgmHR3)pCX5z`+5`yZflA#+Pt^eh@hx=WhBgTwzXq0i(V_EzrKGvCR;(lcHUicFWwW{sz3Us zJ=%CI(!>}KV~-#w`i>l~5#-VjD$Ii%`T7xes!{p2H6A>#1_z2FCchVLL_8-Okda$c z1Hi}aJB($90BllI|L*TH25kh!;QJtzcq4~z)UJixFs8gMyW$KV5Y_w;ZzuEI8IEj> zgXhOH4m2SY zfBUyxjRUoj+`Av;0b+nxg(6r|Q}emgeUiRFD)e}-v7FAuCXBZerSNU!@Yo<8nVcmS zs$py9Y{hZ>XtT#)rrN!!qqiyQ+U6d8^j^n#@x|W{AphoXtgvo7?`g-|uukq(&#RI` zVIO0dHTwBHg&nNhagFg&3LDLzNLSlhOwjGbTGW5r>ZrgCISgi-*VyhLPG>)si_GnS z{XaUd19dOFaM||He?A>SCIVU4jYRmoog1CV+xCMdx@e!IKa=-$_Jw}b$hQ;E+l~Ac z3rdoTNr!>>7p&rjd<7UWa~qA9XfQiJiQzhTG$4VXwt5YEwSBcOT|6&aDB&3oqCr z_#8-!t4gqoG6Fx00r%?PjAdei9okmnp)NJo=XY3Xte#$ZppG`L867rTXZ)WBG) zf4hR$aoKJD>}R*0^TCnNnWGn8SPa1a>aVisSpdH90^ym3l1}d{elDK)__!U$(bz?t zXg9*Va3}lL-3T$-drFeeMP5@M+(-mpRJV7F)d+hm%et&_T#zeOs!Dk$Z@r0c`h+GxX1ggb{$E#{?nfxI47U3Lc!V;X}auL zblvvn*u*p>aPMu>eQq9YXJ6yD)yk>(TpqM{b|ogrYiuLFXip}VkB7Qg57bLq&$i2F za#%j7imk-enGX~`kAQcdJNgYajvhU`pT0JK@{^-mKlw=)M3VBl9aoe9%-T>OHR{q? z_mwyrLq0d}{QB3ld-7yQ!(mgp^>rF|e-&5L03HJT4c-s!*QY?~2 zzxq{2+uPlR{*YnX`OR+#c{1G9c{1FBZN86OZf8!DKIFjx>V2*}J74QO|NL}Fs33p* z<6Owzl8FI-Lzct?yPg03@9tuI?EKIFSl)yq;5iII=E!qTcyB(aD}C^HaX)>=Up(Xj z4#vd2^o=Jit|r@+`_1Q`tJ#wG+5OFLx{LKO`p^HYb11{npU3iEdA}JY>7RR!(mCq3!4_A312=US`D2@Z%_j0h zz@c(vdSH0XK4l+3HvL}X^)fhP&pzQ6tjr+|QYg@>O_hL)) z^B4W_?9R=3zWY@_;E>1MgPv#S=lW!Nkp?LDE9f_#efIR9eKwwa^0Lhz{b-s+00dwO zH0wfA(fh%P_glILA7h(i^l|t*g60>M{Dt$*fBZ+c&3^}Q#D9Twn}t^jd#f{|I<*PI;TxpUeZU&K<24f%KX_?j+!=fs>SkAW-8m+3)Tk$3g6zNGuqzvvIW8+3;c zpWd_2=CjWpNXZ1$kA6f6An%i204Qj&>GiY;HfUG#mvzLyz}Ea)fd42Y#7MDgBq3%e zswc>A>vJ)->^OwIMR?rJB_Y*SOj^ zrpudZtl??B6u}=XC7)V%u7S4V*+{Jpz`g~T#_;sPpM5r-etJ@f*bsufM3Q15WbER( zvQNO_Olf7EJiAnfXKf8_ZQP1%`8*Db!CKRg6CpmwrkKy;A;jWvWGpf~@*-mGnTP+1 zs@MTm&)wb_Yc?LMa!{#7X5fQ8>pb(!iH&ET=@aPMlcK>X-q(mTcdb3f7QGPG8lK<> zI5rRy@8MivfxKzmihc=;kIf=BTTrjD%f6<5tZ&QS<$;PhM4H3Heiz2?- zY=N!guk-w=&e%Qk%=>@UdHd<7FAoWyep&)hTsr`SIu9@x2YRs&k{eAv{z+32dgHG#-hYNA58dxQQ7+*Lab!7{=*+W{Qkb)dFrX@ zKtv=YlF}zbk~9(6ML&v7Nj{q~#zwq@My8lTSaWzZ{ttg>{5Dg{8ZPIN{ASk&&GR>w)n4$2`=Rgv1m^=p%>aKhn;+HHYzo( zSEOP${{MvyfAE8;kT4P&1|!OblI-+eHo({Hb&jo>oRc?T$+Og{Q{Cua z|5ctbXp4WBJK)I}!*?v({1>@o=yv|=zq)QXJSRW24c{Qh+aux!8*pX#G~5Ap(+`Zn zHF@27!^fRFo{jN8uHfJ=u7CggT~mNq)GMf}J>IKLJx1R!evj?xKINa*Pqg`2N`~rO z4RMiQUen??se3NtV90gTBU^w8PW2`^%MDM_B2q5P^ zs3xKfEULF7*!OD`vE8WMLp-!cyG?n|E&rLd?SK5ozM0(A3-0ZwJSg(+L3#Gu;=gLY z!9ROSJY@b;lQ)nr(!g*N96MK+!tA`KQzhxhO?|V}rsWwhU3d6I%m*G*snylYb z^*rWoScyNxGvY=GVC_>RE5q z?l?$XeeZh(Ulo4>&ht?0)ffGs&$;Wrp1gkK$kBBHQV|6ig2&aL(RUsE5^&T*jA1>V zi52zaZPPu(NqYH~lz*vzi+|)X`t`5R%GWXSX(v3Ja1I$>eg~e#?CTajU`70iE5}W> z4<*m!eGI>D9eR9uxB}0HN6Y!q`ZLdwBPW8RH0j8Z4%d)W_q@t}7p6aKw18A5qB zS?|9SGCTk#!wGQU?G4UQD}T2+%>0t)WxeGK{38eJc2B;iHGbT^!Ncox{fp%zNBTg# zuIt(li|F&v#5>rlo(lcp!$BWb+^di7dDS@bEh??9<`>JjVe8h9a5cnPJbheO!#d)L z_nLQ0{(30q8_C;UfB8$=};@UU(Hyn@?AnTrRNYZ?~`3|j`7x14^21mGzZI8;|<|qcygSoujW|; z9Dtq7Jz(@cDSp(ey{iS!NoRP0^Sa|{4e-*+O10)q<^tc#RrnP(~ zf7V#gR8lOJIx<$+uep2}*K>osnE_&5?bCD^9{#aNii36g+&D-%2VoyPUe~jPd+2P^ zz2@b$7@oDqA3qiXKK{5S&Ix%xbWO$r&<1@%tQbeng+Hufv&Do}hlf8phYrgSbK&X+ zbqIH8r?sYijveZcceodSte4j6b(sAy#`k=xuJz2b!7n5_pETg=>o_4FJK)Z>QPB_I z6X2oMtMWCT#~yoe?XkzY6!7uK$s~}Vx@Nt-S8yE1_}aKt(b)3JYioGC?V7_A@&l%X z$K`oH*dTW2eQNnCF+E2`jOM2;<^r+Cd|eGY4iMBzYrbC3xx`Q`SQGS6&O?}o@(bq2 z9{X(!LK<)g`<7_nWZ$3B=6%I$4bQF&PmV^PXltrs0lnd%s58pyx4&KFarrTZ z;l$@|4iCTR*yMS9zC5&+Cu-HUS6|Ss9G-7~`?qUC2+L3tDM2FfP9zc6uYEz;p1l1U z#-?jJo&Wp4 z5JT1>$6Uo4Wl*A^zo`|u<#pWfxY#xZ@HoT|QmAQI>yP7H?pJ-kET4wU^1H1+{nKtu zq&FbhuSQ8aS+gCbHQyVZ_l0va&tAi`in&VZ943>$)+G5MWwHYtx<&Kfq_-0WYY z(qVP}s}2Wp5ckbbTO0g>rTT?|v|K05!%DrYzBjox!`EtAbFdx4kQqPTmtQdVL(wPs zlRwEs#`CH>ry=E*07PEB{iRUD)D?S7*>Oie{Qws+ehUm;}Azy+G_j~B0kpn@7uKSNQ_i( z4LjdAzvhuoTYK>ctCtpEP+yHZf|xouCSEx_-~47jFuaPvimY)Tq~DX00e6(vs0)LI zI*gTV`h2=Zo3X>g_bWY46MM~K>|D--Yd?b^Hi~Co_WZ1)Io5o=pfh(4>zHRA0^aNW zfH<}MRsPX8ayo{;!oD1yKmOxxg(VgJ&2I+dsH0U~qdth}Sj2V>^ebo^_iN4%2R@;(lLf!@@IK2nS7n$J8kJQZJ`Yt{7zdlqWcO6p&tHDpdi2o~(GaCCvM-ck!C4=5pr=Gi^lRMHD%!!_CKEPxcp#qNqYm@0R%~Sb zAOp0;zs0HeR~ozkF0(i1Z+s*9jUApb^;Y;GpL?~m>s%kmW8I^M^1H3&M;>`@<&j4^ zkq|KMgT!J3ka!RKWFPfOlCOf)*wNSIi@J?*!_&tjk1LW!MV@Gnc(4XpH{ZvvH_KZj zForg(;0y4X74jmE=BF+GEsns8%MU-? zt%!&YR=Hd0#p}A2eCI)u+N{Ff*mIl>CagI;JqAixvVX#-u^mZazs9cwZ}B@4C6)-q zb>F{?2R^dO+hbSx{Vh#QiYxP2a3XqYU|8q(S+8IZD)B?Jfmf3=^Fm`{)P19UZ3fCu zTaP?)5FL4#x)qjX(5)&6D-^}}p)T#SKUHFMdkxQWAGgmFbBRP;2}iQa`fgm4PV2Wj zXJ@+#C(2u@S25K%+{f@xg)Gpr(~dO@-cZu6JRDyA|!T_Ehi#J{4ov+ni_(&r!Z4 zD3mZzxcl1I>~N?a*Jx9@*FCMo)!XpDp{x%N|5vP{!3%_7S1<~X9D0vCe93IY5@ZPFhIE6-!kb z2Fo5~MMlT;XEL z#rO3UT)-XpwuguR`dGnR<(xRIU|hz2#k|UU)xOMOYz7ZKRR3={gRgzCy@w%ioy3ckw8Q3^m!gxy%cY_IQ4bKwzV}8sB@oBkYBk{NX`JW5f=3g&vzSrm9 z|2^CO(?9jX``BE}MVL?VVtt0&xXS+;Z4J*-o#W2;Wd-8-9+>_)d_{k4uZuYtJosS! zPppJ5ntK9_1Ogsewc7z9(stDD+7mi%NRTQ2w~%fC&W}N77s;CIi3*M>uJb;?D1@Ux3$K9-9mF~ z&Lz*G;;!(v+Zdi9bK&aCv9W&OAqjE=m>Sr~?6r?EhvwyHotMV`O+q$0xcrr`kZDj1 zz$-0VePLGhGUKfJHuS$*JvkB0<* z@CTA0H#|xL-;3N)JQL`9TaKZ!RQe?w_1$B5D8zzX1BVIYyK~Ji;a=u<)iqz|;kRI- zUy@i8a%6PCN6H8Im4k7^GD_8g_2;0IsHT~XiQzWet7KeyO%kc!RC&*%H@ zGdjFO-4gmo@iAGa#nO;}$XFeo!NB;Ln0`p}DmchvjQ51(@Y`_P!^3aMG&M!cRbDiv z#Y2eE^B}cVhlk$@P~&%C>%+QA8}#R%rJ+__QA|7+ljXhl_5ZdOzWn8f!+@y7fe8uj zyN}FWlmtZ2*41e&QymIl=Wkud6xODmwVKk<9U5tJtuf>4iEn_VTyV0y)>xcFSyS9QWc-K zYx!c2?!W)?_x*oHIl!?Pm|$(~`(j`(`o%AQIqe7i-hhVtPVR?|-|P&-V~Zsh%i`i# zCbq|E$s>LbcXN1__^yUs&oK`zWlZwHKue{4SHnDRc$SnmTMN0|iNAvLthapgs`#28 z>~cRfb>aj4cVkX))nW!ti&Imwr>N6&9t_r{LhU}uBHXKgiX+3rgtdleu^l(%UyP(I z=D2c4rU@2vu#s0(TaSUfKsF{{afibj^Vcv7K9O<5vxr!2TpydTHx;{ZUi27rhybH< z7i_1dKG?s;mY-vAkioz4=#N87`LvAnN4`#a2s`3F5g z;Vf^CFJ8yt|EV>|F*;v+jBoO|ny4Y^ZtUU{kyXcl2#O^YHMP*tPoc>}vP*TZsCB zf)HXwC#w<-_JuCWaNIMG&#N&iaR!iQ;A|EUm)hER!Poey4$0=bbdGid^&it{ji>tN zGY@|tHEZ^J$8Q+gh<||CV6Dc9d-k82I1`WXwa*v7xTpjo!9ni1$DS*)aL+y27VH;X zoMGdchc-6qu{B-|gX-`u+6Dq^_jYiK{i4<}rtXD3_6yElYHJRU=EngBJTBIreW-CC zdqes`#e;KZo^{gKK0JwmxZJEx&yrk4&x`q-1Z}X9LHC6(kjUzopMJ0KACSg)!6!D; z=R$mlcfpCrhxI@$DaL}U8|pAM`}hlp7o_!R+SN1*~a z-{G^*Qp;wqIQz+gaW?p0FSVX^o#{-}m=5eb@(Kn+34fds*d|=q~n${I~?U34BF<60gXi zxAojRAM8mQoV)INZsKe{26x?c83R}hNmUfoU3c{b@|udpeU$mQs(uk;McLTnua{oP zk9Gb7SIFnQ<&6?|a<7~Nr=D+&p*@+ea4x-_INJ|SbbtYLQE0I*qBA0Z;jDYGCDqS+ z-zXR30LgE7AU}z-JMSc~50drSk9G6jwznhg4c>|E++BA~O`NO8{GE3mV?bRLnzw6b z&H^y&Qo(Ao05*6hBJXM0y#W88dhMkMsdd5f6!wcfN0jdRVes6WKBU3GGsHIB-+AZs z#JPOPQyc>r%zy54Js4i+bp;9FKKD5?r106;V?l7Iw(^6?)u*27wtn@iZs&Ku3&V7w z$QJ*BC>a`g1sLmJaQlKMyjOmad$rYAc#ih6@?b8WlTTO0r?1;@KVSggaYwgs#~qXg z#}5(|JCAmyLu1Lm=@Q2Jadn%~AWIpdmRHuy@I zJrAWF#?7^PPAdI~cehS_SPusJupzJ_si7jb-(Kt&fc&PP_jUIRa(Dafof$qp7cru~ zh?%iaqlOeW*s#5~U1-$ZjG1xL9=y?59%KCrW4NnfV4p)1ALe6l;K0Wi#EH-lmbth_ zA=vi?MqOM9?H07LURruDpZ#o#IR`oSjG=>O@fO%?dQ*!wRrQseLD%E#8gW95g?663 zc%kB~`7%E;XwwrPg-7`M=d+)kX6fcw=6j*}yl)95dnG9P&E;5>_B{b9_8jK3cPc5K z+GxyRf7@*YI0^HK-vZ#9%drUJ1bfua*D>LMsQT-}sSG?HFscp8i1jc5kcyK?L@B3IW4#dkg=<8RE2iVj{_lR@O z;xjcUmN}m*?@cbB$H#$M3(T$_Q#;l%xZ{q?Cq8Nq9-zqxFf}k0Ek%9iGd(GBoom^F z?c8TRlkZ_a4|&9PKHjH2-h-XXWdwBOa~L1V(Te5r7rN*>k9ZU}*kN7s4twqFYp>y# z{p@YGO-_7N9}IG8?!W;pCdizZc+V>Z8z|n}7P{y&*OLC8T#RbWYQ9!{(X;rNK3214 zw6Sq$ZoJQ)dLMVb#ovJgQxhNchk#5&0y1CGr8_0Gb|3Y@2JDM?x86!>lh)XH; zQ@kTL-1*+=Jsy)Y>&XmWC2p0Yb{(ak4vWK*d}FOM=fmKb0kVx%p?N8Y_qwKgu#I;F zem+iD#J9esUCcj=ca8jWm>=%v?S0tK#+;@e#A@-Gn8BC#vvEIXh2}~fVxuAtoE6V` zH8^R2Znt3n#h5^X$zxcOt>Z`GvjQ z;TcJcv1T=A^q&LWEZ|Aas@P~VO$`vQz@v9AXBsl^=fuTgz0aXGbG@&% zw|-p(Z~YGOWL!BG>K*R6T;ri>{yF2s#qi*QZ{>mqrU^IRnD;USH{NL1mL1+Xz1Nw1 zK2~e*&M__pT&kB9Y(gH;Ax6Y7)4;4XYwUD(xaMxWaq-lRHy)U{*d8ZuxZyG;Wf~gL zlXAliLb?zWR+Jf#*}Re&v@F^{JexS`ll=PJ#wXn=MzO!)2F#CsG+W1rv65Y^kz8Fg zYX`HB5BZ}U6AmXX<_8lnm72k8*!M!S`Ap{i`s-;1?^yJVqIanQUj$Tf4=52Ciwf7aQ=GeHa^vvyBK9viQW5iz9I-JSAw z98Ywo`dC=+K)ASQzLPqWpUO_=A?jxP!AJulM4!^e_4>M-20A0f6bRIkA!@C|k3+pZo%^CZ8=-O)!FuBvbBFTLdVGVoK_d@ATeOyY)jSHQ767LWj>1Q;CI(t^DsZtTyd$RAJ(%G zlYjCPpExojgQSBa%|rRbC#cXlnZdzP9qh;HTpogRcgn^a@OtRdzFTSec$i+A zkw!}Mcs<##N#IN~+GLjKL#Oaw2QRO^ZQRFL*#~S+O-@SgmrhPjPF)(9^XM@>Ir%Ye z+7&DZXC^0){%&&empDMuSe7nGKGTe>G8FwCoz(lNQ@xAT&Gfd@l8XoEfaDeompXBQ z4HP%{%J6J3IeFydRaYJ3^(9`XrTM3>x{5^jYz9p3d7TbJI63(ouSYn}LH3!Pot(V< cVi}bG2k9q&jQ{`u literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-mdpi/red_tx.webp b/moduleUtil/src/main/res/mipmap-mdpi/red_tx.webp deleted file mode 100644 index ba7b9066accca6a8f8f7fbc16d2930da26a08964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1756 zcmV<21|#`WNk&H01^@t8MM6+kP&il$0000G0001v004^s06|PpNSp!y00E#C0Bqez z5(Gmqgg`KaG8i*hGq4y;7_^vPNA|4OTVHzp|T83 zHL4OS%kWecxsj+yS&7(0&1cl0uxMI`i%pcJI96d%m&-umTU7oYCa$71#W5xlwP_mR zi$(LV{;DWnd#j>;?W>A`wWlg3)_$rOS$p{sGr#(n#7>@ih-8RR?1047HC*;B#(rN_ z#N2XCWP3PXLSk^cqKe7oyeKwvJndNI%{E#-#4`pNV!?LmZf&LQ2k$*|vxOoG;@$g3bhvWSZhy0J_{SU|Ljl~-eZ=g4_ zHzsccZ@}9R>&D`TWuy23H{c|4dHlT%P5`zXc@wpf$SnU_hwf< z37S<4oE_Pycp4O&5H4&M5nLJB9*&nlv8TYrvo$kZ9adWiu8(91#SUO%Lni1l+mWGD zv;v`9v;m=Gv;d)N)DNL^)DEHhtQuz+a3Z~Ef*~VmwMH0q)@cqfZee}6z|fJjc|{l< zRp9~(#zl`;1RXQ!KsV46X*|XNnnt9t7z1b<3ys4VK;`^1#w!OyEUytA{R=r`p!i=c^$sXs_<=GcbY1r=x+(;{~J-^3F_H2bME^9A+SfEoExo>eRd9`g|~>yW5Y+*-{U* z7xlX{dZTrrGZtQ$u=M=H;n?oh$ogpy*-oW4G#@W_<7t$S3H(>UG&+T1v4q=RyrQcq zcryc_SjFFSvK7yeLl`A@1J#QD*z$F6j#%>SW5!qDERatP7tL2SD$g4swNWAsm9oR) z@kkO3Cjz}f8d(uK@mc6ZygMLU8ksR(SZmx@W_0hv(oBTgKR26?W;F(G2~@ENVC(G3 zPo;3#Fm>L!!Fs_|u6pxN!AY^C`S{&8Ojy4ZiKxwci%gaaJH0u;kiN0|OZI&uuXPn$NIG zSyXMr>9Q@$w`u<#6bvQ@Ryi?}J7;U0j94Ow2QMOo_nW+q%9Yd>G`;=7kid9H;07-Y z!Q`nD=f8^=elMUdPtj!a^Ir@3zH^fq&8UgR_5wy0Rd|e7MM4)GFWMj;k=bTFRrcvT z>d2|7F%!eV%(kQ#m5c(y*q~z%5#DPUIiUqKt->+i3hgx0D_~S$OHzPQ_R7ixWX-rM zL3gw7!+F##{FAEkwGsWV71%4EIa4ZYM&WhH zgCIP(S~{3!X?q!fqx+PwCkjCUxJknR4I!58Y#Z>;9Dk?T8yQP%FM yeg$e@myhu%1xr0Z00pEzsXhg28UZK4n3TkmW_%e3;8v!@r+)Yqr?1Xh%m4sgNIp{l diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/red_bj_h.png b/moduleUtil/src/main/res/mipmap-xxxhdpi/red_bj_h.png new file mode 100644 index 0000000000000000000000000000000000000000..92a41e6d3b92a1d132ed27ade46fb9120412843f GIT binary patch literal 50416 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 nWJmVbSCFN;4vyf3r2%Rk@w_KQwW!`s8@AOFjn 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 E0F&(?%>V!Z literal 0 HcmV?d00001 diff --git a/moduleUtil/src/main/res/mipmap-xxxhdpi/red_pp.webp b/moduleUtil/src/main/res/mipmap-xxxhdpi/red_pp.webp new file mode 100644 index 0000000000000000000000000000000000000000..0ebd0eb9db145fe4d9f293ac3a45d788da747673 GIT binary patch literal 63186 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
    @yvpZKcQ z4b8T)8anQ;4qE2LR+qqe2O$B=-9NIfIx(*f?Qcq%n0CEp%V`WHoW!q;f8oC^dQ*?4 zDEYLQq-T@6sB5{0_{<>ip610%tE3kG_Zj4FNUu@_k7-7YFF0hoaEbfj>+@v3b%-Re z+ma+5=gOE!ng$=N+>E-xl$ngcQj}gxffcifC8woNHjl#MSp!I&wB2M_l>0SxOH|!% z()MoxO`tH~Qf5I_%xAS>t!1a(BCi2XPc}8tOOpo9lvx&3-j==}G~O`xthIZhzNgf7 zkH1!K+qx{%@Y=_BZc)0!MXvJ2Dx2=d=VoZ*>X!-p|5@n2-AVty6-pa4A}qcIt2)0o zuQfD78IDDEI%CqP?(t&TW2x#5+GLHaim(ysjh-zuDXc(|Y_k?K&hGh7Y!kb!J zPqw)pjbHgGw3mFMgH=j!(>&h~@oO$e+p!8J=e+)xP}x=8rO4#Wei%ohP-I4WDBLN_Lt&iDHLSa@G_dFuAk z3hKoN^~{@hze(u!MWb@FZ6BEyF2aQNZRQnkY1w-n-Cs`JY8C9cQnxoW=E#Xe7C%*f zQaiyaKaITT(U zomcqW_IbX15>eL(oLzpQ==~%qMsoMcg)Up|jrZ=`TeKvK>9-VLf7(aA^RU_fw5^xO zY#+{(%^`66&2gxHN#HUg2vyBYa~Iok!NSSP%bw7{Fxu*S;@sA&B>M`mYSo&$IrY0d zCG3XM71xr-4o8|Q&g8;6+qrk7cWBhyV)GADyqzX8Nk~oU+gHX3KBo!HZXZT!m1FIx zxL5pq`Hj>>+Fuv(wK})f;c`i7YQMbR$ami;wY~OiAn?87BSpHmx2&n7$3tzq+J_~U zM?(|b3sbz5qhpcz+ISm#0-K|YIw%l_b8_8hj zE^yFH({&3f9%av)O*R~9H8x^%P9sgz(ywA?aGr@*6XG9J%KItw3VK{<-cRO+6#Gl) zWgmz{6Zk5Uq?%HA_0yEmxIr=)uVyhq`S+s+J~)cb*NGLog=&6qKL2%b3Cs%&^qUfY zH73|UDK(eCdvrl?LtC(PLa-@;w?Rz8g!1fctXe=<{Jfowbj6>XKj@05mDFVYUl95) z>Hd!jehNK@9$Pr|W{@!bH4f2k+C}q}Eo%N2`ak-h|G&QIe}oV^myW^FN~K zkI?@JhX1+}|2UAz&+T$b7yiuU{wt$@T{rn%HziFUv90AEAGo;BPAMN9b=F=pQfsBlM3G{7nV^2>ne1{o}=dg#K}Y zzp20-|*38Da@7-$|7 zniE6;LNU-hCNw9A0)%3qbvy_1T`rEmT*yZfLb1U2*c~Di3wY&XAa^JRn#Y9Z1W|xc z3^b1k%?Y9ap%`c$6Pgo50YWj*JSH?JhysLSpm|JaP7nnM#X$3z(3~I&5Q>4s2aTss AEC2ui literal 0 HcmV?d00001 diff --git a/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java b/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java index bd5eb19..00a5ba9 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java +++ b/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java @@ -93,13 +93,14 @@ public class RedResultActivity extends BaseMvpActivity(), // 在onCreate中初始化红包管理器实例,以便在整个Activity生命周期中使用 qxRedPacketManager = QXRedPacketManager.getInstance() // 获取单例实例并设置委托 - QXRedPacketManager.getInstance().setDelegate(this); + qxRedPacketManager!!.setDelegate(this); + } @@ -602,7 +603,7 @@ class RoomActivity : BaseMvpActivity(), override fun onConnectSuccess() { //重连成功 if (CommonAppContext.getInstance().playId != null) { LogUtils.e("@@@", "重连成功") - LogUtils.e("@@@", ""+CommonAppContext.getInstance().playId) + LogUtils.e("@@@", "" + CommonAppContext.getInstance().playId) RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId) } } @@ -835,10 +836,14 @@ class RoomActivity : BaseMvpActivity(), } // TODO: 发红包 - fun redDialogView(){ - RedBagSendDialog(this,roomId).show() + fun redDialogView() { + RedBagSendDialog(this, roomId).show() } + var redEnvelopesFragment: RedEnvelopesFragment? = null + var redListDialog: RedListDialog? = null + var redPacketInfo: RedPacketInfo? = null + override fun initView() { super.initView() floatingMagnetView = findViewById(R.id.flaoat) @@ -883,9 +888,6 @@ class RoomActivity : BaseMvpActivity(), layoutParams.height = SystemUtils.getWidth(74) // 示例高度 mBinding!!.roomTop.root.layoutParams = layoutParams - // MP4PlaybackCallback mp4PlaybackCallback=MP4PlaybackCallback.getInstance(); -// mp4PlaybackCallback.setAvatarFrameView(mBinding.svgaGift); -// mBinding.svgaGift.setAnimListener(mp4PlaybackCallback); mBinding!!.xlhIm.setOnClickListener { val fm = supportFragmentManager if (fm != null && !fm.isDestroyed) { @@ -904,8 +906,24 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.drvRed.visibility = View.GONE mBinding!!.redBj.setOnClickListener { - val redListDialog = RedListDialog(this) - redListDialog.show() + redListDialog = RedListDialog(this) + redListDialog!!.setOnRedPacketClickListener(object : RedListDialog.OnRedPacketClickListener { + + override fun onRedPacketClick(redPacketInfos: RedPacketInfo?, position: Int) { + redPacketInfo = redPacketInfos + if (redPacketInfos!=null && redPacketInfos.is_qiang==1){ + ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).withString("redpacketId", redPacketInfos.getRedpacket_id()).navigation(); + }else { + redEnvelopesFragment = RedEnvelopesFragment(this@RoomActivity) + redEnvelopesFragment!!.setIsCollectedRoom(mRoomUserBean!!.is_collect == 1) + redEnvelopesFragment!!.setFromToComment(false) + redEnvelopesFragment!!.setRedPacket(redPacketInfos) + redEnvelopesFragment!!.show() + redListDialog!!.dismiss() + } + } + }) + redListDialog!!.show(); } } @@ -1521,7 +1539,7 @@ class RoomActivity : BaseMvpActivity(), } xlhDjs(messageEvent.text.end_time) - }else if(msgType==1060){ + } else if (msgType == 1060) { qxRedPacketManager!!.addRedPacket(messageEvent.text.redpacketInfo) } } @@ -1655,10 +1673,10 @@ class RoomActivity : BaseMvpActivity(), // ivSoundEffects(false) // } - if ("9" == toPitNumber && messageEvent.text.user_id .equals(SpUtil.getUserId().toString())) { + if ("9" == toPitNumber && messageEvent.text.user_id.equals(SpUtil.getUserId().toString())) { mBinding!!.roomTop.rl.visibility = View.VISIBLE ivSoundEffects(true) - }else{ + } else { if (customMusicFloatingView != null) { customMusicFloatingView!!.destroy() AgoraManager.getInstance(this@RoomActivity).desMusic() @@ -2505,6 +2523,10 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.roomTop.tvNum.text = number.toString() + "" } + fun setUserInfo() { + mRoomInfoResp!!.user_info.is_collect = 1 + } + /** * 特效设置 */ @@ -3130,6 +3152,13 @@ class RoomActivity : BaseMvpActivity(), } etContent.setText("") countDownTimer() + if (redEnvelopesFragment != null) { + redEnvelopesFragment = RedEnvelopesFragment(this@RoomActivity) + redEnvelopesFragment!!.setIsCollectedRoom(mRoomUserBean!!.is_collect == 1) + redEnvelopesFragment!!.setFromToComment(true) + redEnvelopesFragment!!.setRedPacket(redPacketInfo) + redEnvelopesFragment!!.show() + } dialog.dismiss() }) @@ -3172,11 +3201,11 @@ class RoomActivity : BaseMvpActivity(), @Subscribe(threadMode = ThreadMode.MAIN) fun roomInfoEvent(messageEvent: UserInfo) { -// mBinding.llInput.setVisibility(View.VISIBLE); -// mBinding.inputMenu1.bringToFront(); // 强制将该 View 置于最上层 -// mBinding.inputMenu1.show(); -// mBinding.inputMenu1.setText("@" + messageEvent.getNickname()); - inputSting = "@" + messageEvent.nickname + if (messageEvent != null && messageEvent.red_num != null) { + inputSting = messageEvent.red_num + } else { + inputSting = "@" + messageEvent.nickname + } dialogDismiss() } @@ -3426,10 +3455,11 @@ class RoomActivity : BaseMvpActivity(), } } mBinding!!.ivQuanC.setOnClickListener { v: View? -> - if (mRoomInfoResp!!.room_info.head_line.room_id != null && mRoomInfoResp!!.room_info.head_line.room_id.isNotEmpty()){ - if (mRoomInfoResp!!.room_info.head_line.room_id != roomId){ - RoomManager.getInstance().fetchRoomDataAndEnter(applicationContext,mRoomInfoResp!!.room_info.head_line.room_id,"") - }else{ + if (mRoomInfoResp!!.room_info.head_line.room_id != null && mRoomInfoResp!!.room_info.head_line.room_id.isNotEmpty()) { + if (mRoomInfoResp!!.room_info.head_line.room_id != roomId) { + RoomManager.getInstance() + .fetchRoomDataAndEnter(applicationContext, mRoomInfoResp!!.room_info.head_line.room_id, "") + } else { com.blankj.utilcode.util.ToastUtils.showLong("您就在当前房间") } } @@ -3869,7 +3899,7 @@ class RoomActivity : BaseMvpActivity(), val roomBean = resp.room_info - if (roomBean!!.type_id.equals("6")){ + if (roomBean!!.type_id.equals("6")) { // upHeight() initPublicScreenFragment() @@ -4132,7 +4162,7 @@ class RoomActivity : BaseMvpActivity(), } override fun roomRedPackets(list: MutableList?) { - if(list!=null) { + if (list != null) { qxRedPacketManager!!.addRedPackets(list!!) } } @@ -4176,6 +4206,9 @@ class RoomActivity : BaseMvpActivity(), clearMinimizeState() cleanupResources() } + if (qxRedPacketManager != null) { + qxRedPacketManager!!.endCheckTimer(); + } // 确保父类的 onDestroy 被调用 super.onDestroy() } @@ -4496,29 +4529,93 @@ class RoomActivity : BaseMvpActivity(), override fun onRedPacketsAdded(redPackets: MutableList?, remainingCount: Int) { // 处理添加红包列表的逻辑 - if (redPackets!!.isNotEmpty()){ - mBinding!!.drvRed.visibility=View.VISIBLE - mBinding!!.redNum.visibility=View.VISIBLE - mBinding!!.redNum.text="x"+remainingCount.toString() + if (redPackets!!.isNotEmpty()) { + mBinding!!.drvRed.visibility = View.VISIBLE + mBinding!!.redNum.visibility = View.VISIBLE + mBinding!!.redNum.text = "x" + remainingCount.toString() + } else { + mBinding!!.drvRed.visibility = View.GONE + mBinding!!.redNum.visibility = View.GONE + qxRedPacketManager!!.removeAllRedPackets() } } override fun onRedPacketAdded(redPacket: RedPacketInfo?, remainingCount: Int) { // 处理添加单个红包的逻辑 - if (redPacket!=null){ - mBinding!!.drvRed.visibility=View.VISIBLE - mBinding!!.redNum.visibility=View.VISIBLE - mBinding!!.redNum.text="x"+remainingCount.toString() + if (redPacket != null) { + mBinding!!.drvRed.visibility = View.VISIBLE + mBinding!!.redNum.visibility = View.VISIBLE + mBinding!!.redNum.text = "x" + remainingCount.toString() } } override fun onRedPacketRemoved(packetId: String?, remainingCount: Int) { // 处理移除红包的逻辑 + if (remainingCount == 0) { + mBinding!!.drvRed.visibility = View.GONE + } else { + mBinding!!.drvRed.visibility = View.VISIBLE + } + mBinding!!.redNum.text = "x" + remainingCount.toString() } override fun onRedPacketUpdated(packet: RedPacketInfo?, remainingCount: Int) { // 处理红包状态更新的逻辑 + if (redEnvelopesFragment != null && redEnvelopesFragment!!.mRedPacketInfo != null && redEnvelopesFragment!!.mRedPacketInfo!!.countdown > 0) { + if (redEnvelopesFragment!!.mRedPacketInfo.type == 1) { + redEnvelopesFragment!!.changeViewType(RedEnvelopeStatus.QXRedBagDrawTypeOpen) + }else{ + if (redEnvelopesFragment!!.isFromToComment) { + redEnvelopesFragment!!.changeViewType(RedEnvelopeStatus.QXRedBagDrawTypeOpen) + } + } + } + } + + override fun didUpdateRedPacketTime(packet: RedPacketInfo?, packetTime: Long) { + + if ((redEnvelopesFragment != null) && (redEnvelopesFragment!!.mRedPacketInfo != null) && + (redEnvelopesFragment!!.mRedPacketInfo!!.countdown > 0) && packetTime >= 0 + ) { + LogUtils.e("进入倒计时" + packetTime) + if (redEnvelopesFragment!!.mRedPacketInfo.type == 1) { + if (redEnvelopesFragment!!.mRedPacketInfo.conditions.contains("1")) { + //有收藏房间条件 + if (mRoomInfoResp!!.user_info.is_collect == 1) { + //需要满足收藏在倒计时 + redEnvelopesFragment!!.setNeedTime(packetTime) + } + } else { + redEnvelopesFragment!!.setNeedTime(packetTime) + } + } else { + if (redEnvelopesFragment!!.isFromToComment) { + if (redEnvelopesFragment!!.mRedPacketInfo.conditions.contains("1")) { + //有收藏房间条件 + if (mRoomInfoResp!!.user_info.is_collect == 1) { + redEnvelopesFragment!!.setNeedTime(packetTime) + } + } else { + redEnvelopesFragment!!.setNeedTime(packetTime) + } + } + } + } + if (redListDialog != null) { + if (redListDialog!!.isShowing && redListDialog!!.adapter != null) { + val adapter = redListDialog!!.adapter + val list = adapter.data + for (i in list.indices) { + val redPacketInfo = list[i] + if (redPacketInfo.redpacket_id == packet!!.redpacket_id) { + adapter.updateCountdown(i, packetTime) + break + } + } + + } + } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/adapter/RedAdapter.java b/moduleroom/src/main/java/com/example/moduleroom/adapter/RedAdapter.java index f92dbd4..ae3776c 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/adapter/RedAdapter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/adapter/RedAdapter.java @@ -23,7 +23,7 @@ public class RedAdapter extends BaseQuickAdapter { + private Map viewMap; public RedBagAdapter() { super(R.layout.item_red_bag); + viewMap=new ConcurrentHashMap<>(); } @Override protected void convert(BaseViewHolder helper, RedPacketInfo item) { + viewMap.put(helper.getLayoutPosition(),helper.itemView); + ImageView iv_red_bag= helper.getView(R.id.iv_red_bag); + if (item.getIs_qiang()==1){ + iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red_bj_h); + helper.setVisible(R.id.tv_user_name,false); + helper.setVisible(R.id.tv_djs,false); + }else { + iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red); + + if (item.getType()==2){ + helper.setVisible(R.id.im_list_bj,true); + }else { + helper.setVisible(R.id.im_list_bj,false); + } + + // 显示倒计时 + if (item.getCountdown() > 0) { + helper.setVisible(R.id.tv_djs, true); + long minutes = item.getCountdown() / 60; + long seconds = item.getCountdown() % 60; + String timeFormat = String.format("%02d:%02d", minutes, seconds); + helper.setText(R.id.tv_djs, timeFormat); + } else { + helper.setVisible(R.id.tv_djs, false); + } + } + + helper.setText(R.id.tv_user_name, item.getNickname()); } + + /** + * 更新指定位置的倒计时显示,不刷新整个item + * @param position 列表位置 + * @param countdown 倒计时时间(秒) + */ + public void updateCountdown(int position, long countdown) { + if (position >= 0 && position < getData().size()) { + // 获取对应位置的item view + View view = viewMap.get(position); + if (view != null) { + // 直接更新倒计时文本,不刷新整个item + TextView tvDjs = view.findViewById(R.id.tv_djs); + if (tvDjs != null) { + // 格式化倒计时显示 + long minutes = countdown / 60; + long seconds = countdown % 60; + String timeFormat = String.format("%02d:%02d", minutes, seconds); + tvDjs.setText(timeFormat); + + // 控制倒计时显示状态 + if (countdown > 0) { + tvDjs.setVisibility(View.VISIBLE); + } else { + tvDjs.setVisibility(View.GONE); + } + } + } + } + } + + /** + * 根据位置获取item view + * @param position 位置 + * @return item对应的view + */ + private View getViewByPosition(int position) { + RecyclerView recyclerView = getRecyclerView(); + if (recyclerView != null) { + RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); + if (layoutManager != null) { + // 检查 position 是否在可见范围内 + if (layoutManager instanceof LinearLayoutManager) { + LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager; + int firstVisiblePosition = linearLayoutManager.findFirstVisibleItemPosition(); + int lastVisiblePosition = linearLayoutManager.findLastVisibleItemPosition(); + + // 确保 position 在可见范围内 + if (position >= firstVisiblePosition && position <= lastVisiblePosition) { + return layoutManager.findViewByPosition(position); + } + } + } + } + return null; + } + + } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java index 40da164..69d64bc 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java @@ -10,19 +10,14 @@ import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.alibaba.android.arouter.launcher.ARouter; import com.blankj.utilcode.util.ScreenUtils; import com.example.moduleroom.R; import com.example.moduleroom.adapter.RedBagAdapter; import com.example.moduleroom.databinding.DialogRedListBinding; -import com.example.moduleroom.fragment.RedEnvelopesFragment; -import com.xscm.moduleutil.utils.ARouteConstants; +import com.xscm.moduleutil.bean.RedPacketInfo; import com.xscm.moduleutil.utils.QXRedPacketManager; import com.xscm.moduleutil.widget.dialog.BaseDialog; -import java.util.ArrayList; -import java.util.List; - /** * 这是红包列表 */ @@ -34,7 +29,10 @@ public class RedListDialog extends BaseDialog { public RedListDialog(@NonNull Context context) { super(context, com.xscm.moduleutil.R.style.BaseDialogStyleH); } - + // 添加获取适配器的方法 + public RedBagAdapter getAdapter() { + return redBagAdapter; + } @Override public int getLayoutId() { return R.layout.dialog_red_list; @@ -121,27 +119,21 @@ public class RedListDialog extends BaseDialog { redBagAdapter.setNewData(qxRedPacketManager.getAllRedPackets()) ; redBagAdapter.setOnItemClickListener((adapter, view, position) -> { - RedEnvelopesFragment redEnvelopesFragment = new RedEnvelopesFragment(getContext()); - redEnvelopesFragment.setRedPacket(qxRedPacketManager.getAllRedPackets().get(position)); - redEnvelopesFragment.show(); + if (mListener != null) { + mListener.onRedPacketClick(redBagAdapter.getData().get(position), position); + } }); - -// List list = new ArrayList<>(); -// list.add("1"); -// list.add("2"); -// list.add("3"); -// list.add("4"); -// list.add("5"); -// list.add("4"); -// list.add("5"); -// list.add("4"); -// list.add("5"); -// list.add("4"); -// list.add("5"); -// redBagAdapter.setNewData(list); } + public interface OnRedPacketClickListener { + void onRedPacketClick(RedPacketInfo redPacketInfo,int position); + } + private OnRedPacketClickListener mListener; + + public void setOnRedPacketClickListener(OnRedPacketClickListener listener) { + this.mListener = listener; + } private Resources getResources() { diff --git a/moduleroom/src/main/java/com/example/moduleroom/fragment/RedEnvelopesFragment.java b/moduleroom/src/main/java/com/example/moduleroom/fragment/RedEnvelopesFragment.java index 0da0dbd..ce69873 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/fragment/RedEnvelopesFragment.java +++ b/moduleroom/src/main/java/com/example/moduleroom/fragment/RedEnvelopesFragment.java @@ -1,6 +1,7 @@ package com.example.moduleroom.fragment; import android.content.Context; +import android.os.CountDownTimer; import android.view.View; import android.view.ViewGroup; import android.view.Window; @@ -8,21 +9,29 @@ import android.view.WindowManager; import androidx.annotation.NonNull; import com.alibaba.android.arouter.launcher.ARouter; import com.blankj.utilcode.util.ScreenUtils; +import com.blankj.utilcode.util.TimeUtils; import com.blankj.utilcode.util.ToastUtils; import com.example.moduleroom.R; +import com.example.moduleroom.activity.RoomActivity; import com.example.moduleroom.databinding.FragmentRedEnvelopesBinding; import com.xscm.moduleutil.bean.RedPackGrab; import com.xscm.moduleutil.bean.RedPacketInfo; +import com.xscm.moduleutil.bean.UserInfo; import com.xscm.moduleutil.event.RedEnvelopeStatus; import com.xscm.moduleutil.http.BaseObserver; import com.xscm.moduleutil.http.RetrofitClient; import com.xscm.moduleutil.utils.ARouteConstants; import com.xscm.moduleutil.utils.ImageUtils; +import com.xscm.moduleutil.utils.QXRedPacketManager; import com.xscm.moduleutil.view.QXRedBagSendView; import com.xscm.moduleutil.widget.dialog.BaseDialog; +import com.xscm.moduleutil.widget.floatingView.IFloatingView; import io.reactivex.disposables.Disposable; +import org.greenrobot.eventbus.EventBus; import org.jetbrains.annotations.NotNull; +import static com.xscm.moduleutil.event.RedEnvelopeStatus.*; + /** * @author xscm * @ClassName RedEnvelopesFragment @@ -31,12 +40,28 @@ import org.jetbrains.annotations.NotNull; * @Version 1.0 */ public class RedEnvelopesFragment extends BaseDialog { - private RedEnvelopeStatus mCurrentStatus; - private RedPacketInfo mRedPacketInfo; + private RedEnvelopeStatus drawType; + public RedPacketInfo mRedPacketInfo; + public boolean isCollectedRoom;//是否收藏房间 + + public long needTime;// 倒计时 + public boolean isFromToComment;//是否是发送评论地方过来 + + private CountDownTimer countDownTimer; + public RedEnvelopesFragment(@NonNull @NotNull Context context) { super(context, com.xscm.moduleutil.R.style.BaseDialogStyleH); } + //是否收藏方法 + public void setIsCollectedRoom(boolean isCollectedRoom) { + this.isCollectedRoom = isCollectedRoom; + } + + public void setFromToComment(boolean isFromToComment) { + this.isFromToComment = isFromToComment; + } + @Override public void initData() { @@ -49,7 +74,8 @@ public class RedEnvelopesFragment extends BaseDialog() { + @Override + public void onSubscribe(@NotNull Disposable d) { + + } + + @Override + public void onNext(@NotNull String s) { + if (getContext() instanceof RoomActivity) { + ((RoomActivity) getContext()).setUserInfo(); + } + + if (mRedPacketInfo.canOpenNow()){ + setType(QXRedBagDrawTypeOpen); + }else { + setType(QXRedBagDrawTypeTimeDown); + } + } + }); + + }else if (drawType == RedEnvelopeStatus.QXRedBagDrawTypePwdSend){ + UserInfo userInfo = new UserInfo(); + userInfo.setRed_num(mRedPacketInfo.getPassword()); + EventBus.getDefault().post(userInfo); + dismiss(); + } +// ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).withString("redpacketId", mRedPacketInfo.getRedpacket_id()).navigation(); + } + }); } - private void snatched(){ + private void snatched() { mBinding.tvRedCount.setText("手慢,没有抢到"); mBinding.imRedK.setVisibility(View.GONE); mBinding.textPl.setVisibility(View.GONE); @@ -109,7 +172,6 @@ public class RedEnvelopesFragment extends BaseDialog 0) { + mBinding.textPl.setText(TimeUtils.millis2String(needTime*1000, "mm:ss")+"后开启红包"); + } + } + + private RedEnvelopeStatus getDrawTypeWithRedpacktModel(RedPacketInfo redPacketInfo) { + drawType = QXRedBagDrawTypeOpen; + if (redPacketInfo.getType() == 1) {//普通红包 + drawType = QXRedBagDrawTypeOpen; + if (redPacketInfo.getCountdown() > 0) { + if (redPacketInfo.remainingTime() > 0) { + drawType = QXRedBagDrawTypeTimeDown; + } + } + //收藏房间在先 + if (redPacketInfo.getConditions().contains("1") && !isCollectedRoom) { + drawType = QXRedBagDrawTypeCollect; + } + } else {//口令红包 + drawType = QXRedBagDrawTypePwdSend; + if (isFromToComment) { + if (redPacketInfo.getConditions().contains("1") && !isCollectedRoom) { + drawType = QXRedBagDrawTypeCollect; + } else { + if (redPacketInfo.canOpenNow()) { + drawType = QXRedBagDrawTypeOpen; + } else { + drawType = QXRedBagDrawTypeTimeDown; + } + } + } + } + return drawType; + } + + private void setType(RedEnvelopeStatus type) { + this.drawType = type; + switch (type) { + case QXRedBagDrawTypeOpen: + handleReadyToOpen(); + break; + case QXRedBagDrawTypeFinished: + qXRedBagDrawTypeFinished(); + break; + case QXRedBagDrawTypeCollect: + qXRedBagDrawTypeCollect(); + break; + case QXRedBagDrawTypeTimeDown: + qXRedBagDrawTypeTimeDown(); + break; + + case QXRedBagDrawTypePwdSend: + qXRedBagDrawTypePwdSend(); + break; + } + } + + private void qXRedBagDrawTypePwdSend() { + mBinding.imRedK.setVisibility(View.GONE); + mBinding.tvRedCount.setText(mRedPacketInfo.getRemark()); + mBinding.tvCk.setVisibility(View.GONE); + mBinding.textPl.setVisibility(View.VISIBLE); + mBinding.textPl.setText(setValue(QXRedBagDrawTypePwdSend)); + + } + + private void qXRedBagDrawTypeTimeDown() { + mBinding.imRedK.setVisibility(View.GONE); + mBinding.tvRedCount.setText(mRedPacketInfo.getRemark()); + mBinding.tvCk.setVisibility(View.GONE); + mBinding.textPl.setVisibility(View.VISIBLE); + mBinding.textPl.setText(setValue(QXRedBagDrawTypeTimeDown)); + } + + private void qXRedBagDrawTypeCollect() { + mBinding.imRedK.setVisibility(View.GONE); + mBinding.tvRedCount.setText(mRedPacketInfo.getRemark()); + mBinding.tvCk.setVisibility(View.GONE); + mBinding.textPl.setVisibility(View.VISIBLE); + mBinding.textPl.setText(setValue(QXRedBagDrawTypeCollect)); + mBinding.textShare.setVisibility(View.VISIBLE); + mBinding.clPwd.setVisibility(View.VISIBLE); + mBinding.tvPinl.setVisibility(View.GONE); + mBinding.tvKl.setVisibility(View.VISIBLE); + mBinding.tvKl.setText("收藏房间"); + + } + + private String setValue(RedEnvelopeStatus type) { + switch (type) { + + case QXRedBagDrawTypeCollect: + return "收藏房间抢红包"; + case QXRedBagDrawTypeTimeDown: + return "00:00后开启红包"; + case QXRedBagDrawTypePwdSend: + return "发送评论抢红包"; + default: + return "点击打开红包"; + } + } + + private void qXRedBagDrawTypeFinished() { + mBinding.textPl.setVisibility(View.GONE); + mBinding.tvTitle.setVisibility(View.GONE); + mBinding.tvPinl.setVisibility(View.GONE); + mBinding.tvKl.setVisibility(View.GONE); + mBinding.tvCk.setVisibility(View.VISIBLE); + mBinding.tvRedCount.setText("手慢了,红包被领完了"); + mBinding.imRedK.setVisibility(View.GONE); + mBinding.clPwd.setVisibility(View.GONE); + mBinding.textShare.setVisibility(View.GONE); + } private void handleReadyToOpen() { mBinding.textPl.setVisibility(View.GONE); mBinding.tvTitle.setVisibility(View.GONE); mBinding.tvPinl.setVisibility(View.GONE); - mBinding.tvKl.setVisibility(View.VISIBLE); + mBinding.tvKl.setVisibility(View.GONE); mBinding.imRedK.setVisibility(View.VISIBLE); } + + @Override + protected void onStop() { + super.onStop(); + // 取消倒计时,避免内存泄漏 + if (countDownTimer != null) { + countDownTimer.cancel(); + countDownTimer = null; + } + } + + public void changeViewType(RedEnvelopeStatus type) { + setType(type); + } } diff --git a/moduleroom/src/main/res/layout/dialog_red_list.xml b/moduleroom/src/main/res/layout/dialog_red_list.xml index e55a544..019ffb6 100644 --- a/moduleroom/src/main/res/layout/dialog_red_list.xml +++ b/moduleroom/src/main/res/layout/dialog_red_list.xml @@ -75,7 +75,7 @@ android:layout_height="0dp" android:layout_marginStart="@dimen/dp_25" android:layout_marginEnd="@dimen/dp_25" - android:layout_marginTop="@dimen/dp_156" + android:layout_marginTop="@dimen/dp_146" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="@+id/im_x" app:layout_constraintStart_toStartOf="parent" diff --git a/moduleroom/src/main/res/layout/fragment_red.xml b/moduleroom/src/main/res/layout/fragment_red.xml index c7f1a8b..930c918 100644 --- a/moduleroom/src/main/res/layout/fragment_red.xml +++ b/moduleroom/src/main/res/layout/fragment_red.xml @@ -111,7 +111,7 @@ android:layout_height="wrap_content" android:textColor="#fff" android:textSize="@dimen/sp_13" - tools:text="已存入金币,可直接提现" + tools:text="已存入金币" app:layout_constraintTop_toBottomOf="@+id/tv_red_jb" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="@dimen/dp_31" diff --git a/moduleroom/src/main/res/layout/fragment_red_envelopes.xml b/moduleroom/src/main/res/layout/fragment_red_envelopes.xml index 26484cc..c736bd0 100644 --- a/moduleroom/src/main/res/layout/fragment_red_envelopes.xml +++ b/moduleroom/src/main/res/layout/fragment_red_envelopes.xml @@ -12,6 +12,7 @@ android:layout_marginEnd="@dimen/dp_10" android:background="@color/color_transparent"> + + + @@ -93,51 +104,62 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" - android:layout_marginBottom="@dimen/dp_88" + android:layout_marginBottom="@dimen/dp_80" android:textColor="@color/color_FFFFFFE0" android:textSize="@dimen/sp_23" android:textStyle="bold" tools:text="发布评论抢红包" - android:paddingTop="@dimen/dp_9" + android:paddingTop="@dimen/dp_12" android:gravity="top|center"/> - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/text_pl"> - - + + + + + + diff --git a/moduleroom/src/main/res/layout/item_red_bag.xml b/moduleroom/src/main/res/layout/item_red_bag.xml index d81517a..d3f55d2 100644 --- a/moduleroom/src/main/res/layout/item_red_bag.xml +++ b/moduleroom/src/main/res/layout/item_red_bag.xml @@ -3,16 +3,58 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" - > + xmlns:tools="http://schemas.android.com/tools" + > + + + + + + \ No newline at end of file