775 lines
42 KiB
Java
775 lines
42 KiB
Java
package com.xscm.modulemain.dialog;
|
||
|
||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessLegend;
|
||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessTime;
|
||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomOrderMic;
|
||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomTimeRedSound;
|
||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomTimeSpace;
|
||
|
||
import android.content.Context;
|
||
import android.content.Intent;
|
||
import android.os.Bundle;
|
||
import android.util.Log;
|
||
import android.view.*;
|
||
|
||
import androidx.annotation.NonNull;
|
||
import androidx.fragment.app.FragmentManager;
|
||
import androidx.recyclerview.widget.GridLayoutManager;
|
||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||
|
||
import com.alibaba.android.arouter.launcher.ARouter;
|
||
import com.blankj.utilcode.util.ActivityUtils;
|
||
import com.blankj.utilcode.util.GsonUtils;
|
||
import com.blankj.utilcode.util.LogUtils;
|
||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||
import com.hjq.toast.ToastUtils;
|
||
import com.xscm.modulemain.R;
|
||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
||
import com.xscm.modulemain.activity.room.contacts.RoomSettingContacts;
|
||
import com.xscm.modulemain.activity.room.fragment.RoomBackgroundDialogFragment;
|
||
import com.xscm.modulemain.activity.room.presenter.RoomSettingPresenter;
|
||
import com.xscm.modulemain.adapter.HorizontalListAdapter;
|
||
import com.xscm.modulemain.adapter.RoomSettingAdapter;
|
||
import com.xscm.modulemain.databinding.DialogRoomSettingFragmentBinding;
|
||
import com.xscm.modulemain.activity.WebViewActivity;
|
||
import com.xscm.modulemain.dialog.refining.BoxMainDialog2;
|
||
import com.xscm.moduleutil.base.CommonAppContext;
|
||
import com.xscm.moduleutil.base.WebUrlConstants;
|
||
import com.xscm.moduleutil.bean.BlindBoxStatus;
|
||
import com.xscm.moduleutil.bean.GiftLabelBean;
|
||
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
||
import com.xscm.moduleutil.event.EffectEvent;
|
||
import com.xscm.moduleutil.event.FloatingScreenEvent;
|
||
import com.xscm.moduleutil.event.MusicEvent;
|
||
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
|
||
import com.xscm.moduleutil.bean.RoomMessageEvent;
|
||
import com.xscm.moduleutil.bean.RoomSettingEvent;
|
||
import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
||
import com.xscm.moduleutil.bean.room.RoomSettingBean;
|
||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||
import com.xscm.moduleutil.utils.SpUtil;
|
||
import com.xscm.moduleutil.widget.DoubleTimePickerBottomSheet;
|
||
|
||
import org.greenrobot.eventbus.EventBus;
|
||
import org.greenrobot.eventbus.Subscribe;
|
||
import org.greenrobot.eventbus.ThreadMode;
|
||
|
||
import java.nio.charset.StandardCharsets;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.ArrayList;
|
||
import java.util.Calendar;
|
||
import java.util.List;
|
||
import java.util.Locale;
|
||
import java.util.stream.Collectors;
|
||
|
||
/**
|
||
* @author qx
|
||
* @data 2025/6/17
|
||
* @description: 房间设置弹框
|
||
*/
|
||
public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresenter, DialogRoomSettingFragmentBinding> implements RoomSettingContacts.View {
|
||
private String userId;
|
||
private String roomId;
|
||
RoomSettingAdapter adapter;
|
||
List<RoomSettingBean> dataList;
|
||
// 创建父级列表
|
||
List<RoomSettingBean> parentList = new ArrayList<>();
|
||
private RoomInfoResp roomInfoResp;
|
||
private int read;
|
||
private boolean isSelected;
|
||
private boolean effectOn = false;//开启/关闭特效
|
||
private boolean redSound = false;//开启/关闭红包声音
|
||
private boolean floatingScreen = false;//开启/关闭飘屏
|
||
|
||
List<RoomSettingBean> filteredList = new ArrayList<>();
|
||
|
||
List<RoomSettingBean> blindList = new ArrayList<>();//盲盒列表
|
||
|
||
@Override
|
||
protected RoomSettingPresenter bindPresenter() {
|
||
return new RoomSettingPresenter(this, getActivity());
|
||
}
|
||
|
||
public static RoomSettingFragment show(RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
|
||
RoomSettingFragment dialogFragment = new RoomSettingFragment();
|
||
Bundle args = new Bundle();
|
||
args.putSerializable("roomInfoResp", roomInfoResp);
|
||
dialogFragment.setArguments(args);
|
||
dialogFragment.show(fragmentManager, "RoomSettingFragment");
|
||
return dialogFragment;
|
||
}
|
||
|
||
@Override
|
||
public void onAttach(@NonNull Context context) {
|
||
super.onAttach(context);
|
||
// roomId=getArguments().getString("roomId");
|
||
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
|
||
if (roomInfoResp == null) {
|
||
ToastUtils.show("房间信息为空");
|
||
return;
|
||
}
|
||
roomId = roomInfoResp.getRoom_info().getRoom_id();
|
||
if (roomInfoResp.getUser_info().getIs_room_owner() != 0) {
|
||
read = 1;
|
||
} else if (roomInfoResp.getUser_info().getIs_management() != 0) {
|
||
read = 2;
|
||
} else if (roomInfoResp.getUser_info().getIs_host() != 0) {
|
||
read = 3;
|
||
} else {
|
||
read = 4;
|
||
}
|
||
if (roomInfoResp.getUser_info().getPit_number() != 0) {
|
||
isSelected = true;
|
||
} else {
|
||
isSelected = false;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
@Override
|
||
protected void initDialogStyle(Window window) {
|
||
super.initDialogStyle(window);
|
||
window.setGravity(Gravity.BOTTOM);
|
||
}
|
||
|
||
@Override
|
||
public void onStart() {
|
||
super.onStart();
|
||
Window window = getDialog().getWindow();
|
||
if (window != null) {
|
||
// 设置固定高度为 500dp
|
||
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
|
||
// 可选:设置动画样式(从底部弹出)
|
||
window.setWindowAnimations(com.xscm.moduleutil.R.style.CommonShowDialogBottom);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void onStop() {
|
||
super.onStop();
|
||
}
|
||
|
||
@Override
|
||
protected void initData() {
|
||
|
||
dataList = new ArrayList<>();
|
||
effectOn = SpUtil.getOpenEffect() == 1;
|
||
floatingScreen = SpUtil.getFloatingScreen() == 1;
|
||
redSound = SpUtil.getRedSound() == 1;
|
||
boolean b = roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1");
|
||
LogUtils.e("effectOn=" + effectOn);
|
||
// 房间类型组
|
||
RoomSettingBean roomTypeParent = new RoomSettingBean("房间类型", null, null, null, -1, read, isSelected, false, false);
|
||
List<RoomSettingBean> roomTypeChildren = new ArrayList<>();
|
||
roomTypeChildren.add(new RoomSettingBean("交友", "ic_sing", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeSing, read, isSelected, false, false));
|
||
roomTypeChildren.add(new RoomSettingBean("拍卖", "ic_auction", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeAuction, read, isSelected, false, false));
|
||
roomTypeChildren.add(new RoomSettingBean("点唱", "jiao_y", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy, read, isSelected, false, false));
|
||
roomTypeChildren.add(new RoomSettingBean("互娱", "ic_jiaoy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU, read, isSelected, false, false));
|
||
// roomTypeChildren.add(new RoomSettingBean("练歌房", "ic_liang", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeLianG, read, isSelected, false, false));
|
||
roomTypeChildren.add(new RoomSettingBean("签约", "sing_contract", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT, read, isSelected, false, false));
|
||
roomTypeChildren.add(new RoomSettingBean("酒吧房", "rub_room", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM, read, isSelected, false, false));
|
||
|
||
roomTypeParent.setChildren(roomTypeChildren);
|
||
parentList.add(roomTypeParent);
|
||
|
||
// 常用工具组
|
||
RoomSettingBean toolsParent = new RoomSettingBean("常用工具", null, null, null, -1, read, isSelected, false, false);
|
||
List<RoomSettingBean> toolsChildren = new ArrayList<>();
|
||
toolsChildren.add(new RoomSettingBean("房间补贴", "ic_subsidy", null, null, RoomSettingBean.QXRoomSettingTypeRoomSubsidy, read, isSelected, false, false));
|
||
toolsChildren.add(new RoomSettingBean("主持设置", "ic_compere", null, null, RoomSettingBean.QXRoomSettingTypeRoomCompere, read, isSelected, false, false));
|
||
toolsChildren.add(new RoomSettingBean("清空消息", "ic_clear_message", null, null, RoomSettingBean.QXRoomSettingTypeRoomClearMessage, read, isSelected, false, false));
|
||
toolsChildren.add(new RoomSettingBean("排麦模式", "ic_order_mic", null, null, QXRoomSettingTypeRoomOrderMic, read, isSelected, false, roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")));
|
||
toolsChildren.add(new RoomSettingBean("背景音乐", "ic_bg_music", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgMusic, read, isSelected, false, false));
|
||
toolsChildren.add(new RoomSettingBean("背景图片", "ic_bg_image", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgImage, read, isSelected, false, false));
|
||
toolsChildren.add(new RoomSettingBean("营业时间", "ic_bg_image", null, null, QXRoomSettingTypeRoomBusinessTime, read, isSelected, false, false));
|
||
toolsParent.setChildren(toolsChildren);
|
||
parentList.add(toolsParent);
|
||
|
||
// 更多操作组
|
||
RoomSettingBean moreParent = new RoomSettingBean("更多操作", null, null, null, -1, read, isSelected, false, false);
|
||
List<RoomSettingBean> moreChildren = new ArrayList<>();
|
||
moreChildren.add(new RoomSettingBean("发红包", "ic_red", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingRed, read, isSelected, false, false));
|
||
moreChildren.add(new RoomSettingBean("房间设置", "ic_room_setting", null, null, RoomSettingBean.QXRoomSettingTypeRoomSetting, read, isSelected, false, false));
|
||
moreChildren.add(new RoomSettingBean("关闭特效", "ic_close_effects", null, null, RoomSettingBean.QXRoomSettingTypeRoomCloseEffects, read, isSelected, false, effectOn));
|
||
moreChildren.add(new RoomSettingBean("关闭飘屏", "ic_close_floating_screen", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen, read, isSelected, false, floatingScreen));
|
||
moreChildren.add(new RoomSettingBean("举报", "ic_report", null, null, RoomSettingBean.QXRoomSettingTypeRoomReport, read, isSelected, false, false));
|
||
moreChildren.add(new RoomSettingBean("关闭红包声音", "crossing", null, null, QXRoomSettingTypeRoomTimeRedSound, read, isSelected, false, redSound));
|
||
moreParent.setChildren(moreChildren);
|
||
parentList.add(moreParent);
|
||
/*
|
||
// 添加标题和对应的内容项
|
||
dataList.add(new RoomSettingBean("房间类型", null, null, null, -1, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("交友", "ic_sing", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeSing, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("拍卖", "ic_auction", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeAuction, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("男神", "ic_boy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeBoy, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("女神", "ic_girl", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeGirl, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("点唱", "jiao_y", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy, read, isSelected, false, false));// 添加的新的房间类型 ,交友 ,是原来的男神女神类型
|
||
dataList.add(new RoomSettingBean("互娱", "ic_jiaoy", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU, read, isSelected, false, false)); //原交友,更改互娱 2025年9月19日11:18:01
|
||
dataList.add(new RoomSettingBean("练歌房", "ic_liang", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeLianG, read, isSelected, false, false)); //练歌房,原点歌房,同意的时候,走同意点歌的逻辑
|
||
dataList.add(new RoomSettingBean("签约", "sing_contract", null, null, RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT, read, isSelected, false, false)); //签约房
|
||
|
||
|
||
dataList.add(new RoomSettingBean("常用工具", null, null, null, -1, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("房间补贴", "ic_subsidy", null, null, RoomSettingBean.QXRoomSettingTypeRoomSubsidy, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("主持设置", "ic_compere", null, null, RoomSettingBean.QXRoomSettingTypeRoomCompere, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("清空消息", "ic_clear_message", null, null, RoomSettingBean.QXRoomSettingTypeRoomClearMessage, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("排麦模式", "ic_order_mic", null, null, QXRoomSettingTypeRoomOrderMic, read, isSelected, false, roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")));//等于1的时候,是排麦模式,等于2的时候,是自由模式,这里判断是否是拍卖模式,
|
||
dataList.add(new RoomSettingBean("背景音乐", "ic_bg_music", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgMusic, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("背景图片", "ic_bg_image", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgImage, read, isSelected, false, false));
|
||
|
||
dataList.add(new RoomSettingBean("更多操作", null, null, null, -1, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("发红包", "ic_red", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingRed, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("离开房间", "ic_leave", null, null, RoomSettingBean.QXRoomSettingTypeRoomLeave, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("分享房间", "ic_share", null, null, RoomSettingBean.QXRoomSettingTypeRoomShare, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("调音台", "ic_my_dress", null, null, RoomSettingBean.QXRoomSettingTypeRoomMyDress, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("房间设置", "ic_room_setting", null, null, RoomSettingBean.QXRoomSettingTypeRoomSetting, read, isSelected, false, false));
|
||
// dataList.add(new RoomSettingBean("房间欢迎语", "ic_welcome", null, null, RoomSettingBean.QXRoomSettingTypeRoomWelcome,read,isSelected, false));
|
||
dataList.add(new RoomSettingBean("关闭特效", "ic_close_effects", null, null, RoomSettingBean.QXRoomSettingTypeRoomCloseEffects, read, isSelected, false, effectOn));
|
||
dataList.add(new RoomSettingBean("关闭飘屏", "ic_close_floating_screen", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen, read, isSelected, false, floatingScreen));
|
||
dataList.add(new RoomSettingBean("举报", "ic_report", null, null, RoomSettingBean.QXRoomSettingTypeRoomReport, read, isSelected, false, false));
|
||
|
||
dataList.add(new RoomSettingBean("岁月之城", "the_city_years", null, null, RoomSettingBean.QXRoomSettingTypeRoomTheCityYears, read, isSelected, false, false));
|
||
dataList.add(new RoomSettingBean("时空之巅", "time_space", null, null, RoomSettingBean.QXRoomSettingTypeRoomTimeSpace, read, isSelected, false, false));
|
||
*/
|
||
|
||
// 更新 itemType
|
||
for (RoomSettingBean bean : parentList) {
|
||
bean.setRead(read);
|
||
bean.setSelected(isSelected);
|
||
switch (read) {
|
||
case 1, 2, 3:
|
||
bean.setStatus(true);
|
||
break;
|
||
case 4:
|
||
if (bean.getName().equals("房间类型") || bean.getName().equals("常用工具")) {
|
||
bean.setStatus(false);
|
||
bean.setChildren(null);
|
||
} else {
|
||
bean.setStatus(true);
|
||
}
|
||
break;
|
||
}
|
||
|
||
// 如果是父级项目(type = -1)
|
||
// 检查父级是否可见
|
||
// 处理子项
|
||
List<RoomSettingBean> children = bean.getChildren();
|
||
List<RoomSettingBean> children2 = new ArrayList<>();
|
||
|
||
if (children != null && !children.isEmpty()) {
|
||
for (RoomSettingBean child : children) {
|
||
child.setRead(read);
|
||
child.setSelected(isSelected);
|
||
if (isItemVisible(child)) {
|
||
child.setStatus(true);
|
||
|
||
if (child.getType() == RoomSettingBean.QXRoomSettingTypeRoomTheCityYears || child.getType() == RoomSettingBean.QXRoomSettingTypeRoomTimeSpace) {
|
||
blindList.add(child);
|
||
}
|
||
children2.add(child);
|
||
} else {
|
||
child.setStatus(false);
|
||
|
||
}
|
||
child.updateItemType();
|
||
}
|
||
}
|
||
bean.setChildren(children2);
|
||
if (bean.isStatus()) {
|
||
filteredList.add(bean);
|
||
}
|
||
|
||
}
|
||
|
||
// 更新 itemType
|
||
/* for (RoomSettingBean bean : dataList) {
|
||
bean.setRead(read);
|
||
bean.setSelected(isSelected);
|
||
// 根据角色和状态设置 isVisible
|
||
if (isItemVisible(bean)) {
|
||
bean.setStatus(true);
|
||
} else {
|
||
bean.setStatus(false);
|
||
}
|
||
|
||
bean.updateItemType();
|
||
|
||
if (bean.isStatus()) {
|
||
filteredList.add(bean);
|
||
}
|
||
|
||
// 动态设置 GridLayoutManager 的列数
|
||
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 6); // 默认每行 4 个 item
|
||
|
||
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
||
@Override
|
||
public int getSpanSize(int position) {
|
||
RoomSettingBean item = filteredList.get(position);
|
||
if (item.getItemType() == RoomSettingBean.ITEM_TYPE_DEFAULT) { // 标题项占满一行
|
||
return layoutManager.getSpanCount();
|
||
} else { // 内容项默认每行 4 个
|
||
return 1;
|
||
}
|
||
}
|
||
});
|
||
// 根据 itemType 动态调整列数
|
||
mBinding.recycleView.setLayoutManager(layoutManager);
|
||
}*/
|
||
adapter = new RoomSettingAdapter();
|
||
mBinding.recycleView.setAdapter(adapter);
|
||
adapter.setNewData(filteredList);
|
||
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
|
||
adapter.setOnItemClickListener(new RoomSettingAdapter.OnItemClickListener() {
|
||
@Override
|
||
public void onItemClick(RoomSettingBean bean, int position, int itemPos, HorizontalListAdapter itemAdapter) {
|
||
// 示例:切换选择状态
|
||
if (bean.getType() == QXRoomSettingTypeRoomOrderMic) {
|
||
MvpPre.changeRoom(roomId, SpUtil.getUserId() + "", position, bean);
|
||
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomClearMessage) {
|
||
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
||
t.setText("清空消息");
|
||
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(123, roomId, t);
|
||
EventBus.getDefault().post(roomMessageEvent);
|
||
String json = GsonUtils.toJson(roomMessageEvent);
|
||
// 转换为 byte[]
|
||
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
||
// 创建自定义消息
|
||
MessageListenerSingleton.getInstance().sendCustomRoomMessage(
|
||
roomId,
|
||
binaryData
|
||
);
|
||
|
||
if (getActivity() instanceof RoomActivity) {
|
||
((RoomActivity) getActivity()).clearData();
|
||
}
|
||
|
||
}
|
||
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomMyDress) {
|
||
// TunerDialogFragment.show(roomId, getChildFragmentManager());
|
||
// }
|
||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomCompere) {//主持设置
|
||
RoomHostFragment.newInstance(roomId).show(getChildFragmentManager(), "RoomHostFragment");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomBgImage) {//背景图片
|
||
RoomBackgroundDialogFragment.newInstance(roomId, roomInfoResp.getRoom_info().getRoom_password()).show(getChildFragmentManager(), "RoomBackgroundDialogFragment");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomCloseEffects) {//关闭特效
|
||
if (effectOn) {
|
||
//关闭
|
||
effectOn = false;
|
||
//保存到本地
|
||
SpUtil.setOpenEffect(0);
|
||
EventBus.getDefault().post(new EffectEvent(false));
|
||
bean.setSelect(false);
|
||
} else {
|
||
//打开
|
||
effectOn = true;
|
||
SpUtil.setOpenEffect(1);
|
||
EventBus.getDefault().post(new EffectEvent(true));
|
||
bean.setSelect(true);
|
||
}
|
||
itemAdapter.notifyItemChanged(itemPos);
|
||
// adapter.notifyItemChanged(position);
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomBgMusic) {
|
||
EventBus.getDefault().post(new MusicEvent());
|
||
|
||
dismiss();
|
||
}
|
||
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomLeave) {
|
||
// EventBus.getDefault().post(new RoomOutEvent());
|
||
// }
|
||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSing) {
|
||
// MvpPre.changeRoomType(roomId, "1");
|
||
queren("1");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction) {
|
||
// MvpPre.changeRoomType(roomId, "2");
|
||
queren("2");
|
||
}
|
||
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy) {
|
||
//// MvpPre.changeRoomType(roomId, "3");
|
||
// queren("3");
|
||
// }
|
||
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl) {
|
||
//// MvpPre.changeRoomType(roomId, "4");
|
||
// queren("4");
|
||
// }
|
||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy) {
|
||
// MvpPre.changeRoomType(roomId, "7");
|
||
queren("9");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU) {
|
||
queren("7");
|
||
}
|
||
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG) { 2025年12月30日20:56:53,根据需求,隐藏用户自主切换练歌房
|
||
// queren("-1");
|
||
// }
|
||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT) {
|
||
queren("10");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM) {
|
||
queren("11");
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
|
||
if (roomInfoResp != null) {
|
||
ARouter.getInstance().build(ARouteConstants.CREATED_ROOM).withSerializable("roomInfoResp", roomInfoResp).navigation();
|
||
} else {
|
||
com.blankj.utilcode.util.ToastUtils.showShort("数据错误,请关闭重试");
|
||
}
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomReport) {
|
||
if (roomId != null) {
|
||
Intent intent = new Intent(getActivity(), WebViewActivity.class);
|
||
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_REPORT_URL(), SpUtil.getToken(), 2, roomId));
|
||
startActivity(intent);
|
||
} else {
|
||
com.blankj.utilcode.util.ToastUtils.showShort("数据错误,请关闭重试");
|
||
}
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSubsidy) {
|
||
ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", roomInfoResp.getRoom_info().getRoom_id() + "").navigation();
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen) {//2025年9月22日14:10:25,添加飘屏关闭打开按钮
|
||
if (floatingScreen) {
|
||
//关闭
|
||
floatingScreen = false;
|
||
//保存到本地
|
||
SpUtil.setFloatingScreen(0);
|
||
EventBus.getDefault().post(new FloatingScreenEvent(false));
|
||
bean.setSelect(false);
|
||
} else {
|
||
//打开
|
||
floatingScreen = true;
|
||
SpUtil.setFloatingScreen(1);
|
||
EventBus.getDefault().post(new FloatingScreenEvent(true));
|
||
bean.setSelect(true);
|
||
}
|
||
itemAdapter.notifyItemChanged(itemPos);
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed) {
|
||
|
||
if (getActivity() instanceof RoomActivity) {
|
||
((RoomActivity) getActivity()).redDialogView();
|
||
}
|
||
dismiss();
|
||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTheCityYears) {
|
||
try {
|
||
// // 直接显示对话框,移除有问题的 FragmentTransaction
|
||
// this.dismissAllowingStateLoss(); // 使用 dismissAllowingStateLoss 更安全
|
||
//
|
||
FragmentManager fm = getParentFragmentManager();
|
||
if (fm != null && !fm.isDestroyed()) {
|
||
|
||
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(
|
||
"11", roomId, "", "", "");
|
||
newDialog.show(fm, "GiftLotteryDialog");
|
||
dismiss();
|
||
}
|
||
} catch (Exception e) {
|
||
LogUtils.e("RoomGiftDialogFragment", "Error in showGiftLotteryDialog", e);
|
||
ToastUtils.show("操作失败,请重试");
|
||
}
|
||
} else if (bean.getType() == QXRoomSettingTypeRoomTimeSpace) {
|
||
try {
|
||
// // 直接显示对话框,移除有问题的 FragmentTransaction
|
||
// this.dismissAllowingStateLoss(); // 使用 dismissAllowingStateLoss 更安全
|
||
//
|
||
FragmentManager fm = getParentFragmentManager();
|
||
if (fm != null && !fm.isDestroyed()) {
|
||
|
||
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(
|
||
"12", roomId, "", "", "");
|
||
newDialog.show(fm, "GiftLotteryDialog");
|
||
dismiss();
|
||
}
|
||
} catch (Exception e) {
|
||
LogUtils.e("RoomGiftDialogFragment", "Error in showGiftLotteryDialog", e);
|
||
ToastUtils.show("操作失败,请重试");
|
||
}
|
||
} else if (bean.getType() == QXRoomSettingTypeRoomTimeRedSound) {//关闭红包声音
|
||
if (redSound) {
|
||
//关闭
|
||
redSound = false;
|
||
//保存到本地
|
||
SpUtil.setRedSound(0);
|
||
bean.setSelect(false);
|
||
} else {
|
||
//打开
|
||
redSound = true;
|
||
SpUtil.setRedSound(1);
|
||
bean.setSelect(true);
|
||
}
|
||
itemAdapter.notifyItemChanged(itemPos);
|
||
} else if (bean.getType() == QXRoomSettingTypeRoomBusinessTime) {//营业时间
|
||
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
|
||
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
|
||
// 处理选择的时间范围
|
||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
|
||
// 获取开始时间的Calendar实例
|
||
Calendar startCalendar = Calendar.getInstance();
|
||
startCalendar.setTime(startDate);
|
||
// 将秒设置为00
|
||
startCalendar.set(Calendar.SECOND, 0);
|
||
|
||
// 获取结束时间的Calendar实例
|
||
Calendar endCalendar = Calendar.getInstance();
|
||
endCalendar.setTime(endDate);
|
||
// 将秒设置为59
|
||
endCalendar.set(Calendar.SECOND, 0);
|
||
|
||
// 格式化时间
|
||
String startTime = sdf.format(startCalendar.getTime());
|
||
String endTime = sdf.format(endCalendar.getTime());
|
||
|
||
Log.d("SelectedTime", "开始时间:" + startTime);
|
||
Log.d("SelectedTime", "结束时间:" + endTime);
|
||
roomInfoResp.getRoom_info().setStart_time(startTime);
|
||
roomInfoResp.getRoom_info().setEnd_time(endTime);
|
||
MvpPre.setRoomBusinessTime(roomId, startTime, endTime);
|
||
|
||
// MvpPre.getCharmList(roomId, stime, etime, currentPage + "", type);
|
||
});
|
||
dialog.setShowDate(false);
|
||
dialog.setShowTime(true);
|
||
dialog.setShowSeconds(false);
|
||
dialog.setTvEndTime(roomInfoResp.getRoom_info().getEnd_time());
|
||
dialog.setTvStartTime(roomInfoResp.getRoom_info().getStart_time());
|
||
dialog.show(getChildFragmentManager(), "DoubleTimePicker");
|
||
} else if (bean.getType() == QXRoomSettingTypeRoomBusinessLegend) {
|
||
new BoxMainDialog2((RoomActivity) getSelfActivity()).show(getChildFragmentManager(), "炼仙传说");
|
||
}
|
||
|
||
}
|
||
});
|
||
|
||
MvpPre.blindBoxStatus();
|
||
|
||
}
|
||
|
||
// TODO: 2025/8/29 房间切换提示框
|
||
private void queren(String type) {
|
||
// 创建并显示确认对话框
|
||
new ConfirmDialog(getActivity(),
|
||
"提示",
|
||
"即将修改房间类型为" +
|
||
(type.equals("1") ? "交友" :
|
||
(type.equals("2") ? "拍卖" :
|
||
(type.equals("3") ? "男神" :
|
||
(type.equals("4") ? "女神" :
|
||
(type.equals("7") ? "互娱" :
|
||
(type.equals("9") ? "点唱" :
|
||
(type.equals("-1") ? "练歌房" :
|
||
(type.equals("10") ? "签约房" :
|
||
(type.equals("11") ? "酒吧房" : "")
|
||
)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
),
|
||
"确认",
|
||
"取消",
|
||
v -> {
|
||
if (type.equals("-1")) {
|
||
MvpPre.agreeSong(roomId, "1");
|
||
} else
|
||
// 点击“确认”按钮时执行删除操作
|
||
MvpPre.changeRoomType(roomId, type);
|
||
|
||
},
|
||
v -> {
|
||
// 点击“取消”按钮时什么都不做
|
||
}, false, 0).show();
|
||
}
|
||
|
||
private void upAdapter() {
|
||
adapter.notifyDataSetChanged();
|
||
}
|
||
|
||
private boolean isItemVisible(RoomSettingBean bean) {
|
||
int type = bean.getType();
|
||
int roleLevel = bean.getRead(); // 角色等级
|
||
boolean onMic = false; // 是否是特定房间
|
||
|
||
if ((roomInfoResp.getRoom_info().getType_id().equals("1") || roomInfoResp.getRoom_info().getType_id().equals("3")
|
||
|| roomInfoResp.getRoom_info().getType_id().equals("4") || roomInfoResp.getRoom_info().getType_id().equals("9")) && roomInfoResp.getRoom_info().getLabel_id().equals("2")) {
|
||
onMic = true;
|
||
}
|
||
// 2025年9月22日14:18:50,因为声网sdk不对,和点唱有关系的所有,需要关闭
|
||
// 房主显示全部
|
||
if (roleLevel == 1) {
|
||
if (onMic) {
|
||
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomMyDress) {
|
||
return false;
|
||
}
|
||
} else {
|
||
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomMyDress) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
} else if (roleLevel == 2 || roleLevel == 3) { // type == RoomSettingBean.QXRoomSettingTypeRoomTypeBoy || type == RoomSettingBean.QXRoomSettingTypeRoomTypeGirl || 2025年9月19日11:21:04,将男神女神合并成互娱,最总是新添加一个标签
|
||
if (type == RoomSettingBean.QXRoomSettingTypeRoomTypeSing || type == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy || type == RoomSettingBean.QXRoomSettingTypeRoomSetting ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy || type == RoomSettingBean.QXRoomSettingTypeRoomMyDress ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG || type == RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM || type == QXRoomSettingTypeRoomBusinessTime ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomClearMessage || type == QXRoomSettingTypeRoomOrderMic || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomBgImage || type == -1) {
|
||
|
||
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomMyDress || type == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
|
||
return false;
|
||
}
|
||
|
||
|
||
// if (onMic) {
|
||
// if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
// || type == RoomSettingBean.QXRoomSettingTypeRoomMyDress /*|| type == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG*/) {
|
||
// return false;
|
||
// }
|
||
// } else {
|
||
// if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
// || type == RoomSettingBean.QXRoomSettingTypeRoomMyDress /*|| type == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG*/) {
|
||
// return false;
|
||
// }
|
||
// }
|
||
return true;
|
||
}
|
||
if (type >= RoomSettingBean.QXRoomSettingTypeRoomLeave &&
|
||
type <= RoomSettingBean.QXRoomSettingTypeRoomReport || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed || type == RoomSettingBean.QXRoomSettingTypeRoomTheCityYears ||
|
||
type == QXRoomSettingTypeRoomTimeSpace || type == QXRoomSettingTypeRoomTimeRedSound || type == QXRoomSettingTypeRoomBusinessLegend) {
|
||
return true;
|
||
} else {
|
||
|
||
if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomMyDress) {
|
||
return false;
|
||
}
|
||
|
||
// if (type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy
|
||
// || type == RoomSettingBean.QXRoomSettingTypeRoomMyDress /*|| type == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG*/) {
|
||
// return false;
|
||
// }
|
||
}
|
||
return false;
|
||
} else { // 普通用户只显示更多操作中的特定条目
|
||
return type == RoomSettingBean.QXRoomSettingTypeRoomLeave ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomShare ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomCloseEffects ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomReport ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed ||
|
||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen
|
||
|| type == RoomSettingBean.QXRoomSettingTypeRoomTheCityYears || type == QXRoomSettingTypeRoomTimeSpace || type == QXRoomSettingTypeRoomTimeRedSound || type == QXRoomSettingTypeRoomBusinessLegend;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
@Override
|
||
protected void initView() {
|
||
mBinding.cl.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
PublishCommentDialogFragment.show(roomId, getChildFragmentManager());
|
||
}
|
||
});
|
||
}
|
||
|
||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||
public void onRoomSettingEvent(RoomSettingEvent event) {
|
||
if (event.getType() == 1014) {
|
||
for (int i = 0; i < dataList.size(); i++) {
|
||
RoomSettingBean bean = (RoomSettingBean) adapter.getItem(i);
|
||
if (bean.getType() == QXRoomSettingTypeRoomOrderMic) {
|
||
if (event.getRoom_up_pit_type() == 2) {
|
||
bean.setStatus(true);
|
||
adapter.notifyItemChanged(i);
|
||
} else {
|
||
bean.setStatus(false);
|
||
adapter.notifyItemChanged(i);
|
||
}
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
@Override
|
||
protected int getLayoutId() {
|
||
return R.layout.dialog_room_setting_fragment;
|
||
}
|
||
|
||
@Override
|
||
public void changeRoomSuccess(String s, int position, RoomSettingBean bean) {
|
||
if (bean.isSelect()) {
|
||
bean.setSelect(false);
|
||
adapter.notifyItemChanged(position);
|
||
} else {
|
||
bean.setSelect(true);
|
||
adapter.notifyItemChanged(position);
|
||
}
|
||
// if (bean.getName().contains("排麦")) {
|
||
// bean.setName("自由模式");
|
||
// bean.setSelect(false);
|
||
// adapter.notifyItemChanged(position);
|
||
// } else {
|
||
// bean.setName("排麦模式");
|
||
// bean.setSelect(true);
|
||
// adapter.notifyItemChanged(position);
|
||
// }
|
||
}
|
||
|
||
@Override
|
||
public void changeRoomType(String s) {
|
||
ToastUtils.show(s);
|
||
dismiss();
|
||
}
|
||
|
||
@Override
|
||
public void agreeSong(String s) {
|
||
ToastUtils.show(s);
|
||
dismiss();
|
||
}
|
||
|
||
@Override
|
||
public void blindBoxStatus(List<BlindBoxStatus> blindBoxStatus) {
|
||
if (blindBoxStatus != null && !blindBoxStatus.isEmpty()) {
|
||
RoomSettingBean moreParent = new RoomSettingBean("活动", null, null, null, -1, read, isSelected, true, false);
|
||
List<RoomSettingBean> moreChildren = new ArrayList<>();
|
||
for (int i = 0; i < blindBoxStatus.size(); i++) {
|
||
int giftBagId = blindBoxStatus.get(i).getGift_bag_id();
|
||
int status = blindBoxStatus.get(i).getStatus();
|
||
if (giftBagId == 11) {
|
||
if (status == 1) {
|
||
moreChildren.add(new RoomSettingBean("岁月之城", "the_city_years", null, null, RoomSettingBean.QXRoomSettingTypeRoomTheCityYears, read, isSelected, true, false));
|
||
}
|
||
} else if (giftBagId == 12) {
|
||
if (status == 1) {
|
||
moreChildren.add(new RoomSettingBean("时空之巅", "time_space", null, null, QXRoomSettingTypeRoomTimeSpace, read, isSelected, true, false));
|
||
}
|
||
}else if (giftBagId == 60) {
|
||
if (status == 1) {
|
||
moreChildren.add(new RoomSettingBean("炼仙传说", "legend", null, null, QXRoomSettingTypeRoomBusinessLegend, read, isSelected, true, redSound));
|
||
}
|
||
}
|
||
// else {
|
||
// if (status == 1) {
|
||
// moreChildren.add(new RoomSettingBean("炼仙传说", "legend", null, null, QXRoomSettingTypeRoomBusinessLegend, read, isSelected, true, redSound));
|
||
// }
|
||
// }
|
||
}
|
||
moreParent.setChildren(moreChildren);
|
||
filteredList.add(moreParent);
|
||
}
|
||
adapter.notifyDataSetChanged();
|
||
}
|
||
|
||
@Override
|
||
public void setRoomBusinessTime() {
|
||
if (ActivityUtils.getTopActivity() instanceof RoomActivity) {
|
||
((RoomActivity) ActivityUtils.getTopActivity()).setRoomTime(roomInfoResp);
|
||
}
|
||
}
|
||
}
|