跨房PK:PK结果弹窗

This commit is contained in:
huangjian
2021-11-11 19:01:55 +08:00
parent 5c99b5bf6b
commit 2e49955e7d
44 changed files with 639 additions and 76 deletions

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="#FF719CEA"/>
</shape>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="#FFBFABF6"/>
</shape>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="#FFEDBF89"/>
</shape>

View File

@@ -1234,7 +1234,7 @@
<meta-data
android:name="flutterEmbedding"
android:value="2"/>
android:value="2" />
<activity
android:name=".module_hall.hall.activity.SuperAdminManageActivity"
@@ -1245,11 +1245,15 @@
<activity android:name=".module_hall.hall.activity.SuperAdminRoomSetActivity" />
<activity android:name=".avroom.anotherroompk.RoomPKCreateActivity"
android:theme="@style/dialog_web_view_activity"/>
<activity
android:name=".avroom.anotherroompk.RoomPKCreateActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<activity android:name=".avroom.anotherroompk.RoomPKSearchActivity"
android:theme="@style/dialog_web_view_activity"/>
<activity
android:name=".avroom.anotherroompk.RoomPKSearchActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
</application>

View File

@@ -157,6 +157,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
public static final int FROM_TYPE_USER = 2;//跟随用户进房
public static final int FROM_TYPE_ALL_RED = 5;//通过全服红包进房
public static final int FROM_TYPE_GAME_RECOMMEND = 8;//赛事详情进房
public static final int FROM_TYPE_ROOM_PK = 9;//跨房PK进房
private static final String TAG = "AVRoomActivity";
private static final String GAME_INFO = "gameInfo";
private static final String GAME_URL = "gameUrl";

View File

@@ -14,12 +14,17 @@ import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.Observer
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nim.uikit.common.util.sys.TimeUtil
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.databinding.LayoutRoomPkBoardViewBinding
import com.yizhuan.erban.ui.utils.ImageLoadUtils
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.room.anotherroompk.ShowGiftDialogEvent
import com.yizhuan.xchat_android_core.room.anotherroompk.ShowUserInfoDialogEvent
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
import com.yizhuan.xchat_android_library.rxbus.RxBus
import com.yizhuan.xchat_android_library.utils.CommonUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -34,9 +39,10 @@ class RoomPKBoardView @JvmOverloads constructor(
private val binding = LayoutRoomPkBoardViewBinding.inflate(LayoutInflater.from(context))
private val observer = Observer<RoomPkBean> { 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()

View File

@@ -44,7 +44,7 @@ class RoomPKCreateActivity : BaseViewBindingActivity<ActivityRoomPkCreateBinding
)
window.setGravity(Gravity.BOTTOM)
binding.ivHelp.setOnClickListener {
RoomPkRuleDialog.newInstance().show(this)
}
binding.ivAddPkRoom.setOnClickListener {
@@ -118,7 +118,7 @@ class RoomPKCreateActivity : BaseViewBindingActivity<ActivityRoomPkCreateBinding
currSimpleRoomInfo = it
binding.ivAddPkRoom.isVisible = false
binding.llPkRoom.isVisible = true
ImageLoadUtils.loadImage(this,it.avatar,binding.ivAvatar)
ImageLoadUtils.loadImage(this, it.avatar, binding.ivAvatar)
binding.tvRoomTitle.text = it.title
binding.tvRoomId.text = "音游号:${it.erbanNo}"
checkCommitEnable()

View File

@@ -8,6 +8,8 @@ import com.yizhuan.erban.R
import com.yizhuan.erban.databinding.LayoutRoomPkRankListViewBinding
import com.yizhuan.erban.ui.utils.ImageLoadUtils
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
import com.yizhuan.xchat_android_core.room.anotherroompk.ShowUserInfoDialogEvent
import com.yizhuan.xchat_android_library.rxbus.RxBus
class RoomPKRankListView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
@@ -19,6 +21,13 @@ class RoomPKRankListView @JvmOverloads constructor(
init {
addView(binding.root)
ivAvatars.forEach { ivAvatar ->
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
}
}
}

View File

@@ -89,14 +89,8 @@ class RoomPKSearchActivity : BaseViewBindingActivity<ActivityRoomPkSearchBinding
finish()
}
binding.editSearch.addTextChangedListener(object : TextWatcherSimple() {
override fun afterTextChanged(s: Editable?) {
searchKey = s?.toString()
}
})
binding.ivSearch.setOnClickListener {
searchKey = binding.editSearch.text?.toString()
loadData(true)
}
loadData(true)

View File

@@ -0,0 +1,102 @@
package com.yizhuan.erban.avroom.anotherroompk
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.WindowManager
import androidx.core.view.isVisible
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.DialogRoomPkFinishBinding
import com.yizhuan.erban.ui.utils.ImageLoadUtils
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
class RoomPkFinishDialog : BaseDialog<DialogRoomPkFinishBinding>() {
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)
}
}
}
}

