From 5cddd9f18d000291dcc22b6c4ce872eaeb3881fb Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 13 Nov 2023 15:30:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=88=B0=E4=B8=AA=E6=92=AD=E6=88=BF=E6=9C=AA=E4=B8=BB?= =?UTF-8?q?=E5=8A=A8=E4=B8=8A=E9=BA=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/avroom/fragment/SingleRoomFragment.kt | 36 +++++++++---------- .../core/manager/IMNetEaseManager.java | 35 ++++++++++++++++++ 2 files changed, 52 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/SingleRoomFragment.kt b/app/src/main/java/com/nnbc123/app/avroom/fragment/SingleRoomFragment.kt index 170cf5000..f225dc256 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/SingleRoomFragment.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/SingleRoomFragment.kt @@ -9,24 +9,7 @@ import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.databinding.DataBindingUtil import androidx.fragment.app.viewModels -import com.nnbc123.core.UriProvider -import com.nnbc123.core.auth.AuthModel -import com.nnbc123.core.fansteam.FansTeamInitInfo -import com.nnbc123.core.home.bean.BannerInfo -import com.nnbc123.core.im.custom.bean.FansTeamMsgAttachment -import com.nnbc123.core.im.custom.bean.RequestUpmicAttachment -import com.nnbc123.core.im.custom.bean.RoomPKAttachment -import com.nnbc123.core.manager.AvRoomDataManager -import com.nnbc123.core.manager.RoomEvent -import com.nnbc123.core.pay.event.FirstChargeEvent -import com.nnbc123.core.room.anotherroompk.ShowPkMatchEvent -import com.nnbc123.core.room.anotherroompk.SingleRoomPKModel -import com.nnbc123.core.statistic.StatisticManager -import com.nnbc123.core.statistic.protocol.StatisticsProtocol -import com.nnbc123.core.user.UserModel -import com.nnbc123.core.user.bean.UserInfo -import com.nnbc123.core.utils.CurrentTimeUtils -import com.nnbc123.core.utils.toast +import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.nnbc123.app.R import com.nnbc123.app.avroom.adapter.OnMicroItemClickListener import com.nnbc123.app.avroom.adapter.SingleAnchorMicroViewAdapter @@ -44,9 +27,24 @@ import com.nnbc123.app.fansteam.FansTeamJoinedActivity import com.nnbc123.app.fansteam.FansTeamViewModel import com.nnbc123.app.ui.webview.CommonWebViewActivity import com.nnbc123.app.ui.webview.DialogWebViewActivity +import com.nnbc123.core.UriProvider +import com.nnbc123.core.fansteam.FansTeamInitInfo +import com.nnbc123.core.home.bean.BannerInfo +import com.nnbc123.core.im.custom.bean.RequestUpmicAttachment +import com.nnbc123.core.im.custom.bean.RoomPKAttachment +import com.nnbc123.core.manager.AvRoomDataManager +import com.nnbc123.core.manager.RoomEvent +import com.nnbc123.core.pay.event.FirstChargeEvent +import com.nnbc123.core.room.anotherroompk.ShowPkMatchEvent +import com.nnbc123.core.room.anotherroompk.SingleRoomPKModel +import com.nnbc123.core.statistic.StatisticManager +import com.nnbc123.core.statistic.protocol.StatisticsProtocol +import com.nnbc123.core.user.UserModel +import com.nnbc123.core.user.bean.UserInfo +import com.nnbc123.core.utils.CurrentTimeUtils +import com.nnbc123.core.utils.toast import com.nnbc123.library.base.factory.CreatePresenter import com.nnbc123.library.utils.TimeUtils -import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.trello.rxlifecycle3.android.FragmentEvent import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers 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 2aab2c0ed..4b28938b5 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 @@ -1737,17 +1737,52 @@ public final class IMNetEaseManager { if (BuildConfig.DEBUG) { LogUtils.d("chatRoomInfoUpdate type =" + type + " extension=" + Arrays.toString(extension.entrySet().toArray())); } + boolean isSingleRoomOld = AvRoomDataManager.get().isSingleRoom(); if (type == 2) { roomQueueMicUpdate(extension); } else if (type == 1) { roomInfoUpdate(extension); + fixSingleRoomMicQueue(isSingleRoomOld); } else if (type == 3) { roomQueueMicUpdate(extension); roomInfoUpdate(extension); + fixSingleRoomMicQueue(isSingleRoomOld); } } } + /** + * 修复个播麦队列问题(正在房间时,后台切换成个播房,未主动上麦) + */ + private void fixSingleRoomMicQueue(boolean isSingleRoomOld){ + RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; + if (roomInfo == null) { + return; + } + boolean newIsSingleRoom = AvRoomDataManager.get().isSingleRoom(); + String micUid = AvRoomDataManager.get().getRoomQueueMemberUidByMicPosition(-1); + if (micUid == null && newIsSingleRoom && !isSingleRoomOld && AvRoomDataManager.get().isRoomOwner()) { + // 非个播房切换到个播房:需要主动上麦 + AvRoomModel.get().upMicroPhone( + -1, + String.valueOf(AuthModel.get().getCurrentUid()), + String.valueOf(roomInfo.getRoomId()), + false, + new CallBack() { + @Override + public void onSuccess(String data) { + + } + + @Override + public void onFail(int code, String error) { + + } + } + ); + } + } + /** * 房间信息更新