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,26 +855,29 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
if (blindReslutBean.getBlind_box_turntable_id() != null) {
blind_box_turntable_id = blindReslutBean.getBlind_box_turntable_id();
}
for (int i = 0; i < blindReslutBean.getReslut_list().size(); i++) {
BlindReslutBean.ReslutList reslutList = blindReslutBean.getReslut_list().get(i);
if (allViewsArray.size()>0) {
for (int i = 0; i < blindReslutBean.getReslut_list().size(); i++) {
BlindReslutBean.ReslutList reslutList = blindReslutBean.getReslut_list().get(i);
for (int j = 0; j < giftLists.size(); j++) {
if (giftLists.get(j).getGift_id().equals(reslutList.getGift_id() + "")) {
targetArrayIndex.add(j);
if (j < giftMaxCount) {
GiftCardView giftCardView = allViewsArray.get(j);
GiftBean giftBean = giftLists.get(j);
giftBean.setCount(reslutList.getCount());
giftCardView.setVisibilitymResultTextView(true);
giftCardView.setSelected(true);
// 不要设置isDrawing=true这会影响动画控制
for (int j = 0; j < giftLists.size(); j++) {
if (giftLists.get(j).getGift_id().equals(reslutList.getGift_id() + "")) {
targetArrayIndex.add(j);
if (j < giftMaxCount) {
GiftCardView giftCardView = allViewsArray.get(j);
GiftBean giftBean = giftLists.get(j);
giftBean.setCount(reslutList.getCount());
giftCardView.setVisibilitymResultTextView(true);
giftCardView.setSelected(true);
// 不要设置isDrawing=true这会影响动画控制
// MvpPre.wallet();
// isDrawing = false;
// MvpPre.giftSend(blind_box_turntable_id);
giftCardView.bindGiftData(giftBean);
giftCardView.bindGiftData(giftBean);
}
}
}
}

View File

@@ -44,7 +44,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
private boolean isLoadEffect = false;
private boolean isShow = true;//是否开启特效
private ReentrantLock lock = new ReentrantLock();
private List<GiftBean> giftArray = new ArrayList<>();
private List<String> giftArray = new ArrayList<>();
public ExecutorService queue = Executors.newSingleThreadExecutor();
private Context mContext;
@@ -84,6 +84,8 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
LogUtils.e("onVideoComplete");
post(() -> {
playerMp4View.setVisibility(View.GONE);
// 通知播放完成
notifyPlaybackComplete();
loadStartSVGAPlayer();
});
@@ -114,18 +116,48 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
svgaView.setDidStartAnimation(this);
}
/// 礼物特效进来 gift为礼物实体类
public void displayEffectView(final GiftBean gift) {
public void displayEffectView1(List<String> stringList){
queue.execute(new Runnable() {
@Override
public void run() {
/// 如果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;
}
/// 将play_image链接转为小写
String playImage = gift.getPlay_image();
String playImage = gift;
String pathExtension = getFileExtension(playImage).toLowerCase();
/// 判定礼物的后缀是否为svga或者mp4如果非这两种 则return
@@ -176,7 +208,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
return;
}
GiftBean giftModel = null;
String giftModel = null;
/// list加锁
lock.lock();
@@ -196,12 +228,12 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
lock.unlock();
}
if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel.getPlay_image())) {
GiftBean finalGiftModel = giftModel;
if (isLoadEffect && giftModel != null && !TextUtils.isEmpty(giftModel)) {
String finalGiftModel = giftModel;
post(new Runnable() {
@Override
public void run() {
String playImage = finalGiftModel.getPlay_image();
String playImage = finalGiftModel;
if (playImage.endsWith("mp4")) {
downloadAndPlay(getContext(), playImage, new DownloadCallback() {
@Override
@@ -233,7 +265,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
post(() -> {
playerMp4View.setVisibility(View.GONE);
svgaView.setVisibility(View.VISIBLE);
svgaView.loadSVGAPlayerWith(finalGiftModel.getPlay_image(), false);
svgaView.loadSVGAPlayerWith(finalGiftModel, false);
});
} else {
lock.lock();
@@ -242,7 +274,7 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
} finally {
lock.unlock();
}
loadStartSVGAPlayer();
// 直接播放缓存文件
}
@@ -344,7 +376,8 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
removeSvgaQueueData();
svgaView.stopEffectSvgaPlay();
playerMp4View.stopPlay();
// 清理监听器
clearPlaybackCompleteListeners();
removeView(playerMp4View);
removeView(svgaView);
svgaView = null;
@@ -383,7 +416,43 @@ public class GiftAnimView extends FrameLayout implements GiftSvgaView.OnAnimatio
public void onFinishedDisplay(GiftSvgaView view) {
post(() -> {
svgaView.setVisibility(View.GONE);
// 通知播放完成
notifyPlaybackComplete();
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 java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
@@ -65,14 +66,20 @@ public class QXGiftPlayerManager {
((ViewGroup) bgEffectView).addView(getDefaultFullEffectView());
((ViewGroup) bgEffectView).addView(getDefaultChatEffectView());
}
public void displayFullEffectView(GiftBean gift) {
public void displayFullEffectView(String 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);
}
public void openOrCloseEffectViewWith(boolean isShow) {
getDefaultFullEffectView().openOrCloseEffectViewWith(isShow);
getDefaultChatEffectView().openOrCloseEffectViewWith(isShow);