修改MQTT使用方式
修改bug 修改盲盒布局
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<activity
|
||||
android:name=".activity.RoomActivity"
|
||||
android:exported="false"
|
||||
android:launchMode="singleTask"
|
||||
android:launchMode="singleInstance"
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
android:enableOnBackInvokedCallback="false"
|
||||
android:theme="@style/TransparentActivityTheme"
|
||||
|
||||
@@ -316,7 +316,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
// EMqttService.cleanSubscribeRoom(roomId);
|
||||
CommonAppContext.getInstance().isPlaying = false;
|
||||
CommonAppContext.getInstance().isShow = false;
|
||||
cleanupResources();
|
||||
// cleanupResources();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -798,6 +798,8 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
handleMsgType1016(messageEvent, text);
|
||||
} else if (msgType == 1039) {
|
||||
handleMsgType1039(messageEvent, text);
|
||||
}else if (msgType==1028){
|
||||
roomFragment.handleMsgType1028(messageEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -926,7 +928,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
} else if ("1".equals(labelId)) {
|
||||
roomFragment.SingSongEvent(messageEvent);
|
||||
}
|
||||
} else {
|
||||
} else if ("7".equals(typeId)){
|
||||
for (RoomPitBean roomPitBean : pitList) {
|
||||
if (roomPitBean.getUser_id().equals(toUserInfo.getUser_id() + "")) {
|
||||
roomPitBean.setCharm(toUserInfo.getCharm());
|
||||
@@ -1676,8 +1678,14 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
@Override
|
||||
public void onMinimize() {
|
||||
// 处理最小化逻辑,比如不销毁 Activity,仅移至后台
|
||||
// CommonAppContext.getInstance().isShow = false;
|
||||
// ARouter.getInstance().build(ARouteConstants.ME).navigation();//栈顶复用
|
||||
// moveTaskToBack(true);
|
||||
|
||||
CommonAppContext.getInstance().isShow = false;
|
||||
ARouter.getInstance().build(ARouteConstants.ME).navigation();//栈顶复用
|
||||
ARouter.getInstance().build(ARouteConstants.ME)
|
||||
.withFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.navigation();
|
||||
// moveTaskToBack(true);
|
||||
}
|
||||
|
||||
@@ -2688,6 +2696,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
MyRoomSingleton.getInstance().onExitRoom();
|
||||
MessageListenerSingleton.reset(roomId);
|
||||
ARouter.getInstance().build(ARouteConstants.ME).navigation();//栈顶复用
|
||||
cleanupResources();
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,26 +5,31 @@ import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.example.moduleroom.R;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/26
|
||||
*@description: 底部弹框,退出房间选择
|
||||
* @author qx
|
||||
* @data 2025/6/26
|
||||
* @description: 底部弹框,退出房间选择
|
||||
*/
|
||||
public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
|
||||
|
||||
public interface OnOptionSelectedListener {
|
||||
void onMinimize(); // 最小化
|
||||
|
||||
void onExitRoom(); // 退出房间
|
||||
|
||||
void onCancel(); // 取消
|
||||
}
|
||||
|
||||
private OnOptionSelectedListener listener;
|
||||
private TextView tv_minimize;
|
||||
|
||||
public static ExitRoomBottomSheet newInstance() {
|
||||
return new ExitRoomBottomSheet();
|
||||
@@ -42,7 +47,7 @@ public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.dialog_exit_room_bottom_sheet, container, false);
|
||||
|
||||
tv_minimize = view.findViewById(R.id.tv_minimize);
|
||||
view.findViewById(R.id.tv_minimize).setOnClickListener(v -> {
|
||||
if (listener != null) listener.onMinimize();
|
||||
dismiss();
|
||||
@@ -61,6 +66,10 @@ public class ExitRoomBottomSheet extends BottomSheetDialogFragment {
|
||||
return view;
|
||||
}
|
||||
|
||||
public void setViewUp(boolean isUp) {
|
||||
tv_minimize.setVisibility(isUp ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
public void setOnOptionSelectedListener(OnOptionSelectedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -383,16 +384,25 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
|
||||
|
||||
return;
|
||||
}
|
||||
this.dismiss();
|
||||
FragmentManager fm = getParentFragmentManager();
|
||||
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(gift.getGift_bag() + "", roomId, userId);
|
||||
newDialog.show(fm, "GiftLotteryDialog");
|
||||
// this.dismiss();
|
||||
// FragmentManager fm = getParentFragmentManager();
|
||||
// GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(gift.getGift_bag() + "", roomId, userId);
|
||||
// newDialog.show(fm, "GiftLotteryDialog");
|
||||
|
||||
fm.beginTransaction()
|
||||
.replace(getId(), newDialog)
|
||||
.addToBackStack(null)
|
||||
.commit();
|
||||
try {
|
||||
// 直接显示对话框,移除有问题的 FragmentTransaction
|
||||
this.dismissAllowingStateLoss(); // 使用 dismissAllowingStateLoss 更安全
|
||||
|
||||
FragmentManager fm = getParentFragmentManager();
|
||||
if (fm != null && !fm.isDestroyed()) {
|
||||
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(
|
||||
String.valueOf(gift.getGift_bag()), roomId, userId);
|
||||
newDialog.show(fm, "GiftLotteryDialog");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e("RoomGiftDialogFragment", "Error in showGiftLotteryDialog", e);
|
||||
ToastUtils.show("操作失败,请重试");
|
||||
}
|
||||
|
||||
// 如果当前dialog存在且正在显示,先关闭
|
||||
// if (currentDialog != null && currentDialog.isVisible()) {
|
||||
|
||||
@@ -300,6 +300,8 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
}
|
||||
if (paim==1){
|
||||
contentView.findViewById(R.id.action_kick_out).setVisibility(GONE);
|
||||
}else {
|
||||
contentView.findViewById(R.id.action_kick_out).setVisibility(VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -477,7 +479,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
|
||||
mBinding.roomDian.setVisibility(View.GONE);
|
||||
mBinding.roomJb.setVisibility(View.VISIBLE);
|
||||
mBinding.roomLh.setVisibility(View.VISIBLE);
|
||||
mBinding.roomBo.setVisibility(View.GONE);
|
||||
mBinding.roomBo.setVisibility(VISIBLE);
|
||||
mBinding.roomMCz.setVisibility(GONE);
|
||||
|
||||
}else {
|
||||
|
||||
@@ -209,6 +209,10 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
initPopupWindow();
|
||||
}
|
||||
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp) {
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 麦位视图点击事件处理
|
||||
*
|
||||
|
||||
@@ -218,7 +218,7 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
|
||||
toChatUsername = roomInfoResp.getRoom_info().getChatrooms();
|
||||
this.roomId = roomInfoResp.getRoom_info().getRoom_id();
|
||||
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
||||
t.setText("羽声严禁未成年人进行直播或打赏,官方将24小时在线巡查。我们提倡绿色直播,直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容,严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容,严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。");
|
||||
t.setText("秘地严禁未成年人进行直播或打赏,官方将24小时在线巡查。我们提倡绿色直播,直播间严禁出现涉政、涉恐、涉黄、涉赌等违法违规内容,严禁宣传封建迷信、宗教极端思想、出现低俗色情、吸烟酗酒等内容,严禁违反社会主义核心价值观、践踏社会道德底线、诱导打赏、低俗 PK 、买卖金币等行为,请大家共同遵守、监督并及时举报。请勿相信各类刷钻、购买礼包、游戏币及电商贩卖等非官方广告信息,谨防网络诈骗。");
|
||||
// 加入群组成功
|
||||
handleRoomMessage(new RoomMessageEvent(1000, roomId, t));
|
||||
onChatRoomViewCreation();
|
||||
@@ -515,6 +515,9 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
|
||||
public void handleRoomMessage(RoomMessageEvent message) {
|
||||
LogUtils.e("@@@", "handleRoomMessage: " + message);
|
||||
LogUtils.e("@@@", "handleRoomMessage: roomId" + roomId);
|
||||
if (easeChatAdapter==null){
|
||||
easeChatAdapter=new EaseChatAdapter();
|
||||
}
|
||||
if (message.getRoomId() == null){
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -85,9 +85,8 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
private final ScreenCaptureParameters screenCaptureParameters = new ScreenCaptureParameters();
|
||||
|
||||
|
||||
public static RoomCabinFragment newInstance(RoomInfoResp roomInfoResp) {
|
||||
public static RoomCabinFragment newInstance() {
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("roomInfoResp", (Serializable) roomInfoResp);
|
||||
RoomCabinFragment fragment = new RoomCabinFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
@@ -96,12 +95,12 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
@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();
|
||||
}
|
||||
// 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;
|
||||
|
||||
@@ -146,63 +145,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
@Override
|
||||
protected void initData() {
|
||||
if (roomInfoResp == null) return;
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
@@ -227,7 +170,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
public void onClick(View v) {
|
||||
RoomPitBean roomPitBean = mBinding.roomMakeWheat2.pitBean;
|
||||
UserInfo userInfo = new UserInfo();
|
||||
userInfo.setUser_id(Integer.parseInt(roomPitBean.getUser_id()));
|
||||
userInfo.setUser_id(Integer.parseInt(roomPitBean.getUser_id()!=null ? roomPitBean.getUser_id() : "0"));
|
||||
userInfo.setNickname(roomPitBean.getNickname());
|
||||
userInfo.setAvatar(roomPitBean.getAvatar());
|
||||
userInfo.setPit_number("");
|
||||
@@ -258,7 +201,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
|
||||
if (roomInfoResp != null && roomInfoResp.getRoom_owner().getUser_id().equals(SpUtil.getUserId()+"")){
|
||||
mBinding.im3.setVisibility(VISIBLE);
|
||||
setvkk(false);
|
||||
// setvkk(false);
|
||||
}else {
|
||||
mBinding.im3.setVisibility(GONE);
|
||||
}
|
||||
@@ -268,6 +211,84 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
// }
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
@@ -299,7 +320,6 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void roomInfoEvent(RoomMessageEvent messageEvent) {
|
||||
if (messageEvent.getMsgType() == 1028) {
|
||||
mBinding.tvHeartValue2.setText(messageEvent.getText().getHot_value());
|
||||
@@ -311,6 +331,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
// EventBus.getDefault().post(new RoomOutEvent());
|
||||
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||
ExitRoomBottomSheet bottomSheet = ExitRoomBottomSheet.newInstance();
|
||||
bottomSheet.setViewUp(false);
|
||||
bottomSheet.setOnOptionSelectedListener(new ExitRoomBottomSheet.OnOptionSelectedListener() {
|
||||
@Override
|
||||
public void onMinimize() {
|
||||
@@ -473,6 +494,76 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
|
||||
public void roomInfoUpdate(RoomInfoResp resp) {
|
||||
roomInfoResp = resp;
|
||||
// updateWheatData();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -276,7 +276,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
mRoomInfoResp = resp;
|
||||
loadSubFragment();
|
||||
// 更新子Fragment视图
|
||||
updateChildFragmentViews();
|
||||
// updateChildFragmentViews();
|
||||
}
|
||||
|
||||
private <T extends Fragment> T findFragmentByTag(Class<T> fragmentClass) {
|
||||
@@ -317,6 +317,11 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
singSongFragment.roomInfoUpdate(mRoomInfoResp);
|
||||
}
|
||||
}
|
||||
}else if ("6".equals(typeId)){
|
||||
RoomCabinFragment roomCabinFragment = findFragmentByTag(RoomCabinFragment.class);
|
||||
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
|
||||
roomCabinFragment.roomInfoUpdate(mRoomInfoResp);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -386,7 +391,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
} else if ("2".equals(typeId)) {
|
||||
newFragment = RoomAuctionFragment.newInstance();
|
||||
} else if ("6".equals(typeId)) {
|
||||
newFragment = RoomCabinFragment.newInstance(mRoomInfoResp);
|
||||
newFragment = RoomCabinFragment.newInstance();
|
||||
setviewyc();
|
||||
} else if ("3".equals(typeId)) {
|
||||
if ("1".equals(labelId)) {
|
||||
@@ -407,7 +412,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
if (newFragment != null) {
|
||||
replaceNestedFragment(newFragment, R.id.container);
|
||||
}
|
||||
// instView();
|
||||
|
||||
setview();
|
||||
|
||||
if (mRoomInfoResp.getUser_info().getPit_number() != 0) {
|
||||
@@ -514,6 +519,50 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp) {
|
||||
mRoomInfoResp = roomInfoResp;
|
||||
updateChildFragmentViewsUp();
|
||||
}
|
||||
|
||||
private void updateChildFragmentViewsUp() {
|
||||
// 使用弱引用避免内存泄漏
|
||||
if (getActivity() == null || !isAdded()) {
|
||||
return;
|
||||
}
|
||||
// 使用 post 方法确保在 UI 线程执行
|
||||
getView().post(() -> {
|
||||
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
|
||||
String typeId = mRoomInfoResp.getRoom_info().getType_id();
|
||||
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
|
||||
|
||||
if ("7".equals(typeId)) {
|
||||
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
|
||||
if (friendshipRoomFragment != null && friendshipRoomFragment.isAdded()) {
|
||||
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
|
||||
}
|
||||
} else if ("2".equals(typeId)) {
|
||||
RoomAuctionFragment auctionRoomFragment = findFragmentByTag(RoomAuctionFragment.class);
|
||||
if (auctionRoomFragment != null && auctionRoomFragment.isAdded()) {
|
||||
auctionRoomFragment.upRoomInfo(mRoomInfoResp);
|
||||
}
|
||||
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId)) {
|
||||
if ("2".equals(labelId)) {
|
||||
RoomKtvFragment roomKtvFragment = findFragmentByTag(RoomKtvFragment.class);
|
||||
if (roomKtvFragment != null && roomKtvFragment.isAdded()) {
|
||||
roomKtvFragment.upRoomInfo(mRoomInfoResp);
|
||||
}
|
||||
} else if ("1".equals(labelId)) {
|
||||
SingSongFragment singSongFragment = findFragmentByTag(SingSongFragment.class);
|
||||
if (singSongFragment != null && singSongFragment.isAdded()) {
|
||||
singSongFragment.upRoomInfo(mRoomInfoResp);
|
||||
}
|
||||
}
|
||||
}else if ("6".equals(typeId)){
|
||||
RoomCabinFragment roomCabinFragment = findFragmentByTag(RoomCabinFragment.class);
|
||||
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
|
||||
roomCabinFragment.upRoomInfo(mRoomInfoResp);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setview() {//这里是当进入电影放房的时候,如果是排麦模式,并且不是电影放的时候,就隐藏排麦视图
|
||||
@@ -966,6 +1015,15 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: 2025/9/3 小黑屋火热值更新
|
||||
public void handleMsgType1028(RoomMessageEvent messageEvent){
|
||||
RoomCabinFragment cabinFragment = (RoomCabinFragment) getChildFragmentManager()
|
||||
.findFragmentByTag(RoomCabinFragment.class.getSimpleName());
|
||||
if (cabinFragment != null){
|
||||
cabinFragment.handleMsgType1028(messageEvent);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: 2025/8/30 Ktv模式
|
||||
public void KtvFragmentEvent(RoomMessageEvent messageEvent) {
|
||||
RoomKtvFragment ktvFragment = (RoomKtvFragment) getChildFragmentManager()
|
||||
|
||||
@@ -80,7 +80,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
super.onAttach(context);
|
||||
// roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfo");
|
||||
}
|
||||
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp) {
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
}
|
||||
public void roomInfoUpdate(RoomInfoResp resp) {
|
||||
roomInfoResp = resp;
|
||||
upData();
|
||||
|
||||
@@ -4,6 +4,7 @@ import static android.view.View.GONE;
|
||||
import static android.view.View.INVISIBLE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
@@ -128,7 +129,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
protected void initData() {
|
||||
upDtaView();
|
||||
}
|
||||
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp) {
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
}
|
||||
private void upDtaView() {
|
||||
pitList = new ArrayList<>();
|
||||
if (getActivity() instanceof RoomActivity) {
|
||||
@@ -326,6 +329,33 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
return R.layout.fragment_sing_song;
|
||||
}
|
||||
|
||||
// 添加防重复点击的时间戳
|
||||
private static final long CLICK_INTERVAL = 500; // 500ms内不允许重复点击
|
||||
private long lastClickTime = 0;
|
||||
private String lastClickedUserId = ""; // 记录上次点击的用户ID
|
||||
private String lastClickedPitNumber = ""; // 记录上次点击的麦位号
|
||||
|
||||
/**
|
||||
* 检查是否为快速重复点击
|
||||
* @param userId 用户ID
|
||||
* @param pitNumber 麦位号
|
||||
* @return true表示是快速重复点击,false表示不是
|
||||
*/
|
||||
private boolean isFastDoubleClick(String userId, String pitNumber) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
if (currentTime - lastClickTime < CLICK_INTERVAL &&
|
||||
userId.equals(lastClickedUserId) &&
|
||||
pitNumber.equals(lastClickedPitNumber)) {
|
||||
return true; // 是快速重复点击
|
||||
}
|
||||
|
||||
// 更新上次点击信息
|
||||
lastClickTime = currentTime;
|
||||
lastClickedUserId = userId;
|
||||
lastClickedPitNumber = pitNumber;
|
||||
return false; // 不是快速重复点击
|
||||
}
|
||||
|
||||
private void isWhether2() {
|
||||
mBinding.flexboxLayout.setVisibility(View.VISIBLE);
|
||||
mBinding.cl.setVisibility(View.GONE);
|
||||
@@ -339,6 +369,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
// 可选:点击事件处理
|
||||
Log.d("Wheat", "Clicked pit: " + pitNumber1);
|
||||
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
|
||||
return; // 快速重复点击,直接返回
|
||||
}
|
||||
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
@@ -351,7 +384,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
roomPitBean = pitBean;
|
||||
showPopupMenu(view); // v 是点击的按钮视图
|
||||
} else if (pitNumber1 == 10) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 - 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
// RoomOnlineDialogFragment.show(roomId, pitNumber1 - 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
} else {
|
||||
MvpPre.applyPit(roomId, pitNumber1 - 1 + "");
|
||||
}
|
||||
@@ -739,6 +775,10 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
// 可选:点击事件处理
|
||||
Log.d("Wheat", "Clicked pit: " + pitNumber1);
|
||||
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
|
||||
return; // 快速重复点击,直接返回
|
||||
}
|
||||
|
||||
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
@@ -751,7 +791,11 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
roomPitBean = pitBean;
|
||||
showPopupMenu(view); // v 是点击的按钮视图
|
||||
} else if (pitNumber1 == 10) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
// 添加防重复点击检查
|
||||
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
// RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
} else {
|
||||
MvpPre.applyPit(roomId, pitNumber1 + "");
|
||||
}
|
||||
@@ -765,6 +809,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
// 可选:点击事件处理
|
||||
Log.d("Wheat", "Clicked pit: " + pitNumber);
|
||||
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
|
||||
return; // 快速重复点击,直接返回
|
||||
}
|
||||
RoomUserInfoFragment.show(roomInfoRespPk.getRoom_info().getRoom_id(), pitBean.getUser_id(), pitNumber + "", getHostUser(), true, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
@@ -799,6 +846,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
// 可选:点击事件处理
|
||||
Log.d("Wheat", "Clicked pit: " + pitNumber1);
|
||||
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
|
||||
return; // 快速重复点击,直接返回
|
||||
}
|
||||
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
@@ -811,7 +861,11 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
roomPitBean = pitBean;
|
||||
showPopupMenu(view); // v 是点击的按钮视图
|
||||
} else if (pitNumber1 == 10) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
// 添加防重复点击检查
|
||||
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
|
||||
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
// RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
} else {
|
||||
MvpPre.applyPit(roomId, pitNumber1 + "");
|
||||
}
|
||||
@@ -825,6 +879,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
// 可选:点击事件处理
|
||||
Log.d("Wheat", "Clicked pit: " + pitNumber);
|
||||
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
|
||||
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())){
|
||||
return;
|
||||
}
|
||||
RoomUserInfoFragment.show(roomInfoRespPk.getRoom_info().getRoom_id(), pitBean.getUser_id(), pitNumber + "", getHostUser(), true, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.7" />
|
||||
app:layout_constraintGuide_percent="0.6" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/vp_room_pager"
|
||||
|
||||
@@ -498,7 +498,6 @@
|
||||
android:layout="@layout/top_overlay_buttons"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginTop="-30dp"
|
||||
android:visibility="gone"/>
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="@dimen/dp_172"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
|
||||
@@ -196,7 +196,8 @@
|
||||
android:layout_alignTop="@id/btn_notice"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
android:background="@drawable/bg_r73_33fffff"
|
||||
android:layout_toEndOf="@id/btn_notice">
|
||||
android:layout_toEndOf="@id/btn_notice"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/im_qc"
|
||||
|
||||
Reference in New Issue
Block a user