diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/GiftV2View.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/GiftV2View.java index 236a87c0f..9f6542d31 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/GiftV2View.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/GiftV2View.java @@ -291,7 +291,7 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect } } - private void drawLuckyGift(GiftReceiveInfo giftReceiveInfos, int giftReceiveType, boolean isShowAnimation, String svgaUrl) { + private void drawLuckyGift(GiftReceiveInfo giftReceiveInfos, int giftReceiveType, boolean isShowAnimation, String svgaUrl, int pos) { RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; if (roomInfo != null) { List targetUsers = new ArrayList<>(); @@ -306,11 +306,11 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect }, 1800); } - handler.postDelayed(() -> drawLuckyGiftAnimation(roomInfo, giftReceiveInfos, totalCoin, targetUsers, giftReceiveType, isShowAnimation), 1200); + handler.postDelayed(() -> drawLuckyGiftAnimation(roomInfo, giftReceiveInfos, totalCoin, targetUsers, giftReceiveType, isShowAnimation, pos), 1200); } } - private void drawLuckyGiftAnimation(RoomInfo roomInfo, GiftReceiveInfo giftReceiveInfo, int totalCoin, List targetUsers, int giftReceiveType, boolean isShowAnimation) { + private void drawLuckyGiftAnimation(RoomInfo roomInfo, GiftReceiveInfo giftReceiveInfo, int totalCoin, List targetUsers, int giftReceiveType, boolean isShowAnimation, int pos) { SparseArray micViewPoint = AvRoomDataManager.get().mMicPointMap; GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftReceiveInfo.getGiftId()); if (giftInfo == null || TextUtils.isEmpty(giftInfo.getGiftUrl())) { @@ -353,7 +353,7 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect giftReceiver.setNick(giftReceiveInfo.getTargetNick()); targetUsers.add(giftReceiver); if (!isShowAnimation) return; - giftInfo = giftReceiveInfo.getDisplayGift().get(0); + giftInfo = giftReceiveInfo.getDisplayGift().get(pos); if (totalCoin >= 520 || (giftInfo != null && giftInfo.isHasEffect())) { Message msg = Message.obtain(); msg.what = 0; @@ -361,14 +361,13 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect giftEffectInfo.setUid(giftReceiveInfo.getUid()); giftEffectInfo.setNick(giftReceiveInfo.getNick()); giftEffectInfo.setAvatar(giftReceiveInfo.getAvatar()); - giftEffectInfo.setGiftId(giftReceiveInfo.getDisplayGift().get(0).getGiftId()); + giftEffectInfo.setGiftId(giftReceiveInfo.getDisplayGift().get(pos).getGiftId()); giftEffectInfo.setGiftNum(giftReceiveInfo.getGiftNum()); giftEffectInfo.setGift(giftInfo); giftEffectInfo.setTargetUsers(targetUsers); giftEffectInfo.setGiftReceiveType(giftReceiveType); msg.obj = giftEffectInfo; handler.sendMessageDelayed(msg, 200); - } } @@ -427,19 +426,22 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect public void onReceiveLuckyGiftToMultiMsg(LuckyBagGifts giftMultiReceiverInfo) { if (giftMultiReceiverInfo != null) { setVisibility(VISIBLE); - GiftReceiveInfo giftReceiveInfo = new GiftReceiveInfo(); - giftReceiveInfo.setUid(giftMultiReceiverInfo.getUid()); - giftReceiveInfo.setTargetNick(giftMultiReceiverInfo.getUser().getNick()); - giftReceiveInfo.setTargetUid(giftMultiReceiverInfo.getUser().getUid()); - giftReceiveInfo.setGiftNum(giftMultiReceiverInfo.getGiftNum()); - giftReceiveInfo.setDisplayGift(giftMultiReceiverInfo.getDisplayGift()); - giftReceiveInfo.setNick(giftMultiReceiverInfo.getNick()); - giftReceiveInfo.setGiftId(giftMultiReceiverInfo.getGiftList().get(0).getGiftId()); - giftReceiveInfo.setGift(giftMultiReceiverInfo.getDisplayGift().get(0)); - //礼物值 - giftReceiveInfo.setGiftValueVos(giftMultiReceiverInfo.getGiftValueVos()); - giftReceiveInfo.setCurrentTime(giftMultiReceiverInfo.getCurrentTime()); - drawLuckyGift(giftReceiveInfo, GiftEffectInfo.GIFT_RECEIVE_TYPE_LUCKY, giftMultiReceiverInfo.isShowAnimation(), giftMultiReceiverInfo.getLuckyGiftSvgaUrl()); + int size = Math.min(giftMultiReceiverInfo.getDisplayGift().size(), 6); + for (int i = 0; i < size; i++) { + GiftReceiveInfo giftReceiveInfo = new GiftReceiveInfo(); + giftReceiveInfo.setUid(giftMultiReceiverInfo.getUid()); + giftReceiveInfo.setTargetNick(giftMultiReceiverInfo.getUser().getNick()); + giftReceiveInfo.setTargetUid(giftMultiReceiverInfo.getUser().getUid()); + giftReceiveInfo.setGiftNum(giftMultiReceiverInfo.getGiftNum()); + giftReceiveInfo.setDisplayGift(giftMultiReceiverInfo.getDisplayGift()); + giftReceiveInfo.setNick(giftMultiReceiverInfo.getNick()); + giftReceiveInfo.setGiftId(giftMultiReceiverInfo.getGiftList().get(0).getGiftId()); + giftReceiveInfo.setGift(giftMultiReceiverInfo.getDisplayGift().get(i)); + //礼物值 + giftReceiveInfo.setGiftValueVos(giftMultiReceiverInfo.getGiftValueVos()); + giftReceiveInfo.setCurrentTime(giftMultiReceiverInfo.getCurrentTime()); + drawLuckyGift(giftReceiveInfo, GiftEffectInfo.GIFT_RECEIVE_TYPE_LUCKY, giftMultiReceiverInfo.isShowAnimation(), giftMultiReceiverInfo.getLuckyGiftSvgaUrl(), i); + } } } @@ -549,9 +551,10 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect /** * 获取当前是否有飘屏正在显示 + * * @return */ - public boolean getIsAnim(){ + public boolean getIsAnim() { return giftEffectView.isAnim(); } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt index 5773c8937..24c729a6e 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt @@ -1240,7 +1240,7 @@ class RoomEffectBoxView @JvmOverloads constructor( .observeOn(AndroidSchedulers.mainThread()) .takeWhile { messagesRoomPK.size > 0 } .subscribe { - if(binding.flRoomPkNotify.childCount == 0) { + if (binding.flRoomPkNotify.childCount == 0) { showRoomPKNotify(messagesRoomPK.removeAt(0)) } } @@ -1286,7 +1286,7 @@ class RoomEffectBoxView @JvmOverloads constructor( .observeOn(AndroidSchedulers.mainThread()) .takeWhile { messagesSingleRoomPK.size > 0 } .subscribe { - if(binding.flSingleRoomPkNotify.childCount == 0) { + if (binding.flSingleRoomPkNotify.childCount == 0) { showSingleRoomPKNotify(messagesSingleRoomPK.removeAt(0)) } } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt index 1aa488a1d..2b4910e73 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt @@ -31,6 +31,7 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity import com.yizhuan.erban.avroom.helper.AnimHelper import com.yizhuan.erban.common.svga.SimpleSvgaCallback import com.yizhuan.erban.databinding.LayoutRoomEffectBinding +import com.yizhuan.erban.treasurefairy.HomeFairyActivity import com.yizhuan.erban.ui.utils.ImageLoadUtils import com.yizhuan.erban.ui.utils.isDestroyed import com.yizhuan.erban.ui.utils.load @@ -163,23 +164,19 @@ class RoomEffectView @JvmOverloads constructor( .subscribe { roomEvent: RoomEvent? -> if (roomEvent == null || AvRoomDataManager.get().isSelfGamePlaying) return@subscribe when (roomEvent.event) { - RoomEvent.BOX_NOTIFY -> { - if ((mContext as AVRoomActivity).isTopActivity) { - addBoxNotify(roomEvent.chatRoomMessage) - } + RoomEvent.BOX_NOTIFY -> {//寻爱 + addBoxNotify(roomEvent.chatRoomMessage) } + RoomEvent.BOX_NOTIFY_SVGA -> {//寻爱svga + addBoxNotifyBySVGA(roomEvent.chatRoomMessage) + } + RoomEvent.RECEIVE_ROOM_LUCKY_BAG_NOTICE, RoomEvent.RECEIVE_SERVICE_LUCKY_BAG_NOTICE ->//全服福袋 + //廳內福袋 + addLuckyBagNotify(roomEvent.chatRoomMessage) RoomEvent.DATING_ALL_NOTIFY -> addDatingAllNotify(roomEvent.chatRoomMessage) - RoomEvent.BOX_NOTIFY_SVGA -> { - if ((mContext as AVRoomActivity).isTopActivity) { - addBoxNotifyBySVGA(roomEvent.chatRoomMessage) - } - } RoomEvent.RADISH_NOTIFY, RoomEvent.RADISH_NOTIFY_SVGA -> addRadishNotify(roomEvent.chatRoomMessage) RoomEvent.ROOM_GIFT_COMPOUND -> addGiftCompoundNotify(roomEvent.chatRoomMessage) - RoomEvent.RECEIVE_ROOM_LUCKY_BAG_NOTICE, RoomEvent.RECEIVE_SERVICE_LUCKY_BAG_NOTICE -> //全服福袋 - //廳內福袋 - addLuckyBagNotify(roomEvent.chatRoomMessage) RoomEvent.DATING_PUBLISH_RESULT -> showHandAnim((roomEvent.chatRoomMessage.attachment as DatingAttachment).datingNotifyInfo) RoomEvent.RECEIVE_MEMBER_IN_NOTICE -> //進入房間 addMemberInNotify(roomEvent.chatRoomMessage) @@ -802,12 +799,10 @@ class RoomEffectView @JvmOverloads constructor( .observeOn(AndroidSchedulers.mainThread()) .takeWhile { messagesBoxSVGA.size > 0 } .subscribe { - if ((mContext as AVRoomActivity).isTopActivity) { - if (binding.flSvgaBoxNotify.childCount == 0) { - showBoxNotifyBySVGA( - messagesBoxSVGA.removeAt(0) - ) - } + if (binding.flSvgaBoxNotify.childCount == 0) { + showBoxNotifyBySVGA( + messagesBoxSVGA.removeAt(0) + ) } } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/viewpager/ScrollViewPager.java b/app/src/main/java/com/yizhuan/erban/ui/widget/viewpager/ScrollViewPager.java new file mode 100644 index 000000000..88e293e37 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/viewpager/ScrollViewPager.java @@ -0,0 +1,27 @@ +package com.yizhuan.erban.ui.widget.viewpager; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; + +import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView; + +public class ScrollViewPager extends RollPagerView { + public ScrollViewPager(Context context) { + super(context); + } + + public ScrollViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public ScrollViewPager(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + getParent().requestDisallowInterceptTouchEvent(true); //设置不拦截 + return super.dispatchTouchEvent(ev); + } +} diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index c1432a2db..d9adb3498 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -42,7 +42,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> -