View File

@@ -65,7 +65,7 @@ class RoomPkReceivedDialog : BaseDialog<DialogRoomPkReceivedBinding>() {
RoomPKModel.acceptRoomPK(accept, AvRoomDataManager.get().roomUid, pkBean.roundId)
.compose(bindToLifecycle())
.subscribe({
"接受PK邀请成功".toast()
//"接受PK邀请成功".toast()
dismissAllowingStateLoss()
}, {
it.message.toast()

View File

@@ -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<DialogRoomPkRuleBinding>() {
companion object {
@JvmStatic
fun newInstance(): RoomPkRuleDialog {
return RoomPkRuleDialog()
}
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
}
}

View File

@@ -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<IHomePartyView, HomeP
}
});
RxBus.get().toFlowable(ShowGiftDialogEvent.class)
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(showGiftDialogEvent -> 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<IHomePartyView, HomeP
case RoomEvent.ROOM_PK_INVITE:
RoomPkReceivedDialog.newInstance(((RoomPKAttachment) roomEvent.getChatRoomMessage().getAttachment()).getRoomPkBean()).show(mContext);
break;
case RoomEvent.ROOM_PK_FINISH:
RoomPkFinishDialog.newInstance(((RoomPKAttachment) roomEvent.getChatRoomMessage().getAttachment()).getRoomPkBean()).show(mContext);
break;
default:
}
}
@@ -2715,6 +2730,27 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
}
}
private void onSendGiftBtnClick() {
if (giftDialog == null) {
GiftDialog.GIFT_DIALOG_FROM = "房间";
giftDialog = new GiftDialog(getContext(), 0, true);
giftDialog.setGiftDialogBtnClickListener(HomePartyRoomFragment.this);
giftDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
giftDialog = null;
}
});
}
if (!giftDialog.isShowing() && !getActivity().isFinishing()) {
giftDialog.show();
}
if (AvRoomDataManager.get().isCpRoom()) {
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_CP_ROOM_GIFT_CLICK, "礼物面板按钮");
} else
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_GIFT_CLICK, "礼物面板按钮");
}
/**
* 底部按钮点击处理
*/
@@ -2817,24 +2853,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
@Override
public void onSendGiftBtnClick() {
if (giftDialog == null) {
GiftDialog.GIFT_DIALOG_FROM = "房间";
giftDialog = new GiftDialog(getContext(), 0, true);
giftDialog.setGiftDialogBtnClickListener(HomePartyRoomFragment.this);
giftDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
giftDialog = null;
}
});
}
if (!giftDialog.isShowing() && !getActivity().isFinishing()) {
giftDialog.show();
}
if (AvRoomDataManager.get().isCpRoom()) {
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_CP_ROOM_GIFT_CLICK, "礼物面板按钮");
} else
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_GIFT_CLICK, "礼物面板按钮");
HomePartyRoomFragment.this.onSendGiftBtnClick();
}
@Override

View File

@@ -18,7 +18,7 @@ abstract class BaseDialog<T : ViewBinding> : 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -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"

View File

