From d2b9b385d9c55de6d000460693870fc8297a4272 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Fri, 21 Nov 2025 18:55:12 +0800 Subject: [PATCH] fix bugs. --- .../moduleutil/base/CommonAppContext.java | 2 +- .../com/xscm/moduleutil/bean/UserInfo.java | 2 +- .../moduleutil/bean/room/RoomPitBean.java | 10 +++- .../utils/roomview/GiftDisplayManager.java | 46 ++++++++++--------- .../utils/roomview/GiftDisplayView.java | 33 ++++++++----- .../src/main/res/layout/item_like_user.xml | 1 + .../activity/room/activity/RoomActivity.kt | 27 +++++++++-- .../room/fragment/FriendshipRoomFragment.java | 38 ++++++--------- .../user/fragment/VocalRangeFragment.java | 4 +- .../dialog/RoomGiftDialogFragment.java | 18 ++++---- .../dialog/RoomOnlineDialogFragment.java | 3 -- MainModule/src/main/res/layout/room_top.xml | 10 ++-- 12 files changed, 109 insertions(+), 85 deletions(-) diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java b/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java index 170922cb..5505fc02 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/base/CommonAppContext.java @@ -161,7 +161,7 @@ public class CommonAppContext extends MultiDexApplication implements Applicatio //设置mqtt环境 false 测试环境 true 正式环境 // ExternalResConstants.INSTANCE.setIS_MQTT_RELEASE(false); //设置http环境 false 测试环境 true 正式环境 - ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(true); + ExternalResConstants.INSTANCE.setIS_HTTP_RELEASE(false); currentEnvironment = ExternalResConstants.INSTANCE.HTTP_PATH(); diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/UserInfo.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/UserInfo.java index 7c381a25..3fe68cef 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/UserInfo.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/UserInfo.java @@ -22,7 +22,7 @@ public class UserInfo extends BaseEvent implements Serializable { public static final String FEMALE = "2"; public static final String MALE = "1"; private int id; - private int user_id; //用户id + private int user_id = 0; //用户id private String user_code;//用户id码 private String avatar;//头像 private String nickname;//昵称 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomPitBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomPitBean.java index 3619a561..ffa85851 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomPitBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomPitBean.java @@ -28,13 +28,21 @@ public class RoomPitBean implements Serializable { * dress_picture : */ + public RoomPitBean(){ + + } + + public RoomPitBean(String pit_number){ + this.pit_number = pit_number; + } + private String id;//id private String pit_number = "";//麦位号 private String state;//麦位状态 正常 ,1封麦;3禁麦 private int is_lock;//0未锁麦 1锁麦 private int is_mute;//0未禁麦 1禁麦 private int count_down;//麦位倒计时 - private String user_id="";//麦位上用户id + private String user_id="0";//麦位上用户id private String nickname;//麦位上用户昵称 private String avatar;//用户头像 private String sex;//性别 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayManager.java b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayManager.java index 4aeef1e4..65e27acb 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayManager.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayManager.java @@ -5,6 +5,8 @@ import android.os.Looper; import android.util.Log; import android.view.ViewGroup; import android.widget.FrameLayout; + +import com.blankj.utilcode.util.LogUtils; import com.xscm.moduleutil.bean.GiftBean; import com.xscm.moduleutil.bean.RoonGiftModel; @@ -66,14 +68,14 @@ public class GiftDisplayManager { final int finalI = i; displayView.setGiftAnimationListener(view -> { - Log.d("GiftDisplayManager", "Gift animation ended on view: " + finalI); + LogUtils.e("GiftDisplayManager", "Gift animation ended on view: " + finalI); onGiftAnimationEnd(view); }); container.addView(displayView); displayViews.add(displayView); - Log.d("GiftDisplayManager", "Created display view " + i); + LogUtils.e("GiftDisplayManager", "Created display view " + i +"____"+displayViews.size()); } } @@ -83,7 +85,7 @@ public class GiftDisplayManager { } if (gift == null) return; - Log.d("GiftDisplayManager", "Received gift: " + gift.getSenderName() + + LogUtils.e("GiftDisplayManager", "Received gift: " + gift.getSenderName() + " - " + gift.getGift_name() + " x" + gift.getNumber()); mainHandler.post(() -> internalReceiveGift(gift)); @@ -99,8 +101,8 @@ public class GiftDisplayManager { GiftBean accumulatedGift = accumulatedGifts.get(key); if (accumulatedGift != null) { accumulatedGift.setNumber(accumulatedGift.getNumber() + gift.getNumber()); - displayingView.updateGiftCount(accumulatedGift.getNumber()); - Log.d("GiftDisplayManager", "Gift accumulated: " + gift.getGift_name() + + displayingView.updateGiftCount(accumulatedGift); + LogUtils.e("GiftDisplayManager", "Gift accumulated: " + gift + " x" + accumulatedGift.getNumber()); } } else { @@ -111,11 +113,11 @@ public class GiftDisplayManager { String key = gift.getGiftKey(); accumulatedGifts.put(key, gift.clone()); availableView.showGift(gift); - Log.d("GiftDisplayManager", "Immediately display gift on view: " + availableView.getTag()); + LogUtils.e("GiftDisplayManager", "Immediately display gift on view: " + gift); } else { // 没有可用视图,加入队列 giftQueue.offer(gift); - Log.d("GiftDisplayManager", "Added to queue, current queue size: " + giftQueue.size()); + LogUtils.e("GiftDisplayManager", gift+" Added to queue, current queue size: " + giftQueue.size()); } } @@ -146,12 +148,12 @@ public class GiftDisplayManager { private void processGiftQueue() { if (isProcessingQueue) { - Log.d("GiftDisplayManager", "Already processing queue, skip"); + LogUtils.e("GiftDisplayManager", "Already processing queue, skip"); return; } isProcessingQueue = true; - Log.d("GiftDisplayManager", "Start processing queue, size: " + giftQueue.size()); + LogUtils.e("GiftDisplayManager", "Start processing queue, size: " + giftQueue.size()); // 循环处理队列直到队列为空或没有可用视图 while (!giftQueue.isEmpty()) { GiftDisplayView availableView = findAvailableDisplayView(); @@ -168,16 +170,16 @@ public class GiftDisplayManager { String key = gift.getGiftKey(); accumulatedGifts.put(key, gift.clone()); availableView.showGift(gift); - Log.d("GiftDisplayManager", "Display gift from queue: " + gift.getGift_name()); + LogUtils.e("GiftDisplayManager", "Display gift from queue: " + gift); } else { // 如果已经在显示,累加到现有视图 String key = gift.getGiftKey(); GiftBean accumulatedGift = accumulatedGifts.get(key); if (accumulatedGift != null) { accumulatedGift.setNumber(accumulatedGift.getNumber() + gift.getNumber()); - displayingView.updateGiftCount(accumulatedGift.getNumber()); - Log.d("GiftDisplayManager", "Queue gift accumulated to existing: " + - gift.getNickname() + " x" + accumulatedGift.getNumber()); + displayingView.updateGiftCount(accumulatedGift); + LogUtils.e("GiftDisplayManager", "Queue gift accumulated to existing: " + + gift + " x" + accumulatedGift.getNumber()); } } } @@ -186,18 +188,18 @@ public class GiftDisplayManager { // 打印队列状态 if (!giftQueue.isEmpty()) { - Log.d("GiftDisplayManager", "Still " + giftQueue.size() + " gifts waiting in queue"); + LogUtils.e("GiftDisplayManager", "Still " + giftQueue.size() + " gifts waiting in queue"); } } private void onGiftAnimationEnd(GiftDisplayView view) { - Log.d("GiftDisplayManager", "Gift animation end on view: " + view.getTag()); + LogUtils.e("GiftDisplayManager", "Gift animation end on view: " + view.getTag()); // 从累加记录中移除 if (view.getCurrentGift() != null) { String key = view.getCurrentGift().getGiftKey(); accumulatedGifts.remove(key); - Log.d("GiftDisplayManager", "Removed accumulated record: " + key); + LogUtils.e("GiftDisplayManager", "Removed accumulated record: " + key); } // 延迟一下再处理队列,确保视图状态完全重置 @@ -220,7 +222,7 @@ public class GiftDisplayManager { } public void clearAll() { - Log.d("GiftDisplayManager", "Clear all gifts and queue"); + LogUtils.e("GiftDisplayManager", "Clear all gifts and queue"); for (GiftDisplayView view : displayViews) { view.finishAnimationImmediately(); @@ -234,16 +236,16 @@ public class GiftDisplayManager { // 调试方法 public void printDebugInfo() { - Log.d("GiftDisplayManager", "=== Gift Display Manager Status ==="); - Log.d("GiftDisplayManager", "Queue size: " + giftQueue.size()); - Log.d("GiftDisplayManager", "Accumulated records: " + accumulatedGifts.size()); + LogUtils.e("GiftDisplayManager", "=== Gift Display Manager Status ==="); + LogUtils.e("GiftDisplayManager", "Queue size: " + giftQueue.size()); + LogUtils.e("GiftDisplayManager", "Accumulated records: " + accumulatedGifts.size()); for (int i = 0; i < displayViews.size(); i++) { GiftDisplayView view = displayViews.get(i); - Log.d("GiftDisplayManager", "View " + i + ": Animating=" + view.isAnimating() + + LogUtils.e("GiftDisplayManager", "View " + i + ": Animating=" + view.isAnimating() + ", Gift=" + (view.getCurrentGift() != null ? view.getCurrentGift().getGift_name() : "None")); } - Log.d("GiftDisplayManager", "==================================="); + LogUtils.e("GiftDisplayManager", "==================================="); } private int dpToPx(int dp) { diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayView.java b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayView.java index 2dfc8a8c..c1c1f171 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayView.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/GiftDisplayView.java @@ -13,6 +13,8 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; + +import com.blankj.utilcode.util.LogUtils; import com.xscm.moduleutil.R; import com.xscm.moduleutil.bean.GiftBean; import com.xscm.moduleutil.utils.ImageUtils; @@ -63,14 +65,14 @@ public class GiftDisplayView extends FrameLayout { public void showGift(GiftBean gift) { if (isAnimating) { - Log.w("GiftDisplayView", "View is animating, cannot show new gift"); + LogUtils.e("GiftDisplayView", "View is animating, cannot show new gift"); return; } this.currentGift = gift; this.isAnimating = true; - Log.d("GiftDisplayView", "Start showing gift: " + gift.getGift_name()); + LogUtils.e("GiftDisplayView", "Start showing gift: " + gift.getGift_name()); // 更新UI updateUIWithGift(gift); @@ -87,7 +89,7 @@ public class GiftDisplayView extends FrameLayout { .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - Log.d("GiftDisplayView", "Enter animation completed: " + gift.getGift_name()); + LogUtils.e("GiftDisplayView", "Enter animation completed: " + gift.getGift_name()); startHideTimer(); } }) @@ -113,7 +115,7 @@ public class GiftDisplayView extends FrameLayout { // 加载礼物图片 loadGiftImage(gift.getBase_image()); - Log.d("GiftDisplayView", "Update UI: " + gift.getSenderName() + " - " + + LogUtils.e("GiftDisplayView", "Update UI: " + gift.getSenderName() + " - " + gift.getGift_name() + " x" + gift.getNumber()); } @@ -150,16 +152,25 @@ public class GiftDisplayView extends FrameLayout { return Color.argb(255, random.nextInt(256), random.nextInt(256), random.nextInt(256)); } - public void updateGiftCount(int count) { + public void updateGiftCount(GiftBean gift) { if (!isAnimating) { - Log.w("GiftDisplayView", "View is not animating, cannot update count"); + LogUtils.e("GiftDisplayView", "View is not animating, cannot update count"); return; } - Log.d("GiftDisplayView", "Update gift count: " + count); + LogUtils.e("GiftDisplayView", "Update gift count: " + gift); // 更新数量显示 - countTextView.setText("x" + count); + countTextView.setText("x" + gift.getNumber()); + + if (senderTextView.getText().toString().isEmpty()){ + senderTextView.setText(gift.getNickname()!=null ? gift.getNickname() : "未知用户"); + } + + if (giftTextView.getText().toString().isEmpty()){ + giftTextView.setText("送给 "+(gift.getSenderName() != null ? gift.getSenderName() : "未知用户") + (gift.getGift_name() != null ? gift.getGift_name() : "礼物")); + } + // 数量更新动画 countTextView.animate() @@ -201,7 +212,7 @@ public class GiftDisplayView extends FrameLayout { return; } - Log.d("GiftDisplayView", "Start hide animation: " + currentGift.getGift_name()); + LogUtils.e("GiftDisplayView", "Start hide animation: " + currentGift.getGift_name()); // 从右往左消失动画 animate() @@ -211,7 +222,7 @@ public class GiftDisplayView extends FrameLayout { .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - Log.d("GiftDisplayView", "Hide animation completed: " + currentGift.getGift_name()); + LogUtils.e("GiftDisplayView", "Hide animation completed: " + currentGift.getGift_name()); isAnimating = false; if (listener != null) { @@ -225,7 +236,7 @@ public class GiftDisplayView extends FrameLayout { } public void finishAnimationImmediately() { - Log.d("GiftDisplayView", "Finish animation immediately"); + LogUtils.e("GiftDisplayView", "Finish animation immediately"); // 移除计时任务 if (hideRunnable != null) { diff --git a/BaseModule/src/main/res/layout/item_like_user.xml b/BaseModule/src/main/res/layout/item_like_user.xml index e5a79fbe..cbc534bc 100644 --- a/BaseModule/src/main/res/layout/item_like_user.xml +++ b/BaseModule/src/main/res/layout/item_like_user.xml @@ -2,6 +2,7 @@ (), mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter likeUserAdapter!!.onItemClickListener = BaseQuickAdapter.OnItemClickListener { adapter, view, position -> - // RoomOnlineDialogFragment.show(roomId, "", mRoomUserBean, mRoomInfoResp, getSupportFragmentManager()); val fragment = RoomOnlineDialogFragment.show( roomId, "", mRoomUserBean, mRoomInfoResp, supportFragmentManager ) + + LogUtils.e("fragment: ${(fragment != null)}") if (fragment != null) { addActiveDialogFragment(fragment) // 添加到管理列表 } @@ -1560,7 +1561,7 @@ class RoomActivity : BaseMvpActivity(), messageEvent: RoomMessageEvent ) { mRoomInfoResp!!.room_info.pit_list[toPitNumber.toInt() - 1] = getPitBean(messageEvent, 2) - mRoomInfoResp?.room_info?.pit_list!![fromPitNumber.toInt() - 1] = RoomPitBean() + mRoomInfoResp?.room_info?.pit_list!![fromPitNumber.toInt() - 1] = RoomPitBean(fromPitNumber) if ("9" == toPitNumber && messageEvent.text.fromUserInfo.user_id == SpUtil.getUserId()) { mRoomInfoResp!!.user_info.pit_number = Integer.parseInt(toPitNumber) @@ -1673,8 +1674,9 @@ class RoomActivity : BaseMvpActivity(), val userId = fromUserInfo.user_id val currentUserId = SpUtil.getUserId() + + if ("9" == pitNumber && userId == currentUserId) { -// mBinding!!.roomTop.rl.visibility = View.VISIBLE ivSoundEffects(true) } @@ -1720,6 +1722,9 @@ class RoomActivity : BaseMvpActivity(), mBinding!!.rlMore.visibility = View.GONE mBinding!!.rlMisc.visibility = View.GONE + mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = getPitBean(messageEvent, 1) + + roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.handleRoomMessage(messageEvent) } @@ -1765,15 +1770,17 @@ class RoomActivity : BaseMvpActivity(), val roomType = RoomType.fromTypeId(typeId) + when (roomType) { RoomType.AUCTION -> { if ("9" == pitNumber) { + mRoomInfoResp!!.room_info.pit_list[0] = RoomPitBean(pitNumber) if (userId == currentUserId) { if (mRoomInfoResp!!.user_info != null) { mRoomInfoResp!!.user_info.pit_number = 0 } } - } else if ("888" == pitNumber) { + } else if ("888" == pitNumber) {//被拍者 mRoomInfoResp!!.room_auction = null if (userId == currentUserId) { setRoleType(0, 0) @@ -1784,16 +1791,26 @@ class RoomActivity : BaseMvpActivity(), } RoomType.DATING -> { + //TODO 下麦更换数据 val labelId = mRoomInfoResp!!.room_info.label_id if ("1" == labelId) { + mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) + roomFragment!!.upRoomInfoData(mRoomInfoResp) if (mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId()) { ivSoundEffects(false) } } } + RoomType.MUTUAL_ENTERTAINMENT -> { + mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - else -> {} + roomFragment!!.upRoomInfoData(mRoomInfoResp) + roomFragment!!.handleRoomMessage(messageEvent) + } + else -> { + roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) + } } roomFragment!!.handleRoomMessage(messageEvent) } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java index b6151b49..6741541a 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java @@ -239,13 +239,10 @@ public class FriendshipRoomFragment extends BaseRoomFragment 10) { - continue; - } - RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1); + RoomFriendshipWheatView object = mWheatViews.get(i); if (object != null) { object.setData(roomPitBean); } @@ -492,21 +489,15 @@ public class FriendshipRoomFragment extends BaseRoomFragment 10) { - continue; - } - RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1); - if (object != null) { - object.setData(roomPitBean); - break; - } else { - continue; + if (Integer.parseInt(roomPitBean.getUser_id()) == message.getText().getFromUserInfo().getUser_id()){ + RoomFriendshipWheatView object = mWheatViews.get(i); + if (object != null) { + object.setData(roomPitBean); + } } } } @@ -931,14 +922,11 @@ public class FriendshipRoomFragment extends BaseRoomFragment 10) { - continue; - } - RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1); + RoomFriendshipWheatView object = mWheatViews.get(i); if (object != null) { object.setData(roomPitBean); } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/VocalRangeFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/VocalRangeFragment.java index b7458086..00974715 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/VocalRangeFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/VocalRangeFragment.java @@ -230,7 +230,6 @@ public class VocalRangeFragment extends BaseMvpFragment pitList2 = new ArrayList<>(); List pitList3 = new ArrayList<>(); List added = new ArrayList<>(); - if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) { + if (roomInfoResp.getSong_pit_list() != null && !roomInfoResp.getSong_pit_list().isEmpty()) { pitList2.addAll(roomInfoResp.getSong_pit_list()); // 使用 HashSet 进行去重 Set uniquePitSet = new HashSet<>(pitList); @@ -253,7 +253,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment 0) { + if (roomInfoResp.getRoom_auction().getAuction_list() != null && !roomInfoResp.getRoom_auction().getAuction_list().isEmpty()) { for (int i = 0; i < roomInfoResp.getRoom_auction().getAuction_list().size(); i++) { RoomAuction.AuctionListBean auctionListBean = roomInfoResp.getRoom_auction().getAuction_list().get(i); RoomPitBean pitBean = new RoomPitBean(); @@ -287,9 +287,10 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment