1、修改交友和轮盘bug和优化
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -344,49 +344,49 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
RoomPitBean pitBean = mBinding.wheatView9.pitBean;
|
||||
if (pitBean.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean.setCharm("");
|
||||
mBinding.wheatView9.setData(pitBean);
|
||||
mBinding.wheatView9.setCardiac(pitBean.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean1 = mBinding.wheatView10.pitBean;
|
||||
if (pitBean1.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean1.setCharm("");
|
||||
mBinding.wheatView10.setData(pitBean1);
|
||||
mBinding.wheatView10.setCardiac(pitBean1.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean2 = mBinding.wheatView1.pitBean;
|
||||
if (pitBean2.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean2.setCharm("");
|
||||
mBinding.wheatView1.setData(pitBean2);
|
||||
mBinding.wheatView1.setCardiac(pitBean2.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean3 = mBinding.wheatView2.pitBean;
|
||||
if (pitBean3.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean3.setCharm("");
|
||||
mBinding.wheatView2.setData(pitBean3);
|
||||
mBinding.wheatView2.setCardiac(pitBean3.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean4 = mBinding.wheatView3.pitBean;
|
||||
if (pitBean4.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean4.setCharm("");
|
||||
mBinding.wheatView3.setData(pitBean4);
|
||||
mBinding.wheatView3.setCardiac(pitBean4.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean5 = mBinding.wheatView4.pitBean;
|
||||
if (pitBean5.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean5.setCharm("");
|
||||
mBinding.wheatView4.setData(pitBean5);
|
||||
mBinding.wheatView4.setCardiac(pitBean5.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean6 = mBinding.wheatView5.pitBean;
|
||||
if (pitBean6.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean6.setCharm("");
|
||||
mBinding.wheatView5.setData(pitBean6);
|
||||
mBinding.wheatView5.setCardiac(pitBean6.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
RoomPitBean pitBean7 = mBinding.wheatView6.pitBean;
|
||||
if (pitBean7.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean7.setCharm("");
|
||||
mBinding.wheatView6.setData(pitBean7);
|
||||
mBinding.wheatView6.setCardiac(pitBean7.getCharm(),1f);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -474,6 +474,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1);
|
||||
if (object != null) {
|
||||
object.setData(roomPitBean);
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -814,7 +814,6 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
|
||||
easeChatAdapter.addData(info);
|
||||
scrollToBottomIfNeed();
|
||||
}
|
||||
// EventBus.getDefault().post(message);
|
||||
if (getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).roomInfoEvent(message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user