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;
+}