个播匹配PK是否在匹配中判断逻辑优化

This commit is contained in:
memory
2022-12-20 17:22:50 +08:00
parent a2863a30a0
commit abe7190d96
4 changed files with 13 additions and 9 deletions

View File

@@ -266,7 +266,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
final RoomPkBean pkBean = AvRoomDataManager.get().roomPkLiveData.getValue(); final RoomPkBean pkBean = AvRoomDataManager.get().roomPkLiveData.getValue();
if (AvRoomDataManager.get().isRoomOwner() && !AvRoomDataManager.get().isCpRoom()) { if (AvRoomDataManager.get().isRoomOwner() && !AvRoomDataManager.get().isCpRoom()) {
boolean isMatch = AvRoomDataManager.get().getPkMatchStartTime() > 0; boolean isMatch = false;
boolean isEndPk = false; boolean isEndPk = false;
String str = AvRoomDataManager.get().isOpenAnotherPKMode() ? "主播PK中" : "主播PK"; String str = AvRoomDataManager.get().isOpenAnotherPKMode() ? "主播PK中" : "主播PK";
if (pkBean != null) { if (pkBean != null) {
@@ -277,15 +277,16 @@ public class RoomOperationDialog extends BottomSheetDialog {
str = "结束PK"; str = "结束PK";
isEndPk = true; isEndPk = true;
} }
} else {
isMatch = AvRoomDataManager.get().getPkMatchStartTime() > 0;
if (isMatch) str = "PK匹配中";
} }
if (isMatch) {
str = "PK匹配中";
}
int icon = AvRoomDataManager.get().isOpenAnotherPKMode() ? int icon = AvRoomDataManager.get().isOpenAnotherPKMode() ?
R.drawable.ic_room_opt_single_pk_open : R.drawable.ic_room_opt_single_pk_open :
R.drawable.ic_room_opt_single_pk_in; R.drawable.ic_room_opt_single_pk_in;
boolean finalIsEndPk = isEndPk; boolean finalIsEndPk = isEndPk;
boolean finalIsMatch = isMatch;
optAdapter.addData(new OptAction(icon, str, () -> { optAdapter.addData(new OptAction(icon, str, () -> {
Map<String, String> arguments = new HashMap<>(); Map<String, String> arguments = new HashMap<>();
arguments.put("name", "个播PK"); arguments.put("name", "个播PK");
@@ -304,7 +305,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
return; return;
} }
if (isMatch) { if (finalIsMatch) {
SingleRoomPKModel.INSTANCE SingleRoomPKModel.INSTANCE
.cancelSingleRoomPkMatch() .cancelSingleRoomPkMatch()
.doOnSuccess(s -> SingleRoomPKCreateActivity.start(getContext())) .doOnSuccess(s -> SingleRoomPKCreateActivity.start(getContext()))
@@ -486,7 +487,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
superAdminModel.roomOperate(SuperAdminModel.CLOSE_PUBLIC_SCREEN).subscribe(); superAdminModel.roomOperate(SuperAdminModel.CLOSE_PUBLIC_SCREEN).subscribe();
} }
AvRoomModel.get().closeScreen(roomInfo.getRoomId(), AvRoomModel.get().closeScreen(roomInfo.getRoomId(),
!isCloseScreen) !isCloseScreen)
.compose(RxHelper.bindContext(context)) .compose(RxHelper.bindContext(context))
.flatMap(data -> IMNetEaseManager.get().closeOpenScreen( .flatMap(data -> IMNetEaseManager.get().closeOpenScreen(
data.getRoomId(), data)) data.getRoomId(), data))

View File

@@ -270,7 +270,8 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
} }
private fun initRoomPkOrder(pkMatchStartTime: Long) { private fun initRoomPkOrder(pkMatchStartTime: Long) {
if (pkMatchDisposable?.isDisposed == true) return if (!AvRoomDataManager.get().isRoomOwner) return
pkMatchDisposable?.dispose()
val residueSeconds = (pkMatchStartTime - CurrentTimeUtils.getCurrentTime()) / 1000 val residueSeconds = (pkMatchStartTime - CurrentTimeUtils.getCurrentTime()) / 1000
if (residueSeconds > 0) { if (residueSeconds > 0) {
gameBinding.llRoomPkOrder.visibility = View.VISIBLE gameBinding.llRoomPkOrder.visibility = View.VISIBLE
@@ -280,6 +281,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW)) .compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.doOnComplete { .doOnComplete {
gameBinding.llRoomPkOrder.visibility = View.GONE gameBinding.llRoomPkOrder.visibility = View.GONE
AvRoomDataManager.get().pkMatchStartTime = 0
} }
.subscribe { aLong: Long -> .subscribe { aLong: Long ->
gameBinding.tvRoomPkOrderTime.text = TimeUtils.getFormatTimeString( gameBinding.tvRoomPkOrderTime.text = TimeUtils.getFormatTimeString(

View File

@@ -1293,6 +1293,7 @@ public final class IMNetEaseManager {
if (AvRoomDataManager.get().isRoomOwner()) { if (AvRoomDataManager.get().isRoomOwner()) {
AudioEngineManager.get().disconnectOtherRoom(); AudioEngineManager.get().disconnectOtherRoom();
} }
AvRoomDataManager.get().setPkMatchStartTime(0);
break; break;
case CUSTOM_MSG_SUB_SINGLE_ROOM_PK_RESULT: case CUSTOM_MSG_SUB_SINGLE_ROOM_PK_RESULT:
AvRoomDataManager.get().roomPkLiveData.postValue(roomPkBean); AvRoomDataManager.get().roomPkLiveData.postValue(roomPkBean);

View File

@@ -25,5 +25,5 @@ only_arm64=false
channel_file=channel.txt channel_file=channel.txt
version_name=5.5.3 version_name=5.6.0.3
version_code=553 version_code=560