diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt index 8aa51009d..32f506f30 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt @@ -651,7 +651,10 @@ open class BaseRoomFragment?> : } else { val roomQueueInfo = AvRoomDataManager.get() .getRoomQueueMemberInfoByAccount(myUid.toString()) - if (roomQueueInfo?.mChatRoomMember != null + if (roomQueueInfo?.mChatRoomMember?.isNoProhibitMic == true && roomQueueInfo.mRoomMicInfo?.isMicMute == false) { + bottomView.setMicBtnEnable(true) + bottomView.setMicBtnOpen(true) + } else if (roomQueueInfo?.mChatRoomMember != null && myUid.toString() == roomQueueInfo.mChatRoomMember.account && roomQueueInfo.mRoomMicInfo?.isMicMute == true ) { diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/IMNetEaseManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/IMNetEaseManager.java index 9c544dc54..0fe1be7ca 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/IMNetEaseManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/IMNetEaseManager.java @@ -1455,7 +1455,8 @@ public final class IMNetEaseManager { AvRoomModel.get().updateMyMicQueue( AvRoomDataManager.get().getMicPosition(AuthModel.get().getCurrentUid()), String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()), - UserModel.get().getCacheLoginUserInfo() + UserModel.get().getCacheLoginUserInfo(), + !AudioEngineManager.get().isMute() ) .subscribe(); } @@ -2146,7 +2147,9 @@ public final class IMNetEaseManager { if (AvRoomDataManager.get().isOwner(chatRoomMember.getAccount())) { //开麦 AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_BROADCASTER); - AudioEngineManager.get().setMute(roomQueueInfo.mRoomMicInfo.isMicMute() || AvRoomDataManager.get().mIsNeedOpenMic); + if (!roomQueueInfo.mChatRoomMember.isNoProhibitMic()) { + AudioEngineManager.get().setMute(roomQueueInfo.mRoomMicInfo.isMicMute() || AvRoomDataManager.get().mIsNeedOpenMic); + } } noticeUpMic(Integer.parseInt(key), chatRoomMember.getAccount()); } diff --git a/core/src/main/java/com/nnbc123/core/room/model/RoomBaseModel.java b/core/src/main/java/com/nnbc123/core/room/model/RoomBaseModel.java index 858324bf0..f11681cf7 100644 --- a/core/src/main/java/com/nnbc123/core/room/model/RoomBaseModel.java +++ b/core/src/main/java/com/nnbc123/core/room/model/RoomBaseModel.java @@ -146,33 +146,33 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { if (roomInfo == null) return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR)); return Single.create( - new SingleOnSubscribe>() { - @Override - public void subscribe(SingleEmitter> e) throws Exception { - NIMChatRoomSDK.getChatRoomService().fetchRoomMembers( - String.valueOf(roomInfo.getRoomId()), - memberType, - time, - limit - ) - .setCallback(new RequestCallback>() { - @Override - public void onSuccess(List param) { - e.onSuccess(param); - } + new SingleOnSubscribe>() { + @Override + public void subscribe(SingleEmitter> e) throws Exception { + NIMChatRoomSDK.getChatRoomService().fetchRoomMembers( + String.valueOf(roomInfo.getRoomId()), + memberType, + time, + limit + ) + .setCallback(new RequestCallback>() { + @Override + public void onSuccess(List param) { + e.onSuccess(param); + } - @Override - public void onFailed(int code) { - e.onError(new Throwable(String.valueOf(code))); - } + @Override + public void onFailed(int code) { + e.onError(new Throwable(String.valueOf(code))); + } - @Override - public void onException(Throwable exception) { - e.onError(exception); - } - }); - } - }) + @Override + public void onException(Throwable exception) { + e.onError(exception); + } + }); + } + }) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()); } @@ -262,32 +262,32 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { if (roomInfo == null) return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR)); return Single.create( - new SingleOnSubscribe() { - @Override - public void subscribe(SingleEmitter e) throws Exception { - NIMClient.getService(ChatRoomService.class).markChatRoomBlackList( - mark, - new MemberOption(String.valueOf(roomInfo), account) - ) - .setCallback(new RequestCallback() { - @Override - public void onSuccess(ChatRoomMember param) { - e.onSuccess(param); - } + new SingleOnSubscribe() { + @Override + public void subscribe(SingleEmitter e) throws Exception { + NIMClient.getService(ChatRoomService.class).markChatRoomBlackList( + mark, + new MemberOption(String.valueOf(roomInfo), account) + ) + .setCallback(new RequestCallback() { + @Override + public void onSuccess(ChatRoomMember param) { + e.onSuccess(param); + } - @Override - public void onFailed(int code) { - e.onError(new Throwable(String.valueOf(code))); - } + @Override + public void onFailed(int code) { + e.onError(new Throwable(String.valueOf(code))); + } - @Override - public void onException(Throwable exception) { - e.onError(exception); - } - }); + @Override + public void onException(Throwable exception) { + e.onError(exception); + } + }); - } - }) + } + }) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()); @@ -507,52 +507,52 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { @Override public Single updateOrUpMic(RoomPKInvitedUpMicMember roomPKInvitedUpMicMember) { return Single.create(new SingleOnSubscribe() { - @Override - public void subscribe(SingleEmitter e) throws Exception { - if (AvRoomDataManager.get().isOnMic(roomPKInvitedUpMicMember.getUid())) { - //在麦上就更新信息 - //获取mic 信息 - RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(AvRoomDataManager.get().getMicPosition(roomPKInvitedUpMicMember.getUid())); - //更新自己队伍信息 - UserModel.get().getCacheLoginUserInfo().setGroupType(roomPKInvitedUpMicMember.getGroupType()); - updateQueueEx(roomPKInvitedUpMicMember.getPosition(), - String.valueOf(AvRoomDataManager.get().getRoomId()), - new CallBack() { - @Override - public void onSuccess(String data) { - e.onSuccess(data); - } + @Override + public void subscribe(SingleEmitter e) throws Exception { + if (AvRoomDataManager.get().isOnMic(roomPKInvitedUpMicMember.getUid())) { + //在麦上就更新信息 + //获取mic 信息 + RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(AvRoomDataManager.get().getMicPosition(roomPKInvitedUpMicMember.getUid())); + //更新自己队伍信息 + UserModel.get().getCacheLoginUserInfo().setGroupType(roomPKInvitedUpMicMember.getGroupType()); + updateQueueEx(roomPKInvitedUpMicMember.getPosition(), + String.valueOf(AvRoomDataManager.get().getRoomId()), + new CallBack() { + @Override + public void onSuccess(String data) { + e.onSuccess(data); + } - @Override - public void onFail(int code, String error) { - e.onError(new Throwable("code:" + code + " error:" + error)); - } - }, UserModel.get().getCacheLoginUserInfo()); + @Override + public void onFail(int code, String error) { + e.onError(new Throwable("code:" + code + " error:" + error)); + } + }, UserModel.get().getCacheLoginUserInfo()); - } else { - //不在麦上就去上麦 - upMicroPhone(roomPKInvitedUpMicMember.getPosition(), - roomPKInvitedUpMicMember.getUid(), - String.valueOf(AvRoomDataManager.get().getRoomId()), - true, - new CallBack() { - @Override - public void onSuccess(String data) { - //上麦成功 - GiftValueMrg.get().requestUpMic(roomPKInvitedUpMicMember.getPosition(), - roomPKInvitedUpMicMember.getUid()); - e.onSuccess(data); - } + } else { + //不在麦上就去上麦 + upMicroPhone(roomPKInvitedUpMicMember.getPosition(), + roomPKInvitedUpMicMember.getUid(), + String.valueOf(AvRoomDataManager.get().getRoomId()), + true, + new CallBack() { + @Override + public void onSuccess(String data) { + //上麦成功 + GiftValueMrg.get().requestUpMic(roomPKInvitedUpMicMember.getPosition(), + roomPKInvitedUpMicMember.getUid()); + e.onSuccess(data); + } - @Override - public void onFail(int code, String error) { - e.onError(new Throwable("code:" + code + " error:" + error)); - } - }, roomPKInvitedUpMicMember.getGroupType()); - } + @Override + public void onFail(int code, String error) { + e.onError(new Throwable("code:" + code + " error:" + error)); + } + }, roomPKInvitedUpMicMember.getGroupType()); + } - } - }) + } + }) .subscribeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread()); @@ -568,32 +568,32 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { */ @Override public Single updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo) { + return updateMyMicQueue(micPosition, roomId, userInfo); + } + + @Override + public Single updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic) { if (userInfo.getUid() != AuthModel.get().getCurrentUid()) { return Single.error(new Throwable("该方法只能更新自己的麦序,不要更新别人的麦序信息。")); } - return Single.create(new SingleOnSubscribe() { - @Override - public void subscribe(SingleEmitter e) throws Exception { - updateQueueEx(micPosition, roomId, new CallBack() { + return Single.create((SingleOnSubscribe) e -> + updateQueueEx(micPosition, roomId, new CallBack() { - @Override - public void onSuccess(String param) { - Logger.e("更新麦序额外字段成功 code:" + userInfo.getNick()); - e.onSuccess("更新成功"); - } + @Override + public void onSuccess(String param) { + Logger.e("更新麦序额外字段成功 code:" + userInfo.getNick()); + e.onSuccess("更新成功"); + } - @Override - public void onFail(int code, String error) { - Logger.e("更新麦序额外字段失败 code:" + code); - e.onError(new Throwable("更新麦序额外字段失败 code:" + code)); - } + @Override + public void onFail(int code, String error) { + Logger.e("更新麦序额外字段失败 code:" + code); + e.onError(new Throwable("更新麦序额外字段失败 code:" + code)); + } - }, userInfo); - } - }) + }, userInfo, isNoProhibitMic)) .subscribeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread()); - } @Override @@ -602,6 +602,10 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { } protected void updateQueueEx(int micPosition, String roomId, final CallBack callBack, UserInfo userInfo) { + updateQueueEx(micPosition, roomId, callBack, userInfo, false); + } + + protected void updateQueueEx(int micPosition, String roomId, final CallBack callBack, UserInfo userInfo, boolean isNoProhibitMic) { JSONObject contentJsonObj = new JSONObject(); contentJsonObj.put("uid", String.valueOf(userInfo.getUid())); contentJsonObj.put("nick", userInfo.getNick()); @@ -633,6 +637,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { contentJsonObj.put("preventKick", true); } + contentJsonObj.put("isNoProhibitMic", isNoProhibitMic); + NIMChatRoomSDK.getChatRoomService() .updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true) .setCallback(new RequestCallback() { @@ -667,28 +673,28 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { @Override public Observable>> queryRoomMicInfo(final String roomId) { return Observable.create(new ObservableOnSubscribe>>() { - @Override - public void subscribe(ObservableEmitter>> e) throws Exception { - NIMChatRoomSDK.getChatRoomService().fetchQueue(roomId) - .setCallback(new RequestCallback>>() { - @Override - public void onSuccess(List> param) { - e.onNext(param); - e.onComplete(); - } + @Override + public void subscribe(ObservableEmitter>> e) throws Exception { + NIMChatRoomSDK.getChatRoomService().fetchQueue(roomId) + .setCallback(new RequestCallback>>() { + @Override + public void onSuccess(List> param) { + e.onNext(param); + e.onComplete(); + } - @Override - public void onFailed(int code) { - e.onError(new Throwable(String.valueOf(code))); - } + @Override + public void onFailed(int code) { + e.onError(new Throwable(String.valueOf(code))); + } - @Override - public void onException(Throwable exception) { - e.onError(exception); - } - }); - } - }).subscribeOn(Schedulers.computation()) + @Override + public void onException(Throwable exception) { + e.onError(exception); + } + }); + } + }).subscribeOn(Schedulers.computation()) .unsubscribeOn(Schedulers.computation()); } @@ -701,28 +707,28 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { @Override public Observable startGetOnlineMemberNumberJob(final long roomId) { return Observable.create(new ObservableOnSubscribe() { - @Override - public void subscribe(ObservableEmitter e) throws Exception { - NIMChatRoomSDK.getChatRoomService().fetchRoomInfo(String.valueOf(roomId)) - .setCallback(new RequestCallback() { - @Override - public void onSuccess(ChatRoomInfo param) { - e.onNext(param); - e.onComplete(); - } + @Override + public void subscribe(ObservableEmitter e) throws Exception { + NIMChatRoomSDK.getChatRoomService().fetchRoomInfo(String.valueOf(roomId)) + .setCallback(new RequestCallback() { + @Override + public void onSuccess(ChatRoomInfo param) { + e.onNext(param); + e.onComplete(); + } - @Override - public void onFailed(int code) { - e.onError(new Throwable("错误码:" + code)); - } + @Override + public void onFailed(int code) { + e.onError(new Throwable("错误码:" + code)); + } - @Override - public void onException(Throwable exception) { - e.onError(exception); - } - }); - } - }).subscribeOn(Schedulers.computation()) + @Override + public void onException(Throwable exception) { + e.onError(exception); + } + }); + } + }).subscribeOn(Schedulers.computation()) .unsubscribeOn(Schedulers.computation()); } @@ -745,7 +751,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { public SingleSource apply(UserInfo userInfo) throws Exception { String tmpTitle = userInfo.getNick() + "的房间"; return mRoomService.openRoom(userInfo.getUid(), AuthModel.get().getTicket(), - type, tmpTitle, roomDesc, backPic, rewardId, gameId) + type, tmpTitle, roomDesc, backPic, rewardId, gameId) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); @@ -753,7 +759,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { }); } return mRoomService.openRoom(uid, AuthModel.get().getTicket(), - type, title, roomDesc, backPic, rewardId, gameId) + type, title, roomDesc, backPic, rewardId, gameId) .subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); @@ -761,8 +767,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel { public Single closeScreen(long roomId, boolean isCloseScreen) { return mRoomService.closeScreen(roomId, AuthModel.get().getCurrentUid(), isCloseScreen, - AuthModel.get().getTicket() - ) + AuthModel.get().getTicket() + ) .compose(RxHelper.handleBeanData()) .compose(RxHelper.handleSchedulers()); } diff --git a/core/src/main/java/com/nnbc123/core/room/model/inteface/IRoomBaseModel.java b/core/src/main/java/com/nnbc123/core/room/model/inteface/IRoomBaseModel.java index df9ce9025..7911623f8 100644 --- a/core/src/main/java/com/nnbc123/core/room/model/inteface/IRoomBaseModel.java +++ b/core/src/main/java/com/nnbc123/core/room/model/inteface/IRoomBaseModel.java @@ -140,6 +140,8 @@ public interface IRoomBaseModel extends IModel { */ Single updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo); + Single updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic); + void downMicroPhone(int micPosition, final CallBack callBack); /** diff --git a/core/src/main/java/com/nnbc123/core/room/pk/model/PkModel.java b/core/src/main/java/com/nnbc123/core/room/pk/model/PkModel.java index 6a0031de5..2aeaddeb1 100644 --- a/core/src/main/java/com/nnbc123/core/room/pk/model/PkModel.java +++ b/core/src/main/java/com/nnbc123/core/room/pk/model/PkModel.java @@ -10,6 +10,7 @@ import com.google.gson.Gson; import com.nnbc123.core.gift.bean.GiftType; import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; +import com.nnbc123.core.manager.AudioEngineManager; import com.orhanobut.logger.Logger; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.base.BaseModel; @@ -438,9 +439,9 @@ public class PkModel extends BaseModel implements IPkModel { return Single.error(new Throwable("无当前登录账户uid")); } return api.openPKMode( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid() - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid() + ) .flatMap(stringServiceResult -> { if (stringServiceResult.isSuccess()) { return Single.just("开启pk模式成功"); @@ -466,9 +467,9 @@ public class PkModel extends BaseModel implements IPkModel { return Single.error(new Throwable("无当前登录账户uid")); } return api.closePKMode( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid() - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid() + ) .flatMap(stringServiceResult -> { if (stringServiceResult.isSuccess()) { //后台发自定义消息通知所有房间内的人关闭了pk @@ -500,10 +501,10 @@ public class PkModel extends BaseModel implements IPkModel { } return api.joinPK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid(), - groupType - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid(), + groupType + ) .compose(RxHelper.handleBeanData()) .compose(RxHelper.handleSchedulers()) @@ -525,9 +526,9 @@ public class PkModel extends BaseModel implements IPkModel { return Single.error(new Throwable("无当前登录账户uid")); } return api.leavePK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid() - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid() + ) .compose(RxHelper.handleBeanData()) .compose(RxHelper.handleSchedulers()) ; @@ -563,11 +564,11 @@ public class PkModel extends BaseModel implements IPkModel { } return api.loadPKMicQueueList( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid(), - page, - pageSize - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid(), + page, + pageSize + ) .flatMap(respQueuingMicListInfoServiceResult -> { if (respQueuingMicListInfoServiceResult.isSuccess()) { if (respQueuingMicListInfoServiceResult.getData() == null) { @@ -595,10 +596,10 @@ public class PkModel extends BaseModel implements IPkModel { int page, int pageSize) { return api.loadPKRecordList( - roomUid, - page, - pageSize - ) + roomUid, + page, + pageSize + ) .flatMap(pkRecordListInfoServiceResult -> { if (pkRecordListInfoServiceResult.isSuccess()) { return Single.just(pkRecordListInfoServiceResult.getData()); @@ -635,12 +636,12 @@ public class PkModel extends BaseModel implements IPkModel { } return api.createPK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid(), - pkMode, - voteMode, - duration - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid(), + pkMode, + voteMode, + duration + ) .compose(RxHelper.handleSchedulers()) .flatMap(new Function, SingleSource>() { @Override @@ -714,10 +715,10 @@ public class PkModel extends BaseModel implements IPkModel { pkMemberInfo.getUserInfo().setGroupType(roomQueueInfo.mChatRoomMember.getGroupType()); //改变麦状态 AvRoomModel.get().updateMyMicQueue( - key, - String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()), - pkMemberInfo.getUserInfo() - ) + key, + String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()), + pkMemberInfo.getUserInfo(), + !AudioEngineManager.get().isMute()) .subscribe(); } } @@ -773,10 +774,10 @@ public class PkModel extends BaseModel implements IPkModel { } return api.beginPK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - curPkInfo.getPkId(), - new Gson().toJson(createPKMembers) - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + curPkInfo.getPkId(), + new Gson().toJson(createPKMembers) + ) .flatMap(new Function, SingleSource>() { @Override public SingleSource apply(ServiceResult response) throws Exception { @@ -836,8 +837,8 @@ public class PkModel extends BaseModel implements IPkModel { @Override public Single loadPKDataByRoomId(long roomUid) { return api.loadPKDataByRoomId( - roomUid - ) + roomUid + ) .compose(RxHelper.handleSchedulers()) .flatMap(new Function, SingleSource>() { @Override @@ -869,72 +870,61 @@ public class PkModel extends BaseModel implements IPkModel { @Override public Single inviteInTeam(List roomPKInvitedUpMicMember) { - return Single.create(new SingleOnSubscribe() { - @Override - public void subscribe(SingleEmitter e) throws Exception { - //发送给自定义消息 - RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE); - Map micMemberMap = new HashMap<>(); - for (RoomPKInvitedUpMicMember pkInvitedUpMicMember : roomPKInvitedUpMicMember) { - micMemberMap.put(pkInvitedUpMicMember.getUid(), pkInvitedUpMicMember); - } - roomPkAttachment.setRoomPKInvitedUpMicMember(micMemberMap); - ChatRoomMessage inviteToTeamMsg = ChatRoomMessageBuilder.createChatRoomCustomMessage( - // 聊天室id - AvRoomDataManager.get().mCurrentRoomInfo.getRoomId() + "", - //attachment - roomPkAttachment - ); - - e.onSuccess(inviteToTeamMsg); + return Single.create((SingleOnSubscribe) e -> { + //发送给自定义消息 + RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE); + Map micMemberMap = new HashMap<>(); + for (RoomPKInvitedUpMicMember pkInvitedUpMicMember : roomPKInvitedUpMicMember) { + micMemberMap.put(pkInvitedUpMicMember.getUid(), pkInvitedUpMicMember); } - }) - .flatMap(new Function>() { - @Override - public SingleSource apply(ChatRoomMessage msg) throws Exception { - return IMNetEaseManager.get().sendChatRoomMessage(msg, false); - } - }) - .flatMap(new Function>() { - @Override - public SingleSource apply(ChatRoomMessage chatRoomMessage) throws Exception { - //添加公屏 - RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment(); - Map inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap(); - Iterator> iterator = inviteMap.entrySet().iterator(); - RoomPKInvitedUpMicMember self = null; - boolean isInTeam = false; - while (iterator.hasNext()) { - RoomPKInvitedUpMicMember value = iterator.next().getValue(); - if (String.valueOf(AuthModel.get().getCurrentUid()).equals(value.getUid())) { - self = value; - } - //已经在队伍里面的人就不显示进队伍 - if (PkModel.get().getTeamIdInPKMemberList(value.getUid()) > 0) { - continue; - } - if (value.getGroupType() != PKTeamInfo.TEAM_NONE) { - isInTeam = true; - } - } - if (isInTeam) { - IMNetEaseManager.get().addMessagesImmediately(chatRoomMessage); - } + roomPkAttachment.setRoomPKInvitedUpMicMember(micMemberMap); + ChatRoomMessage inviteToTeamMsg = ChatRoomMessageBuilder.createChatRoomCustomMessage( + // 聊天室id + AvRoomDataManager.get().mCurrentRoomInfo.getRoomId() + "", + //attachment + roomPkAttachment + ); - //如果是自己进队伍、出队伍,自己改变自己的麦序信息 - if (self != null) { - UserModel.get().getCacheLoginUserInfo().setGroupType(self.getGroupType()); - AvRoomModel.get().updateMyMicQueue( - self.getPosition(), - String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()), - UserModel.get().getCacheLoginUserInfo() - ) - .subscribe(); + e.onSuccess(inviteToTeamMsg); + }) + .flatMap(msg -> IMNetEaseManager.get().sendChatRoomMessage(msg, false)) + .flatMap((Function>) chatRoomMessage -> { + //添加公屏 + RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment(); + Map inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap(); + Iterator> iterator = inviteMap.entrySet().iterator(); + RoomPKInvitedUpMicMember self = null; + boolean isInTeam = false; + while (iterator.hasNext()) { + RoomPKInvitedUpMicMember value = iterator.next().getValue(); + if (String.valueOf(AuthModel.get().getCurrentUid()).equals(value.getUid())) { + self = value; + } + //已经在队伍里面的人就不显示进队伍 + if (PkModel.get().getTeamIdInPKMemberList(value.getUid()) > 0) { + continue; + } + if (value.getGroupType() != PKTeamInfo.TEAM_NONE) { + isInTeam = true; } - return Single.just("邀请上麦成功"); } - }) - ; + if (isInTeam) { + IMNetEaseManager.get().addMessagesImmediately(chatRoomMessage); + } + + //如果是自己进队伍、出队伍,自己改变自己的麦序信息 + if (self != null) { + UserModel.get().getCacheLoginUserInfo().setGroupType(self.getGroupType()); + AvRoomModel.get().updateMyMicQueue( + self.getPosition(), + String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()), + UserModel.get().getCacheLoginUserInfo(), + !AudioEngineManager.get().isMute() + ) + .subscribe(); + } + return Single.just("邀请上麦成功"); + }); } @Override @@ -1089,12 +1079,12 @@ public class PkModel extends BaseModel implements IPkModel { return beginPK(); } else if (curPkInfo.getPkStatus() == RoomPkData.PK_STATUS_IN_PK) { return api.createPK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid(), - curPkInfo.getPkMode(), - curPkInfo.getVoteMode(), - curPkInfo.getDuration() - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid(), + curPkInfo.getPkMode(), + curPkInfo.getVoteMode(), + curPkInfo.getDuration() + ) .compose(RxHelper.handleSchedulers()) .flatMap(new Function, SingleSource>() { @Override @@ -1113,12 +1103,12 @@ public class PkModel extends BaseModel implements IPkModel { } return api.createPK( - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), - AuthModel.get().getCurrentUid(), - curPkInfo.getPkMode(), - curPkInfo.getVoteMode(), - curPkInfo.getDuration() - ) + AvRoomDataManager.get().mCurrentRoomInfo.getUid(), + AuthModel.get().getCurrentUid(), + curPkInfo.getPkMode(), + curPkInfo.getVoteMode(), + curPkInfo.getDuration() + ) .compose(RxHelper.handleSchedulers()) .flatMap(new Function, SingleSource>() { @Override @@ -1162,8 +1152,8 @@ public class PkModel extends BaseModel implements IPkModel { @Override public Single loadPKDataById(String pkId) { return api.loadPKDataById( - pkId - ) + pkId + ) .flatMap(new Function, SingleSource>() { @Override public SingleSource apply(ServiceResult respPKDataServiceResult) throws Exception { diff --git a/core/src/main/java/com/nnbc123/core/room/queue/bean/MicMemberInfo.java b/core/src/main/java/com/nnbc123/core/room/queue/bean/MicMemberInfo.java index 14bd48669..bc61c9aeb 100644 --- a/core/src/main/java/com/nnbc123/core/room/queue/bean/MicMemberInfo.java +++ b/core/src/main/java/com/nnbc123/core/room/queue/bean/MicMemberInfo.java @@ -49,6 +49,11 @@ public class MicMemberInfo { private int teamId = 0; private boolean isSelected = false; + /** + * pk模式更新麦位信息, 默认开麦 + */ + private boolean isNoProhibitMic = false; + // //非麦序队列字段 end // @@ -315,4 +320,9 @@ public class MicMemberInfo { this.isSelected = isSelected; } // + + + public boolean isNoProhibitMic() { + return isNoProhibitMic; + } }