diff --git a/app/src/common/res/drawable/bg_719cea_radius_10.xml b/app/src/common/res/drawable/bg_719cea_radius_10.xml new file mode 100644 index 000000000..308f476f6 --- /dev/null +++ b/app/src/common/res/drawable/bg_719cea_radius_10.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/common/res/drawable/bg_bfabf6_radius_10.xml b/app/src/common/res/drawable/bg_bfabf6_radius_10.xml new file mode 100644 index 000000000..f6e4bf29b --- /dev/null +++ b/app/src/common/res/drawable/bg_bfabf6_radius_10.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/common/res/drawable/bg_edbf89_radius_10.xml b/app/src/common/res/drawable/bg_edbf89_radius_10.xml new file mode 100644 index 000000000..530c24a35 --- /dev/null +++ b/app/src/common/res/drawable/bg_edbf89_radius_10.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 700a5970d..ed5f47ffe 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1234,7 +1234,7 @@ + android:value="2" /> - + - + diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index c52da937b..f64f84683 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -157,6 +157,7 @@ public class AVRoomActivity extends BaseMvpActivity { updateView(it) } - private val simpleDateFormat = SimpleDateFormat("HH:mm:ss", Locale.CHINA) + private val simpleDateFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault()) private var disposable: Disposable? = null - private var helpPopupWindow: PopupWindow? = null + private lateinit var helpPopupWindow: PopupWindow + private var roomPkBean: RoomPkBean? = null init { addView(binding.root, LayoutParams(ScreenUtil.dip2px(339f), ScreenUtil.dip2px(233f))) @@ -62,9 +68,30 @@ class RoomPKBoardView @JvmOverloads constructor( } binding.ivDetails.animate().rotationBy(180f).start() } - binding.ivHelp.setOnClickListener { - showHelpPopup(binding.ivHelp) + binding.ivHelp.setOnClickListener { showHelpPopup() } + + binding.ivAvatarLeft.setOnClickListener { + roomPkBean?.let { + RxBus.get().post(ShowUserInfoDialogEvent(it.cUid.toString())) + } } + + binding.ivAvatarRight.setOnClickListener { + roomPkBean?.let { + RxBus.get().post(ShowUserInfoDialogEvent(it.aUid.toString())) + } + } + + binding.tvGoAnotherRoom.setOnClickListener { + roomPkBean?.let { + AVRoomActivity.startForFromType(context, it.aUid, AVRoomActivity.FROM_TYPE_ROOM_PK) + } + } + + binding.tvSendGift.setOnClickListener { + RxBus.get().post(ShowGiftDialogEvent()) + } + } override fun onDetachedFromWindow() { @@ -75,48 +102,58 @@ class RoomPKBoardView @JvmOverloads constructor( @SuppressLint("SetTextI18n") private fun updateView(roomPkBean: RoomPkBean?) { - if (roomPkBean == null) return - binding.tvRoomNameLeft.text = roomPkBean.cTitle - ImageLoadUtils.loadImage(context, roomPkBean.cAvatar, binding.ivAvatarLeft) - binding.viewRankListCharmLeft.updateData(roomPkBean.crRank) - binding.viewRankListContributeLeft.updateData(roomPkBean.csRank) + this.roomPkBean = roomPkBean + binding.tvRoomNameLeft.text = roomPkBean?.cTitle + ImageLoadUtils.loadImage( + context, + roomPkBean?.cAvatar, + binding.ivAvatarLeft, + R.drawable.default_avatar + ) + binding.viewRankListCharmLeft.updateData(roomPkBean?.crRank) + binding.viewRankListContributeLeft.updateData(roomPkBean?.csRank) - binding.tvRoomNameRight.text = roomPkBean.aTitle - ImageLoadUtils.loadImage(context, roomPkBean.aAvatar, binding.ivAvatarRight) - binding.viewRankListCharmRight.updateData(roomPkBean.arRank) - binding.viewRankListContributeRight.updateData(roomPkBean.asRank) + binding.tvRoomNameRight.text = roomPkBean?.aTitle + ImageLoadUtils.loadImage( + context, + roomPkBean?.aAvatar, + binding.ivAvatarRight, + R.drawable.default_avatar + ) + binding.viewRankListCharmRight.updateData(roomPkBean?.arRank) + binding.viewRankListContributeRight.updateData(roomPkBean?.asRank) - binding.pbScore.progress = (roomPkBean.cPercent * 100).toInt() - binding.tvScoreLeft.text = "${roomPkBean.cAmount}" - binding.tvScoreRight.text = "${roomPkBean.aAmount}" + binding.pbScore.progress = ((roomPkBean?.cPercent ?: 0.5) * 100).toInt() + binding.tvScoreLeft.text = "${roomPkBean?.cAmount ?: 0}" + binding.tvScoreRight.text = "${roomPkBean?.aAmount ?: 0}" disposable?.dispose() disposable = Observable.interval(1, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - binding.tvTime.text = - simpleDateFormat.format(roomPkBean.endTime - CurrentTimeUtils.getCurrentTime()) + .subscribe { _ -> + binding.tvTime.text = roomPkBean?.endTime?.let { + TimeUtil.secToTime((it - CurrentTimeUtils.getCurrentTime()).toInt() / 1000) + } ?: "00:00" } } - private fun showHelpPopup(parent: View) { + private fun showHelpPopup() { val contentView: View - if (helpPopupWindow == null) { + if (!this::helpPopupWindow.isInitialized) { contentView = LayoutInflater.from(context).inflate(R.layout.layout_room_pk_help_view, null) helpPopupWindow = PopupWindow(contentView, ScreenUtil.dip2px(244f), ScreenUtil.dip2px(177f)) - helpPopupWindow?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + helpPopupWindow.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + helpPopupWindow.isOutsideTouchable = true + helpPopupWindow.isFocusable = true } - helpPopupWindow?.isOutsideTouchable = true - val vLoc = IntArray(2) - parent.getLocationInWindow(vLoc) try { - helpPopupWindow?.showAtLocation( - binding.root, - Gravity.START, - ScreenUtil.dip2px(75f), - -ScreenUtil.dip2px(33f) + helpPopupWindow.showAsDropDown( + binding.viewHelpAnchor, + 0, + 0, + Gravity.START or Gravity.BOTTOM ) } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKCreateActivity.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKCreateActivity.kt index f0678f1bd..707899b3c 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKCreateActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKCreateActivity.kt @@ -44,7 +44,7 @@ class RoomPKCreateActivity : BaseViewBindingActivity + ivAvatar.setOnClickListener { + ivAvatar.tag?.toString()?.let { + RxBus.get().post(ShowUserInfoDialogEvent(it)) + } + } + } } fun showCharmStyle() { @@ -39,6 +48,7 @@ class RoomPKRankListView @JvmOverloads constructor( ivAvatars[i], R.drawable.default_avatar ) + ivAvatars[i].tag = data?.getOrNull(i)?.uid } } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKSearchActivity.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKSearchActivity.kt index abc24bfe5..93849a79f 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKSearchActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKSearchActivity.kt @@ -89,14 +89,8 @@ class RoomPKSearchActivity : BaseViewBindingActivity() { + + companion object { + @JvmStatic + fun newInstance(pkBean: RoomPkBean): RoomPkFinishDialog { + val args = Bundle() + args.putSerializable("RoomPkBean", pkBean) + val fragment = RoomPkFinishDialog() + fragment.arguments = args + return fragment + } + } + + override var width = WindowManager.LayoutParams.MATCH_PARENT + + private val roomPkBean: RoomPkBean by lazy { requireArguments().getSerializable("RoomPkBean") as RoomPkBean } + + @SuppressLint("CheckResult", "SetTextI18n") + override fun init() { + binding.ivClose.setOnClickListener { dismissAllowingStateLoss() } + binding.tvTitleRed.text = roomPkBean.cTitle + binding.tvValueRed.text = "${roomPkBean.cAmount}" + binding.ivRedWin.isVisible = roomPkBean.cUid == roomPkBean.winUid && roomPkBean.winUid != 0L + ImageLoadUtils.loadImage( + context, + roomPkBean.cAvatar, + binding.ivAvatarRed, + R.drawable.default_avatar + ) + + binding.tvTitleBlue.text = roomPkBean.aTitle + binding.tvValueBlue.text = "${roomPkBean.aAmount}" + binding.ivBlueWin.isVisible = + roomPkBean.cUid != roomPkBean.winUid && roomPkBean.winUid != 0L + ImageLoadUtils.loadImage( + context, + roomPkBean.aAvatar, + binding.ivAvatarBlue, + R.drawable.default_avatar + ) + + roomPkBean.csRank.getOrNull(0)?.let { + binding.tvNickContribute.text = it.nick + binding.tvValueContribute.text = "神豪值:${it.amount}" + ImageLoadUtils.loadImage( + context, + it.avatar, + binding.ivAvatarContribute, + R.drawable.default_avatar + ) + } + + roomPkBean.crRank.getOrNull(0)?.let { + binding.tvNickCharm.text = it.nick + binding.tvValueCharm.text = "魅力值:${it.amount}" + ImageLoadUtils.loadImage( + context, + it.avatar, + binding.ivAvatarCharm, + R.drawable.default_avatar + ) + } + + when (roomPkBean.winUid) { + 0L -> { + binding.viewBg.setBackgroundResource(R.drawable.bg_719cea_radius_10) + binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_deuce) + binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce) + binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce) + binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_deuce) + } + roomPkBean.cUid -> { + binding.viewBg.setBackgroundResource(R.drawable.bg_edbf89_radius_10) + binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_win) + binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win) + binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win) + binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_win) + } + else -> { + binding.viewBg.setBackgroundResource(R.drawable.bg_bfabf6_radius_10) + binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_failed) + binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed) + binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed) + binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_failed) + } + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkReceivedDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkReceivedDialog.kt index 500ffd2ef..a1215ecbd 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkReceivedDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkReceivedDialog.kt @@ -65,7 +65,7 @@ class RoomPkReceivedDialog : BaseDialog() { RoomPKModel.acceptRoomPK(accept, AvRoomDataManager.get().roomUid, pkBean.roundId) .compose(bindToLifecycle()) .subscribe({ - "接受PK邀请成功".toast() + //"接受PK邀请成功".toast() dismissAllowingStateLoss() }, { it.message.toast() diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkRuleDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkRuleDialog.kt new file mode 100644 index 000000000..4525b3ce6 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkRuleDialog.kt @@ -0,0 +1,19 @@ +package com.yizhuan.erban.avroom.anotherroompk + +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.DialogRoomPkRuleBinding + +class RoomPkRuleDialog : BaseDialog() { + + companion object { + + @JvmStatic + fun newInstance(): RoomPkRuleDialog { + return RoomPkRuleDialog() + } + } + + override fun init() { + binding.ivClose.setOnClickListener { dismissAllowingStateLoss() } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java index 514441dc4..038f398be 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java @@ -30,6 +30,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.coorchice.library.SuperTextView; import com.yizhuan.erban.avroom.anotherroompk.RoomPKCreateActivity; +import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog; import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog; import com.yizhuan.erban.avroom.dialog.DatingVipRuleDialog; import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity; @@ -151,6 +152,8 @@ import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo; import com.yizhuan.xchat_android_core.music.model.PlayerModel; import com.yizhuan.xchat_android_core.redpackage.RedPackageModel; import com.yizhuan.xchat_android_core.room.activitytimer.ActivityTimerEvent; +import com.yizhuan.xchat_android_core.room.anotherroompk.ShowGiftDialogEvent; +import com.yizhuan.xchat_android_core.room.anotherroompk.ShowUserInfoDialogEvent; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.event.DatingSelectUserEvent; import com.yizhuan.xchat_android_core.room.event.RoomClearScreenEvent; @@ -482,6 +485,16 @@ public class HomePartyRoomFragment extends BaseMvpFragment onSendGiftBtnClick()); + + RxBus.get().toFlowable(ShowUserInfoDialogEvent.class) + .compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW)) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(event -> showUserCardDialog(event.getUid())); + //最小化恢复时,更新礼物值 if (isRoomMin) { GiftValueMrg.get().updateRoomGiftValue(false); @@ -731,7 +744,9 @@ public class HomePartyRoomFragment extends BaseMvpFragment : RxDialogFragment() { private var _binding: T? = null private var onDismissListener: (() -> Unit)? = null val binding get() = _binding!! - var width = ScreenUtil.getDialogWidth() + open var width = ScreenUtil.getDialogWidth() var height = WindowManager.LayoutParams.WRAP_CONTENT var gravity = Gravity.CENTER diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_deuce.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_deuce.png new file mode 100644 index 000000000..e8322d576 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_deuce.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_failed.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_failed.png new file mode 100644 index 000000000..f1f850341 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_failed.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_deuce.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_deuce.png new file mode 100644 index 000000000..630c6550a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_deuce.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_failed.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_failed.png new file mode 100644 index 000000000..9ccf96228 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_failed.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_win.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_win.png new file mode 100644 index 000000000..1040b3d38 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_rank_win.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_blue.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_blue.png new file mode 100644 index 000000000..df5e36bd5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_blue.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_red.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_red.png new file mode 100644 index 000000000..155a80d96 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_team_red.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_win.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_win.png new file mode 100644 index 000000000..059ed87f5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_finish_win.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_room_pk_rule_dialog.png b/app/src/main/res/drawable-xhdpi/bg_room_pk_rule_dialog.png new file mode 100644 index 000000000..9615f27d3 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_room_pk_rule_dialog.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_charm.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_charm.png new file mode 100644 index 000000000..79b0aab5c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_charm.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close.png new file mode 100644 index 000000000..9e5e60dac Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_deuce.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_deuce.png new file mode 100644 index 000000000..0e1dd9195 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_deuce.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_failed.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_failed.png new file mode 100644 index 000000000..81f40b655 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_failed.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_win.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_win.png new file mode 100644 index 000000000..9e5e60dac Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_close_win.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_contribute.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_contribute.png new file mode 100644 index 000000000..4e38d0e34 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_contribute.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_win.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_win.png new file mode 100644 index 000000000..63f746ba4 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_finish_win.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_logo.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_logo.png new file mode 100644 index 000000000..418620e71 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_logo.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_pk_rule_close.png b/app/src/main/res/drawable-xhdpi/ic_room_pk_rule_close.png new file mode 100644 index 000000000..b4e5f9c2d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_room_pk_rule_close.png differ diff --git a/app/src/main/res/layout/activity_room_pk_search.xml b/app/src/main/res/layout/activity_room_pk_search.xml index 0716d00be..a0cb7e420 100644 --- a/app/src/main/res/layout/activity_room_pk_search.xml +++ b/app/src/main/res/layout/activity_room_pk_search.xml @@ -33,7 +33,7 @@ android:background="@drawable/bg_room_pk_search_edit" android:hint="请输入音游号" android:inputType="number" - android:maxLength="10" + android:maxLength="15" android:paddingStart="20dp" android:paddingEnd="50dp" android:textColor="@color/text_title_white" diff --git a/app/src/main/res/layout/dialog_room_pk_finish.xml b/app/src/main/res/layout/dialog_room_pk_finish.xml new file mode 100644 index 000000000..7019388be --- /dev/null +++ b/app/src/main/res/layout/dialog_room_pk_finish.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_room_pk_received.xml b/app/src/main/res/layout/dialog_room_pk_received.xml index 9c0293b7a..c3ff122eb 100644 --- a/app/src/main/res/layout/dialog_room_pk_received.xml +++ b/app/src/main/res/layout/dialog_room_pk_received.xml @@ -97,6 +97,7 @@ android:text="PK玩法" android:textColor="#ffffffff" android:textSize="14sp" + android:visibility="gone" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_time_title" /> @@ -107,6 +108,7 @@ android:layout_marginStart="15dp" android:textColor="#ffe8e035" android:textSize="16sp" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="@id/tv_desc_title" app:layout_constraintStart_toEndOf="@id/tv_desc_title" app:layout_constraintTop_toTopOf="@id/tv_desc_title" diff --git a/app/src/main/res/layout/dialog_room_pk_rule.xml b/app/src/main/res/layout/dialog_room_pk_rule.xml new file mode 100644 index 000000000..f00ff56c6 --- /dev/null +++ b/app/src/main/res/layout/dialog_room_pk_rule.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_room_pk_board_view.xml b/app/src/main/res/layout/layout_room_pk_board_view.xml index 1e8c5f10f..20d06a7ef 100644 --- a/app/src/main/res/layout/layout_room_pk_board_view.xml +++ b/app/src/main/res/layout/layout_room_pk_board_view.xml @@ -14,7 +14,7 @@ android:layout_height="wrap_content" android:layout_marginTop="5dp" android:includeFontPadding="false" - android:text="01:20:10" + android:text="00:00" android:textColor="#fffff600" android:textSize="16sp" app:layout_constraintEnd_toEndOf="parent" @@ -22,6 +22,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + android:layout_height="wrap_content" + app:constraint_referenced_ids="view_rank_list_charm_right,view_rank_list_contribute_right,view_rank_list_charm_left,view_rank_list_contribute_left,tv_charm_title,tv_contribute_title" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a054c7ef2..ac8e9878a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -904,5 +904,6 @@ 关于&app_name; 并授权&app_name;获取本机号码 1.每轮相亲在“嘉宾交流”阶段累积送礼满999钻石且送礼价值最高的用户自动登上VIP席位;\n\n 2.若出现多个满足上VIP席位要求的用户,VIP席位最终由送礼价值最高的用户获得,若送礼价值相同以最先达到该值的用户为准;\n\n 3.VIP席位的用户可选择是否下麦,其他用户不可因此代替坐上席位; \n\n 4.用户只能在“嘉宾交流”阶段抢夺VIP席位,“嘉宾交流”阶段后直到结束本轮前,即使送出超过之前VIP总礼物价值也不能换人;\n\n 5.每轮相亲结束后VIP席位清空,下一轮重新开始抢位。 - 1)按收到的礼物价值积分(1钻石=1分),礼物值高的一方获胜。\n 2)PK结束后,若比分差距≥1314或双方分数总值≥15000(平局除外)将在与获胜方相同类型的房间公示PK结果;若比分差距≥5200或双方分数总值≥30000(平局除外)将在全服所有房间公示PK结果。 + 1)按收到的礼物价值积分(1钻石=1分),礼物值高的一方获胜。\n 2)PK结束后,若比分差距≥1314或双方分数总值≥15000(平局除外)将在与获胜方相同类型的房间公示PK结果;若比分差距≥5200或双方分数总值≥30000(平局除外)将在全服所有房间公示PK结果。 + 1)只有牌照房房主和超管才可以发起跨房pk,一次只能选择一个牌照房发起;\n 2)只有房主和超管才可以接受或拒绝跨房pk请求,若10秒内不点击pk邀请弹窗,弹窗消失,视为自动拒绝;\n 3)发起pk时需选择pk时间和pk对象,自定义时间下限为5,上限为180,只能填写整数;\n 4)pk发起后,未到pk时间无法自行结束,若有特殊情况需提前结束可联系客服,但本场pk不算胜负。 diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java index dc52c9135..12b1447d9 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/manager/IMNetEaseManager.java @@ -52,7 +52,6 @@ import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.bean.RoomMicInfo; import com.yizhuan.xchat_android_core.bean.RoomQueueInfo; import com.yizhuan.xchat_android_core.bean.attachmsg.RoomQueueMsgAttachment; -import com.yizhuan.xchat_android_core.bean.response.ServiceResult; import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo; import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo; import com.yizhuan.xchat_android_core.exception.ErrorThrowable; @@ -101,7 +100,6 @@ import com.yizhuan.xchat_android_core.magic.bean.MagicInfo; import com.yizhuan.xchat_android_core.magic.toolbox.MagicToolbox; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldDetailInfo; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldDetailInfoWithCurrentMember; -import com.yizhuan.xchat_android_core.miniworld.event.AudioPartyOpenEvent; import com.yizhuan.xchat_android_core.miniworld.event.MiniWorldJoinVerifiedEvent; import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterInfo; import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterProtocol; @@ -273,8 +271,9 @@ import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUS import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_DIAMOND; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ROOM_MSG; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_ACCEPT; +import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_FINISH; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_INVITE; -import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_UPDATA; +import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_UPDATE; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_MONSTER_HUNTING; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ADD_BLACK; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_KICK_ROOM; @@ -1346,9 +1345,13 @@ public final class IMNetEaseManager { noticeRoomEvent(msg, RoomEvent.ROOM_PK_ACCEPT); AvRoomDataManager.get().roomPkLiveData.postValue(roomPKAttachment.getRoomPkBean()); break; - case CUSTOM_MSG_SUB_ROOM_PK_UPDATA: + case CUSTOM_MSG_SUB_ROOM_PK_UPDATE: AvRoomDataManager.get().roomPkLiveData.postValue(roomPKAttachment.getRoomPkBean()); break; + case CUSTOM_MSG_SUB_ROOM_PK_FINISH: + noticeRoomEvent(msg, RoomEvent.ROOM_PK_FINISH); + AvRoomDataManager.get().roomPkLiveData.postValue(null); + break; } break; diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java index 031a26c65..2aaa039bc 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java @@ -397,7 +397,11 @@ public class CustomAttachment implements MsgAttachment { public static final int CUSTOM_MSG_ROOM_PK = 83; public static final int CUSTOM_MSG_SUB_ROOM_PK_INVITE = 831; public static final int CUSTOM_MSG_SUB_ROOM_PK_ACCEPT = 832; - public static final int CUSTOM_MSG_SUB_ROOM_PK_UPDATA = 834; + public static final int CUSTOM_MSG_SUB_ROOM_PK_REFUSE = 833; + public static final int CUSTOM_MSG_SUB_ROOM_PK_UPDATE = 834; + public static final int CUSTOM_MSG_SUB_ROOM_PK_FINISH = 835; + public static final int CUSTOM_MSG_SUB_ROOM_PK_NOTIFY = 836; + public CustomAttachment() { diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java index d100bea97..2264baa51 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java @@ -296,6 +296,7 @@ public final class AvRoomDataManager { mRoomManagerList.clear(); mRoomLimitMemberList.clear(); mRoomNormalMemberList.clear(); + roomSuperAdminList.clear(); } public void clear() { @@ -319,6 +320,7 @@ public final class AvRoomDataManager { myIsInQueue = false; roomNoDestory = false; SuperAdminDataMrg.get().clearData(); + roomPkLiveData.setValue(null); } public boolean isCpRoom() { diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/manager/RoomEvent.java b/core/src/main/java/com/yizhuan/xchat_android_core/manager/RoomEvent.java index ae8a4e57e..02c92b79d 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/manager/RoomEvent.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/manager/RoomEvent.java @@ -212,7 +212,7 @@ public class RoomEvent { public static final int ROOM_PK_INVITE = 72; public static final int ROOM_PK_ACCEPT = 73; - + public static final int ROOM_PK_FINISH = 74; private int event = NONE; private int micPosition = Integer.MIN_VALUE; diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowGiftDialogEvent.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowGiftDialogEvent.java new file mode 100644 index 000000000..2be3710c8 --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowGiftDialogEvent.java @@ -0,0 +1,5 @@ +package com.yizhuan.xchat_android_core.room.anotherroompk; + +public class ShowGiftDialogEvent { + +} diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowUserInfoDialogEvent.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowUserInfoDialogEvent.java new file mode 100644 index 000000000..d4f40cabb --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/anotherroompk/ShowUserInfoDialogEvent.java @@ -0,0 +1,10 @@ +package com.yizhuan.xchat_android_core.room.anotherroompk; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class ShowUserInfoDialogEvent { + private String uid; +}