@@ -0,0 +1,264 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_root"
android:layout_width="320dp"
android:layout_height="453dp"
android:layout_gravity="center"
android:background="@drawable/bg_room_pk_finish_win"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:src="@drawable/ic_room_pk_finish_close_win"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_bg"
android:layout_width="290dp"
android:layout_height="310dp"
android:layout_marginBottom="24dp"
android:background="@drawable/bg_edbf89_radius_10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<View
android:id="@+id/view_bg_red"
android:layout_width="151dp"
android:layout_height="135dp"
android:layout_marginStart="6dp"
android:layout_marginTop="12dp"
android:background="@drawable/bg_room_pk_finish_team_red"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toTopOf="@id/view_bg" />
<ImageView
android:id="@+id/iv_red_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:visibility="gone"
android:src="@drawable/ic_room_pk_finish_win"
app:layout_constraintStart_toStartOf="@id/view_bg_red"
app:layout_constraintTop_toTopOf="@id/view_bg_red" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_red"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginStart="41dp"
android:layout_marginTop="21dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1dp"
app:layout_constraintStart_toStartOf="@id/view_bg_red"
app:layout_constraintTop_toTopOf="@id/view_bg_red" />
<TextView
android:id="@+id/tv_title_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="厅的名字七个字"
android:textColor="@color/white"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_red"
app:layout_constraintStart_toStartOf="@id/iv_avatar_red"
app:layout_constraintTop_toBottomOf="@id/iv_avatar_red" />
<TextView
android:id="@+id/tv_value_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="20000000"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_red"
app:layout_constraintStart_toStartOf="@id/iv_avatar_red"
app:layout_constraintTop_toBottomOf="@id/tv_title_red" />
<View
android:id="@+id/view_bg_blue"
android:layout_width="151dp"
android:layout_height="135dp"
android:layout_marginTop="18dp"
android:layout_marginEnd="6dp"
android:background="@drawable/bg_room_pk_finish_team_blue"
app:layout_constraintEnd_toEndOf="@id/view_bg"
app:layout_constraintTop_toTopOf="@id/view_bg" />
<ImageView
android:id="@+id/iv_blue_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:visibility="gone"
android:src="@drawable/ic_room_pk_finish_win"
app:layout_constraintEnd_toEndOf="@id/view_bg_blue"
app:layout_constraintTop_toTopOf="@id/view_bg_blue" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_blue"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="21dp"
android:layout_marginEnd="41dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1dp"
app:layout_constraintEnd_toEndOf="@id/view_bg_blue"
app:layout_constraintTop_toTopOf="@id/view_bg_blue" />
<TextView
android:id="@+id/tv_title_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="厅的名字七个字"
android:textColor="@color/white"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_blue"
app:layout_constraintStart_toStartOf="@id/iv_avatar_blue"
app:layout_constraintTop_toBottomOf="@id/iv_avatar_blue" />
<TextView
android:id="@+id/tv_value_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="20000000"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_blue"
app:layout_constraintStart_toStartOf="@id/iv_avatar_blue"
app:layout_constraintTop_toBottomOf="@id/tv_title_red" />
<View
android:layout_width="70dp"
android:layout_height="49dp"
android:background="@drawable/ic_room_pk_logo"
app:layout_constraintBottom_toBottomOf="@id/view_bg_blue"
app:layout_constraintEnd_toEndOf="@id/view_bg"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toTopOf="@id/view_bg_red" />
<View
android:id="@+id/view_contribute"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_marginTop="16dp"
android:background="@drawable/bg_room_pk_finish_rank_win"
app:layout_constraintEnd_toEndOf="@id/view_bg"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toBottomOf="@id/view_bg_red" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_contribute"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginBottom="2dp"
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="@id/bg_avatar_contribute"
app:layout_constraintEnd_toEndOf="@id/bg_avatar_contribute"
app:layout_constraintStart_toStartOf="@id/bg_avatar_contribute" />
<View
android:id="@+id/bg_avatar_contribute"
android:layout_width="44dp"
android:layout_height="53dp"
android:layout_marginStart="70dp"
android:layout_marginTop="5dp"
android:background="@drawable/ic_room_pk_finish_contribute"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toTopOf="@id/view_contribute" />
<TextView
android:id="@+id/tv_nick_contribute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="7dp"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintStart_toEndOf="@id/iv_avatar_contribute"
app:layout_constraintTop_toTopOf="@id/iv_avatar_contribute"
tools:text="黄之术是善良了" />
<TextView
android:id="@+id/tv_value_contribute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:textColor="@color/white"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/tv_nick_contribute"
app:layout_constraintTop_toBottomOf="@id/tv_nick_contribute"
tools:text="神豪值:1000000" />
<View
android:id="@+id/view_charm"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_room_pk_finish_rank_win"
app:layout_constraintEnd_toEndOf="@id/view_bg"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toBottomOf="@id/view_contribute" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_charm"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginBottom="2dp"
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="@id/bg_avatar_charm"
app:layout_constraintEnd_toEndOf="@id/bg_avatar_charm"
app:layout_constraintStart_toStartOf="@id/bg_avatar_charm" />
<View
android:id="@+id/bg_avatar_charm"
android:layout_width="44dp"
android:layout_height="53dp"
android:layout_marginStart="70dp"
android:layout_marginTop="5dp"
android:background="@drawable/ic_room_pk_finish_charm"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toTopOf="@id/view_charm" />
<TextView
android:id="@+id/tv_nick_charm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="7dp"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintStart_toEndOf="@id/iv_avatar_charm"
app:layout_constraintTop_toTopOf="@id/iv_avatar_charm"
tools:text="黄之术是善良了" />
<TextView
android:id="@+id/tv_value_charm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:textColor="@color/white"
android:textSize="13sp"
app:layout_constraintStart_toStartOf="@id/tv_nick_charm"
app:layout_constraintTop_toBottomOf="@id/tv_nick_charm"
tools:text="神豪值:1000000" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

