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.core.view.updateLayoutParams
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import com.nnbc123.core.UriProvider import com.netease.nim.uikit.common.util.sys.ScreenUtil
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.nnbc123.app.R import com.nnbc123.app.R
import com.nnbc123.app.avroom.adapter.OnMicroItemClickListener import com.nnbc123.app.avroom.adapter.OnMicroItemClickListener
import com.nnbc123.app.avroom.adapter.SingleAnchorMicroViewAdapter 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.fansteam.FansTeamViewModel
import com.nnbc123.app.ui.webview.CommonWebViewActivity import com.nnbc123.app.ui.webview.CommonWebViewActivity
import com.nnbc123.app.ui.webview.DialogWebViewActivity 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.base.factory.CreatePresenter
import com.nnbc123.library.utils.TimeUtils import com.nnbc123.library.utils.TimeUtils
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.trello.rxlifecycle3.android.FragmentEvent import com.trello.rxlifecycle3.android.FragmentEvent
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers

View File

@@ -1737,17 +1737,52 @@ public final class IMNetEaseManager {
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
LogUtils.d("chatRoomInfoUpdate type =" + type + " extension=" + Arrays.toString(extension.entrySet().toArray())); LogUtils.d("chatRoomInfoUpdate type =" + type + " extension=" + Arrays.toString(extension.entrySet().toArray()));
} }
boolean isSingleRoomOld = AvRoomDataManager.get().isSingleRoom();
if (type == 2) { if (type == 2) {
roomQueueMicUpdate(extension); roomQueueMicUpdate(extension);
} else if (type == 1) { } else if (type == 1) {
roomInfoUpdate(extension); roomInfoUpdate(extension);
fixSingleRoomMicQueue(isSingleRoomOld);
} else if (type == 3) { } else if (type == 3) {
roomQueueMicUpdate(extension); roomQueueMicUpdate(extension);
roomInfoUpdate(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) {
}
}
);
}
}
/** /**
* 房间信息更新 * 房间信息更新