fix bug 【ID1005135】 【安卓-PK】PK准备阶段:用户被抱上麦,再被安排进PK队伍,再下麦后,用户头像依旧会展示在PK队伍里

This commit is contained in:
huangjian
2020-12-23 16:26:18 +08:00
parent e5d65a87d9
commit 3b174d9d2e
5 changed files with 29 additions and 25 deletions

View File

@@ -2,9 +2,7 @@ package com.yizhuan.erban.avroom.dialog;
import android.content.Context;
import android.os.Bundle;
import androidx.gridlayout.widget.GridLayout;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -83,7 +81,7 @@ public class PKScoreBoardDialog extends BaseDialog {
setContentView(R.layout.dialog_pk_score_board);
tvPkVoteMode = (TextView) findViewById(R.id.tv_pk_vote_mode);
tvClose = findViewById(R.id.tv_close);
tvClose = findViewById(R.id.tv_close);
pbScore = (ProgressBar) findViewById(R.id.pb_score);
tvRedTeamScore = (TextView) findViewById(R.id.tv_red_team_score);
tvBlueTeamScore = (TextView) findViewById(R.id.tv_blue_team_score);
@@ -255,7 +253,8 @@ public class PKScoreBoardDialog extends BaseDialog {
switch (event) {
case RoomEvent.PK_INFO_UPDATE:
roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData != null && roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK) {
if (roomPkData != null && (roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK ||
roomPkData.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK)) {
dismiss();
}
break;

View File

@@ -2021,7 +2021,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
@Override
public void onShowPKMicQueueDialog() {
if (PkModel.get().isFighting()){
if (PkModel.get().isFighting()) {
SingleToastUtil.showToast("PK已开始暂时无法排麦");
return;
}

View File

@@ -176,8 +176,9 @@ public class PKBoardView extends RelativeLayout implements View.OnClickListener
ivPkBegin.setVisibility(GONE);
}
llPkScoreBoard.setOnClickListener(null);
if (PkModel.get().getCurPkInfo() != null && PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK) {
RoomPkData roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData != null &&
(roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK || roomPkData.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK)) {
tvBlueTeamScore.setText(FormatUtils.formatPKValue(0));
tvRedTeamScore.setText(FormatUtils.formatPKValue(0));
}
@@ -341,7 +342,7 @@ public class PKBoardView extends RelativeLayout implements View.OnClickListener
upMicMemberList.add(roomPKInvitedUpMicMember);
}
PkModel.get().inviteInTeam(upMicMemberList)
.doOnError(throwable -> SingleToastUtil.showToastShort(throwable.getMessage()))
.doOnError(throwable -> SingleToastUtil.showToastShort(throwable.getMessage()))
.subscribe();
}

View File

@@ -1854,9 +1854,10 @@ public final class IMNetEaseManager {
if (roomQueueInfo != null && roomQueueInfo.mChatRoomMember != null) {
ChatRoomMember chatRoomMember = roomQueueInfo.mChatRoomMember;
RoomPkData roomPkData = PkModel.get().getCurPkInfo();
//这里处理把这个人添加到队伍,或者移除队伍
if (PkModel.get().getCurPkInfo() != null
&& PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK) {
if (roomPkData != null && (roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK
|| roomPkData.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK)) {
UserInfo userInfo = new UserInfo();
userInfo.setUid(Long.parseLong(chatRoomMember.getAccount()));
userInfo.setNick(chatRoomMember.getNick());

View File

@@ -141,6 +141,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
/**
* 进入房间后,刷新礼物列表, 保留原来的不带有房间专属礼物的列表
*
* @param roomUid
* @return
*/
@@ -151,6 +152,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
/**
* 加载带有房间专属的礼物
*
* @param roomUid 房间 UID
* @return
*/
@@ -167,6 +169,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
/**
* 加载普通礼物,不带上房间专属的礼物
*
* @param roomUid
* @return
*/
@@ -269,7 +272,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
private void parseChatRoomAttachment(CustomAttachment attachment) {
//单人 3 普通单人-31 福袋单人-33
if (attachment.getFirst() == CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT) {
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_GIFT){
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_GIFT) {
GiftAttachment giftAttachment = (GiftAttachment) attachment;
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
.setEvent(RoomEvent.RECEIVE_NORMALE_GIFT)
@@ -278,7 +281,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
GiftValueMrg.get().updateMicQueueCharm(
GiftValueCommonUpdate.transformGift(giftAttachment.getGiftReceiveInfo()));
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT){
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT) {
MultiLuckyGiftAttachment luckyGiftAttachment = (MultiLuckyGiftAttachment) attachment;
LuckyBagGifts luckyBagGifts = luckyGiftAttachment.getMultiLuckyGiftReceiveInfo();
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
@@ -312,8 +315,8 @@ public class GiftModel extends BaseModel implements IGiftModel {
//礼物值
GiftValueMrg.get().updateMicQueueCharm(GiftValueCommonUpdate
.transformGift(giftBatchAttachment.getGiftMultiReceiverInfo()));
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT){//福袋多人
MultiLuckyGiftAttachment giftBatchAttachment = (MultiLuckyGiftAttachment ) attachment;
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT) {//福袋多人
MultiLuckyGiftAttachment giftBatchAttachment = (MultiLuckyGiftAttachment) attachment;
LuckyBagGifts luckyBagGifts = giftBatchAttachment.getMultiLuckyGiftReceiveInfo();
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
.setEvent(RoomEvent.RECEIVE_MULTI_LUCKY_GIFT)
@@ -323,8 +326,8 @@ public class GiftModel extends BaseModel implements IGiftModel {
GiftValueMrg.get().updateMicQueueCharm(
GiftValueCommonUpdate.transformGift(giftBatchAttachment.getMultiLuckyGiftReceiveInfo()));
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT){//福袋全麦
MultiLuckyGiftAttachment giftBatchAttachment = (MultiLuckyGiftAttachment ) attachment;
} else if (attachment.getSecond() == CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT) {//福袋全麦
MultiLuckyGiftAttachment giftBatchAttachment = (MultiLuckyGiftAttachment) attachment;
LuckyBagGifts luckyBagGifts = giftBatchAttachment.getMultiLuckyGiftReceiveInfo();
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
.setEvent(RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT)
@@ -396,7 +399,7 @@ public class GiftModel extends BaseModel implements IGiftModel {
if (isKnap) {
//应通过id去确定要需要更新的礼物背包
EventBus.getDefault().post(new UpdateKnapEvent(giftId, giftNum * targetUids.size()));
} else {
} else {
PayModel.get().minusGold(giftInfo.getGoldPrice() * giftNum * targetUids.size());
}
GiftMultiReceiverInfo giftMultiReceiverInfo = serviceResult.getData();
@@ -408,26 +411,26 @@ public class GiftModel extends BaseModel implements IGiftModel {
case GiftSendType.TYPE_ANCHOR:
case GiftSendType.TYPE_MIC:
if (targetUids.size() == 1 && giftMultiReceiverInfo.getTargetUsers().size() == 1) {
if (giftMultiReceiverInfo.getGift().getGiftType() == GiftType.GIFT_TYPE_LUCKY){
if (giftMultiReceiverInfo.getGift().getGiftType() == GiftType.GIFT_TYPE_LUCKY) {
//发送个人福袋
GiftToolbox.sendLuckyGiftRoomMessage(serviceResult.getData(),CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT,CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT);
}else {
GiftToolbox.sendLuckyGiftRoomMessage(serviceResult.getData(), CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT, CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_LUCKY_GIFT);
} else {
GiftToolbox.sendGiftRoomMessage(GiftToolbox.transformToGiftReceiveInfo(giftMultiReceiverInfo));
}
} else {
//发送全麦礼物
if (isWholeMic) {
if (giftMultiReceiverInfo.getGift().getGiftType() == GiftType.GIFT_TYPE_LUCKY) {
GiftToolbox.sendMultiLuckyGiftRoomMessage(serviceResult.getData(),CustomAttachment.CUSTOM_MSG_HEADER_TYPE_MULTI_GIFT,CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT);
}else{
GiftToolbox.sendMultiLuckyGiftRoomMessage(serviceResult.getData(), CustomAttachment.CUSTOM_MSG_HEADER_TYPE_MULTI_GIFT, CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_ALL_MIC_LUCKY_GIFT);
} else {
GiftToolbox.sendAllMicGiftRoomMessage(GiftToolbox.transformToMultiGiftReceiveInfo(giftMultiReceiverInfo));
}
//发送多人礼物
} else {
if (giftMultiReceiverInfo.getGift().getGiftType() == GiftType.GIFT_TYPE_LUCKY){
if (giftMultiReceiverInfo.getGift().getGiftType() == GiftType.GIFT_TYPE_LUCKY) {
//发送多人福袋
GiftToolbox.sendMultiLuckyGiftRoomMessage(serviceResult.getData(),CustomAttachment.CUSTOM_MSG_HEADER_TYPE_MULTI_GIFT,CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT);
}else {
GiftToolbox.sendMultiLuckyGiftRoomMessage(serviceResult.getData(), CustomAttachment.CUSTOM_MSG_HEADER_TYPE_MULTI_GIFT, CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_MULTI_LUCK_GIFT);
} else {
GiftToolbox.sendMultiGiftRoomMessage(serviceResult.getData());
}
}