房间优化 1

This commit is contained in:
2025-11-03 14:16:27 +08:00
parent 7a81001f2a
commit 331b33fdd7
19 changed files with 1232 additions and 1549 deletions

View File

@@ -1,5 +1,7 @@
package com.xscm.moduleutil.bean;
import com.xscm.moduleutil.BaseEvent;
import java.io.Serializable;
import lombok.Data;
@@ -9,7 +11,7 @@ import lombok.Data;
*@description:发布头条需要的参数
*/
@Data
public class HeadlineBean implements Serializable {
public class HeadlineBean extends BaseEvent implements Serializable {
private String countdown;
private String now_money;
private String next_money;

View File

@@ -1,11 +1,13 @@
package com.xscm.moduleutil.bean;
import com.xscm.moduleutil.BaseEvent;
import lombok.Data;
import java.io.Serializable;
@Data
public class MqttXlhEnd implements Serializable {
public class MqttXlhEnd extends BaseEvent implements Serializable {
private static final long serialVersionUID = 1L;
private String message;
}

View File

@@ -27,21 +27,21 @@ public class RoomMessageEvent {
public static class T {
private String text;
private String GiftNum;
private String pit_number;
private String jia_jia;
private UserInfo FromUserInfo;
private UserInfo ToUserInfo;
private List<UserInfo> ToUserInfos;
private String pit_number;//麦位
private String jia_jia;//坐骑
private UserInfo FromUserInfo;//从me
private UserInfo ToUserInfo;// 到you
private List<UserInfo> ToUserInfos;//一键发送礼物
private GiftBean GiftInfo;
private List<GiftBean> GiftInfos;
private int room_up_pit_type;
private MusicSongBean songInfo;
private MusicSongBean nextInfo;
private int action;
private int total;
private RoomBean RoomInfo;
private RoomAuction.AuctionUserBean auction_user;
private List<RoomAuction.AuctionListBean> auction_list;
private int room_up_pit_type;//1上麦、0下麦
private MusicSongBean songInfo; //正在播放歌曲信息
private MusicSongBean nextInfo; //下一首歌曲信息
private int action; //切歌
private int total; //
private RoomBean RoomInfo; //房间信息
private RoomAuction.AuctionUserBean auction_user; //拍卖信息
private List<RoomAuction.AuctionListBean> auction_list; //拍卖列表
private long duration;//时间
private RoomAuction.AuctionListBean recipient;//是否成功,有值的是成功的,没有值的时候,是失败的
private int type;//拍卖者1上麦、2下麦

View File

@@ -1,19 +1,23 @@
package com.xscm.moduleutil.bean;
import com.google.gson.annotations.SerializedName;
import com.xscm.moduleutil.BaseEvent;
import com.xscm.moduleutil.bean.room.FriendInfo;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*@author qx
*@data 2025/6/3
*@description: 个人信息,点击我的获取
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class UserInfo implements Serializable {
public class UserInfo extends BaseEvent implements Serializable {
private static final long serialVersionUID = 1L;
public static final String FEMALE = "2";
public static final String MALE = "1";

View File

@@ -75,10 +75,10 @@ public class RoomBean implements Serializable {
private String room_name;//房间名称
private String room_cover;//房间封面
private String room_intro;//房间公告
private String type_id;//房间类型
private String type_id;//房间类型 1:点唱(pk) 2拍卖真爱拍小黑屋 3/4交友 6小黑屋 7:互娱 8交友
private String type_name;//房间类型名称
private String user_id;//房主id
private String label_id;//类型id
private String label_id;//类型id 2:ktv type:1/3/4/8
private String label_icon;//房间类型图标
private String room_background;//房间背景
private String hot_value;//房间火热值

View File

@@ -0,0 +1,36 @@
package com.xscm.moduleutil.enumType
/**
* 房间类型枚举
* 对应 type_id 含义:
* 2-拍卖真爱拍小黑屋1/3/4/8-交友6-小黑屋7-互娱
*/
enum class RoomType(
val description: String, // 房间类型描述
private vararg val typeIds: Int // 该类型对应的所有 type_id支持多个
) {
// 枚举常量:名称(描述, 对应的type_id)
// SINGING_PK("点唱(pk)", 1),
AUCTION("拍卖(真爱拍小黑屋)", 2),
DATING("交友", 1,3, 4, 8), // 1、3、4、8 均对应交友
BLACK_ROOM("小黑屋", 6),
MUTUAL_ENTERTAINMENT("互娱", 7);
companion object {
/**
* 根据 type_id 字符串获取对应的枚举实例
* @param typeIdStr 房间类型字符串(如 "1"、"3"
* @return 匹配的 RoomType若无效则返回 null
*/
fun fromTypeId(typeIdStr: String?): RoomType? {
if (typeIdStr.isNullOrBlank()) return null
val typeId = try {
typeIdStr.toInt() // 转换为 Int处理数字字符串
} catch (e: NumberFormatException) {
return null // 非数字字符串视为无效
}
// 遍历所有枚举,匹配 type_id
return values().find { typeId in it.typeIds }
}
}
}

View File

@@ -1,5 +1,6 @@
package com.xscm.modulemain
import com.blankj.utilcode.util.LogUtils
import com.opensource.svgaplayer.utils.log.SVGALogger
import com.xscm.modulemain.widget.WheatLayoutSingManager
import com.xscm.moduleutil.base.CommonAppContext
@@ -13,7 +14,8 @@ open class Application : CommonAppContext() {
WheatLayoutSingManager.getInstance().setWheatData( null)
// 默认情况下SVGA 内部不会输出任何 log所以需要手动设置为 true
SVGALogger.setLogEnabled(true)
SVGALogger.setLogEnabled(false)
LogUtils.getConfig().isLogSwitch = true
}
}

View File

@@ -25,27 +25,35 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.blankj.utilcode.util.FragmentUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide;
import com.xscm.modulemain.activity.msg.fragment.NewsFragment;
import com.xscm.modulemain.activity.user.fragment.VocalRangeFragment;
import com.xscm.modulemain.activity.plaza.fragment.CircleFragment;
import com.xscm.modulemain.activity.room.fragment.VoiceFragment;
import com.permissionx.guolindev.PermissionX;
import com.permissionx.guolindev.callback.RequestCallback;
import com.stx.xhb.xbanner.XBanner;
import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMValueCallback;
import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.main.contacts.HomeContacts;
import com.xscm.modulemain.databinding.ActivityMainBinding;
import com.xscm.modulemain.activity.main.presenter.HomePresenter;
import com.xscm.modulemain.activity.msg.fragment.NewsFragment;
import com.xscm.modulemain.activity.plaza.fragment.CircleFragment;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.room.fragment.VoiceFragment;
import com.xscm.modulemain.activity.user.fragment.VocalRangeFragment;
import com.xscm.modulemain.databinding.ActivityMainBinding;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.adapter.AppUpdateDialog;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.*;
import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.AppUpdateModel;
import com.xscm.moduleutil.bean.FirstChargeBean;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.bean.HeavenGiftBean;
import com.xscm.moduleutil.bean.PermissionPicBean;
import com.xscm.moduleutil.bean.ThemeBean;
import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.bean.room.RoomOnlineBean;
import com.xscm.moduleutil.dialog.FirstChargeDialog;
@@ -54,12 +62,13 @@ import com.xscm.moduleutil.dialog.NewPeopleDialog;
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
import com.xscm.moduleutil.event.RoomOutEvent;
import com.xscm.moduleutil.event.UnreadCountEvent;
import com.xscm.moduleutil.utils.*;
import com.xscm.moduleutil.utils.BackgroundManager;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.location.LocationProvider;
import com.xscm.moduleutil.utils.location.SystemLocationProvider;
import com.xscm.moduleutil.utils.logger.Logger;
import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMValueCallback;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -348,7 +357,6 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
selectShow(3);
//C0101我的界面
// AppLogUtil.reportAppLog(AppLogEvent.C0101);
} else if (id == R.id.iv_guanbi) {
mBinding.ll.setVisibility(View.INVISIBLE);
CommonAppContext.getInstance().isShow = false;
@@ -360,63 +368,9 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
String roomId = CommonAppContext.getInstance().playId;
if (!TextUtils.isEmpty(roomId)) {
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "",null);
// MvpPre.getRoomOnline(roomId, "1", "100");
// AppStateManager stateManager = AppStateManager.getInstance();
// if (stateManager.isRoomActivityActive()) {
// // RoomActivity可用直接回到该Activity
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT).withString("form", "首页").withString("roomId", roomId).navigation();
//
// } else {
// RoomActivity不可用重新创建
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", roomId).navigation();
// }
singleTaskToActivity(RoomActivity.class);
}
// String roomId = CommonAppContext.getInstance().playId;
// if (!TextUtils.isEmpty(roomId)) {
//// RoomManager.instance( CommonAppContext.getInstance()).joinRoomWithRoomId(roomId, true);
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", roomId).navigation();
// }
}
// else if (id == R.id.iv_shouchl) {//首充
// FirstChargeDialog firstChargeDialog = new FirstChargeDialog(this);
// firstChargeDialog.show();
// firstChargeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
// @Override
// public void onDismiss(DialogInterface dialog) {
// //首充弹窗关闭后,弹首充
// dialog.dismiss();
// }
// });
//
// firstChargeDialog.setOnFirstChargeListener(new FirstChargeDialog.OnFirstChargeListener() {
// @Override
// public void onFirstChargeConfirmed(FirstChargeGiftBean giftBean, int type) {
// String s = null;
// if (type == 1) {
// s = giftBean.getGift_bag().get(0).getMoney();
//
// } else if (type == 2) {
// s = giftBean.getGift_bag().get(1).getMoney();
// } else if (type == 3) {
// s = giftBean.getGift_bag().get(2).getMoney();
// }
// if (s == null) {
// ToastUtils.showShort("暂无礼物");
// return;
// }
//
// RechargeDialogFragment.show(null, s, getSupportFragmentManager());
// }
//
// @Override
// public void onFirstChargeCancelled() {
//
// }
// });
// }
}

View File

@@ -58,14 +58,9 @@ import java.util.Random;
*/
public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFragementTransEaseChatBinding>
implements ChatRoomContacts.View {
private final static String TAG = "聊天室";
private boolean isBottom = true;
private int count = 0;
private String toChatUsername;
private RoomInfoResp roomInfoResp;
private EaseChatAdapter easeChatAdapter;
private String roomId;
@@ -76,12 +71,15 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
easeChatAdapter.clearData();
}
public static ChatRoomFragment newInstance(String roomId) {
ChatRoomFragment transEaseChatFragment = new ChatRoomFragment();
Bundle bundle = new Bundle();
bundle.putString("roomId", roomId);
transEaseChatFragment.setArguments(bundle);
return transEaseChatFragment;
public ChatRoomFragment(){}
public ChatRoomFragment(RoomInfoResp resp){
roomInfoResp = resp;
roomId = resp.getRoom_info().getRoom_id();
}
public static ChatRoomFragment newInstance(RoomInfoResp resp) {
return new ChatRoomFragment(resp);
}
@Override
@@ -89,14 +87,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
return new ChatRoomPresenter(this, getActivity());
}
@Override
public void initArgs(Bundle arguments) {
super.initArgs(arguments);
roomId = arguments.getString("roomId");
Logger.e(TAG, "toChatUsername:" + toChatUsername);
}
@Override
public void onDestroyView() {
onFragmentShowDestroy();
@@ -112,13 +102,20 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
@Override
protected void initData() {
onChatRoomViewCreation();
// 确保适配器已初始化
if (easeChatAdapter == null) {
initChatAdapter();
}
if (easeChatAdapter != null) {
easeChatAdapter.clearData();
}
this.roomId = roomInfoResp.getRoom_info().getRoom_id();
@Override
public void onResume() {
super.onResume();
RoomMessageEvent.T t = new RoomMessageEvent.T();
t.setText("羽声严禁未成年人进行直播或打赏官方将24小时在线巡查。我们提倡绿色直播直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。");
// 加入群组成功
handleRoomMessage(new RoomMessageEvent(1000, roomId, t));
onChatRoomViewCreation();
}
/**
@@ -142,9 +139,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
*/
private void setupMessageListener() {
// 创建并添加监听器
messageListener = new MessageListenerSingleton.PublicScreenMessageListener() {
@Override
public void onPublicScreenMessageReceived(RoomMessageEvent message) {
messageListener = message -> {
// 确保在主线程更新 UI
if (getActivity() != null) {
getActivity().runOnUiThread(new Runnable() {
@@ -154,7 +149,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
}
});
}
}
};
MessageListenerSingleton.getInstance().addPublicScreenMessageListener(messageListener);
}
@@ -212,45 +206,11 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
});
}
public void getUpRoomInfo(RoomInfoResp resp) {
this.roomInfoResp = resp;
// 确保Fragment视图已创建
if (isAdded() && getActivity() != null && mBinding != null) {
// 确保适配器已初始化
if (easeChatAdapter == null) {
initChatAdapter();
}
if (easeChatAdapter != null) {
easeChatAdapter.clearData();
}
toChatUsername = roomInfoResp.getRoom_info().getChatrooms();
this.roomId = roomInfoResp.getRoom_info().getRoom_id();
RoomMessageEvent.T t = new RoomMessageEvent.T();
t.setText("羽声严禁未成年人进行直播或打赏官方将24小时在线巡查。我们提倡绿色直播直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。");
// 加入群组成功
handleRoomMessage(new RoomMessageEvent(1000, roomId, t));
onChatRoomViewCreation();
} else {
// 如果视图尚未准备好,延迟执行
if (getActivity() != null) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// 使用post延迟执行确保视图已创建
if (getView() != null) {
getView().post(new Runnable() {
@Override
public void run() {
getUpRoomInfo(resp);
}
});
}
}
});
}
}
public void upRoomInfo(RoomInfoResp resp){
if (resp == null)
return;
roomInfoResp = resp;
}
@Override
@@ -384,9 +344,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
}
}
// @Subscribe(threadMode = ThreadMode.MAIN)
public void fasong(RoomInputEvent roomInputEvent) {
String message = roomInputEvent.text;
RoomMessageEvent.T t = new RoomMessageEvent.T();
@@ -395,11 +352,11 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(1, roomInfoResp.getRoom_info().getRoom_id(), t);
handleRoomMessage(roomMessageEvent);
String json = GsonUtils.toJson(roomMessageEvent);
// 转换为 byte[]
// 转换为 byte[]
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
// 创建自定义消息
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
// 发送消息
// 发送消息
V2TIMManager.getMessageManager().sendMessage(v2TIMMessage, null, "room" + roomInfoResp.getRoom_info().getRoom_id(), V2TIMMessage.V2TIM_PRIORITY_NORMAL, false, null, new V2TIMSendCallback<V2TIMMessage>() {
@Override
public void onProgress(int progress) {
@@ -440,11 +397,11 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
roomMessageEvent.setText(t);
handleRoomMessage(roomMessageEvent);
String json = GsonUtils.toJson(roomMessageEvent);
// 转换为 byte[]
// 转换为 byte[]
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
// 创建自定义消息
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
// 发送消息
// 发送消息
V2TIMManager.getMessageManager().sendMessage(v2TIMMessage, null, "room" + roomId, V2TIMMessage.V2TIM_PRIORITY_NORMAL, false, null, new V2TIMSendCallback<V2TIMMessage>() {
@Override
public void onProgress(int progress) {
@@ -577,8 +534,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
case 1025:
case 1058:
case 125:
// EventBus.getDefault().post(message);
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).roomInfoEvent(message);
}
@@ -677,7 +632,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
return new EMMessageInfo(message);
case 1005:
if (text != null && text.getText() != null) {
if (text.getText() != null) {
return new EMMessageInfo(message);
}
break;
@@ -707,8 +662,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
}
private void postAndAddMessage(RoomMessageEvent message) {
// EventBus.getDefault().post(message);
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).roomInfoEvent(message);
}
@@ -718,26 +671,22 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
// 优化 scrollToBottomIfNeed 方法
private void scrollToBottomIfNeed() {
if (isBottom && mBinding.recycleViewPublic != null && easeChatAdapter != null) {
if (isBottom && easeChatAdapter != null) {
int itemCount = easeChatAdapter.getItemCount();
if (itemCount > 0) {
mBinding.recycleViewPublic.scrollToPosition(itemCount - 1);
}
} else {
count++;
if (mBinding.tvCount != null) {
mBinding.tvCount.setText(count + "条新消息");
mBinding.tvCount.setVisibility(View.VISIBLE);
}
// 当未读消息过多时,限制数量显示
if (count > 99) {
if (mBinding.tvCount != null) {
mBinding.tvCount.setText("99+条新消息");
}
}
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -747,8 +696,6 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
}
}
/**
* 房间信息
*
@@ -759,12 +706,4 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
this.roomInfoResp = resp;
}
private void refreshSelectLast() {
if (mBinding.recycleViewPublic != null) {
mBinding.recycleViewPublic.scrollToPosition(easeChatAdapter.getItemCount() - 1);
}
}
}

View File

@@ -59,7 +59,7 @@ import java.util.Map;
/**
* @author qx
* @data 2025/8/19
* @description: 交友房
* @description: 互娱
*/
public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPresenter, FragmentFriendshipRoomBinding>
implements FriendshipRoomContacts.View, RoomConcernDialogFragment.OnConcernSelectedListener {
@@ -297,10 +297,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
}
}
public void upRoomInfo(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
/**
* 麦位视图点击事件处理
*

View File

@@ -94,11 +94,6 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
return fragment;
}
public void upRoomInfo(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
@Override
public void onStart() {
super.onStart();

View File

@@ -85,25 +85,11 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
return fragment;
}
@Override
public void initArgs(Bundle arguments) {
super.initArgs(arguments);
// roomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfoResp");
// if (roomInfoResp != null) {
// roomId = roomInfoResp.getRoom_info().getRoom_id();
// cpUserBean = roomInfoResp.getCp_user();
// label_id = roomInfoResp.getRoom_info().getLabel_id();
// }
}
private boolean isLandscape;
@Override
public void onResume() {
super.onResume();
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj);
// ((RoomActivity) getActivity()).setvisibTop(false);
// }
if (CommonAppContext.getInstance().lable_id.equals("6") && CommonAppContext.getInstance().isMicPlace){
joinChannel();
@@ -153,7 +139,6 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
}
if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
mBinding.im3.setVisibility(VISIBLE);
// setvkk(false);
}else {
mBinding.im3.setVisibility(GONE);
}
@@ -276,126 +261,23 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
mBinding.im3.setVisibility(VISIBLE);
// setvkk(false);
}else {
mBinding.im3.setVisibility(GONE);
}
// if (label_id!=null&& label_id.equals(LABEL_ID_MOVIE)){
// mBinding.im3.setVisibility(GONE);
// }
}
// 获取 MediaProjectionManager
// MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getSelfActivity().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
// private MediaProjection[] mediaProjection = new MediaProjection[1];
// private final ActivityResultLauncher<Intent> mediaProjectionLauncher = registerForActivityResult(
// new ActivityResultContracts.StartActivityForResult(), result -> {
// if (result.getResultCode() == Activity.RESULT_OK) {
// try {
// // 获取申请到的 MediaProjection
// mediaProjection[0] = mediaProjectionManager
// .getMediaProjection(result.getResultCode(), result.getData());
// // r MediaProjection需要在 startScreenCapture 之前调用
//
// AgoraManager.getInstance(getActivity()).setExternalMediaProjection(mediaProjection);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
// );
// 请求屏幕捕获
private void requestScreenCapture() {
// Intent intent = mediaProjectionManager.createScreenCaptureIntent();
// mediaProjectionLauncher.launch(intent);
}
public void handleMsgType1028(RoomMessageEvent messageEvent){
if (messageEvent.getMsgType()==1028){
mBinding.tvHeartValue2.setText(messageEvent.getText().getHot_value());
}
}
public void upRoomInfo(RoomInfoResp roomInfoResp){
this.roomInfoResp = roomInfoResp;
// if (roomInfoResp != null) {
// roomId = roomInfoResp.getRoom_info().getRoom_id();
// cpUserBean = roomInfoResp.getCp_user();
// label_id = roomInfoResp.getRoom_info().getLabel_id();
// }
// if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
// mBinding.im3.setVisibility(VISIBLE);
//// setvkk(false);
// }else {
// mBinding.im3.setVisibility(GONE);
// }
//
// mBinding.ivExit.setOnClickListener(this::onHeartLineClicked);
//
// // 获取当前用户 ID
// String currentUserId = SpUtil.getUserId() + "";
//
//// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
// RoomPitBean selfBean = new RoomPitBean(); // 自己的 bean
// RoomPitBean otherBean = new RoomPitBean(); // 另一个用户的 bean
//
// boolean isSelfFirst = false;
//
//// 判断当前用户是 user_id 还是 user_id1
// if (cpUserBean != null) {
// if (currentUserId.equals(cpUserBean.getUser_id())) {
// // 当前用户是 user_id
// selfBean.setUser_id(cpUserBean.getUser_id());
// selfBean.setUser_code(cpUserBean.getUser_code());
// selfBean.setNickname(cpUserBean.getNickname());
// selfBean.setAvatar(cpUserBean.getAvatar());
// selfBean.setDress(cpUserBean.getDress());
// selfBean.setPit_number("000");
//
// otherBean.setUser_id(cpUserBean.getUser_id1());
// otherBean.setUser_code(cpUserBean.getUser_code1());
// otherBean.setNickname(cpUserBean.getNickname1());
// otherBean.setAvatar(cpUserBean.getAvatar1());
// otherBean.setDress(cpUserBean.getDress1());
// otherBean.setPit_number("000");
//
//
// } else if (currentUserId.equals(cpUserBean.getUser_id1())) {
// // 当前用户是 user_id1则交换位置
// selfBean.setUser_id(cpUserBean.getUser_id1());
// selfBean.setUser_code(cpUserBean.getUser_code1());
// selfBean.setNickname(cpUserBean.getNickname1());
// selfBean.setAvatar(cpUserBean.getAvatar1());
// selfBean.setDress(cpUserBean.getDress1());
// selfBean.setPit_number("000");
//
// otherBean.setUser_id(cpUserBean.getUser_id());
// otherBean.setUser_code(cpUserBean.getUser_code());
// otherBean.setNickname(cpUserBean.getNickname());
// otherBean.setAvatar(cpUserBean.getAvatar());
// otherBean.setDress(cpUserBean.getDress());
// otherBean.setPit_number("000");
// }
// }
//// 不论谁是自己,始终将自己放在 roomMakeWheat1
// mBinding.roomMakeWheat1.setData(selfBean);
//// 将另一个用户的数据放在 roomMakeWheat2
// mBinding.roomMakeWheat2.setData(otherBean);
// mBinding.tvMainTitle.setText(roomInfoResp.getRoom_info().getRoom_name());
// mBinding.tvHeartValue2.setText(roomInfoResp.getRoom_info().getHot_value());
// if (cpUserBean != null) {
// countDownTime(Long.parseLong(cpUserBean.getTime_day()));
// }
// mediaProjectionManager = (MediaProjectionManager) getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
}
public void upCabinFragment(long time){
countDownTime( time);
}
private boolean isFullscreen = false;
public void switchMic(int type) {
if (type == 1) {

View File

@@ -7,9 +7,7 @@ import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -24,7 +22,6 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.databinding.FragmentRoomBinding;
import com.xscm.modulemain.dialog.WheatFeedingDialogFragment;
import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.room.contacts.RoomContacts;
import com.xscm.modulemain.activity.room.presenter.RoomPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
@@ -42,10 +39,10 @@ import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.bean.room.RoomPitBean;
import com.xscm.moduleutil.dialog.ConfirmDialog;
import com.xscm.moduleutil.enumType.QXRoomSeatViewType;
import com.xscm.moduleutil.enumType.RoomType;
import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.rtc.AgoraManager;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.SharedViewModel;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -54,7 +51,6 @@ import org.greenrobot.eventbus.ThreadMode;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* @author qx
@@ -62,9 +58,9 @@ import java.util.Objects;
* @description:房间fragment
*/
public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBinding> implements RoomContacts.View {
public static RoomFragment newInstance(RoomInfoResp resp) {
public static RoomFragment newInstance(RoomActivity roomActivity, RoomInfoResp resp) {
Bundle args = new Bundle();
RoomFragment fragment = new RoomFragment(resp);
RoomFragment fragment = new RoomFragment(roomActivity, resp);
fragment.setArguments(args);
return fragment;
}
@@ -73,10 +69,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
public RoomFragment(RoomInfoResp roomInfoResp) {
public RoomFragment(RoomActivity roomActivity, RoomInfoResp roomInfoResp) {
this.mRoomInfoResp = roomInfoResp;
mRoomActivity = roomActivity;
}
private RoomActivity mRoomActivity;
private RoomInfoResp mRoomInfoResp;
private String password;
private String roomId;
@@ -259,7 +257,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void updateChildFragmentViews() {
// 使用弱引用避免内存泄漏
if (getActivity() == null || !isAdded()) {
return;
@@ -267,31 +264,37 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
RoomType roomType = RoomType.Companion.fromTypeId(typeId);
if ("7".equals(typeId)) {
mRoomActivity.isAuctionTopBtVisible(false);
if (roomType == RoomType.MUTUAL_ENTERTAINMENT) {
if (friendshipRoomFragment != null && friendshipRoomFragment.isAdded()) {
friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("2".equals(typeId)) {
} else if (roomType == RoomType.AUCTION) {
mRoomActivity.isAuctionTopBtVisible(true);
if (roomAuctionFragment != null && roomAuctionFragment.isAdded()) {
roomAuctionFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId) || "8".equals(typeId)) {
if ("2".equals(labelId)) {
} else if (roomType == RoomType.DATING && labelId.equals("2")) {
switch (labelId) {
case "2":
if (ktvFragment != null && ktvFragment.isAdded()) {
ktvFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("1".equals(labelId)) {
break;
case "1":
if (singSongFragment != null && singSongFragment.isAdded()) {
singSongFragment.roomInfoUpdate(mRoomInfoResp);
}
break;
}
} else if ("6".equals(typeId)) {
} else if (roomType == RoomType.BLACK_ROOM) {
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
roomCabinFragment.roomInfoUpdate(mRoomInfoResp);
}
}
}
}
@@ -318,7 +321,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void friendTimeDelayWithTime(long end_time) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
friendshipRoomFragment.friendTimeDelayWithTime(end_time);
}
@@ -328,7 +330,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void friendHeartNumberDidChanged(List<FriendInfo.HeartList> heartLists) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
friendshipRoomFragment.friendHeartNumberDidChanged(heartLists);
}
}
@@ -337,7 +338,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void friendSeatDidChanged(List<RoomPitBean> pitArr) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
friendshipRoomFragment.friendSeatDidChanged(pitArr);
}
}
@@ -368,77 +368,59 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
Fragment newFragment = null;
if ("1".equals(typeId)) {
if ("1".equals(labelId)) {
if (singSongFragment == null)
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
if (ktvFragment == null)
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
mRoomActivity.isAuctionTopBtVisible(false);
RoomType roomType = RoomType.Companion.fromTypeId(typeId);
if (roomType == RoomType.MUTUAL_ENTERTAINMENT) {
if (friendshipRoomFragment == null) {
friendshipRoomFragment = FriendshipRoomFragment.newInstance(mRoomInfoResp);
} else {
friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("2".equals(typeId)) {
newFragment = friendshipRoomFragment;
} else if (roomType == RoomType.AUCTION) {
mRoomActivity.isAuctionTopBtVisible(true);
if (roomAuctionFragment == null)
roomAuctionFragment = RoomAuctionFragment.newInstance(mRoomInfoResp);
else {
roomAuctionFragment.roomInfoUpdate(mRoomInfoResp);
}
newFragment = roomAuctionFragment;
} else if ("6".equals(typeId)) {
} else if (roomType == RoomType.DATING) {
newFragment = switch (labelId) {
case "2" -> {
if (ktvFragment == null)
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
else ktvFragment.roomInfoUpdate(mRoomInfoResp);
yield ktvFragment;
}
case "1" -> {
if (singSongFragment == null)
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
else
singSongFragment.roomInfoUpdate(mRoomInfoResp);
yield singSongFragment;
}
default -> newFragment;
};
} else if (roomType == RoomType.BLACK_ROOM) {
if (roomCabinFragment == null)
roomCabinFragment = RoomCabinFragment.newInstance(mRoomInfoResp);
else roomCabinFragment.roomInfoUpdate(mRoomInfoResp);
newFragment = roomCabinFragment;
setviewyc();
} else if ("3".equals(typeId)) {
if ("1".equals(labelId)) {
if (singSongFragment == null)
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
if (ktvFragment == null)
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
} else if ("4".equals(typeId)) {
if ("1".equals(labelId)) {
if (singSongFragment == null)
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
if (ktvFragment == null)
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
} else if ("7".equals(typeId)) {
if (friendshipRoomFragment == null)
friendshipRoomFragment = FriendshipRoomFragment.newInstance(mRoomInfoResp);
newFragment = friendshipRoomFragment;
} else if ("8".equals(typeId)) {
if ("1".equals(labelId)) {
if (singSongFragment == null)
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
if (ktvFragment == null)
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
}
if (newFragment != null) {
replaceNestedFragment(newFragment, R.id.container);
}else {
LogUtils.e("newFragment==null");
}
setview();
setView();
if (mRoomInfoResp.getUser_info().getPit_number() != 0) {
if (!CommonAppContext.getInstance().isMai) {
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
RoomActivity activity = (RoomActivity) getActivity();
if (activity != null) {
activity.switchMic(1);
} else {
Log.w("RoomFragment", "switchMic called but activity is null");
}
}
mRoomActivity.switchMic(CommonAppContext.getInstance().isMai?1:2);
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(CommonAppContext.getInstance().isMai);
} else {
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
}
@@ -543,7 +525,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
public void setview() {//这里是当进入电影放房的时候,如果是排麦模式,并且不是电影放的时候,就隐藏排麦视图
public void setView() {//这里是当进入电影放房的时候,如果是排麦模式,并且不是电影放的时候,就隐藏排麦视图
if (getActivity() instanceof RoomActivity) {
if (mRoomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
((RoomActivity) getActivity()).clFirstCharge(true);
@@ -556,7 +538,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
@Subscribe(threadMode = ThreadMode.MAIN)
public void roomInfoEvent(RoomBean messageEvent) {
mRoomInfoResp.setRoom_info(messageEvent);
setview();
setView();
}
private void instView() {//隐藏视图
@@ -844,7 +826,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
int count = messageEvent.getText().getCount();
if (count == 0) {
((RoomActivity) getActivity()).tvFirst(new SpannableStringBuilder("0人排队"));
// mBinding.tvFirst.setText("0人排队");
return;
}
String countText = String.valueOf(count);
@@ -878,8 +859,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
// TODO: 2025/9/3 小黑屋火热值更新
public void handleMsgType1028(RoomMessageEvent messageEvent) {
RoomCabinFragment cabinFragment = (RoomCabinFragment) getChildFragmentManager()
@@ -888,11 +867,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
cabinFragment.handleMsgType1028(messageEvent);
}
}
/**
* 统一处理所有房间类型的消息事件
*/
public void handleRoomMessage(RoomMessageEvent messageEvent) {
if (mRoomInfoResp == null || messageEvent == null) {
if (messageEvent == null) {
LogUtils.w("handleRoomMessage: invalid params");
return;
}
@@ -900,28 +880,24 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
switch (qxRoomSeatViewType) {
case KTV:
if (ktvFragment != null) {
ktvFragment.upRoomInfo(mRoomInfoResp);
handleKtvEvent(messageEvent);
}
break;
case NORMAL:
if (singSongFragment != null) {
singSongFragment.upRoonInfo(mRoomInfoResp);
handleSingSongEvent(messageEvent);
}
break;
case AUCTION:
if (roomAuctionFragment != null) {
roomAuctionFragment.upRoomInfo(mRoomInfoResp);
handleAuctionEvent(messageEvent);
}
break;
case FRIEND:
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
handleFriendshipEvent(messageEvent);
}
break;
@@ -934,18 +910,33 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
// TODO: Ktv模式
private void handleKtvEvent(RoomMessageEvent messageEvent) {
switch (messageEvent.getMsgType()) {
case 1013: ktvFragment.event1013(messageEvent); break;
case 1003: ktvFragment.event1003(messageEvent); break;
case 1004: ktvFragment.event1004(messageEvent); break;
case 1021: ktvFragment.event1021(messageEvent); break;
case 1005: ktvFragment.event1005(messageEvent); break;
case 1035: ktvFragment.event1035(messageEvent); break;
case 1059: ktvFragment.event1059(messageEvent); break;
case 1058: ktvFragment.event1058(messageEvent); break;
case 1013:
ktvFragment.event1013(messageEvent);
break;
case 1003:
ktvFragment.event1003(messageEvent);
break;
case 1004:
ktvFragment.event1004(messageEvent);
break;
case 1021:
ktvFragment.event1021(messageEvent);
break;
case 1005:
ktvFragment.event1005(messageEvent);
break;
case 1035:
ktvFragment.event1035(messageEvent);
break;
case 1059:
ktvFragment.event1059(messageEvent);
break;
case 1058:
ktvFragment.event1058(messageEvent);
break;
default:
LogUtils.w("Unhandled KTV message type: " + messageEvent.getMsgType());
break;
@@ -956,56 +947,126 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
//TODO 点唱房 (NORMAL)
private void handleSingSongEvent(RoomMessageEvent messageEvent) {
switch (messageEvent.getMsgType()) {
case 1037: singSongFragment.event1037(messageEvent); break;
case 1003: singSongFragment.event1003(messageEvent); break;
case 1004: singSongFragment.event1004(messageEvent); break;
case 1005: singSongFragment.event1005(messageEvent); break;
case 1015: singSongFragment.event1015(messageEvent); break;
case 1030: singSongFragment.event1030(messageEvent); break;
case 1031: singSongFragment.event1031(messageEvent); break;
case 1032: singSongFragment.event1032(messageEvent); break;
case 1033: singSongFragment.event1033(messageEvent); break;
case 1035: singSongFragment.event1035(messageEvent); break;
case 1021: singSongFragment.event1021(messageEvent); break;
case 1059: singSongFragment.event1059(messageEvent); break;
case 1058: singSongFragment.event1058(messageEvent); break;
case 1039: singSongFragment.event1039(messageEvent); break;
case 1037:
singSongFragment.event1037(messageEvent);
break;
case 1003:
singSongFragment.event1003(messageEvent);
break;
case 1004:
singSongFragment.event1004(messageEvent);
break;
case 1005:
singSongFragment.event1005(messageEvent);
break;
case 1015:
singSongFragment.event1015(messageEvent);
break;
case 1030:
singSongFragment.event1030(messageEvent);
break;
case 1031:
singSongFragment.event1031(messageEvent);
break;
case 1032:
singSongFragment.event1032(messageEvent);
break;
case 1033:
singSongFragment.event1033(messageEvent);
break;
case 1035:
singSongFragment.event1035(messageEvent);
break;
case 1021:
singSongFragment.event1021(messageEvent);
break;
case 1059:
singSongFragment.event1059(messageEvent);
break;
case 1058:
singSongFragment.event1058(messageEvent);
break;
case 1039:
singSongFragment.event1039(messageEvent);
break;
default:
LogUtils.w("Unhandled SingSong message type: " + messageEvent.getMsgType());
break;
}
}
//TODO 拍卖房 (AUCTION)
private void handleAuctionEvent(RoomMessageEvent messageEvent) {
switch (messageEvent.getMsgType()) {
case 1022: roomAuctionFragment.event1022(messageEvent); break;
case 1025: roomAuctionFragment.event1025(messageEvent); break;
case 1026: roomAuctionFragment.event1026(messageEvent); break;
case 1005: roomAuctionFragment.event1005(messageEvent); break;
case 1035: roomAuctionFragment.event1035(messageEvent); break;
case 1021: roomAuctionFragment.event1021(messageEvent); break;
case 1027: roomAuctionFragment.event1027(messageEvent); break;
case 1023: roomAuctionFragment.event1023(messageEvent); break;
case 1024: roomAuctionFragment.event1024(messageEvent); break;
case 1004: roomAuctionFragment.event1004(messageEvent); break;
case 1003: roomAuctionFragment.event1003(messageEvent); break;
case 1059: roomAuctionFragment.event1059(messageEvent); break;
case 1058: roomAuctionFragment.event1058(messageEvent); break;
case 1022:
roomAuctionFragment.event1022(messageEvent);
break;
case 1025:
roomAuctionFragment.event1025(messageEvent);
break;
case 1026:
roomAuctionFragment.event1026(messageEvent);
break;
case 1005:
roomAuctionFragment.event1005(messageEvent);
break;
case 1035:
roomAuctionFragment.event1035(messageEvent);
break;
case 1021:
roomAuctionFragment.event1021(messageEvent);
break;
case 1027:
roomAuctionFragment.event1027(messageEvent);
break;
case 1023:
roomAuctionFragment.event1023(messageEvent);
break;
case 1024:
roomAuctionFragment.event1024(messageEvent);
break;
case 1004:
roomAuctionFragment.event1004(messageEvent);
break;
case 1003:
roomAuctionFragment.event1003(messageEvent);
break;
case 1059:
roomAuctionFragment.event1059(messageEvent);
break;
case 1058:
roomAuctionFragment.event1058(messageEvent);
break;
default:
LogUtils.w("Unhandled auction message type: " + messageEvent.getMsgType());
break;
}
}
//TODO 交友房 (FRIEND)
private void handleFriendshipEvent(RoomMessageEvent messageEvent) {
switch (messageEvent.getMsgType()) {
case 1059: friendshipRoomFragment.event1059(messageEvent); break;
case 1058: friendshipRoomFragment.event1058(messageEvent); break;
case 1005: friendshipRoomFragment.event1005(messageEvent); break;
case 1003: friendshipRoomFragment.event1003(messageEvent); break;
case 1004: friendshipRoomFragment.event1004(messageEvent); break;
case 1039: friendshipRoomFragment.event1039(messageEvent); break;
case 1035: friendshipRoomFragment.event1035(messageEvent); break;
case 1059:
friendshipRoomFragment.event1059(messageEvent);
break;
case 1058:
friendshipRoomFragment.event1058(messageEvent);
break;
case 1005:
friendshipRoomFragment.event1005(messageEvent);
break;
case 1003:
friendshipRoomFragment.event1003(messageEvent);
break;
case 1004:
friendshipRoomFragment.event1004(messageEvent);
break;
case 1039:
friendshipRoomFragment.event1039(messageEvent);
break;
case 1035:
friendshipRoomFragment.event1035(messageEvent);
break;
default:
LogUtils.w("Unhandled friendship message type: " + messageEvent.getMsgType());
break;

View File

@@ -87,9 +87,6 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
return mBinding.muZc;
}
public void upRoomInfo(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
public void roomInfoUpdate(RoomInfoResp resp) {
roomInfoResp = resp;

View File

@@ -32,7 +32,6 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ObjectUtils;
import com.google.android.flexbox.FlexboxLayout;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.room.contacts.SingSongContacts;
@@ -80,8 +79,6 @@ import java.util.Calendar;
import java.util.List;
import java.util.Objects;
import lombok.val;
/**
* @author qx
* @data 2025/6/9
@@ -129,6 +126,11 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
this.roomInfoResp = roomInfoResp;
}
public void upRoomInfo(RoomInfoResp roomInfoResp){
this.roomInfoResp = roomInfoResp;
upDataView();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -188,7 +190,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
}
});
upDtaView();
upDataView();
}
@Override
@@ -208,7 +210,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
protected void initData() {
}
private void upDtaView() {
private void upDataView() {
pitList = new ArrayList<>();
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setvisibTop(true);
@@ -1230,9 +1232,6 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
}
}
public void upRoonInfo(RoomInfoResp resp) {
this.roomInfoResp = resp;
}
public void event1035(RoomMessageEvent message) {
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {

View File

@@ -102,31 +102,22 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
// 添加延迟以避免过于频繁的请求
mBinding.getRoot().postDelayed(() -> {
page++;
if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), page + "", "10");
} else {
refreshLayout.finishLoadMore(false);
}
}, 300);
}
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
// EventBus.getDefault().post(new BannerRefreshEvent());
// page = 1;
// MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
// 添加延迟以避免过于频繁的请求
mBinding.getRoot().postDelayed(() -> {
page = 1;
if (MvpPre != null && getArguments() != null) {
MvpPre.getRoomOnline(getArguments().getString("roomId"), "1", "10");
} else {
refreshLayout.finishRefresh(false);
}
}, 300);
}
});
@@ -134,10 +125,6 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
mBinding.rvComment.setLayoutManager(new LinearLayoutManager(getActivity()));
roomOnlineAdapter = new RoomOnlineAdapter(new ArrayList<RoomOnlineBean>());
mBinding.rvComment.setAdapter(roomOnlineAdapter);
// mBinding.rvComment2.setLayoutManager(new LinearLayoutManager(getActivity()));
// roomOnlineAdapter2 = new RoomOnlineAdapter();
// mBinding.rvComment2.setAdapter(roomOnlineAdapter2);
roomOnlineAdapter.setListener(new RoomOnlineAdapter.OnJoinButtonClickListener() {
@Override
@@ -156,19 +143,6 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
});
}
});
// roomOnlineAdapter2.setListener(new RoomOnlineAdapter.OnJoinButtonClickListener() {
// @Override
// public void onJoinButtonClick(RoomOnlineBean item) {
// MvpPre.hostUserPit(roomId, pit_number, item.getUser_id() + "", "1");
// }
//
// @Override
// public void onUserInfoClick(RoomOnlineBean item) {
// RoomUserInfoFragment.show(roomId, item.getUser_id() + "", pit_number, getHostUser(hostUser), false, 4, isNumberWhether(), getChildFragmentManager());
//
// }
// });
}
// 在类中添加以下方法
@@ -265,7 +239,6 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
roomOnlineAdapter.setNewData(new ArrayList<>());
}
// roomOnlineAdapter.setNewData(roomOnlineBeanList);
int type_pit;
if (pit_number.isEmpty()) {
type_pit = 1;
@@ -284,7 +257,6 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
roomOnlineBeanList.add(roomOnlineBean1);
}
// roomOnlineAdapter.setNewData(onlineBean.getOn_pit());
}
if (onlineBean.getOff_pit() != null && onlineBean.getOff_pit().size() > 0) {
RoomOnlineBean roomOnlineBean = new RoomOnlineBean();
@@ -297,7 +269,6 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
roomOnlineBean2.setItemViewType(2);
roomOnlineBeanList.add(roomOnlineBean2);
}
// roomOnlineAdapter2.setNewData(onlineBean.getOff_pit());
}
// 根据是刷新还是加载更多来处理数据

View File

@@ -115,12 +115,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
Window window = getDialog().getWindow();
if (window != null) {
// 设置固定高度为 500dp
int screenHeight = getResources().getDisplayMetrics().heightPixels;
int heightInDp = (int) (screenHeight * 0.6f);
;
// int heightInPx = (int) (heightInDp * getResources().getDisplayMetrics().density);
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
// 可选:设置动画样式(从底部弹出)
window.setWindowAnimations(com.xscm.moduleutil.R.style.CommonShowDialogBottom);
}

View File

@@ -155,6 +155,7 @@ public class RoomManager {
navigateToRoom(context, roomId, password, roomInfoResp, false, taskId);
}
});
// navigateToRoom(context, roomId, password, null, true, taskId);
} else {
fetchAndJoinRoom(context, roomId, password, taskId);
}
@@ -252,7 +253,7 @@ public class RoomManager {
intent.putExtra("taskId", taskId);
}
if (roomInfo == null) {
if (roomInfo == null && !isOnline) {
LogUtils.dTag("RoomActivity", "navigateToRoom:房间信息获取存在问题");
return;
}