1、修改交友和轮盘bug和优化

This commit is contained in:
2025-09-16 14:18:59 +08:00
parent a3255c39fb
commit 4e0ea44f21
5 changed files with 115 additions and 36 deletions

View File

@@ -855,6 +855,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
if (blindReslutBean.getBlind_box_turntable_id() != null) { if (blindReslutBean.getBlind_box_turntable_id() != null) {
blind_box_turntable_id = blindReslutBean.getBlind_box_turntable_id(); blind_box_turntable_id = blindReslutBean.getBlind_box_turntable_id();
} }
if (allViewsArray.size()>0) {
for (int i = 0; i < blindReslutBean.getReslut_list().size(); i++) { for (int i = 0; i < blindReslutBean.getReslut_list().size(); i++) {
BlindReslutBean.ReslutList reslutList = blindReslutBean.getReslut_list().get(i); BlindReslutBean.ReslutList reslutList = blindReslutBean.getReslut_list().get(i);
@@ -863,6 +864,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
if (giftLists.get(j).getGift_id().equals(reslutList.getGift_id() + "")) { if (giftLists.get(j).getGift_id().equals(reslutList.getGift_id() + "")) {
targetArrayIndex.add(j); targetArrayIndex.add(j);
if (j < giftMaxCount) { if (j < giftMaxCount) {
GiftCardView giftCardView = allViewsArray.get(j); GiftCardView giftCardView = allViewsArray.get(j);
GiftBean giftBean = giftLists.get(j); GiftBean giftBean = giftLists.get(j);
giftBean.setCount(reslutList.getCount()); giftBean.setCount(reslutList.getCount());
@@ -879,6 +881,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
} }
} }
} }
}
MvpPre.wallet(); MvpPre.wallet();
isDrawing = false; isDrawing = false;
MvpPre.giftSend(blind_box_turntable_id); MvpPre.giftSend(blind_box_turntable_id);

View File

