fix:修复切换到个播房未主动上麦问题

This commit is contained in:
Max
2023-11-13 15:30:29 +08:00
parent 19d6fed2fb
commit 5cddd9f18d
2 changed files with 52 additions and 19 deletions

View File

@@ -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

View File

@@ -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<String>() {
@Override
public void onSuccess(String data) {
}
@Override
public void onFail(int code, String error) {
}
}
);
}
}
/**
* 房间信息更新