2025-10-28 16:56:13 +08:00
|
|
|
package com.xscm.modulemain.adapter;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
import android.view.View;
|
|
|
|
|
|
2025-12-22 18:40:57 +08:00
|
|
|
import androidx.annotation.NonNull;
|
2025-12-22 09:02:22 +08:00
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
|
|
2025-10-20 10:16:44 +08:00
|
|
|
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
2025-12-22 09:02:22 +08:00
|
|
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
2025-10-20 10:16:44 +08:00
|
|
|
import com.chad.library.adapter.base.BaseViewHolder;
|
2025-10-28 16:56:13 +08:00
|
|
|
import com.xscm.modulemain.R;
|
2025-10-20 10:16:44 +08:00
|
|
|
import com.xscm.moduleutil.bean.room.RoomSettingBean;
|
|
|
|
|
|
2025-12-22 18:40:57 +08:00
|
|
|
import java.util.HashMap;
|
2025-10-20 10:16:44 +08:00
|
|
|
import java.util.List;
|
2025-12-22 18:40:57 +08:00
|
|
|
import java.util.Map;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
public class RoomSettingAdapter extends BaseQuickAdapter<RoomSettingBean, BaseViewHolder> {
|
|
|
|
|
|
2025-12-22 18:40:57 +08:00
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
private OnItemClickListener mListener;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
2025-12-22 18:40:57 +08:00
|
|
|
private int itemPos = 0;
|
|
|
|
|
|
|
|
|
|
public void setItemPos(int itemPos) {
|
|
|
|
|
this.itemPos = itemPos;
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
public interface OnItemClickListener {
|
2025-12-22 18:40:57 +08:00
|
|
|
void onItemClick(RoomSettingBean item,int position,int itemPos,HorizontalListAdapter horizontalListAdapter);
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
public void setOnItemClickListener(OnItemClickListener listener) {
|
|
|
|
|
mListener = listener;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public RoomSettingAdapter() {
|
|
|
|
|
super(R.layout.item_title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// public RoomSettingAdapter(List<RoomSettingBean> data) {
|
|
|
|
|
// super(data);
|
|
|
|
|
// addItemType(RoomSettingBean.ITEM_TYPE_DEFAULT, R.layout.item_title);
|
|
|
|
|
// addItemType(RoomSettingBean.ITEM_TYPE_WITH_ICON, R.layout.item_setting);
|
|
|
|
|
// }
|
|
|
|
|
|
2025-12-22 18:40:57 +08:00
|
|
|
|
2025-10-20 10:16:44 +08:00
|
|
|
@Override
|
|
|
|
|
protected void convert(BaseViewHolder holder, RoomSettingBean item) {
|
|
|
|
|
|
2025-12-22 09:02:22 +08:00
|
|
|
|
|
|
|
|
if (item.isStatus() && item.getChildren()!=null && !item.getChildren().isEmpty()) {
|
|
|
|
|
holder.setVisible(R.id.tv_title, item.isStatus());
|
2025-10-20 10:16:44 +08:00
|
|
|
holder.setText(R.id.tv_title, item.getName());
|
2025-12-22 09:02:22 +08:00
|
|
|
RecyclerView rvContent = holder.getView(R.id.rv_content);
|
|
|
|
|
rvContent.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
|
|
|
|
HorizontalListAdapter adapter = new HorizontalListAdapter(item.getChildren());
|
|
|
|
|
rvContent.setAdapter(adapter);
|
|
|
|
|
adapter.setOnItemClickListener(new HorizontalListAdapter.OnItemClickListener() {
|
|
|
|
|
@Override
|
2025-12-22 18:40:57 +08:00
|
|
|
public void onItemClick(int itemPos, RoomSettingBean item,HorizontalListAdapter itemAdapter) {
|
2025-12-22 09:02:22 +08:00
|
|
|
if (mListener != null)
|
2025-12-22 18:40:57 +08:00
|
|
|
mListener.onItemClick(item, holder.getAdapterPosition(),itemPos,itemAdapter);
|
2025-12-22 09:02:22 +08:00
|
|
|
}
|
|
|
|
|
});
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
2025-12-22 09:02:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (item.getItemType() == RoomSettingBean.ITEM_TYPE_DEFAULT) {
|
|
|
|
|
// holder.setVisible(R.id.tv_title, true);
|
|
|
|
|
// holder.setText(R.id.tv_title, item.getName());
|
|
|
|
|
// } else {
|
|
|
|
|
// holder.setText(R.id.tv_name, getName(item.getType(), item.isSelect(), item.getName()));
|
|
|
|
|
// holder.setImageResource(R.id.iv_icon, getIconResId(item.getType(), item.isSelect()));
|
|
|
|
|
// }
|
2025-10-20 10:16:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String getName(int type, boolean isSelected, String name) {
|
|
|
|
|
boolean b = isSelected;
|
|
|
|
|
switch (type) {
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomOrderMic:
|
|
|
|
|
return b ? "排麦模式" : "自由模式";
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
|
|
|
|
|
return b ? "关闭特效" : "开启特效";
|
2025-10-24 17:52:11 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
|
|
|
|
|
return b ? "关闭飘屏" : "开启飘屏";
|
2025-10-20 10:16:44 +08:00
|
|
|
default:
|
|
|
|
|
return name;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 根据 type 获取对应的图标资源 ID
|
|
|
|
|
private int getIconResId(int type, boolean isSelected) {
|
|
|
|
|
boolean b = isSelected;
|
|
|
|
|
switch (type) {
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeSing:
|
2025-12-15 19:35:25 +08:00
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_jiaoy;
|
2025-10-20 10:16:44 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeAuction:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_auction;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeBoy:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_boy;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeGirl:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_girl;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy:
|
2025-12-15 19:35:25 +08:00
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_sing;
|
2025-10-24 17:52:11 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.huyu;
|
2025-11-05 11:08:00 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeLianG:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.icon_liang;
|
2025-12-22 09:02:22 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT:
|
2025-11-26 15:52:46 +08:00
|
|
|
return com.xscm.moduleutil.R.mipmap.icon_sign_contract;
|
2025-10-20 10:16:44 +08:00
|
|
|
// 常用工具
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomSubsidy:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_subsidy;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomCompere:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_compere;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomClearMessage:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_clear_message;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomOrderMic:
|
|
|
|
|
return b ? com.xscm.moduleutil.R.mipmap.ic_order_mic : com.xscm.moduleutil.R.mipmap.ic_order_mic_selected;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomBgMusic:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_bg_music;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomBgImage:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_bg_image;
|
|
|
|
|
// 更多操作
|
2025-10-24 17:52:11 +08:00
|
|
|
// case RoomSettingBean.QXRoomSettingTypeRoomLeave:
|
|
|
|
|
// return com.xscm.moduleutil.R.mipmap.ic_leave;
|
2025-10-20 10:16:44 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomShare:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_share;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomMyDress:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.tiaoyint;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomSetting:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_room_setting;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomWelcome:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_welcome;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
|
|
|
|
|
return b ? com.xscm.moduleutil.R.mipmap.ic_close_effects : com.xscm.moduleutil.R.mipmap.ic_open_effects;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomReport:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.ic_report;
|
2025-10-24 17:52:11 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
|
|
|
|
|
return b ? com.xscm.moduleutil.R.mipmap.ic_close_floating_screen : com.xscm.moduleutil.R.mipmap.ic_open_floating_screen;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomFloatingRed:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.red_tx;
|
2025-12-22 09:02:22 +08:00
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTheCityYears:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.the_city_years;
|
|
|
|
|
case RoomSettingBean.QXRoomSettingTypeRoomTimeSpace:
|
|
|
|
|
return com.xscm.moduleutil.R.mipmap.time_space;
|
2025-10-20 10:16:44 +08:00
|
|
|
default:
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|