@@ -44,7 +44,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
private boolean isLoadEffect = false; private boolean isLoadEffect = false;
private boolean isShow = true;//是否开启特效 private boolean isShow = true;//是否开启特效
private ReentrantLock lock = new ReentrantLock(); private ReentrantLock lock = new ReentrantLock();
private List<GiftBean> giftArray = new ArrayList<>(); private List<String> giftArray = new ArrayList<>();
public ExecutorService queue = Executors.newSingleThreadExecutor(); public ExecutorService queue = Executors.newSingleThreadExecutor();
private Context mContext; private Context mContext;
@@ -84,6 +84,8 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
LogUtils.e("onVideoComplete"); LogUtils.e("onVideoComplete");
post(() -> { post(() -> {
playerMp4View.setVisibility(View.GONE); playerMp4View.setVisibility(View.GONE);
// 通知播放完成
notifyPlaybackComplete();
loadStartSVGAPlayer(); loadStartSVGAPlayer();
}); });
@@ -114,18 +116,48 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
svgaView.setDidStartAnimation(this); svgaView.setDidStartAnimation(this);
} }
/// 礼物特效进来 gift为礼物实体类 public void displayEffectView1(List<String> stringList){
public void displayEffectView(final GiftBean gift) {
queue.execute(new Runnable() { queue.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
/// 如果play_image不存在return /// 如果play_image不存在return
if (gift == null || gift.getPlay_image().isEmpty()) { if (stringList == null || stringList.isEmpty()) {
return;
}
/// 锁住list
lock.lock();
try {
/// 添加礼物进list
giftArray.addAll(stringList);
/// 如果没有在加载则开始加载
if (!isLoadEffect) {
/// 更改加载状态标记
isLoadEffect = true;
loadStartSVGAPlayer();
}
} finally {
/// 解锁
lock.unlock();
}
}
});
}
/// 礼物特效进来 gift为礼物实体类
public void displayEffectView(final String gift) {
queue.execute(new Runnable() {
@Override
public void run() {
/// 如果play_image不存在return
if (gift == null || gift.isEmpty()) {
return; return;
} }
/// 将play_image链接转为小写 /// 将play_image链接转为小写
String playImage = gift.getPlay_image(); String playImage = gift;
String pathExtension = getFileExtension(playImage).toLowerCase(); String pathExtension = getFileExtension(playImage).toLowerCase();
/// 判定礼物的后缀是否为svga或者mp4如果非这两种 则return /// 判定礼物的后缀是否为svga或者mp4如果非这两种 则return
@@ -176,7 +208,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
return; return;
} }
GiftBean giftModel = null; String giftModel = null;
/// list加锁 /// list加锁
lock.lock(); lock.lock();
@@ -196,12 +228,12 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
lock.unlock(); lock.unlock();
} }
if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel.getPlay_image())) { if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel)) {
GiftBean finalGiftModel = giftModel; String finalGiftModel = giftModel;
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
String playImage = finalGiftModel.getPlay_image(); String playImage = finalGiftModel;
if (playImage.endsWith("mp4")) { if (playImage.endsWith("mp4")) {
downloadAndPlay(getContext(), playImage, new DownloadCallback() { downloadAndPlay(getContext(), playImage, new DownloadCallback() {
@Override @Override
@@ -233,7 +265,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
post(() -> { post(() -> {
playerMp4View.setVisibility(View.GONE); playerMp4View.setVisibility(View.GONE);
svgaView.setVisibility(View.VISIBLE); svgaView.setVisibility(View.VISIBLE);
svgaView.loadSVGAPlayerWith(finalGiftModel.getPlay_image(), false); svgaView.loadSVGAPlayerWith(finalGiftModel, false);
}); });
} else { } else {
lock.lock(); lock.lock();
@@ -242,7 +274,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
} finally { } finally {
lock.unlock(); lock.unlock();
} }
loadStartSVGAPlayer();
// 直接播放缓存文件 // 直接播放缓存文件
} }
@@ -344,7 +376,8 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
removeSvgaQueueData(); removeSvgaQueueData();
svgaView.stopEffectSvgaPlay(); svgaView.stopEffectSvgaPlay();
playerMp4View.stopPlay(); playerMp4View.stopPlay();
// 清理监听器
clearPlaybackCompleteListeners();
removeView(playerMp4View); removeView(playerMp4View);
removeView(svgaView); removeView(svgaView);
svgaView = null; svgaView = null;
@@ -383,7 +416,43 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
public void onFinishedDisplay(GiftSvgaView view) { public void onFinishedDisplay(GiftSvgaView view) {
post(() -> { post(() -> {
svgaView.setVisibility(View.GONE); svgaView.setVisibility(View.GONE);
// 通知播放完成
notifyPlaybackComplete();
loadStartSVGAPlayer(); loadStartSVGAPlayer();
}); });
} }
// 在 GiftAnimView 类中添加播放完成监听接口
public interface OnPlaybackCompleteListener {
void onPlaybackComplete();
}
// 在 GiftAnimView 类中添加成员变量
private List<OnPlaybackCompleteListener> playbackCompleteListeners = new ArrayList<>();
// 在 GiftAnimView 类中添加监听器管理方法
public void addOnPlaybackCompleteListener(OnPlaybackCompleteListener listener) {
if (listener != null && !playbackCompleteListeners.contains(listener)) {
playbackCompleteListeners.add(listener);
}
}
public void removeOnPlaybackCompleteListener(OnPlaybackCompleteListener listener) {
if (listener != null) {
playbackCompleteListeners.remove(listener);
}
}
public void clearPlaybackCompleteListeners() {
playbackCompleteListeners.clear();
}
// 触发播放完成回调的方法
private void notifyPlaybackComplete() {
for (OnPlaybackCompleteListener listener : new ArrayList<>(playbackCompleteListeners)) {
if (listener != null) {
listener.onPlaybackComplete();
}
}
}
} }

View File

@@ -7,6 +7,7 @@ import android.widget.FrameLayout;
import com.xscm.moduleutil.bean.GiftBean; import com.xscm.moduleutil.bean.GiftBean;
import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
@@ -65,14 +66,20 @@ public class QXGiftPlayerManager {
((ViewGroup) bgEffectView).addView(getDefaultFullEffectView()); ((ViewGroup) bgEffectView).addView(getDefaultFullEffectView());
((ViewGroup) bgEffectView).addView(getDefaultChatEffectView()); ((ViewGroup) bgEffectView).addView(getDefaultChatEffectView());
} }
public void displayFullEffectView(GiftBean gift) { public void displayFullEffectView(String gift) {
getDefaultFullEffectView().displayEffectView(gift); getDefaultFullEffectView().displayEffectView(gift);
} }
public void displayChatEffectView(GiftBean gift) { public void displayFullEffectView1(List<String> stringList){
getDefaultFullEffectView().displayEffectView1(stringList);
}
public void displayChatEffectView(String gift) {
getDefaultChatEffectView().displayEffectView(gift); getDefaultChatEffectView().displayEffectView(gift);
} }
public void openOrCloseEffectViewWith(boolean isShow) { public void openOrCloseEffectViewWith(boolean isShow) {
getDefaultFullEffectView().openOrCloseEffectViewWith(isShow); getDefaultFullEffectView().openOrCloseEffectViewWith(isShow);
getDefaultChatEffectView().openOrCloseEffectViewWith(isShow); getDefaultChatEffectView().openOrCloseEffectViewWith(isShow);

View File

@@ -344,49 +344,49 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
RoomPitBean pitBean = mBinding.wheatView9.pitBean; RoomPitBean pitBean = mBinding.wheatView9.pitBean;
if (pitBean.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean.setCharm(""); pitBean.setCharm("");
mBinding.wheatView9.setData(pitBean); mBinding.wheatView9.setCardiac(pitBean.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean1 = mBinding.wheatView10.pitBean; RoomPitBean pitBean1 = mBinding.wheatView10.pitBean;
if (pitBean1.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean1.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean1.setCharm(""); pitBean1.setCharm("");
mBinding.wheatView10.setData(pitBean1); mBinding.wheatView10.setCardiac(pitBean1.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean2 = mBinding.wheatView1.pitBean; RoomPitBean pitBean2 = mBinding.wheatView1.pitBean;
if (pitBean2.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean2.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean2.setCharm(""); pitBean2.setCharm("");
mBinding.wheatView1.setData(pitBean2); mBinding.wheatView1.setCardiac(pitBean2.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean3 = mBinding.wheatView2.pitBean; RoomPitBean pitBean3 = mBinding.wheatView2.pitBean;
if (pitBean3.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean3.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean3.setCharm(""); pitBean3.setCharm("");
mBinding.wheatView2.setData(pitBean3); mBinding.wheatView2.setCardiac(pitBean3.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean4 = mBinding.wheatView3.pitBean; RoomPitBean pitBean4 = mBinding.wheatView3.pitBean;
if (pitBean4.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean4.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean4.setCharm(""); pitBean4.setCharm("");
mBinding.wheatView3.setData(pitBean4); mBinding.wheatView3.setCardiac(pitBean4.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean5 = mBinding.wheatView4.pitBean; RoomPitBean pitBean5 = mBinding.wheatView4.pitBean;
if (pitBean5.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean5.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean5.setCharm(""); pitBean5.setCharm("");
mBinding.wheatView4.setData(pitBean5); mBinding.wheatView4.setCardiac(pitBean5.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean6 = mBinding.wheatView5.pitBean; RoomPitBean pitBean6 = mBinding.wheatView5.pitBean;
if (pitBean6.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean6.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean6.setCharm(""); pitBean6.setCharm("");
mBinding.wheatView5.setData(pitBean6); mBinding.wheatView5.setCardiac(pitBean6.getCharm(),1f);
return; return;
} }
RoomPitBean pitBean7 = mBinding.wheatView6.pitBean; RoomPitBean pitBean7 = mBinding.wheatView6.pitBean;
if (pitBean7.getUser_id().equals(messageEvent.getText().getUser_id())) { if (pitBean7.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean7.setCharm(""); pitBean7.setCharm("");
mBinding.wheatView6.setData(pitBean7); mBinding.wheatView6.setCardiac(pitBean7.getCharm(),1f);
return; return;
} }
} }
@@ -474,6 +474,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1); RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1);
if (object != null) { if (object != null) {
object.setData(roomPitBean); object.setData(roomPitBean);
break;
} else { } else {
continue; continue;
} }

View File

@@ -814,7 +814,6 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
easeChatAdapter.addData(info); easeChatAdapter.addData(info);
scrollToBottomIfNeed(); scrollToBottomIfNeed();
} }
// EventBus.getDefault().post(message);
if (getActivity() instanceof RoomActivity) { if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).roomInfoEvent(message); ((RoomActivity) getActivity()).roomInfoEvent(message);
} }