View File

@@ -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"

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="301dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:background="@drawable/bg_room_pk_rule_dialog"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="如何开启跨房PK"
android:textColor="@color/text_title_white"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="48dp"
android:layout_marginEnd="15dp"
android:text="@string/room_pk_rule"
android:textColor="@color/white"
android:textSize="14dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginEnd="14dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

View File

@@ -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" />
<View
android:id="@+id/view_help_anchor"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_marginStart="72dp"
android:layout_marginTop="33dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_help"
android:layout_width="wrap_content"
@@ -235,8 +244,8 @@
<androidx.constraintlayout.widget.Group
android:id="@+id/group_rank"
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"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
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" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -904,5 +904,6 @@
<string name="about_app">关于&app_name;</string>
<string name="authorization_text">并授权&app_name;获取本机号码</string>
<string name="text_dating_vip_rule">1.每轮相亲在“嘉宾交流”阶段累积送礼满999钻石且送礼价值最高的用户自动登上VIP席位\n\n 2.若出现多个满足上VIP席位要求的用户VIP席位最终由送礼价值最高的用户获得若送礼价值相同以最先达到该值的用户为准\n\n 3.VIP席位的用户可选择是否下麦其他用户不可因此代替坐上席位 \n\n 4.用户只能在“嘉宾交流”阶段抢夺VIP席位“嘉宾交流”阶段后直到结束本轮前即使送出超过之前VIP总礼物价值也不能换人\n\n 5.每轮相亲结束后VIP席位清空下一轮重新开始抢位。</string>
<string name="room_pk_help">1按收到的礼物价值积分1钻石=1分礼物值高的一方获胜。\n 2PK结束后若比分差距≥1314或双方分数总值≥15000平局除外将在与获胜方相同类型的房间公示PK结果若比分差距≥5200或双方分数总值≥30000平局除外将在全服所有房间公示PK结果。</string>
<string name="room_pk_help">1)按收到的礼物价值积分1钻石=1分礼物值高的一方获胜。\n 2)PK结束后若比分差距≥1314或双方分数总值≥15000平局除外将在与获胜方相同类型的房间公示PK结果若比分差距≥5200或双方分数总值≥30000平局除外将在全服所有房间公示PK结果。</string>
<string name="room_pk_rule">1)只有牌照房房主和超管才可以发起跨房pk一次只能选择一个牌照房发起\n 2)只有房主和超管才可以接受或拒绝跨房pk请求若10秒内不点击pk邀请弹窗弹窗消失视为自动拒绝\n 3)发起pk时需选择pk时间和pk对象自定义时间下限为5上限为180只能填写整数\n 4)pk发起后未到pk时间无法自行结束若有特殊情况需提前结束可联系客服但本场pk不算胜负。</string>
</resources>

View File

@@ -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;

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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;

View File

@@ -0,0 +1,5 @@
package com.yizhuan.xchat_android_core.room.anotherroompk;
public class ShowGiftDialogEvent {
}

View File

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