小游戏坑位数量判断优化

This commit is contained in:
huangjian
2022-05-13 10:51:53 +08:00
parent f943d9edc6
commit e05ec184f0
4 changed files with 23 additions and 9 deletions

View File

@@ -92,7 +92,7 @@ class GameMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(context) {
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {
return max(AvRoomDataManager.get().mCurrentRoomInfo?.mgMicNum ?: 6, 6) return AvRoomDataManager.get().mgMicNum
} }
} }

View File

@@ -63,7 +63,7 @@ class GameMiniMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(context
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {
return max(AvRoomDataManager.get().mCurrentRoomInfo?.mgMicNum ?: 6, 6) return AvRoomDataManager.get().mgMicNum
} }

View File

@@ -143,8 +143,8 @@ class GameRoomFragment : BaseRoomFragment<IGameRoomView?, GameRoomPresenter?>(),
} }
} }
fun isSixMic(): Boolean { private fun isSixMic(): Boolean {
return AvRoomDataManager.get().mCurrentRoomInfo?.mgMicNum == 6 return AvRoomDataManager.get().mgMicNum == AvRoomDataManager.GAME_DEF_MIC_COUNT
} }
override fun onSendMsgSuccess(msg: String?) { override fun onSendMsgSuccess(msg: String?) {

View File

@@ -73,6 +73,12 @@ public final class AvRoomDataManager {
* VIP麦位的位置 * VIP麦位的位置
*/ */
public static final int POSITION_VIP_MIC = 999; public static final int POSITION_VIP_MIC = 999;
/**
* 游戏房最小坑位数
*/
public static final int GAME_DEF_MIC_COUNT = 6;
/************************************************公屏数据****************************************************/ /************************************************公屏数据****************************************************/
private final static int MAX_MESSAGE_SIZE = 2000;//公屏最多展示条数 private final static int MAX_MESSAGE_SIZE = 2000;//公屏最多展示条数
@@ -660,8 +666,8 @@ public final class AvRoomDataManager {
* 获取坑上没人且没上锁且最大6个坑位的位置 * 获取坑上没人且没上锁且最大6个坑位的位置
*/ */
public int findGamePosition() { public int findGamePosition() {
if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= 6) { if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= getMgMicNum()) {
for (int i = 0; i < 6; i++) { for (int i = 0; i < getMgMicNum(); i++) {
int key = mMicQueueMemberMap.keyAt(i); int key = mMicQueueMemberMap.keyAt(i);
RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.valueAt(i); RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.valueAt(i);
if (roomQueueInfo.mChatRoomMember == null && if (roomQueueInfo.mChatRoomMember == null &&
@@ -678,8 +684,8 @@ public final class AvRoomDataManager {
*/ */
public boolean isGamePlaying() { public boolean isGamePlaying() {
if (!isOpenGame()) return false; if (!isOpenGame()) return false;
if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= 6) { if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= getMgMicNum()) {
for (int i = 0; i < 6; i++) { for (int i = 0; i < getMgMicNum(); i++) {
RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.valueAt(i); RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.valueAt(i);
if (roomQueueInfo.mChatRoomMember != null && if (roomQueueInfo.mChatRoomMember != null &&
roomQueueInfo.mChatRoomMember.getGameStatus() == GameStatus.STATUS_PLAYING) { roomQueueInfo.mChatRoomMember.getGameStatus() == GameStatus.STATUS_PLAYING) {
@@ -710,7 +716,7 @@ public final class AvRoomDataManager {
*/ */
public boolean isGamePlaying(int micPosition) { public boolean isGamePlaying(int micPosition) {
if (!isOpenGame()) return false; if (!isOpenGame()) return false;
if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= 6) { if (mMicQueueMemberMap != null && mMicQueueMemberMap.size() >= getMgMicNum()) {
RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.get(micPosition); RoomQueueInfo roomQueueInfo = mMicQueueMemberMap.get(micPosition);
return roomQueueInfo != null && return roomQueueInfo != null &&
roomQueueInfo.mChatRoomMember != null && roomQueueInfo.mChatRoomMember != null &&
@@ -719,6 +725,14 @@ public final class AvRoomDataManager {
return false; return false;
} }
/**
* @return 游戏坑位, 最少6个, 低于6个不支持
*/
public int getMgMicNum() {
return AvRoomDataManager.get().mCurrentRoomInfo == null ? GAME_DEF_MIC_COUNT :
Math.max(AvRoomDataManager.get().mCurrentRoomInfo.getMgMicNum(), GAME_DEF_MIC_COUNT);
}
/** /**
* 获取坑上没人的位置,排除房主的位置,也就是-1 * 获取坑上没人的位置,排除房主的位置,也就是-1
*/ */