房间 PK模式 默认不闭麦
This commit is contained in:
@@ -292,18 +292,22 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
GiftValueMrg.get().handleReconnect(false)
|
GiftValueMrg.get().handleReconnect(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.ROOM_EXIT -> {
|
RoomEvent.ROOM_EXIT -> {
|
||||||
// 退出房間,把標誌置為 false
|
// 退出房間,把標誌置為 false
|
||||||
AvRoomDataManager.get().isFromMentoring = false
|
AvRoomDataManager.get().isFromMentoring = false
|
||||||
// 退出房間的時候,要停止倒計時
|
// 退出房間的時候,要停止倒計時
|
||||||
EventBus.getDefault().post(MentoringStopCountingEvent())
|
EventBus.getDefault().post(MentoringStopCountingEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.DOWN_CROWDED_MIC -> if (AvRoomDataManager.get().isOwner(roomEvent.account)) {
|
RoomEvent.DOWN_CROWDED_MIC -> if (AvRoomDataManager.get().isOwner(roomEvent.account)) {
|
||||||
toast(R.string.crowded_down)
|
toast(R.string.crowded_down)
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.ROOM_MANAGER_ADD, RoomEvent.ROOM_MANAGER_REMOVE -> {
|
RoomEvent.ROOM_MANAGER_ADD, RoomEvent.ROOM_MANAGER_REMOVE -> {
|
||||||
updateView()
|
updateView()
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.ROOM_INFO_UPDATE -> {
|
RoomEvent.ROOM_INFO_UPDATE -> {
|
||||||
Logger.i(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_01))
|
Logger.i(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_01))
|
||||||
addOpenDatingTips() //一定要放在updateView之前!!!
|
addOpenDatingTips() //一定要放在updateView之前!!!
|
||||||
@@ -313,6 +317,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
updateRemoteMuteBtn()
|
updateRemoteMuteBtn()
|
||||||
openOrCloseGiftValue(false)
|
openOrCloseGiftValue(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.ENTER_ROOM -> {
|
RoomEvent.ENTER_ROOM -> {
|
||||||
Logger.i(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_02))
|
Logger.i(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_02))
|
||||||
updateView()
|
updateView()
|
||||||
@@ -320,6 +325,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
openOrCloseGiftValue(true)
|
openOrCloseGiftValue(true)
|
||||||
GiftValueMrg.get().updateRoomGiftValue(false)
|
GiftValueMrg.get().updateRoomGiftValue(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.ADD_BLACK_LIST -> onChatRoomMemberBlackAdd(roomEvent.account)
|
RoomEvent.ADD_BLACK_LIST -> onChatRoomMemberBlackAdd(roomEvent.account)
|
||||||
RoomEvent.MIC_QUEUE_STATE_CHANGE -> onQueueMicStateChange()
|
RoomEvent.MIC_QUEUE_STATE_CHANGE -> onQueueMicStateChange()
|
||||||
RoomEvent.KICK_DOWN_MIC_BY_S_ADMIN, RoomEvent.KICK_DOWN_MIC -> if (event == RoomEvent.KICK_DOWN_MIC) {
|
RoomEvent.KICK_DOWN_MIC_BY_S_ADMIN, RoomEvent.KICK_DOWN_MIC -> if (event == RoomEvent.KICK_DOWN_MIC) {
|
||||||
@@ -335,16 +341,20 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.DOWN_MIC -> {
|
RoomEvent.DOWN_MIC -> {
|
||||||
onDownMicro()
|
onDownMicro()
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.UP_MIC -> {
|
RoomEvent.UP_MIC -> {
|
||||||
onUpMicro()
|
onUpMicro()
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.INVITE_UP_MIC -> if (AvRoomDataManager.get().isOwner(roomEvent.account)) {
|
RoomEvent.INVITE_UP_MIC -> if (AvRoomDataManager.get().isOwner(roomEvent.account)) {
|
||||||
//自己的消息
|
//自己的消息
|
||||||
onInviteUpMic(roomEvent.micPosition)
|
onInviteUpMic(roomEvent.micPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.KICK_OUT_ROOM -> {
|
RoomEvent.KICK_OUT_ROOM -> {
|
||||||
val reason = roomEvent.reason
|
val reason = roomEvent.reason
|
||||||
if (reason != null && reason.reason == ChatRoomKickOutEvent.ChatRoomKickOutReason.CHAT_ROOM_INVALID) {
|
if (reason != null && reason.reason == ChatRoomKickOutEvent.ChatRoomKickOutReason.CHAT_ROOM_INVALID) {
|
||||||
@@ -362,6 +372,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
AvRoomDataManager.get().removeChatRoomMember(targetUid)
|
AvRoomDataManager.get().removeChatRoomMember(targetUid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomEvent.LEAVE_MODE -> microView.adapter.notifyDataSetChanged()
|
RoomEvent.LEAVE_MODE -> microView.adapter.notifyDataSetChanged()
|
||||||
RoomEvent.ROOM_CLEAN_SCREEN -> messageView.clear()
|
RoomEvent.ROOM_CLEAN_SCREEN -> messageView.clear()
|
||||||
}
|
}
|
||||||
@@ -544,7 +555,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
} else {
|
} else {
|
||||||
val roomQueueInfo = AvRoomDataManager.get()
|
val roomQueueInfo = AvRoomDataManager.get()
|
||||||
.getRoomQueueMemberInfoByAccount(myUid.toString())
|
.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
|
&& myUid.toString() == roomQueueInfo.mChatRoomMember.account
|
||||||
&& roomQueueInfo.mRoomMicInfo?.isMicMute == true
|
&& roomQueueInfo.mRoomMicInfo?.isMicMute == true
|
||||||
) {
|
) {
|
||||||
@@ -632,13 +646,16 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
|||||||
R.id.input_send -> {
|
R.id.input_send -> {
|
||||||
sendMsg()
|
sendMsg()
|
||||||
}
|
}
|
||||||
|
|
||||||
R.id.contribute_list -> {
|
R.id.contribute_list -> {
|
||||||
DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking())
|
DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking())
|
||||||
mvpPresenter?.loadRoomRank()
|
mvpPresenter?.loadRoomRank()
|
||||||
}
|
}
|
||||||
|
|
||||||
R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext)
|
R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext)
|
||||||
R.id.iv_treasure_box,
|
R.id.iv_treasure_box,
|
||||||
R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext)
|
R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext)
|
||||||
|
|
||||||
R.id.iv_radish_entrance -> PullRadishActivity.start(mContext)
|
R.id.iv_radish_entrance -> PullRadishActivity.start(mContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -424,6 +424,8 @@ public class PKBoardView extends RelativeLayout implements View.OnClickListener
|
|||||||
pkScoreBoardDialog.show();
|
pkScoreBoardDialog.show();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2041,9 +2041,11 @@ public final class IMNetEaseManager {
|
|||||||
if (AvRoomDataManager.get().isOwner(chatRoomMember.getAccount())) {
|
if (AvRoomDataManager.get().isOwner(chatRoomMember.getAccount())) {
|
||||||
//開麥
|
//開麥
|
||||||
AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_BROADCASTER);
|
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);
|
||||||
AudioEngineManager.get().stopLocalAudio();
|
//默認閉麥去掉聲音采集
|
||||||
|
AudioEngineManager.get().stopLocalAudio();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
noticeUpMic(Integer.parseInt(key), chatRoomMember.getAccount());
|
noticeUpMic(Integer.parseInt(key), chatRoomMember.getAccount());
|
||||||
}
|
}
|
||||||
|
@@ -149,33 +149,33 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
if (roomInfo == null)
|
if (roomInfo == null)
|
||||||
return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR));
|
return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR));
|
||||||
return Single.create(
|
return Single.create(
|
||||||
new SingleOnSubscribe<List<ChatRoomMember>>() {
|
new SingleOnSubscribe<List<ChatRoomMember>>() {
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(SingleEmitter<List<ChatRoomMember>> e) throws Exception {
|
public void subscribe(SingleEmitter<List<ChatRoomMember>> e) throws Exception {
|
||||||
NIMChatRoomSDK.getChatRoomService().fetchRoomMembers(
|
NIMChatRoomSDK.getChatRoomService().fetchRoomMembers(
|
||||||
String.valueOf(roomInfo.getRoomId()),
|
String.valueOf(roomInfo.getRoomId()),
|
||||||
memberType,
|
memberType,
|
||||||
time,
|
time,
|
||||||
limit
|
limit
|
||||||
)
|
)
|
||||||
.setCallback(new RequestCallback<List<ChatRoomMember>>() {
|
.setCallback(new RequestCallback<List<ChatRoomMember>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<ChatRoomMember> param) {
|
public void onSuccess(List<ChatRoomMember> param) {
|
||||||
e.onSuccess(param);
|
e.onSuccess(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(int code) {
|
public void onFailed(int code) {
|
||||||
e.onError(new Throwable(String.valueOf(code)));
|
e.onError(new Throwable(String.valueOf(code)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onException(Throwable exception) {
|
public void onException(Throwable exception) {
|
||||||
e.onError(exception);
|
e.onError(exception);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io());
|
.unsubscribeOn(Schedulers.io());
|
||||||
}
|
}
|
||||||
@@ -265,32 +265,32 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
if (roomInfo == null)
|
if (roomInfo == null)
|
||||||
return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR));
|
return Single.error(new ErrorThrowable(ErrorThrowable.ROOM_INFO_NULL_ERROR));
|
||||||
return Single.create(
|
return Single.create(
|
||||||
new SingleOnSubscribe<ChatRoomMember>() {
|
new SingleOnSubscribe<ChatRoomMember>() {
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(SingleEmitter<ChatRoomMember> e) throws Exception {
|
public void subscribe(SingleEmitter<ChatRoomMember> e) throws Exception {
|
||||||
NIMClient.getService(ChatRoomService.class).markChatRoomBlackList(
|
NIMClient.getService(ChatRoomService.class).markChatRoomBlackList(
|
||||||
mark,
|
mark,
|
||||||
new MemberOption(String.valueOf(roomInfo), account)
|
new MemberOption(String.valueOf(roomInfo), account)
|
||||||
)
|
)
|
||||||
.setCallback(new RequestCallback<ChatRoomMember>() {
|
.setCallback(new RequestCallback<ChatRoomMember>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ChatRoomMember param) {
|
public void onSuccess(ChatRoomMember param) {
|
||||||
e.onSuccess(param);
|
e.onSuccess(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(int code) {
|
public void onFailed(int code) {
|
||||||
e.onError(new Throwable(String.valueOf(code)));
|
e.onError(new Throwable(String.valueOf(code)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onException(Throwable exception) {
|
public void onException(Throwable exception) {
|
||||||
e.onError(exception);
|
e.onError(exception);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io());
|
.unsubscribeOn(Schedulers.io());
|
||||||
|
|
||||||
@@ -510,57 +510,61 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
@Override
|
@Override
|
||||||
public Single<String> updateOrUpMic(RoomPKInvitedUpMicMember roomPKInvitedUpMicMember) {
|
public Single<String> updateOrUpMic(RoomPKInvitedUpMicMember roomPKInvitedUpMicMember) {
|
||||||
return Single.create(new SingleOnSubscribe<String>() {
|
return Single.create(new SingleOnSubscribe<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(SingleEmitter<String> e) throws Exception {
|
public void subscribe(SingleEmitter<String> e) throws Exception {
|
||||||
if (AvRoomDataManager.get().isOnMic(roomPKInvitedUpMicMember.getUid())) {
|
if (AvRoomDataManager.get().isOnMic(roomPKInvitedUpMicMember.getUid())) {
|
||||||
//在麦上就更新信息
|
//在麦上就更新信息
|
||||||
//获取mic 信息
|
//获取mic 信息
|
||||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(AvRoomDataManager.get().getMicPosition(roomPKInvitedUpMicMember.getUid()));
|
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(AvRoomDataManager.get().getMicPosition(roomPKInvitedUpMicMember.getUid()));
|
||||||
//更新自己队伍信息
|
//更新自己队伍信息
|
||||||
UserModel.get().getCacheLoginUserInfo().setGroupType(roomPKInvitedUpMicMember.getGroupType());
|
UserModel.get().getCacheLoginUserInfo().setGroupType(roomPKInvitedUpMicMember.getGroupType());
|
||||||
updateQueueEx(roomPKInvitedUpMicMember.getPosition(),
|
updateQueueEx(roomPKInvitedUpMicMember.getPosition(),
|
||||||
String.valueOf(AvRoomDataManager.get().getRoomId()),
|
String.valueOf(AvRoomDataManager.get().getRoomId()),
|
||||||
new CallBack<String>() {
|
new CallBack<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String data) {
|
public void onSuccess(String data) {
|
||||||
e.onSuccess(data);
|
e.onSuccess(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(int code, String error) {
|
public void onFail(int code, String error) {
|
||||||
e.onError(new Throwable("code:" + code + " error:" + error));
|
e.onError(new Throwable("code:" + code + " error:" + error));
|
||||||
}
|
}
|
||||||
}, UserModel.get().getCacheLoginUserInfo());
|
}, UserModel.get().getCacheLoginUserInfo(), true);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//不在麦上就去上麦
|
//不在麦上就去上麦
|
||||||
upMicroPhone(roomPKInvitedUpMicMember.getPosition(),
|
upMicroPhone(roomPKInvitedUpMicMember.getPosition(),
|
||||||
roomPKInvitedUpMicMember.getUid(),
|
roomPKInvitedUpMicMember.getUid(),
|
||||||
String.valueOf(AvRoomDataManager.get().getRoomId()),
|
String.valueOf(AvRoomDataManager.get().getRoomId()),
|
||||||
true,
|
true,
|
||||||
new CallBack<String>() {
|
new CallBack<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String data) {
|
public void onSuccess(String data) {
|
||||||
//上麦成功
|
//上麦成功
|
||||||
GiftValueMrg.get().requestUpMic(roomPKInvitedUpMicMember.getPosition(),
|
GiftValueMrg.get().requestUpMic(roomPKInvitedUpMicMember.getPosition(),
|
||||||
roomPKInvitedUpMicMember.getUid());
|
roomPKInvitedUpMicMember.getUid());
|
||||||
e.onSuccess(data);
|
e.onSuccess(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(int code, String error) {
|
public void onFail(int code, String error) {
|
||||||
e.onError(new Throwable("code:" + code + " error:" + error));
|
e.onError(new Throwable("code:" + code + " error:" + error));
|
||||||
}
|
}
|
||||||
}, roomPKInvitedUpMicMember.getGroupType());
|
}, roomPKInvitedUpMicMember.getGroupType());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.subscribeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(AndroidSchedulers.mainThread())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo) {
|
||||||
|
return updateMyMicQueue(micPosition, roomId, userInfo, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新我的麦序信息,
|
* 更新我的麦序信息,
|
||||||
*
|
*
|
||||||
@@ -570,30 +574,25 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo) {
|
public Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic) {
|
||||||
if (userInfo.getUid() != AuthModel.get().getCurrentUid()) {
|
if (userInfo.getUid() != AuthModel.get().getCurrentUid()) {
|
||||||
return Single.error(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_05)));
|
return Single.error(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_05)));
|
||||||
}
|
}
|
||||||
return Single.create(new SingleOnSubscribe<String>() {
|
return Single.create((SingleOnSubscribe<String>) e ->
|
||||||
@Override
|
updateQueueEx(micPosition, roomId, new CallBack<>() {
|
||||||
public void subscribe(SingleEmitter<String> e) throws Exception {
|
@Override
|
||||||
updateQueueEx(micPosition, roomId, new CallBack<String>() {
|
public void onSuccess(String param) {
|
||||||
|
Logger.e(ResUtil.getString(R.string.room_model_roombasemodel_06) + userInfo.getNick());
|
||||||
|
e.onSuccess(ResUtil.getString(R.string.room_model_roombasemodel_07));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String param) {
|
public void onFail(int code, String error) {
|
||||||
Logger.e(ResUtil.getString(R.string.room_model_roombasemodel_06) + userInfo.getNick());
|
Logger.e(ResUtil.getString(R.string.room_model_roombasemodel_08) + code);
|
||||||
e.onSuccess(ResUtil.getString(R.string.room_model_roombasemodel_07));
|
e.onError(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_09) + code));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
}, userInfo, isNoProhibitMic))
|
||||||
public void onFail(int code, String error) {
|
|
||||||
Logger.e(ResUtil.getString(R.string.room_model_roombasemodel_08) + code);
|
|
||||||
e.onError(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_09) + code));
|
|
||||||
}
|
|
||||||
|
|
||||||
}, userInfo);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.subscribeOn(AndroidSchedulers.mainThread())
|
.subscribeOn(AndroidSchedulers.mainThread())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
|
|
||||||
@@ -605,6 +604,10 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo) {
|
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo) {
|
||||||
|
updateQueueEx(micPosition, roomId, callBack, userInfo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateQueueEx(int micPosition, String roomId, final CallBack<String> callBack, UserInfo userInfo, boolean isNoProhibitMic) {
|
||||||
JSONObject contentJsonObj = new JSONObject();
|
JSONObject contentJsonObj = new JSONObject();
|
||||||
contentJsonObj.put("uid", String.valueOf(userInfo.getUid()));
|
contentJsonObj.put("uid", String.valueOf(userInfo.getUid()));
|
||||||
contentJsonObj.put("nick", userInfo.getNick());
|
contentJsonObj.put("nick", userInfo.getNick());
|
||||||
@@ -636,6 +639,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
contentJsonObj.put("preventKick", true);
|
contentJsonObj.put("preventKick", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contentJsonObj.put("isNoProhibitMic", isNoProhibitMic);
|
||||||
|
|
||||||
NIMChatRoomSDK.getChatRoomService()
|
NIMChatRoomSDK.getChatRoomService()
|
||||||
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
||||||
.setCallback(new RequestCallback<Void>() {
|
.setCallback(new RequestCallback<Void>() {
|
||||||
@@ -670,28 +675,28 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
@Override
|
@Override
|
||||||
public Observable<List<Entry<String, String>>> queryRoomMicInfo(final String roomId) {
|
public Observable<List<Entry<String, String>>> queryRoomMicInfo(final String roomId) {
|
||||||
return Observable.create(new ObservableOnSubscribe<List<Entry<String, String>>>() {
|
return Observable.create(new ObservableOnSubscribe<List<Entry<String, String>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(ObservableEmitter<List<Entry<String, String>>> e) throws Exception {
|
public void subscribe(ObservableEmitter<List<Entry<String, String>>> e) throws Exception {
|
||||||
NIMChatRoomSDK.getChatRoomService().fetchQueue(roomId)
|
NIMChatRoomSDK.getChatRoomService().fetchQueue(roomId)
|
||||||
.setCallback(new RequestCallback<List<Entry<String, String>>>() {
|
.setCallback(new RequestCallback<List<Entry<String, String>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<Entry<String, String>> param) {
|
public void onSuccess(List<Entry<String, String>> param) {
|
||||||
e.onNext(param);
|
e.onNext(param);
|
||||||
e.onComplete();
|
e.onComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(int code) {
|
public void onFailed(int code) {
|
||||||
e.onError(new Throwable(String.valueOf(code)));
|
e.onError(new Throwable(String.valueOf(code)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onException(Throwable exception) {
|
public void onException(Throwable exception) {
|
||||||
e.onError(exception);
|
e.onError(exception);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).subscribeOn(Schedulers.computation())
|
}).subscribeOn(Schedulers.computation())
|
||||||
.unsubscribeOn(Schedulers.computation());
|
.unsubscribeOn(Schedulers.computation());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -704,28 +709,28 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
@Override
|
@Override
|
||||||
public Observable<ChatRoomInfo> startGetOnlineMemberNumberJob(final long roomId) {
|
public Observable<ChatRoomInfo> startGetOnlineMemberNumberJob(final long roomId) {
|
||||||
return Observable.create(new ObservableOnSubscribe<ChatRoomInfo>() {
|
return Observable.create(new ObservableOnSubscribe<ChatRoomInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(ObservableEmitter<ChatRoomInfo> e) throws Exception {
|
public void subscribe(ObservableEmitter<ChatRoomInfo> e) throws Exception {
|
||||||
NIMChatRoomSDK.getChatRoomService().fetchRoomInfo(String.valueOf(roomId))
|
NIMChatRoomSDK.getChatRoomService().fetchRoomInfo(String.valueOf(roomId))
|
||||||
.setCallback(new RequestCallback<ChatRoomInfo>() {
|
.setCallback(new RequestCallback<ChatRoomInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ChatRoomInfo param) {
|
public void onSuccess(ChatRoomInfo param) {
|
||||||
e.onNext(param);
|
e.onNext(param);
|
||||||
e.onComplete();
|
e.onComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(int code) {
|
public void onFailed(int code) {
|
||||||
e.onError(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_013) + code));
|
e.onError(new Throwable(ResUtil.getString(R.string.room_model_roombasemodel_013) + code));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onException(Throwable exception) {
|
public void onException(Throwable exception) {
|
||||||
e.onError(exception);
|
e.onError(exception);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).subscribeOn(Schedulers.computation())
|
}).subscribeOn(Schedulers.computation())
|
||||||
.unsubscribeOn(Schedulers.computation());
|
.unsubscribeOn(Schedulers.computation());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -748,7 +753,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
public SingleSource<RoomResult> apply(UserInfo userInfo) throws Exception {
|
public SingleSource<RoomResult> apply(UserInfo userInfo) throws Exception {
|
||||||
String tmpTitle = userInfo.getNick() + ResUtil.getString(R.string.room_model_roombasemodel_014);
|
String tmpTitle = userInfo.getNick() + ResUtil.getString(R.string.room_model_roombasemodel_014);
|
||||||
return mRoomService.openRoom(userInfo.getUid(), AuthModel.get().getTicket(),
|
return mRoomService.openRoom(userInfo.getUid(), AuthModel.get().getTicket(),
|
||||||
type, tmpTitle, roomDesc, backPic, rewardId, gameId)
|
type, tmpTitle, roomDesc, backPic, rewardId, gameId)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
@@ -756,7 +761,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
return mRoomService.openRoom(uid, AuthModel.get().getTicket(),
|
return mRoomService.openRoom(uid, AuthModel.get().getTicket(),
|
||||||
type, title, roomDesc, backPic, rewardId, gameId)
|
type, title, roomDesc, backPic, rewardId, gameId)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
@@ -764,8 +769,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
|
|
||||||
public Single<RoomInfo> closeScreen(long roomId, boolean isCloseScreen) {
|
public Single<RoomInfo> closeScreen(long roomId, boolean isCloseScreen) {
|
||||||
return mRoomService.closeScreen(roomId, AuthModel.get().getCurrentUid(), isCloseScreen,
|
return mRoomService.closeScreen(roomId, AuthModel.get().getCurrentUid(), isCloseScreen,
|
||||||
AuthModel.get().getTicket()
|
AuthModel.get().getTicket()
|
||||||
)
|
)
|
||||||
.compose(RxHelper.handleBeanData())
|
.compose(RxHelper.handleBeanData())
|
||||||
.compose(RxHelper.handleSchedulers());
|
.compose(RxHelper.handleSchedulers());
|
||||||
}
|
}
|
||||||
@@ -1158,6 +1163,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取新用户进房礼物
|
* 获取新用户进房礼物
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GET("/roomFreeGift/get")
|
@GET("/roomFreeGift/get")
|
||||||
|
@@ -140,6 +140,8 @@ public interface IRoomBaseModel extends IModel {
|
|||||||
*/
|
*/
|
||||||
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo);
|
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo);
|
||||||
|
|
||||||
|
Single<String> updateMyMicQueue(int micPosition, String roomId, UserInfo userInfo, boolean isNoProhibitMic);
|
||||||
|
|
||||||
void downMicroPhone(int micPosition, final CallBack<String> callBack);
|
void downMicroPhone(int micPosition, final CallBack<String> callBack);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -28,6 +28,7 @@ import com.yizhuan.xchat_android_core.magic.MagicModel;
|
|||||||
import com.yizhuan.xchat_android_core.magic.bean.MagicInfo;
|
import com.yizhuan.xchat_android_core.magic.bean.MagicInfo;
|
||||||
import com.yizhuan.xchat_android_core.magic.bean.MagicReceivedInfo;
|
import com.yizhuan.xchat_android_core.magic.bean.MagicReceivedInfo;
|
||||||
import com.yizhuan.xchat_android_core.magic.bean.MultiMagicReceivedInfo;
|
import com.yizhuan.xchat_android_core.magic.bean.MultiMagicReceivedInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.manager.AudioEngineManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
||||||
@@ -713,7 +714,8 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
AvRoomModel.get().updateMyMicQueue(
|
AvRoomModel.get().updateMyMicQueue(
|
||||||
key,
|
key,
|
||||||
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
||||||
pkMemberInfo.getUserInfo()
|
pkMemberInfo.getUserInfo(),
|
||||||
|
!AudioEngineManager.get().isMute()
|
||||||
)
|
)
|
||||||
.subscribe();
|
.subscribe();
|
||||||
}
|
}
|
||||||
@@ -866,70 +868,60 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Single<String> inviteInTeam(List<RoomPKInvitedUpMicMember> roomPKInvitedUpMicMember) {
|
public Single<String> inviteInTeam(List<RoomPKInvitedUpMicMember> roomPKInvitedUpMicMember) {
|
||||||
return Single.create(new SingleOnSubscribe<ChatRoomMessage>() {
|
return Single.create((SingleOnSubscribe<ChatRoomMessage>) e -> {
|
||||||
@Override
|
//发送给自定义消息
|
||||||
public void subscribe(SingleEmitter<ChatRoomMessage> e) throws Exception {
|
RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE);
|
||||||
//发送给自定义消息
|
Map<String, RoomPKInvitedUpMicMember> micMemberMap = new HashMap<>();
|
||||||
RoomPkAttachment roomPkAttachment = new RoomPkAttachment(CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_INVITE);
|
for (RoomPKInvitedUpMicMember pkInvitedUpMicMember : roomPKInvitedUpMicMember) {
|
||||||
Map<String, RoomPKInvitedUpMicMember> micMemberMap = new HashMap<>();
|
micMemberMap.put(pkInvitedUpMicMember.getUid(), pkInvitedUpMicMember);
|
||||||
for (RoomPKInvitedUpMicMember pkInvitedUpMicMember : roomPKInvitedUpMicMember) {
|
}
|
||||||
micMemberMap.put(pkInvitedUpMicMember.getUid(), pkInvitedUpMicMember);
|
roomPkAttachment.setRoomPKInvitedUpMicMember(micMemberMap);
|
||||||
}
|
ChatRoomMessage inviteToTeamMsg = ChatRoomMessageBuilder.createChatRoomCustomMessage(
|
||||||
roomPkAttachment.setRoomPKInvitedUpMicMember(micMemberMap);
|
// 聊天室id
|
||||||
ChatRoomMessage inviteToTeamMsg = ChatRoomMessageBuilder.createChatRoomCustomMessage(
|
AvRoomDataManager.get().mCurrentRoomInfo.getRoomId() + "",
|
||||||
// 聊天室id
|
//attachment
|
||||||
AvRoomDataManager.get().mCurrentRoomInfo.getRoomId() + "",
|
roomPkAttachment
|
||||||
//attachment
|
);
|
||||||
roomPkAttachment
|
|
||||||
);
|
|
||||||
|
|
||||||
e.onSuccess(inviteToTeamMsg);
|
e.onSuccess(inviteToTeamMsg);
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.flatMap(new Function<ChatRoomMessage, SingleSource<? extends ChatRoomMessage>>() {
|
.flatMap(msg -> IMNetEaseManager.get().sendChatRoomMessage(msg, false))
|
||||||
@Override
|
.flatMap((Function<ChatRoomMessage, SingleSource<String>>) chatRoomMessage -> {
|
||||||
public SingleSource<? extends ChatRoomMessage> apply(ChatRoomMessage msg) throws Exception {
|
//添加公屏
|
||||||
return IMNetEaseManager.get().sendChatRoomMessage(msg, false);
|
RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment();
|
||||||
|
Map<String, RoomPKInvitedUpMicMember> inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap();
|
||||||
|
Iterator<Map.Entry<String, RoomPKInvitedUpMicMember>> 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);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.flatMap(new Function<ChatRoomMessage, SingleSource<String>>() {
|
|
||||||
@Override
|
|
||||||
public SingleSource<String> apply(ChatRoomMessage chatRoomMessage) throws Exception {
|
|
||||||
//添加公屏
|
|
||||||
RoomPkAttachment roomPkAttachment = (RoomPkAttachment) chatRoomMessage.getAttachment();
|
|
||||||
Map<String, RoomPKInvitedUpMicMember> inviteMap = roomPkAttachment.getRoomPKInvitedUpMicMemberMap();
|
|
||||||
Iterator<Map.Entry<String, RoomPKInvitedUpMicMember>> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
//如果是自己进队伍、出队伍,自己改变自己的麦序信息
|
//如果是自己进队伍、出队伍,自己改变自己的麦序信息
|
||||||
if (self != null) {
|
if (self != null) {
|
||||||
UserModel.get().getCacheLoginUserInfo().setGroupType(self.getGroupType());
|
UserModel.get().getCacheLoginUserInfo().setGroupType(self.getGroupType());
|
||||||
AvRoomModel.get().updateMyMicQueue(
|
AvRoomModel.get().updateMyMicQueue(
|
||||||
self.getPosition(),
|
self.getPosition(),
|
||||||
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
String.valueOf(AvRoomDataManager.get().mCurrentRoomInfo.getRoomId()),
|
||||||
UserModel.get().getCacheLoginUserInfo()
|
UserModel.get().getCacheLoginUserInfo(),
|
||||||
)
|
!AudioEngineManager.get().isMute()
|
||||||
.subscribe();
|
)
|
||||||
}
|
.subscribe();
|
||||||
return Single.just(ResUtil.getString(R.string.pk_model_pkmodel_022));
|
|
||||||
}
|
}
|
||||||
|
return Single.just(ResUtil.getString(R.string.pk_model_pkmodel_022));
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@@ -60,6 +60,11 @@ public class MicMemberInfo {
|
|||||||
private boolean isSelected = false;
|
private boolean isSelected = false;
|
||||||
//非麦序队列字段 end
|
//非麦序队列字段 end
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pk模式更新麦位信息, 默认开麦
|
||||||
|
*/
|
||||||
|
private boolean isNoProhibitMic = false;
|
||||||
|
|
||||||
public MicMemberInfo() {
|
public MicMemberInfo() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user