diff --git a/BaseModule/src/main/assets/prize_call_box_default.svga b/BaseModule/src/main/assets/prize_call_box_default.svga new file mode 100644 index 00000000..4d6b5e72 Binary files /dev/null and b/BaseModule/src/main/assets/prize_call_box_default.svga differ diff --git a/BaseModule/src/main/assets/prize_call_open_box.svga b/BaseModule/src/main/assets/prize_call_open_box.svga new file mode 100644 index 00000000..713da751 Binary files /dev/null and b/BaseModule/src/main/assets/prize_call_open_box.svga differ diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/blindboxwheel/BlindReslutBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/blindboxwheel/BlindReslutBean.java index f59d4877..6b81fae9 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/blindboxwheel/BlindReslutBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/blindboxwheel/BlindReslutBean.java @@ -18,6 +18,10 @@ public class BlindReslutBean { public class ReslutList { private int gift_id;//中奖礼物Id private int count;//中奖礼物数量 + + private String gift_price = ""; + private String gift_name = ""; + private String base_image = ""; } } diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomSettingBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomSettingBean.java index 8e7007c1..e93a2e18 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomSettingBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomSettingBean.java @@ -67,6 +67,7 @@ public class RoomSettingBean implements MultiItemEntity { public static final int QXRoomSettingTypeRoomBusinessTime = 37;//营业时间 public static final int QXRoomSettingTypeRoomBusinessLegend = 38;//炼仙传说 + public static final int QXRoomSettingTypeRoomBusinessLOVE = 39;//爱豆计划 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/dialog/giftLottery/GiftLotteryDialogFragment.java b/BaseModule/src/main/java/com/xscm/moduleutil/dialog/giftLottery/GiftLotteryDialogFragment.java index 20ea95dd..856a715c 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/dialog/giftLottery/GiftLotteryDialogFragment.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/dialog/giftLottery/GiftLotteryDialogFragment.java @@ -115,6 +115,9 @@ public class GiftLotteryDialogFragment extends BaseMvpDialogFragment { }else if (type == 13){ mBinding.clPrize.setBackgroundResource(R.mipmap.xlh); mBinding.imJc.setImageResource(R.mipmap.xlh_jc); + }else if (type == 38){ + mBinding.clPrize.setBackgroundResource(R.mipmap.icon_love_record_bg); + mBinding.imJc.setImageResource(R.mipmap.xlh_jc); } // 根据屏幕密度调整行数和列数 diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_prize.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_prize.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..2fd48155 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_record.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_record.png new file mode 100644 index 00000000..a7b47977 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_love_record.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_record_bg.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_record_bg.png new file mode 100644 index 00000000..8dc7ce25 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_love_record_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_rule.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_rule.png new file mode 100644 index 00000000..8081e1c0 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_love_rule.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_love_station.png b/BaseModule/src/main/res/mipmap-hdpi/icon_love_station.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-hdpi/icon_rule_love_bg.png b/BaseModule/src/main/res/mipmap-hdpi/icon_rule_love_bg.png new file mode 100644 index 00000000..da093d07 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/icon_rule_love_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..e2619717 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..2833debe Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png differ diff --git a/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..c7c9985d Binary files /dev/null and b/BaseModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_prize.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_prize.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..6bea86a9 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record.png new file mode 100644 index 00000000..e76dd528 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record_bg.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record_bg.png new file mode 100644 index 00000000..f6cbc8c9 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_record_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_rule.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_rule.png new file mode 100644 index 00000000..bb53d7ef Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_rule.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_love_station.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_love_station.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xhdpi/icon_rule_love_bg.png b/BaseModule/src/main/res/mipmap-xhdpi/icon_rule_love_bg.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_config.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_config.png new file mode 100644 index 00000000..e2967b49 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_config.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png new file mode 100644 index 00000000..7a7fe388 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png new file mode 100644 index 00000000..28b11b20 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open1.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open1.png new file mode 100644 index 00000000..5038a0da Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open1.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open10.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open10.png new file mode 100644 index 00000000..7b0f3ca4 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open10.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open20.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open20.png new file mode 100644 index 00000000..43051f51 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_open20.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png new file mode 100644 index 00000000..2dcc5a08 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png new file mode 100644 index 00000000..918b2838 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png new file mode 100644 index 00000000..28f86eb8 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png new file mode 100644 index 00000000..3b7c2702 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..4d030078 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..192c9f1e Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..d3870032 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png differ diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_rank.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_rank.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_record.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_box_record.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xhdpi/prize_call_open_box.png b/BaseModule/src/main/res/mipmap-xhdpi/prize_call_open_box.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_prize.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_prize.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..880f586b Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record.png new file mode 100644 index 00000000..e75d743a Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record_bg.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record_bg.png new file mode 100644 index 00000000..320aea9f Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_record_bg.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png new file mode 100644 index 00000000..f1dbe061 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_station.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_love_station.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/icon_rule_love_bg.png b/BaseModule/src/main/res/mipmap-xxhdpi/icon_rule_love_bg.png new file mode 100644 index 00000000..e69de29b diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..9f7c984e Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..fe57f515 Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png differ diff --git a/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..08bd12df Binary files /dev/null and b/BaseModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png differ diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java b/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java index 9b60ab7e..b4e88cf5 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java +++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/HorizontalListAdapter.java @@ -163,6 +163,8 @@ public class HorizontalListAdapter extends RecyclerView.Adapter(context) { + + init { + window?.apply { + setGravity(Gravity.BOTTOM) + } + + setCancelable(false) + setCanceledOnTouchOutside(false) + } + + private var isLottery = false + + private var mRoomId: String = "" + private var mGiftBagId: String = "" + + private var itemAdapter: ItemAdapter? = null + private var itemRecord: ItemRecordAdapter? = null + private var httpError = false + + private var currLottery = 1 + + private var resultList: MutableList = mutableListOf() + + override fun getLayoutId(): Int { + return R.layout.dialog_love_station_draw_layout + } + + override fun initView() { + mBinding.ivClose.setOnClickListener { + dismiss() + } + + mBinding.iv1.setOnClickListener { + lottery(1) + } + + mBinding.iv10.setOnClickListener { + lottery(10) + } + + mBinding.iv20.setOnClickListener { + lottery(20) + } + mBinding.ivOnOrOff.tag = 1 + mBinding.ivOnOrOff.setOnClickListener { + if (mBinding.ivOnOrOff.tag == 1) { + mBinding.ivOnOrOff.tag = 0 + mBinding.ivOnOrOff.setImageResource(R.mipmap.prize_call_box_gift_anim_on) + } else { + mBinding.ivOnOrOff.tag = 1 + mBinding.ivOnOrOff.setImageResource(R.mipmap.prize_call_box_gift_anim_off) + } + } + + itemAdapter = ItemAdapter() + mBinding.recycleView.adapter = itemAdapter + + itemRecord = ItemRecordAdapter() + itemRecord?.setNewData(resultMyRecordList) + mBinding.recyclerMyRecord.adapter = itemRecord + + + mBinding.ivRule.setOnClickListener { + //规则 + val bundle = Bundle() + bundle.putString("url", ruleUrl) + bundle.putInt("type", type) + val dialog = WebViewDialog(ActivityUtils.getTopActivity(), bundle) + dialog.show() + } + + mBinding.ivPrizePool.setOnClickListener { + //奖池 + val prizePoolDialog = PrizePoolDialog(ActivityUtils.getTopActivity()) + prizePoolDialog.updateData(prizePoolList, type) + prizePoolDialog.show() + } + + mBinding.ivMyRecord.setOnClickListener { + //记录 + val giftLotteryDialogFragment = GiftLotteryDialogFragment.newInstance(mGiftBagId) + giftLotteryDialogFragment.show(fragmentManager, "GiftLotteryDialogFragment") + } + + + + mBinding.smartRefresh.setOnLoadMoreListener(object : OnRefreshLoadMoreListener { + override fun onRefresh(refreshLayout: RefreshLayout) { + page = 1 + getMyRecord() + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + page++ + getMyRecord() + } + }) + + } + + private fun lottery(count: Int) { + if (isLottery) { + ToastUtils.showShort("正在抽取中...") + return + } + isLottery = true + + if (mBinding.ivOnOrOff.tag == 1) { + startAnim() + } + currLottery = count + startLottery(mRoomId, mGiftBagId, count.toString()) + } + + override fun initData() { + + } + + + fun show(roomId: String, giftBagId: String) { + super.show() + mRoomId = roomId + mGiftBagId = giftBagId + getUserWallet() + startAnimDefault() + getLottery() + } + + private fun startAnimDefault() { + mBinding.svgaAnimDefault.visibility = View.VISIBLE + // 停止并清除当前动画 + mBinding.svgaAnimDefault.stopAnimation() + mBinding.svgaAnimDefault.clear() + // 使用SVGAParser重新解析 + val parser = SVGAParser(context) + parser.decodeFromAssets("prize_call_box_default.svga", + object : SVGAParser.ParseCompletion { + override fun onComplete(videoItem: SVGAVideoEntity) { + mBinding.svgaAnimDefault.setVideoItem(videoItem) + mBinding.svgaAnimDefault.clearsAfterStop = true + + // 开始动画 + mBinding.svgaAnimDefault.startAnimation() + } + + override fun onError() { + // 处理错误 + } + }) + } + + + private fun startAnim() { + mBinding.svgaAnim.visibility = View.VISIBLE + // 停止并清除当前动画 + mBinding.svgaAnim.stopAnimation() + mBinding.svgaAnim.clear() + + // 使用SVGAParser重新解析 + val parser = SVGAParser(context) + parser.decodeFromAssets("prize_call_open_box.svga", + object : SVGAParser.ParseCompletion { + override fun onComplete(videoItem: SVGAVideoEntity) { + mBinding.svgaAnim.setVideoItem(videoItem) + mBinding.svgaAnim.clearsAfterStop = true + + // 设置回调 + mBinding.svgaAnim.callback = object : SVGACallback { + override fun onFinished() { + isLottery = false + mBinding.svgaAnimDefault.startAnimation() + if (resultList.isNotEmpty()) { +// mBinding.recycleView.visibility = View.VISIBLE +// itemAdapter?.setNewData(resultList) + DialogLoveStationResult(context).show(mRoomId,mGiftBagId,currLottery, resultList, object : DialogLoveStationResult.OnResultListener { + override fun onLottery() { + getUserWallet() + } + }) + } + } + + override fun onPause() {} + override fun onRepeat() {} + override fun onStep(frame: Int, percentage: Double) { + if (frame == 1) { + mBinding.svgaAnimDefault.stopAnimation() + } + } + } + if (httpError) + return + // 开始动画 + mBinding.svgaAnim.startAnimation() + } + + override fun onError() { + // 处理错误 + } + }) + } + + + class ItemAdapter : + BaseQuickAdapter(R.layout.item_lottery_gift_layout) { + override fun convert(helper: BaseViewHolder, item: BlindReslutBean.ReslutList) { + helper.setText(R.id.tv_name, item.gift_name + "x" + item.count) + helper.setText(R.id.tv_price, item.gift_price) + ImageUtils.loadHead(item.base_image, helper.getView(R.id.iv_gift)) + } + } + + + + private fun startLottery(roomId: String, giftBagId: String, num: String) { + RetrofitClient.getInstance().drawGiftList( + giftBagId, + "", + roomId, + num, + "", + "", + object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(t: BlindReslutBean) { + getUserWallet() + resultList.clear() + if (t.reslut_list == null) { + isLottery = false + httpError = true + if (mBinding.svgaAnim.isAnimating) { + mBinding.svgaAnim.stopAnimation() + } + return + } + httpError = false + resultList.addAll(t.reslut_list) + if (mBinding.ivOnOrOff.tag != 1) { + isLottery = false +// mBinding.recycleView.visibility = View.VISIBLE +// itemAdapter?.setNewData(resultList) + DialogLoveStationResult(context).show(mRoomId,mGiftBagId,currLottery, resultList, object : DialogLoveStationResult.OnResultListener { + override fun onLottery() { + getUserWallet() + } + }) + } + } + + }) + } + + private var ruleUrl = "" + private var type = 38 + private var prizePoolList:MutableList? = null + + private fun getUserWallet() { + RetrofitClient.getInstance().wallet(object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(t: WalletBean) { + mBinding.tvCount.text = t.coin + } + }) + } + + private var page = 1 + private var pageSize = 30 + private var resultMyRecordList: MutableList = mutableListOf() + + + private fun getMyRecord() { + RetrofitClient.getInstance().getMyRecord( + mGiftBagId, + page.toString(), + pageSize.toString(), + object : BaseObserver>() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(giftBean: List) { + mBinding.smartRefresh.finishRefresh() + mBinding.smartRefresh.finishLoadMore() + + if (giftBean.isNotEmpty()){ + return + } + + if (page == 1) { + resultMyRecordList.clear() + itemRecord?.setNewData(resultMyRecordList) + } + resultMyRecordList.addAll(giftBean) + itemRecord?.notifyDataSetChanged() + } + }) + } + + class ItemRecordAdapter : + BaseQuickAdapter(R.layout.item_lottery_gift_layout) { + override fun convert(helper: BaseViewHolder, item: GiftBean) { + helper.setText(R.id.tv_name, item.gift_name + "x" + item.count) + helper.setText(R.id.tv_price, item.gift_price) + ImageUtils.loadHead(item.base_image, helper.getView(R.id.iv_gift)) + } + } + + + private fun getLottery(){ + RetrofitClient.getInstance().getBoxGiftList(mGiftBagId, mRoomId, object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + + } + + @SuppressLint("SetTextI18n") + override fun onNext(blindBoxBeans: BlindBoxBean) { + val oneLottery = blindBoxBeans.box_price + + ruleUrl = blindBoxBeans.rule_url + prizePoolList = blindBoxBeans.gift_list + + mBinding.tv1.text = oneLottery.toString() + mBinding.tv10.text = (oneLottery * 10).toString() + mBinding.tv20.text = (oneLottery * 20).toString() + } + }) + } + + +} \ No newline at end of file diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/DialogLoveStationResult.kt b/MainModule/src/main/java/com/xscm/modulemain/dialog/DialogLoveStationResult.kt new file mode 100644 index 00000000..7d956df4 --- /dev/null +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/DialogLoveStationResult.kt @@ -0,0 +1,234 @@ +package com.xscm.modulemain.dialog + +import android.content.Context +import android.view.Gravity +import android.view.View +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.scwang.smartrefresh.layout.api.RefreshLayout +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener +import com.xscm.modulemain.R +import com.xscm.modulemain.databinding.DialogLoveStationDrawResultLayoutBinding +import com.xscm.moduleutil.bean.GiftBean +import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean +import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean +import com.xscm.moduleutil.dialog.giftLottery.GiftLotteryContacts +import com.xscm.moduleutil.http.BaseObserver +import com.xscm.moduleutil.http.RetrofitClient +import com.xscm.moduleutil.utils.ImageUtils +import com.xscm.moduleutil.widget.dialog.BaseDialog +import io.reactivex.disposables.Disposable +import java.lang.ref.WeakReference + +class DialogLoveStationResult(context: Context) : + BaseDialog(context) { + + init { + window?.apply { + setGravity(Gravity.CENTER) + } + + setCancelable(false) + setCanceledOnTouchOutside(false) + } + + + private var mRoomId: String = "" + private var mGiftBagId: String = "" + + private var count = 0 + + private var itemAdapter: ItemAdapter? = null + private var httpError = false + + private var resultList: MutableList = mutableListOf() + + private var listener: OnResultListener? = null + + + interface OnResultListener { + fun onLottery() + } + + override fun getLayoutId(): Int { + return R.layout.dialog_love_station_draw_result_layout + } + + override fun initView() { + mBinding.ivClose.setOnClickListener { + dismiss() + } + mBinding.ivCloseA.setOnClickListener { + dismiss() + } + + mBinding.ivLottery1.setOnClickListener { + lottery(1) + } + + mBinding.ivLottery.setOnClickListener { + lottery(count) + } + + itemAdapter = ItemAdapter() + mBinding.recyclerMyRecord.adapter = itemAdapter + } + + override fun initData() { + } + + private fun lottery(count: Int) { + startLottery(mRoomId, mGiftBagId, count.toString()) + } + + + fun show(roomId: String, giftBagId: String, count: Int,resultList:MutableList, listener: OnResultListener) { + super.show() + mRoomId = roomId + mGiftBagId = giftBagId + this.listener = listener + this.resultList = resultList + this.count = count + if (resultList.isNullOrEmpty()){ + + }else{ + itemAdapter?.setNewData(resultList) + } + if (count == 0){ + mBinding.smartRefresh.setOnLoadMoreListener(object : OnRefreshLoadMoreListener { + override fun onRefresh(refreshLayout: RefreshLayout) { + page = 1 + getMyRecord() + } + + override fun onLoadMore(refreshLayout: RefreshLayout) { + page++ + getMyRecord() + } + }) + }else{ + mBinding.smartRefresh.setEnableRefresh(false) + mBinding.smartRefresh.setEnableLoadMore(false) + + if (count == 1){ + mBinding.ctl1.visibility = View.GONE + mBinding.ctl2.visibility = View.VISIBLE + + ImageUtils.loadHead(resultList[0].base_image,mBinding.ivGift) + mBinding.tvName.text = resultList[0].gift_name + }else{ + mBinding.ctl1.visibility = View.VISIBLE + mBinding.ctl2.visibility = View.GONE + + if (count == 10){ + mBinding.ivLottery.setImageResource(R.mipmap.prize_award_open10) + }else if (count == 20){ + mBinding.ivLottery.setImageResource(R.mipmap.prize_award_open20) + } + + itemAdapter = ItemAdapter() + mBinding.recyclerMyRecord.adapter = itemAdapter + itemAdapter?.setNewData(resultList) + } + } + } + + + class ItemAdapter : + BaseQuickAdapter(R.layout.item_lottery_gift_layout) { + override fun convert(helper: BaseViewHolder, item: BlindReslutBean.ReslutList) { + helper.setText(R.id.tv_name, item.gift_name + "x" + item.count) + helper.setText(R.id.tv_price, item.gift_price) + ImageUtils.loadHead(item.base_image, helper.getView(R.id.iv_gift)) + } + } + + private fun startLottery(roomId: String, giftBagId: String, num: String) { + RetrofitClient.getInstance().drawGiftList( + giftBagId, + "", + roomId, + num, + "", + "", + object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(t: BlindReslutBean) { + listener?.onLottery() + + if (count == 1){ + ImageUtils.loadHead(t.reslut_list[0].base_image,mBinding.ivGift) + mBinding.tvName.text = t.reslut_list[0].gift_name + + mBinding.ivGift.animate() + .scaleX(1.5f) + .scaleY(1.5f) + .setDuration(250) + .withEndAction { + mBinding.ivGift.animate() + .scaleX(1f) + .scaleY(1f) + .setDuration(250) + .start() + } + .start() + }else{ + resultList.clear() + if (t.reslut_list == null) { + httpError = true + return + } + httpError = false + resultList.addAll(t.reslut_list) + itemAdapter?.setNewData(resultList) + } + } + }) + } + + + private var page = 1 + private var pageSize = 30 + private var resultMyRecordList: MutableList = mutableListOf() + + + private fun getMyRecord() { + RetrofitClient.getInstance().getMyRecord( + mGiftBagId, + page.toString(), + pageSize.toString(), + object : BaseObserver>() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(giftBean: List) { + mBinding.smartRefresh.finishRefresh() + mBinding.smartRefresh.finishLoadMore() + + if (giftBean.isNotEmpty()) { + return + } + if (page == 1) { + resultMyRecordList.clear() + } + resultMyRecordList.addAll(giftBean) + } + }) + } + + class ItemRecordAdapter : + BaseQuickAdapter(R.layout.item_lottery_gift_layout) { + override fun convert(helper: BaseViewHolder, item: GiftBean) { + helper.setText(R.id.tv_name, item.gift_name + "x" + item.count) + helper.setText(R.id.tv_price, item.gift_price) + ImageUtils.loadHead(item.base_image, helper.getView(R.id.iv_gift)) + } + } + + + +} \ No newline at end of file diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/RoomSettingFragment.java b/MainModule/src/main/java/com/xscm/modulemain/dialog/RoomSettingFragment.java index 1a008ff2..deb7affc 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/RoomSettingFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/RoomSettingFragment.java @@ -1,5 +1,6 @@ package com.xscm.modulemain.dialog; +import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessLOVE; import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessLegend; import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessTime; import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomOrderMic; @@ -530,6 +531,8 @@ public class RoomSettingFragment extends BaseMvpDialogFragment { }else if (type==13){ mBinding.gzCl.setBackgroundResource(R.mipmap.xlh); mBinding.imGz.setImageResource(R.mipmap.xlh_gz); + }else if (type==38){ + mBinding.gzCl.setBackgroundResource(R.mipmap.icon_love_record_bg); + mBinding.imGz.setImageResource(R.mipmap.xlh_gz); } } diff --git a/MainModule/src/main/res/layout/dialog_love_station_draw_layout.xml b/MainModule/src/main/res/layout/dialog_love_station_draw_layout.xml new file mode 100644 index 00000000..6d9f3dc4 --- /dev/null +++ b/MainModule/src/main/res/layout/dialog_love_station_draw_layout.xml @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainModule/src/main/res/layout/dialog_love_station_draw_result_layout.xml b/MainModule/src/main/res/layout/dialog_love_station_draw_result_layout.xml new file mode 100644 index 00000000..3336a083 --- /dev/null +++ b/MainModule/src/main/res/layout/dialog_love_station_draw_result_layout.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainModule/src/main/res/layout/item_lottery_gift_layout.xml b/MainModule/src/main/res/layout/item_lottery_gift_layout.xml index d0bb39d1..270e9df8 100644 --- a/MainModule/src/main/res/layout/item_lottery_gift_layout.xml +++ b/MainModule/src/main/res/layout/item_lottery_gift_layout.xml @@ -4,31 +4,46 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginHorizontal="@dimen/dp_4" - android:layout_marginBottom="@dimen/dp_8" - android:background="@drawable/select_item_click" - android:backgroundTint="#33E9E9E9" - android:paddingHorizontal="@dimen/dp_25" - android:paddingVertical="@dimen/dp_18"> + android:layout_marginStart="@dimen/dp_10"> + + + + + diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png b/MainModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..2fd48155 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_love_prize_pool.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_love_record.png b/MainModule/src/main/res/mipmap-hdpi/icon_love_record.png new file mode 100644 index 00000000..a7b47977 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_love_record.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_love_rule.png b/MainModule/src/main/res/mipmap-hdpi/icon_love_rule.png new file mode 100644 index 00000000..8081e1c0 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_love_rule.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_love_station.png b/MainModule/src/main/res/mipmap-hdpi/icon_love_station.png new file mode 100644 index 00000000..af3532f9 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_love_station.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..e2619717 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_1.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..2833debe Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_10.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..c7c9985d Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/prize_call_box_open_20.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png b/MainModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..6bea86a9 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_love_prize_pool.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_love_record.png b/MainModule/src/main/res/mipmap-xhdpi/icon_love_record.png new file mode 100644 index 00000000..e76dd528 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_love_record.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_love_rule.png b/MainModule/src/main/res/mipmap-xhdpi/icon_love_rule.png new file mode 100644 index 00000000..bb53d7ef Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_love_rule.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_love_station.png b/MainModule/src/main/res/mipmap-xhdpi/icon_love_station.png new file mode 100644 index 00000000..aa8dd4a6 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_love_station.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_config.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_config.png new file mode 100644 index 00000000..e2967b49 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_config.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png new file mode 100644 index 00000000..7a7fe388 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_bg.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png new file mode 100644 index 00000000..28b11b20 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_multiple_item.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_open1.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open1.png new file mode 100644 index 00000000..5038a0da Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open1.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_open10.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open10.png new file mode 100644 index 00000000..7b0f3ca4 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open10.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_open20.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open20.png new file mode 100644 index 00000000..43051f51 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_open20.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png new file mode 100644 index 00000000..2dcc5a08 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_single_bg.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_award_tittle.png b/MainModule/src/main/res/mipmap-xhdpi/prize_award_tittle.png new file mode 100644 index 00000000..641fb8ef Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_award_tittle.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_bg.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_bg.png new file mode 100644 index 00000000..797108e3 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_bg.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png new file mode 100644 index 00000000..918b2838 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png new file mode 100644 index 00000000..28f86eb8 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_off.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png new file mode 100644 index 00000000..3b7c2702 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_gift_anim_on.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..4d030078 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_1.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..192c9f1e Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_10.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..d3870032 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_open_20.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_rank.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_rank.png new file mode 100644 index 00000000..8b221331 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_rank.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_record.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_record.png new file mode 100644 index 00000000..7f4194bd Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_box_record.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/prize_call_open_box.png b/MainModule/src/main/res/mipmap-xhdpi/prize_call_open_box.png new file mode 100644 index 00000000..abb73519 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/prize_call_open_box.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png new file mode 100644 index 00000000..880f586b Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_prize_pool.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_love_record.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_record.png new file mode 100644 index 00000000..e75d743a Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_record.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png new file mode 100644 index 00000000..f1dbe061 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_rule.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_love_station.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_station.png new file mode 100644 index 00000000..c4e66441 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_love_station.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png new file mode 100644 index 00000000..9f7c984e Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_1.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png new file mode 100644 index 00000000..fe57f515 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_10.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png new file mode 100644 index 00000000..08bd12df Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/prize_call_box_open_20.png differ