From 727e343d1ffd581c756c71b1112e98f8ba235370 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Wed, 17 Dec 2025 18:59:25 +0800 Subject: [PATCH] =?UTF-8?q?77=20=20=E4=BC=98=E5=8C=96=E5=BA=95=E9=83=A8?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=98=BE=E7=A4=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduleutil/bean/room/EMMessageInfo.java | 24 +- .../activity/room/activity/RoomActivity.kt | 950 +++++++----------- .../room/fragment/FriendshipRoomFragment.java | 10 +- .../room/fragment/RoomAuctionFragment.java | 3 + .../activity/room/fragment/RoomFragment.java | 106 +- .../room/fragment/RoomJukeboxFragment.java | 181 +--- .../room/fragment/RoomKtvFragment.java | 82 +- .../room/fragment/RoomMentorShipFragment.kt | 2 +- .../room/fragment/SingSongFragment.java | 58 +- .../user/activity/DailyTasksActivity.java | 2 +- .../src/main/res/layout/activity_room.xml | 18 +- 11 files changed, 444 insertions(+), 992 deletions(-) diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java index 6b9e4cc5..02b467e8 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java @@ -11,10 +11,21 @@ public class EMMessageInfo implements MultiItemEntity { public static final int QXRoomMessageTypeJoin = 1001; /// 用户退出房间 public static final int QXRoomMessageTypeQuit = 1002; + + //================================================================================================麦上变化================================================================= /// 用户上麦 public static final int QXRoomMessageTypeUpSeat = 1003; /// 用户下麦 public static final int QXRoomMessageTypeDownSeat = 1004; + /// 拍卖者被拉上麦 + public static final int QXRoomMessageTypeAuctionIsUp = 1022; + /// 竞拍开始,竞拍麦位发生变化 + public static final int QXRoomMessageTypeAuctionIsStart = 1024; + /// 互娱 麦位发生变化 + public static final int QXRoomMessageTypeSeatDidChanged = 1053; + /// 房间内换麦 + public static final int QXRoomMessageTypehm = 1039; + //==============================================================================================end================================================================= /// 房间收到礼物 public static final int QXRoomMessageTypeGift = 1005; /// 设置管理员 @@ -48,12 +59,11 @@ public class EMMessageInfo implements MultiItemEntity { public static final int QXRoomMessageTypeRoomUpdate = 1020; /// 清除魅力值 public static final int QXRoomMessageTypeRoom = 1021; - /// 拍卖者被拉上麦 - public static final int QXRoomMessageTypeAuctionIsUp = 1022; + + /// 拍卖者拍卖开始 public static final int QXRoomMessageTypeAuctionIsSelected = 1023; - /// 竞拍开始,竞拍麦位发生变化 - public static final int QXRoomMessageTypeAuctionIsStart = 1024; + /// 竞拍结束 public static final int QXRoomMessageTypeAuctionIsEnd = 1025; /// 主持延时 @@ -101,8 +111,7 @@ public class EMMessageInfo implements MultiItemEntity { public static final int QXRoomMessageTypeRoomFriendCreateRelation = 1051; /// 私密小屋结束时间发生延时 public static final int QXRoomMessageTypeCabinTimeDelay = 1052; - /// 麦位发生变化 - public static final int QXRoomMessageTypeSeatDidChanged = 1053; + /// 心动值发生变化 public static final int QXRoomMessageTypeHeartDidChanged = 1054; /// 小黑屋有人退出房间 @@ -129,8 +138,7 @@ public class EMMessageInfo implements MultiItemEntity { //已点歌曲数量 public static final int QXRoomMessageTypeSongerNum = 1072; - /// 房间内换麦 - public static final int QXRoomMessageTypehm = 1039; + public static final int QXRoomMessageTypeCPText = 1080;//CP特效,进入房间的特效, /// 签约开始 public static final int QXRoomMessageTypeSignStartText = 1090; diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt index 9e73e1de..1105f296 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt @@ -425,7 +425,7 @@ class RoomActivity : BaseMvpActivity(), "redpacketId", qxRedPacketManager!!.getAllRedPackets().get(0).getRedpacket_id() ) - .navigation(); + .navigation() } else { redEnvelopesFragment = RedEnvelopesFragment(this@RoomActivity) redEnvelopesFragment!!.setIsCollectedRoom(mRoomUserBean!!.is_collect == 1) @@ -556,7 +556,7 @@ class RoomActivity : BaseMvpActivity(), view ) } - mBinding!!.rlMic.setOnClickListener { view: View -> + mBinding!!.rlMai.setOnClickListener { view: View -> this.onClick( view ) @@ -571,7 +571,7 @@ class RoomActivity : BaseMvpActivity(), view ) } - mBinding!!.rlMore.setOnClickListener { view: View -> + mBinding!!.rlPk.setOnClickListener { view: View -> this.onClick( view ) @@ -934,7 +934,9 @@ class RoomActivity : BaseMvpActivity(), number = roomBean.online_number mBinding!!.roomTop.tvNum.text = number.toString() + "" - setviewyc(true) + if (!isSwitchRoomType) { + setviewyc(true) + } LogUtils.e("加入", roomId) @@ -976,17 +978,10 @@ class RoomActivity : BaseMvpActivity(), AgoraManager.getInstance().isBjMusic = true } - - if (mRoomInfoResp?.user_info?.pit_number == 9 && mRoomInfoResp?.user_info?.user_id == SpUtil.getUserId()) { - ivSoundEffects(true) - } else { - ivSoundEffects(false) - } - userPermissionChange() if (resp.room_info.type_id == "7" || resp.room_info.type_id == "2") { - mBinding!!.rlMore.visibility = View.GONE + mBinding!!.rlPk.visibility = View.GONE mBinding!!.rlMisc.visibility = View.GONE } @@ -1019,17 +1014,7 @@ class RoomActivity : BaseMvpActivity(), MvpPre?.roomRedPackets(roomId) - - Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn( - AndroidSchedulers.mainThread() - ).subscribe { aLong: Long? -> - if (ActivityUtils.getTopActivity() is RoomActivity) { - startActivity( - Intent(ActivityUtils.getTopActivity(), TransparentActivity::class.java) - ) - } - } - + roomBtnShowIsHide() } @@ -1415,7 +1400,7 @@ class RoomActivity : BaseMvpActivity(), if (msgType == EMMessageInfo.QXRoomMessageTypeRoomPKEnd || msgType == EMMessageInfo.QXRoomMessageTypeRoomPKDisconnect ) { - setRoleType(3, -11) + roomBtnShowIsHide() } } else if (msgType == EMMessageInfo.QXRoomMessageTypeMuteRemoteAudio) {//pk 关闭对方麦 handleMsgType125(messageEvent, text.text) @@ -1449,18 +1434,6 @@ class RoomActivity : BaseMvpActivity(), } else { roomFragment!!.handleRoomMessage(messageEvent) } -// when(mRoomInfoResp?.room_info?.type_id) { -// "1","3","4","8" -> { -// if (mRoomInfoResp?.room_info?.label_id == "1") { -//// roomFragment!!.SingSongEvent(messageEvent) -// } else { -// roomFragment!!.handleRoomMessage(messageEvent) -// } -// } -// "2","7","9","10" -> { -// roomFragment!!.handleRoomMessage(messageEvent) -// } -// } } CommonAppContext.getInstance().getOnlineMap() @@ -1498,7 +1471,7 @@ class RoomActivity : BaseMvpActivity(), xlhDjs(messageEvent.text.end_time) } else if (msgType == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRed) { - qxRedPacketManager!!.addRedPacket(roomId,messageEvent.text.redpacketInfo) + qxRedPacketManager!!.addRedPacket(roomId, messageEvent.text.redpacketInfo) } else if (msgType == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRedRemove) { qxRedPacketManager!!.removeRedPacket(messageEvent.text.redpacket_id) } else if (msgType == EMMessageInfo.QXRoomMessageTypeSongerNum || //房间点歌数量变化 @@ -1515,6 +1488,8 @@ class RoomActivity : BaseMvpActivity(), } roomFragment?.upRoomInfo(mRoomInfoResp) roomFragment!!.handleRoomMessage(messageEvent) + + roomBtnShowIsHide() } } else if (msgType == EMMessageInfo.QXRoomMessageTypeCPText) { LogUtils.e("CPText", messageEvent.text.rights_icon) @@ -1629,56 +1604,34 @@ class RoomActivity : BaseMvpActivity(), val pitList = mRoomInfoResp?.room_info?.pit_list - if (pitList != null && !pitList.isEmpty()) { + if (!pitList.isNullOrEmpty()) { if (text == null) { return } - val fromPitNumber = text.from_pit_number val toPitNumber = text.to_pit_number if (!TextUtils.isEmpty(fromPitNumber) && !TextUtils.isEmpty(toPitNumber)) { - performSwitchMic(fromPitNumber, toPitNumber, messageEvent) + mRoomInfoResp?.room_info?.pit_list!![toPitNumber.toInt() - 1] = + getPitBean(messageEvent, 2) + mRoomInfoResp?.room_info?.pit_list!![fromPitNumber.toInt() - 1] = + RoomPitBean(fromPitNumber) + + + if (mRoomInfoResp?.room_info?.pit_list!![toPitNumber.toInt() - 1].user_id.equals( + mRoomInfoResp?.user_info?.user_id.toString() + ) + ) { + mRoomInfoResp?.user_info?.pit_number = Integer.parseInt(toPitNumber) + } + roomFragment?.upRoomInfoData(mRoomInfoResp) + roomFragment!!.handleRoomMessage(messageEvent) + // 执行换麦逻辑 + roomBtnShowIsHide() } - // 执行换麦逻辑 - } - - } - - private fun performSwitchMic( - fromPitNumber: String, - toPitNumber: String, - messageEvent: RoomMessageEvent - ) { - mRoomInfoResp?.room_info?.pit_list!![toPitNumber.toInt() - 1] = getPitBean(messageEvent, 2) - mRoomInfoResp?.room_info?.pit_list!![fromPitNumber.toInt() - 1] = RoomPitBean(fromPitNumber) - - if ("9" == toPitNumber && messageEvent.text.fromUserInfo.user_id == SpUtil.getUserId()) { - mRoomInfoResp?.user_info?.pit_number = Integer.parseInt(toPitNumber) - ivSoundEffects(true) - setRoleType(3, mRoomInfoResp?.user_info?.pit_number!!) - } else { - if (customMusicFloatingView != null) { - customMusicFloatingView!!.destroy() - AgoraManager.getInstance().desMusic() - isMusic = false - } - - - ivSoundEffects(false) - } - - roomFragment!!.handleRoomMessage(messageEvent) - - userPermissionChange() - - - if (mRoomInfoResp?.user_info?.pit_number == 9) { - ivSoundEffects(true) } } - private fun hand1005(messageEvent: RoomMessageEvent, text: T?) { if (text == null || mRoomInfoResp == null || mRoomInfoResp?.room_info == null) return roomFragment!!.handleRoomMessage(messageEvent) @@ -1733,14 +1686,10 @@ class RoomActivity : BaseMvpActivity(), ) { for (roomPitBean in mRoomInfoResp?.song_pit_list!!) { AgoraManager.getInstance().ClientRole(false) - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) - mBinding?.rlMic?.visibility = View.GONE } if (mRoomInfoResp?.song_user_info != null && mRoomInfoResp?.song_user_info?.user_id != null) { if (mRoomInfoResp?.song_user_info?.user_id == SpUtil.getUserId().toString() + "") { AgoraManager.getInstance().ClientRole(false) - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) - mBinding?.rlMic?.visibility = View.GONE } } } @@ -1770,87 +1719,43 @@ class RoomActivity : BaseMvpActivity(), val fromUserInfo = text.fromUserInfo ?: return val pitNumber = text.pit_number - val userId = fromUserInfo.user_id - val currentUserId = SpUtil.getUserId() + val typeId = mRoomInfoResp?.room_info?.type_id + val roomType = RoomType.fromTypeId(typeId) - - - if ("9" == pitNumber && userId == currentUserId) { - ivSoundEffects(true) - } - - if (userId == currentUserId) { - aBoolean = false - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up) - setBoolean(aBoolean) - if (mRoomInfoResp?.user_info != null) { - mRoomInfoResp?.user_info?.pit_number = - pitNumber?.toInt() ?: -1 - } - setRoleType(3, pitNumber!!.toInt()) - switchMic(2) - } - - val typeId = RoomType.fromTypeId(mRoomInfoResp?.room_info?.type_id) - - when (typeId) { - RoomType.AUCTION -> { - if ("9" == pitNumber) { - mRoomInfoResp?.room_info?.pit_list!![0] = getPitBean(messageEvent, 1) - if (mRoomInfoResp?.user_info != null) { - mRoomInfoResp?.user_info?.pit_number = pitNumber.toInt() - } + if (roomType == RoomType.AUCTION) { + if ("9" == pitNumber) { + mRoomInfoResp?.room_info?.pit_list!![0] = getPitBean(messageEvent, 1) + if (mRoomInfoResp?.user_info != null + && mRoomInfoResp?.user_info?.user_id?.toString() + .equals(mRoomInfoResp?.room_info?.pit_list!![0].user_id) + ) { + mRoomInfoResp?.user_info?.pit_number = pitNumber.toInt() } - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment!!.handleRoomMessage(messageEvent) } - - RoomType.DATING -> { - val labelId = mRoomInfoResp?.room_info?.label_id - if ("2" == labelId) { - roomFragment!!.handleRoomMessage(messageEvent) - } else if ("1" == labelId) { + } else { + if (roomType == RoomType.DATING && mRoomInfoResp?.room_info?.label_id == "2" && pitNumber.toInt() != 9 && pitNumber.toInt() != 10) { + mRoomInfoResp?.song_pit_list?.add(getPitBean(messageEvent, 1)) + if (fromUserInfo.user_id == mRoomInfoResp?.user_info?.user_id){ + mRoomInfoResp?.user_info?.pit_number = 1 + } + } else { + if (pitNumber.toInt() - 1 >= 0 && mRoomInfoResp?.room_info?.pit_list != null + && mRoomInfoResp?.room_info?.pit_list!!.size > pitNumber.toInt() - 1) { mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = getPitBean(messageEvent, 1) - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment!!.handleRoomMessage(messageEvent) + } + + if (mRoomInfoResp?.user_info != null && mRoomInfoResp?.user_info?.user_id == fromUserInfo.user_id) { + mRoomInfoResp?.user_info?.pit_number = pitNumber.toInt() } } - RoomType.MUTUAL_ENTERTAINMENT -> { - mBinding!!.rlMore.visibility = View.GONE - mBinding!!.rlMisc.visibility = View.GONE - - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = - getPitBean(messageEvent, 1) - - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment!!.handleRoomMessage(messageEvent) - } - - RoomType.JUKEBOX -> { - mBinding!!.rlMore.visibility = View.GONE - mBinding!!.rlMisc.visibility = View.GONE - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = - getPitBean(messageEvent, 1) - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment?.handleRoomMessage(messageEvent) - } - - RoomType.SIGN_CONTRACT -> { - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = - getPitBean(messageEvent, 1) - roomFragment?.upRoomInfoData(mRoomInfoResp) - mBinding!!.rlMore.visibility = View.GONE - mBinding!!.rlMisc.visibility = View.GONE - roomFragment?.handleRoomMessage(messageEvent) - } - - else -> { - roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) - } } + roomFragment?.upRoomInfoData(mRoomInfoResp) + roomFragment?.handleRoomMessage(messageEvent) + + roomBtnShowIsHide() } private fun handleMsgType1004(messageEvent: RoomMessageEvent, text: T?) { @@ -1859,100 +1764,43 @@ class RoomActivity : BaseMvpActivity(), val fromUserInfo = text.fromUserInfo ?: return val pitNumber = text.pit_number - val userId = fromUserInfo.user_id - val currentUserId = SpUtil.getUserId() - - if (userId == currentUserId && "9" == pitNumber) { - if (customMusicFloatingView != null) { - customMusicFloatingView!!.destroy() - AgoraManager.getInstance().desMusic() - isMusic = false - } - aBoolean = true - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) - setBoolean(aBoolean) -// mBinding!!.roomTop.rl.visibility = View.GONE - mRoomInfoResp?.user_info?.pit_number = 0 - ivSoundEffects(false) - setRoleType(0, 0) - } else if (userId == currentUserId) { - aBoolean = true - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) - setBoolean(aBoolean) - mRoomInfoResp?.user_info?.pit_number = 0 - setRoleType(0, 0) - switchMic(2) - } val typeId = mRoomInfoResp?.room_info?.type_id val roomType = RoomType.fromTypeId(typeId) - - - when (roomType) { - RoomType.AUCTION -> { - if ("9" == pitNumber) { - mRoomInfoResp?.room_info?.pit_list!![0] = RoomPitBean(pitNumber) - if (userId == currentUserId) { - if (mRoomInfoResp?.user_info != null) { - mRoomInfoResp?.user_info?.pit_number = 0 - } - } - } else if ("888" == pitNumber) {//被拍者 - mRoomInfoResp?.room_auction = null - if (userId == currentUserId) { - setRoleType(0, 0) - switchMic(2) - } + if (roomType == RoomType.AUCTION) { + if ("9" == pitNumber) { + if (mRoomInfoResp?.user_info != null + && mRoomInfoResp?.user_info?.user_id?.toString() + .equals(mRoomInfoResp?.room_info?.pit_list!![0].user_id) + ) { + mRoomInfoResp?.user_info?.pit_number = 0 } - roomFragment!!.upRoomInfoData(mRoomInfoResp) + mRoomInfoResp?.room_info?.pit_list!![0] = RoomPitBean(pitNumber) } - - RoomType.DATING -> { - //TODO 下麦更换数据 - val labelId = mRoomInfoResp?.room_info?.label_id - if ("1" == labelId) { + } else { + if (roomType == RoomType.DATING && mRoomInfoResp?.room_info?.label_id == "2" && (pitNumber.isNullOrEmpty() || (pitNumber.toInt() != 9 && pitNumber.toInt() != 10))) { + mRoomInfoResp?.song_pit_list?.removeIf { roomPitBean -> + roomPitBean.user_id.equals(fromUserInfo.user_id.toString()) + } + if (mRoomInfoResp?.user_info != null && fromUserInfo.user_id == mRoomInfoResp?.user_info?.user_id){ + mRoomInfoResp?.user_info?.pit_number = 0 + } + } else { + if (pitNumber.isNotEmpty() && pitNumber.toInt() - 1 >= 0 + && mRoomInfoResp?.room_info?.pit_list != null + && mRoomInfoResp?.room_info?.pit_list!!.size > pitNumber.toInt() - 1) { mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - - roomFragment!!.upRoomInfoData(mRoomInfoResp) - if (mRoomInfoResp?.user_info?.user_id == SpUtil.getUserId()) { - ivSoundEffects(false) - } + } + if (mRoomInfoResp?.user_info != null && mRoomInfoResp?.user_info?.user_id == fromUserInfo.user_id) { + mRoomInfoResp?.user_info?.pit_number = 0 } } - - RoomType.MUTUAL_ENTERTAINMENT -> { - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment!!.handleRoomMessage(messageEvent) - } - - RoomType.SIGN_CONTRACT -> { - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment!!.handleRoomMessage(messageEvent) - } - - RoomType.JUKEBOX -> { - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment?.handleRoomMessage(messageEvent) - } - - RoomType.SIGN_CONTRACT -> { - mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) - roomFragment!!.upRoomInfoData(mRoomInfoResp) - roomFragment?.handleRoomMessage(messageEvent) - } - - else -> { - roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) - } } - roomFragment!!.handleRoomMessage(messageEvent) + roomFragment!!.upRoomInfoData(mRoomInfoResp) + roomFragment?.handleRoomMessage(messageEvent) + roomBtnShowIsHide() } private fun handleMsgType1022(messageEvent: RoomMessageEvent, text: T?) { @@ -1962,32 +1810,22 @@ class RoomActivity : BaseMvpActivity(), val userId = text.fromUserInfo.user_id val currentUserId = SpUtil.getUserId() - if (text.type == 1) { - if ("888" == pitNumber) { - if (userId == currentUserId) { - setRoleType(3, 888) - switchMic(2) - aBoolean = false - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up) + when (text.type) { + 1 -> { + if (userId == mRoomInfoResp?.user_info?.user_id) { + mRoomInfoResp?.user_info?.pit_number = 888 } } - } else if (text.type == 2) { - if ("9" == pitNumber) { - setRoleType(0, 0) - switchMic(2) - } else if ("888" == pitNumber) { + + 2 -> { + mRoomInfoResp?.user_info?.pit_number = 0 mRoomInfoResp?.room_auction = RoomAuction() - if (userId == currentUserId) { - aBoolean = true - ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) - setRoleType(0, 0) - switchMic(2) - } } } - roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.handleRoomMessage(messageEvent) + + roomBtnShowIsHide() } private fun handleMsgType1023(messageEvent: RoomMessageEvent, text: T?) { @@ -2006,11 +1844,24 @@ class RoomActivity : BaseMvpActivity(), } if (mRoomInfoResp?.room_auction?.auction_list != null && text.auction_list != null) { mRoomInfoResp?.room_auction?.auction_list!!.addAll(text.auction_list) + + mRoomInfoResp?.room_auction?.auction_list?.forEachIndexed { idx, auction -> + if (idx < 6) { + if (auction.user_id.equals(mRoomInfoResp?.user_info?.user_id.toString())) { + mRoomInfoResp?.user_info?.pit_number = 1 + } + } + } + } else { mRoomInfoResp?.room_auction?.auction_list = ArrayList() } + + roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment!!.handleRoomMessage(messageEvent) + + roomBtnShowIsHide() } private fun handleMsgType1020(messageEvent: RoomMessageEvent, text: T?) { @@ -2499,8 +2350,8 @@ class RoomActivity : BaseMvpActivity(), if (text == null) return val count = text.count - if (count == 0) { - tvFirst(SpannableStringBuilder("0人排队")) + if (count <= 0) { + setPeopleQueue(SpannableStringBuilder("0人排队")) return } @@ -2519,7 +2370,7 @@ class RoomActivity : BaseMvpActivity(), countText.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ) - tvFirst(spannableStringBuilder) + setPeopleQueue(spannableStringBuilder) } private fun handleMsgType1016(messageEvent: RoomMessageEvent, text: T?) { @@ -2607,7 +2458,7 @@ class RoomActivity : BaseMvpActivity(), private var isSwith = false private var voive = false //声音开关 false 静音关闭 true 静音开启 private var canSend = true - private var aBoolean = true //上下麦按钮 + private var maiStatus = true //true:上麦 false:下麦 按钮 private var mCountDownTimer: CountDownTimer? = null private var mCountDownTimer2: CountDownTimer? = null @@ -2664,7 +2515,7 @@ class RoomActivity : BaseMvpActivity(), } else { dialogDismiss(1) } - } else if (id == R.id.rl_mic) { + } else if (id == R.id.rl_mai) { if (mRoomInfoResp?.user_info?.is_mute_pit != null && mRoomInfoResp?.user_info?.is_mute_pit == "1") { ToastUtils.show("您被禁麦了") } else { @@ -2699,14 +2550,14 @@ class RoomActivity : BaseMvpActivity(), AgoraManagerEx.getInstance().muteSpeaker(voive) } } - } else if (id == R.id.rl_more) { //点击PK + } else if (id == R.id.rl_pk) { //点击PK val fragment = RoomPkDialogFragment.newInstance( roomId, SpUtil.getUserId().toString() + "", mRoomInfoResp?.room_info?.is_pk!! ) - LogUtils.e("pk_info", "id == R.id.rl_more ${mRoomInfoResp?.room_info?.is_pk!!}") + LogUtils.e("pk_info", "id == R.id.rl_pk ${mRoomInfoResp?.room_info?.is_pk!!}") fragment.show(supportFragmentManager, "RoomPkDialogFragment") addActiveDialogFragment(fragment) // 添加到管理列表 } else if (id == R.id.rl_message) { @@ -2748,18 +2599,18 @@ class RoomActivity : BaseMvpActivity(), ) } else if (id == R.id.iv_wheat_feeding) { //点击上麦操作 if (mRoomInfoResp?.room_info?.room_up_pit_type == "1") { - if (aBoolean) { + if (maiStatus) { MvpPre!!.applyPit(roomId, "") } else { MvpPre!!.downPit(roomId, "") } } else { - if (aBoolean) { + if (maiStatus) { MvpPre!!.applyPit(roomId, "") - aBoolean = false + maiStatus = false } else { MvpPre!!.downPit(roomId, "") - aBoolean = true + maiStatus = true } } } @@ -2782,28 +2633,6 @@ class RoomActivity : BaseMvpActivity(), } else { 4 } -// if (mRoomInfoResp?.getUser_info()?.getPit_number() == 9) { -// return if (mRoomInfoResp?.getUser_info()?.getIs_room_owner() == 1) { -// 1 -// } else if (mRoomInfoResp?.getUser_info()?.getIs_management() == 1) { -// 2 -// } else if (mRoomInfoResp?.getUser_info()?.getIs_host() == 1) { -// 3 -// } else { -// 4 -// } -// } else { -// if (mRoomInfoResp?.getUser_info()?.getIs_room_owner() == 1) { -// return 1 -// } -// if (mRoomInfoResp?.getUser_info()?.getIs_management() == 1) { -// return 2 -// } -// if (mRoomInfoResp?.getUser_info()?.getIs_host() == 1) { -// return 3 -// } -// return 4 -// } } @@ -2938,11 +2767,11 @@ class RoomActivity : BaseMvpActivity(), /** 进入小黑屋将所有的底部隐藏 */ fun setviewyc(voive: Boolean) { - mBinding!!.rlMore.visibility = + mBinding!!.rlPk.visibility = if (voive) View.GONE else View.GONE mBinding!!.rlMisc.visibility = if (voive) View.GONE else View.GONE - mBinding!!.rlMic.visibility = + mBinding!!.rlMai.visibility = if (voive) View.VISIBLE else View.GONE mBinding!!.rlSett.visibility = if (voive) View.VISIBLE else View.GONE @@ -2964,152 +2793,59 @@ class RoomActivity : BaseMvpActivity(), if (voive) View.VISIBLE else View.GONE } - fun ivWheatFeeding(id: Int) { - mBinding!!.ivWheatFeeding.setImageResource(id) + private fun setVoiveState(voive: Boolean) { + this.maiStatus = voive } - fun setBoolean(voive: Boolean) { - this.aBoolean = voive - } - - fun ivSoundEffects(voive: Boolean) { - mBinding!!.ivSoundEffects.visibility = - if (voive) View.VISIBLE else View.GONE - } - - fun tvFirst(s: SpannableStringBuilder?) { + private fun setPeopleQueue(s: SpannableStringBuilder?) { mBinding!!.tvFirst.text = s } - fun setrlMic(voive: Boolean) { - mBinding?.rlMic?.visibility = - if (voive) View.VISIBLE else View.GONE - } - fun rlMore(voive: Boolean) { - mBinding!!.rlMore.visibility = if (voive) View.VISIBLE else View.GONE - } - - fun ivMic(inIvMic: Int) { - mBinding!!.ivMic.setImageResource(inIvMic) - } - - fun setRoleType(roleType: Int, pit_number: Int) { - val rl_voice = mBinding?.rlVoive // 喇叭 - val rl_mic = mBinding?.rlMic // 麦克风 - val rl_more = mBinding?.rlMore // PK按钮 - val rl_misc = mBinding?.rlMisc // 音乐按钮 - val rl_message = mBinding?.rlMessage // 消息按钮 - - rl_voice?.visibility = View.GONE - rl_mic?.visibility = View.GONE - rl_more?.visibility = View.GONE - rl_misc?.visibility = View.GONE - - // 空指针保护 - if (mRoomInfoResp == null || mRoomInfoResp?.room_info == null || mRoomInfoResp?.user_info == null) { - return - } - - val typeId = mRoomInfoResp?.room_info?.type_id - val labelId = mRoomInfoResp?.room_info?.label_id - val userPitNumber = mRoomInfoResp?.user_info?.pit_number!! - - // 情况1: typeId = 6 时,只显示消息按钮 - if ("6" == typeId) { - rl_message?.visibility = View.GONE - return - } else { - rl_message?.visibility = View.VISIBLE - } - - - // 根据角色类型显示按钮 - when (roleType) { - 1, 2, 3 -> { - // 角色类型1,2,3显示全部按钮(但受其他条件限制) - rl_voice?.visibility = View.VISIBLE - - // 麦克风显示条件 - if (userPitNumber != 0) { - rl_mic?.visibility = View.VISIBLE + //底部麦上按钮显示 + private fun roomBtnShowIsHide() { + //是否在麦上显示状态 + if (mRoomInfoResp?.user_info?.pit_number != 0) { + maiStatus = false + mBinding!!.ivWheatFeeding.setImageResource(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up) + switchMic(2) + setVoiveState(maiStatus) + mBinding?.rlMai?.visibility = View.VISIBLE + if (mRoomInfoResp?.user_info?.pit_number == 9) { + mBinding?.ivSoundEffects?.visibility = View.VISIBLE + if (customMusicFloatingView != null) { + customMusicFloatingView!!.destroy() + AgoraManager.getInstance().desMusic() + isMusic = false } - - // PK按钮显示条件:typeId=1且labelId=1且userPitNumber=9 - if ("1" == typeId && "1" == labelId && userPitNumber == 9) { - rl_more?.visibility = View.VISIBLE - } - - // 音乐按钮不显示 - rl_misc?.visibility = View.GONE - } - - 0 -> { - // 角色类型0显示喇叭和麦克风 - rl_voice?.visibility = View.VISIBLE - - // 麦克风显示条件 - if (userPitNumber != 0) { - rl_mic?.visibility = View.VISIBLE - } - - rl_misc?.visibility = View.GONE - } - - 5 -> { - // 角色类型5只显示喇叭 - rl_voice?.visibility = View.VISIBLE - rl_more?.visibility = View.GONE - rl_misc?.visibility = View.GONE - } - - else -> { - // 其他角色类型不显示任何功能按钮 - } - } - - - // 情况3: 麦克风的特殊显示逻辑 - when { - userPitNumber > 0 -> { - rl_mic?.visibility = View.VISIBLE - if (CommonAppContext.getInstance().isMai) { - switchMic(1) // 打开麦克风 + //判断是交友房 and 自己是主持麦 + if (RoomType.fromTypeId(mRoomInfoResp?.room_info?.type_id.toString()) == RoomType.DATING + && mRoomInfoResp?.room_info?.label_id.equals("1") + && mRoomInfoResp?.room_info?.pit_list!![8].user_id.equals(mRoomInfoResp?.user_info?.user_id.toString()) + ) { + mBinding?.rlPk?.visibility = View.VISIBLE } else { - switchMic(2) // 关闭麦克风 + mBinding?.rlPk?.visibility = View.GONE } + + } + } else { + if (RoomType.fromTypeId(mRoomInfoResp?.room_info?.type_id) == RoomType.JUKEBOX + && mRoomInfoResp?.singer_info?.song_info?.singer_user_id == mRoomInfoResp?.user_info?.user_id){ + return } - pit_number == 888 -> { - rl_mic?.visibility = View.VISIBLE - switchMic(2) // 关闭麦克风 - } - - pit_number == -1 -> { - rl_mic?.visibility = View.VISIBLE - switchMic(1) // 打开麦克风 - } - - else -> { - rl_mic?.visibility = View.GONE - switchMic(2) // 关闭麦克风 - } - } - // 情况4: 特殊typeId隐藏PK和音乐按钮 - if ("7" == typeId || "2" == typeId) { - rl_more?.visibility = View.GONE - rl_misc?.visibility = View.GONE - } - // 最终确认:typeId不等于1的情况,都不展示PK按钮 - if ("1" != typeId) { - rl_more?.visibility = View.GONE + maiStatus = true + mBinding!!.ivWheatFeeding.setImageResource(com.xscm.moduleutil.R.mipmap.room_wheat_feeding) + switchMic(2) + setVoiveState(maiStatus) + mBinding?.rlMai?.visibility = View.GONE + mBinding?.ivSoundEffects?.visibility = View.GONE } - if ("1" == typeId && "2" == labelId) { - rl_misc?.visibility = View.VISIBLE - } } + fun isMute(is_mute: Int) { val text = text() text.is_mute = is_mute @@ -3129,111 +2865,6 @@ class RoomActivity : BaseMvpActivity(), } - @SuppressLint("MissingInflatedId") - fun dialogDismiss(type: Int) { - // // 使用 AlertDialog.Builder - val builder = AlertDialog.Builder(this) - val inflater = layoutInflater - val dialogView = - inflater.inflate(com.xscm.moduleutil.R.layout.room_message_input_menu, null) - builder.setView(dialogView) - val etContent = dialogView.findViewById(com.xscm.moduleutil.R.id.et_content) - val tvSend = dialogView.findViewById