diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKBoardView.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKBoardView.kt index 6ba3703f3..47c80eadf 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKBoardView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPKBoardView.kt @@ -17,6 +17,7 @@ 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.common.widget.DragLayout import com.yizhuan.erban.databinding.LayoutRoomPkBoardViewBinding import com.yizhuan.erban.ui.utils.ImageLoadUtils import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean @@ -35,11 +36,10 @@ import java.util.concurrent.TimeUnit class RoomPKBoardView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : FrameLayout(context, attrs, defStyleAttr) { +) : DragLayout(context, attrs, defStyleAttr) { private val binding = LayoutRoomPkBoardViewBinding.inflate(LayoutInflater.from(context)) private val observer = Observer { updateView(it) } - private val simpleDateFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault()) private var disposable: Disposable? = null private lateinit var helpPopupWindow: PopupWindow private var roomPkBean: RoomPkBean? = null 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 707899b3c..29a5e9523 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 @@ -57,16 +57,28 @@ class RoomPKCreateActivity : BaseViewBindingActivity - if (checkedId == -1) return@setOnCheckedChangeListener - binding.editTime.setText("") - pkTime = when (checkedId) { - R.id.rb_min_10 -> 10 - R.id.rb_min_20 -> 20 - else -> 30 + binding.rbMin10.setOnCheckedChangeListener { _, isChecked -> + if (isChecked){ + pkTime = 10 + binding.editTime.setText("") + checkCommitEnable() } - checkCommitEnable() } + binding.rbMin20.setOnCheckedChangeListener { _, isChecked -> + if (isChecked){ + pkTime = 20 + binding.editTime.setText("") + checkCommitEnable() + } + } + binding.rbMin30.setOnCheckedChangeListener { _, isChecked -> + if (isChecked){ + pkTime = 30 + binding.editTime.setText("") + checkCommitEnable() + } + } + binding.editTime.addTextChangedListener(object : TextWatcherSimple() { override fun afterTextChanged(s: Editable?) { diff --git a/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkForceFinishDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkForceFinishDialog.kt new file mode 100644 index 000000000..dc5098f79 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/anotherroompk/RoomPkForceFinishDialog.kt @@ -0,0 +1,53 @@ +package com.yizhuan.erban.avroom.anotherroompk + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.WindowManager +import com.yizhuan.erban.R +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.DialogRoomPkForceFinishBinding +import com.yizhuan.erban.ui.utils.ImageLoadUtils +import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean + +class RoomPkForceFinishDialog : BaseDialog() { + + companion object { + @JvmStatic + fun newInstance(pkBean: RoomPkBean): RoomPkForceFinishDialog { + val args = Bundle() + args.putSerializable("RoomPkBean", pkBean) + val fragment = RoomPkForceFinishDialog() + 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}" + ImageLoadUtils.loadImage( + context, + roomPkBean.cAvatar, + binding.ivAvatarRed, + R.drawable.default_avatar + ) + + binding.tvTitleBlue.text = roomPkBean.aTitle + binding.tvValueBlue.text = "${roomPkBean.aAmount}" + + ImageLoadUtils.loadImage( + context, + roomPkBean.aAvatar, + binding.ivAvatarBlue, + R.drawable.default_avatar + ) + + } + +} \ 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 a1215ecbd..1652525b5 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 @@ -69,6 +69,7 @@ class RoomPkReceivedDialog : BaseDialog() { dismissAllowingStateLoss() }, { it.message.toast() + dismissAllowingStateLoss() }) } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java b/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java index 966441bd5..ca2b67ab3 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java @@ -51,6 +51,7 @@ public class RoomOperationDialog extends BottomSheetDialog { private Context context; private Unbinder unbinder; private OptAdapter optAdapter; + private OnActionListener onActionListener; public RoomOperationDialog(@NonNull Context context) { super(context, R.style.ErbanBottomSheetDialogDimFalse); @@ -104,7 +105,6 @@ public class RoomOperationDialog extends BottomSheetDialog { rvOPtList.setAdapter(optAdapter); } - private void addGameAction(OptAdapter optAdapter) { if (SuperAdminUtil.isSuperAdmin()) { return; @@ -121,7 +121,6 @@ public class RoomOperationDialog extends BottomSheetDialog { } } - /** * PK 模式 * @@ -151,7 +150,6 @@ public class RoomOperationDialog extends BottomSheetDialog { } - /** * PK 模式 * @@ -161,15 +159,16 @@ public class RoomOperationDialog extends BottomSheetDialog { if (SuperAdminUtil.isSuperAdmin()) { return; } - if (AvRoomDataManager.get().isManager() && !AvRoomDataManager.get().isCpRoom()) { + if ((AvRoomDataManager.get().isManager() || AvRoomDataManager.get().isSuperAdmin()) && + !AvRoomDataManager.get().isCpRoom()) { RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; if (roomInfo == null) { return; } - String str = "跨房PK"; - int icon = AvRoomDataManager.get().isOpenPKMode() ? - R.drawable.ic_room_opt_op_pk : - R.drawable.ic_room_opt_in_pk; + String str = AvRoomDataManager.get().isOpenAnotherPKMode() ? "跨房PK中" : "跨房PK"; + int icon = AvRoomDataManager.get().isOpenAnotherPKMode() ? + R.drawable.ic_room_opt_another_pk_in : + R.drawable.ic_room_opt_another_pk_open; optAdapter.addData(new OptAction(icon, str, () -> { if (onActionListener != null) { onActionListener.onRoomPKAction(); @@ -509,7 +508,9 @@ public class RoomOperationDialog extends BottomSheetDialog { this.onActionListener = null; } - private OnActionListener onActionListener; + public void setOnActionListener(OnActionListener onActionListener) { + this.onActionListener = onActionListener; + } public interface OnActionListener { void onSwitchGiftEffect(); @@ -546,21 +547,12 @@ public class RoomOperationDialog extends BottomSheetDialog { } - public void setOnActionListener(OnActionListener onActionListener) { - this.onActionListener = onActionListener; - } - - static class OptAction { private int icon; private String name; private OnAction onAction; private boolean isAppColor; - interface OnAction { - void onAction(); - } - public OptAction(int icon, String name, OnAction onAction) { this(icon, name, false, onAction); } @@ -572,6 +564,10 @@ public class RoomOperationDialog extends BottomSheetDialog { this.onAction = onAction; } + interface OnAction { + void onAction(); + } + } private class OptAdapter extends BaseQuickAdapter { 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 038f398be..19f08e007 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 @@ -31,6 +31,7 @@ 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.RoomPkForceFinishDialog; import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog; import com.yizhuan.erban.avroom.dialog.DatingVipRuleDialog; import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity; @@ -135,6 +136,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.JoinMiniWorldAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.RoomFollowOwnerAttachment2; import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean; import com.yizhuan.xchat_android_core.im.game.ImGameInfo; import com.yizhuan.xchat_android_core.im.game.ImGameMode; import com.yizhuan.xchat_android_core.magic.bean.MagicInfo; @@ -736,16 +738,22 @@ public class HomePartyRoomFragment extends BaseMvpFragment 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 a0cb7e420..95915cd3c 100644 --- a/app/src/main/res/layout/activity_room_pk_search.xml +++ b/app/src/main/res/layout/activity_room_pk_search.xml @@ -79,7 +79,7 @@ android:background="@drawable/common_btn_bg" android:enabled="false" android:gravity="center" - android:text="发起挑战" + android:text="确认选择" android:textColor="@color/color_selector_white_false_7a7ca0" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/dialog_room_pk_finish.xml b/app/src/main/res/layout/dialog_room_pk_finish.xml index 7019388be..9ab4a272b 100644 --- a/app/src/main/res/layout/dialog_room_pk_finish.xml +++ b/app/src/main/res/layout/dialog_room_pk_finish.xml @@ -144,7 +144,7 @@ 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" /> + app:layout_constraintTop_toBottomOf="@id/tv_title_blue" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 12b1447d9..44b52431b 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 @@ -1339,7 +1339,10 @@ public final class IMNetEaseManager { RoomPKAttachment roomPKAttachment = (RoomPKAttachment) msg.getAttachment(); switch (second){ case CUSTOM_MSG_SUB_ROOM_PK_INVITE: - noticeRoomEvent(msg, RoomEvent.ROOM_PK_INVITE); + if ((AvRoomDataManager.get().isManager() || AvRoomDataManager.get().isSuperAdmin()) && + !AvRoomDataManager.get().isOpenAnotherPKMode()){ + noticeRoomEvent(msg, RoomEvent.ROOM_PK_INVITE); + } break; case CUSTOM_MSG_SUB_ROOM_PK_ACCEPT: noticeRoomEvent(msg, RoomEvent.ROOM_PK_ACCEPT); diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RoomPkBean.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RoomPkBean.java index 639c8191d..792c45cbb 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RoomPkBean.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RoomPkBean.java @@ -41,6 +41,7 @@ public class RoomPkBean implements Serializable { * 倒计时开始时间点:时间戳 */ private long endTime; + /** * 胜利方房主uid */