1:修改交友房

2:修改拍卖房
3:修改飘屏(没有修改成功)
This commit is contained in:
2025-09-24 00:30:40 +08:00
parent 1c54f0c072
commit 5f573e607d
43 changed files with 1172 additions and 307 deletions

View File

@@ -43,7 +43,8 @@ public class RoomManager {
// 缓存有效期5分钟
private static final long CACHE_DURATION = 5 * 60 * 1000;
private RoomManager() {}
private RoomManager() {
}
public static synchronized RoomManager getInstance() {
if (instance == null) {
@@ -54,8 +55,9 @@ public class RoomManager {
/**
* 进入房间 - 自动获取房间数据
*
* @param context 上下文
* @param roomId 房间ID
* @param roomId 房间ID
*/
public void enterRoom(Context context, String roomId) {
enterRoom(context, roomId, null, null);
@@ -63,8 +65,9 @@ public class RoomManager {
/**
* 进入房间 - 使用密码
* @param context 上下文
* @param roomId 房间ID
*
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
*/
public void enterRoom(Context context, String roomId, String password) {
@@ -73,9 +76,10 @@ public class RoomManager {
/**
* 进入房间 - 使用缓存数据
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
*
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
* @param cachedData 缓存的房间数据
*/
public void enterRoom(Context context, String roomId, String password, RoomInfoResp cachedData) {
@@ -98,8 +102,9 @@ public class RoomManager {
/**
* 获取房间数据并进入房间
* @param context 上下文
* @param roomId 房间ID
*
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
*/
public void fetchRoomDataAndEnter(Context context, String roomId, String password) {
@@ -110,10 +115,17 @@ public class RoomManager {
// RoomInfoResp roomInfo = getCachedRoomData(roomId);
// 检查是否是当前房间且用户在线
// boolean isCurrentRoom = isCurrentRoom(roomId);
if (CommonAppContext.getInstance().playId==null){
if (CommonAppContext.getInstance().playId == null) {
fetchAndJoinRoom(context, roomId, password);
}else {
} else {
if (!CommonAppContext.getInstance().playId.equals(roomId)) {
exitRoom(CommonAppContext.getInstance().playId);
} else if (CommonAppContext.getInstance().lable_id.equals("6")) {
upInfo(context, roomId, password, true, null, true);
return;
}
isUserOnline(context, roomId, password, null);
}
// try {
@@ -166,12 +178,12 @@ public class RoomManager {
// navigateToRoom(context, roomId, password, null);
}
private void upInfo(Context context, String roomId, String password,boolean isOnline, RoomInfoResp roomInfo,boolean isCurrentRoom){
private void upInfo(Context context, String roomId, String password, boolean isOnline, RoomInfoResp roomInfo, boolean isCurrentRoom) {
if (isOnline){
navigateToRoom(context, roomId, password, roomInfo,isOnline);
}else {
if (isOnline) {
navigateToRoom(context, roomId, password, roomInfo, isOnline);
} else {
// CommonAppContext.getInstance().isShow = false;
// CommonAppContext.getInstance().isPlaying = false;
// EventBus.getDefault().post(new RoomOutEvent());
@@ -184,7 +196,6 @@ public class RoomManager {
}
// if (isCurrentRoom&& isOnline) {
// if (roomInfo != null) {
// navigateToRoom(context, roomId, password, roomInfo);
@@ -214,7 +225,7 @@ public class RoomManager {
// cacheRoomData(roomId, roomInfo);
// navigateToRoom(context, roomId, password, roomInfo);
return;
return;
// }
// 其他情况,获取新的房间数据并加入房间
@@ -223,8 +234,9 @@ public class RoomManager {
/**
* 获取新的房间数据并加入房间
* @param context 上下文
* @param roomId 房间ID
*
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
*/
private void fetchAndJoinRoom(Context context, String roomId, String password) {
@@ -236,7 +248,7 @@ public class RoomManager {
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
navigateToRoom(context, roomId, password, null,false);
navigateToRoom(context, roomId, password, null, false);
// RetrofitClient.getInstance().roomGetIn(roomId, password, new BaseObserver<RoomInfoResp>() {
//
@@ -270,6 +282,7 @@ public class RoomManager {
/**
* 检查是否是当前房间
*
* @param roomId 房间ID
* @return true表示是当前房间false表示不是
*/
@@ -279,24 +292,26 @@ public class RoomManager {
// 目前返回false需要根据实际需求实现具体逻辑
RoomInfoResp roomInfo = getCachedRoomData(roomId);
if (roomInfo != null){
if (roomInfo.getRoom_info().getRoom_id().equals(roomId)){
if (roomInfo != null) {
if (roomInfo.getRoom_info().getRoom_id().equals(roomId)) {
return true;
}else {
} else {
return false;
}
}
return false;
}
/**
* 跳转到房间页面
* @param context 上下文
* @param roomId 房间ID
*
* @param context 上下文
* @param roomId 房间ID
* @param password 房间密码
* @param roomInfo 房间信息
*/
private void navigateToRoom(Context context, String roomId, String password, RoomInfoResp roomInfo,boolean isOnline) {
private void navigateToRoom(Context context, String roomId, String password, RoomInfoResp roomInfo, boolean isOnline) {
try {
// 构建跳转参数
Bundle bundle = new Bundle();
@@ -325,7 +340,8 @@ public class RoomManager {
/**
* 缓存房间数据
* @param roomId 房间ID
*
* @param roomId 房间ID
* @param roomInfo 房间信息
*/
public void cacheRoomData(String roomId, RoomInfoResp roomInfo) {
@@ -342,6 +358,7 @@ public class RoomManager {
/**
* 获取缓存的房间数据
*
* @param roomId 房间ID
* @return 房间信息如果缓存无效则返回null
*/
@@ -365,12 +382,14 @@ public class RoomManager {
return roomDataCache.get(roomId);
}
/**
* 检查用户是否在线
*
* @param roomId 房间ID
* @return true表示用户在线false表示不在线
*/
private boolean isUserOnline(Context context, String roomId,String password,RoomInfoResp roomInfo) {
private boolean isUserOnline(Context context, String roomId, String password, RoomInfoResp roomInfo) {
// 这里应该实现检查用户是否在线的逻辑
// 可以通过检查Agora是否还在房间中或者通过服务端接口查询用户状态等方式实现
// 目前返回false需要根据实际需求实现具体逻辑
@@ -420,10 +439,12 @@ public class RoomManager {
}
}
});
return isOnline[0];
return isOnline[0];
}
/**
* 清除指定房间的缓存数据
*
* @param roomId 房间ID
*/
public void clearRoomCache(String roomId) {
@@ -443,6 +464,7 @@ public class RoomManager {
/**
* 退出房间
*
* @param roomId 房间ID
*/
public void exitRoom(String roomId) {
@@ -452,11 +474,24 @@ public class RoomManager {
// 可以在这里添加其他退出房间的逻辑
// 例如:通知服务器用户已退出、清理房间相关资源等
RetrofitClient.getInstance().quitRoom(roomId, SpUtil.getUserId() + "", new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
}
});
Logger.d(TAG, "退出房间: " + roomId);
}
/**
* 批量退出房间
*
* @param roomIds 房间ID列表
*/
public void exitRooms(String... roomIds) {
@@ -469,6 +504,7 @@ public class RoomManager {
/**
* 获取房间缓存状态
*
* @param roomId 房间ID
* @return 缓存状态信息
*/