修改名称。
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.AlbumBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.widget.img.FullScreenUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumPhotoAdapter extends BaseMultiItemQuickAdapter<AlbumBean.ImageList, BaseViewHolder> {
|
||||
private boolean isControlVisible = false;
|
||||
private List<Integer> selectedPositions = new ArrayList<>(); // 保存选中的 position
|
||||
|
||||
// private SparseBooleanArray selectedPositions = new SparseBooleanArray();
|
||||
public AlbumPhotoAdapter(List<AlbumBean.ImageList> data) {
|
||||
super(data);
|
||||
addItemType(1, R.layout.item_group);
|
||||
addItemType(2, R.layout.item_photo);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void showControl() {
|
||||
isControlVisible = true;
|
||||
notifyDataSetChanged(); // 刷新列表以更新 UI
|
||||
}
|
||||
|
||||
public void hideControl() {
|
||||
isControlVisible = false;
|
||||
notifyDataSetChanged(); // 刷新列表以更新 UI
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, AlbumBean.ImageList item) {
|
||||
|
||||
if (item.getItemType() == 1) {
|
||||
helper.setText(R.id.tv_date, item.getCreatetime());
|
||||
} else {
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo));
|
||||
helper.setVisible(R.id.tb_photo, isControlVisible);
|
||||
helper.setVisible(R.id.v_checkbox, isControlVisible);
|
||||
|
||||
View vCheckbox = helper.getView(R.id.v_checkbox);
|
||||
|
||||
vCheckbox.setSelected(item.isSelected());
|
||||
|
||||
vCheckbox.setOnClickListener(v -> {
|
||||
boolean isSelected = !item.isSelected(); // 切换当前状态
|
||||
item.setSelected(isSelected);
|
||||
vCheckbox.setSelected(isSelected);
|
||||
// notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
|
||||
});
|
||||
helper.getView(R.id.tb_photo).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
boolean isSelected = !item.isSelected();
|
||||
item.setSelected(isSelected);
|
||||
vCheckbox.setSelected(isSelected);
|
||||
// notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
|
||||
}
|
||||
});
|
||||
|
||||
helper.getView(R.id.iv_photo).setOnClickListener(v -> {
|
||||
FullScreenUtil.showFullScreenDialog(mContext,helper.getPosition(),getImageList() );
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<String> getImageList(){
|
||||
List<String> stringList=new ArrayList<>();
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
if (item.getItemType() == 2) {
|
||||
stringList.add(item.getImage());
|
||||
}
|
||||
}
|
||||
return stringList;
|
||||
}
|
||||
|
||||
public List<AlbumBean.ImageList> getSelectedItems() {
|
||||
List<AlbumBean.ImageList> selectedItems = new ArrayList<>();
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
if (item.isSelected()) {
|
||||
selectedItems.add(item);
|
||||
}
|
||||
}
|
||||
return selectedItems;
|
||||
}
|
||||
|
||||
public String getSelectedPhotoIdsAsString() {
|
||||
List<AlbumBean.ImageList> selectedPhotos = getSelectedItems();
|
||||
List<String> idList = new ArrayList<>();
|
||||
|
||||
for (AlbumBean.ImageList photo : selectedPhotos) {
|
||||
idList.add(photo.getId()); // 将每个 id 添加进 list
|
||||
}
|
||||
|
||||
return TextUtils.join(",", idList); // 使用逗号拼接
|
||||
}
|
||||
|
||||
|
||||
public void clearSelections() {
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
item.setSelected(false);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
super.onViewRecycled(holder);
|
||||
View vCheckbox = holder.getView(R.id.v_checkbox);
|
||||
if (vCheckbox instanceof CheckBox) {
|
||||
((CheckBox) vCheckbox).setChecked(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.BindType;
|
||||
|
||||
public class BindCardAdapter extends BaseQuickAdapter<BindType.AllData, BaseViewHolder> {
|
||||
|
||||
private int selectedPosition = -1; // -1 表示未选中
|
||||
|
||||
public BindCardAdapter(int layoutResId) {
|
||||
super(layoutResId);
|
||||
}
|
||||
|
||||
public void setSelectedPosition(int position) {
|
||||
selectedPosition = position;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getSelectedPosition() {
|
||||
return selectedPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, BindType.AllData item) {
|
||||
helper.setText(R.id.tv_name, item.getName());
|
||||
if (item.getIs_bind().equals("1")){
|
||||
helper.setText(R.id.tv_status, "已绑定").setTextColor(R.id.tv_status, getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_e2e2e2));
|
||||
}else {
|
||||
helper.setText(R.id.tv_status, "未绑定").setTextColor(R.id.tv_status, getContext().getResources().getColor(com.xscm.moduleutil.R.color.colorPrimary));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.BlackUserBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.MeHeadView;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/5/19
|
||||
*@description: 黑名单、关注、粉丝列表适配器
|
||||
*/
|
||||
public class BlackAdapter extends BaseQuickAdapter<BlackUserBean, BaseViewHolder> {
|
||||
|
||||
// 定义接口用于回调点击事件
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(BlackUserBean item);
|
||||
}
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
|
||||
public BlackAdapter() {
|
||||
super(R.layout.item_black);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, BlackUserBean item) {
|
||||
MeHeadView headView = helper.getView(R.id.im_user);
|
||||
headView.setData(item.getAvatar(), "", item.getSex() + "");
|
||||
helper.setText(R.id.tv_nick_name, item.getNickname());
|
||||
TextView imageView= helper.getView(R.id.im_g);
|
||||
helper.setText(R.id.tv_oline, item.getIs_online() == 1 ? "[在线]" : "[离线]");
|
||||
// 根据 type 设置图片资源
|
||||
// 根据 type 和 status 设置图片资源
|
||||
imageView.setVisibility(View.VISIBLE);
|
||||
if (item.getType() == 0) { // 关注
|
||||
if (item.getIs_follow() == 0) {
|
||||
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.gz);
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, ColorManager.getInstance().getPrimaryColorInt(), 34);
|
||||
imageView.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
imageView.setText("关注");
|
||||
} else {
|
||||
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yigz);
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#EFF2F8"), 34);
|
||||
imageView.setTextColor(Color.BLACK);
|
||||
imageView.setText("已关注");
|
||||
}
|
||||
} else if (item.getType() == 1) { // 黑名单
|
||||
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yic);
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#333333"), 34);
|
||||
imageView.setTextColor(Color.WHITE);
|
||||
imageView.setText("移除");
|
||||
} else if (item.getType() == 2) { // 粉丝
|
||||
if (item.getIs_follow() == 0) {
|
||||
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.hg);
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, ColorManager.getInstance().getPrimaryColorInt(), 34);
|
||||
imageView.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
imageView.setText("回关");
|
||||
} else {
|
||||
// imageView.setImageResource(com.xscm.moduleutil.R.mipmap.yigz);
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground( imageView, Color.parseColor("#EFF2F8"), 34);
|
||||
imageView.setTextColor(Color.BLACK);
|
||||
imageView.setText("已关注");
|
||||
}
|
||||
}else if (item.getType() == 3){
|
||||
imageView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 设置点击事件
|
||||
imageView.setOnClickListener(v -> {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener.onItemClick(item);
|
||||
}
|
||||
});
|
||||
LinearLayout llContainer =helper.getView(R.id.ll_in);
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView1 = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1);
|
||||
|
||||
llContainer.addView(imageView1);
|
||||
}
|
||||
}
|
||||
|
||||
headView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (item.getType() !=1){
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()+"").navigation();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.RoomAutionTimeBean;
|
||||
import com.xscm.moduleutil.bean.RoomRelationBean;
|
||||
import com.xscm.moduleutil.bean.RoonGiftModel;
|
||||
import com.xscm.moduleutil.bean.ViewItem;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CardRelationAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private List<ViewItem> viewItems = new ArrayList<>();
|
||||
private int selectedRelationPosition = -1;
|
||||
private int selectedTimePosition = -1;
|
||||
private int selectedGiftPosition = -1;
|
||||
|
||||
public void submitList(List<ViewItem> items) {
|
||||
viewItems.clear();
|
||||
viewItems.addAll(items);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return viewItems.get(position).getType();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
|
||||
|
||||
switch (viewType) {
|
||||
case ViewItem.TYPE_TEXT:
|
||||
return new TextViewHolder(inflater.inflate(R.layout.item_text_view, parent, false));
|
||||
case ViewItem.TYPE_RELATION:
|
||||
return new RelationViewHolder(inflater.inflate(R.layout.item_relation, parent, false));
|
||||
case ViewItem.TYPE_IMAGE_SELECTION:
|
||||
return new RelationViewTimHolder(inflater.inflate(R.layout.item_relation, parent, false));
|
||||
case ViewItem.TYPE_GIFT:
|
||||
return new GiftViewHolder(inflater.inflate(R.layout.item_gift_card, parent, false));
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown view type");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
|
||||
ViewItem item = viewItems.get(position);
|
||||
|
||||
switch (item.getType()) {
|
||||
case ViewItem.TYPE_TEXT:
|
||||
((TextViewHolder) holder).bind((String) item.getData());
|
||||
break;
|
||||
case ViewItem.TYPE_RELATION:
|
||||
RoomRelationBean relationBean = (RoomRelationBean) item.getData();
|
||||
((RelationViewHolder) holder).bind(relationBean);
|
||||
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
// 取消之前选中的 item
|
||||
if (selectedRelationPosition != -1) {
|
||||
ViewItem oldItem = viewItems.get(selectedRelationPosition);
|
||||
if (oldItem.getData() instanceof RoomRelationBean) {
|
||||
((RoomRelationBean) oldItem.getData()).setSelected(false);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置当前 item 为选中
|
||||
relationBean.setSelected(true);
|
||||
selectedRelationPosition = position;
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
break;
|
||||
case ViewItem.TYPE_GIFT:
|
||||
RoonGiftModel giftModel = (RoonGiftModel) item.getData();
|
||||
((GiftViewHolder)holder).bind(giftModel);
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
|
||||
// 取消之前选中的 item
|
||||
if (selectedGiftPosition != -1) {
|
||||
ViewItem oldItem = viewItems.get(selectedGiftPosition);
|
||||
if (oldItem.getData() instanceof RoonGiftModel) {
|
||||
((RoonGiftModel) oldItem.getData()).setSelected(false);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置当前 item 为选中
|
||||
giftModel.setSelected(true);
|
||||
selectedGiftPosition = position;
|
||||
notifyDataSetChanged();
|
||||
|
||||
});
|
||||
break;
|
||||
case ViewItem.TYPE_IMAGE_SELECTION:
|
||||
|
||||
RoomAutionTimeBean roomAutionTimeBean = (RoomAutionTimeBean) item.getData();
|
||||
((RelationViewTimHolder)holder).bind(roomAutionTimeBean);
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
// 取消之前选中的 item
|
||||
if (selectedTimePosition != -1) {
|
||||
ViewItem oldItem = viewItems.get(selectedTimePosition);
|
||||
if (oldItem.getData() instanceof RoomAutionTimeBean) {
|
||||
((RoomAutionTimeBean) oldItem.getData()).setSelected(false);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置当前 item 为选中
|
||||
roomAutionTimeBean.setSelected(true);
|
||||
selectedTimePosition = position;
|
||||
notifyDataSetChanged();
|
||||
|
||||
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public interface OnItemSelectedListener {
|
||||
void onItemSelected(int viewType, int position);
|
||||
}
|
||||
|
||||
private OnItemSelectedListener listener;
|
||||
|
||||
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public RoomRelationBean getSelectedRelation() {
|
||||
if (selectedRelationPosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedRelationPosition);
|
||||
if (item.getData() instanceof RoomRelationBean) {
|
||||
return (RoomRelationBean) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RoomAutionTimeBean getSelectedTime() {
|
||||
if (selectedTimePosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedTimePosition);
|
||||
if (item.getData() instanceof RoomAutionTimeBean) {
|
||||
return (RoomAutionTimeBean) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RoonGiftModel getSelectedGift() {
|
||||
if (selectedGiftPosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedGiftPosition);
|
||||
if (item.getData() instanceof RoonGiftModel) {
|
||||
return (RoonGiftModel) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return viewItems.size();
|
||||
}
|
||||
|
||||
static class TextViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textView;
|
||||
|
||||
TextViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
textView = itemView.findViewById(R.id.tv_name);
|
||||
}
|
||||
|
||||
void bind(String text) {
|
||||
textView.setText(text);
|
||||
}
|
||||
}
|
||||
|
||||
static class RelationViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView relationName;
|
||||
|
||||
RelationViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
relationName = itemView.findViewById(R.id.tv_name);
|
||||
}
|
||||
|
||||
void bind(RoomRelationBean bean) {
|
||||
relationName.setText(bean.getName());
|
||||
|
||||
if (bean.isSelected()) {
|
||||
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gx_xz_bj));
|
||||
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
|
||||
} else {
|
||||
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gux_bj));
|
||||
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.white));
|
||||
}
|
||||
}
|
||||
}
|
||||
static class RelationViewTimHolder extends RecyclerView.ViewHolder {
|
||||
TextView relationName;
|
||||
|
||||
RelationViewTimHolder(View itemView) {
|
||||
super(itemView);
|
||||
relationName = itemView.findViewById(R.id.tv_name);
|
||||
|
||||
}
|
||||
|
||||
void bind(RoomAutionTimeBean bean) {
|
||||
relationName.setText(bean.getDays()+"天");
|
||||
|
||||
if (bean.isSelected()) {
|
||||
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gx_xz_bj));
|
||||
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
|
||||
} else {
|
||||
relationName.setBackground(itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gux_bj));
|
||||
relationName.setTextColor(itemView.getResources().getColor(com.xscm.moduleutil.R.color.white));
|
||||
}
|
||||
}
|
||||
}
|
||||
static class GiftViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView tv_gift_name;
|
||||
TextView tv_gift_price;
|
||||
ImageView iv_gift_pic;
|
||||
ConstraintLayout item_layout;
|
||||
ImageView ivDownOn;
|
||||
ConstraintLayout cl_iv_down_on;
|
||||
|
||||
|
||||
GiftViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
tv_gift_name = itemView.findViewById(R.id.tv_gift_name);
|
||||
tv_gift_price = itemView.findViewById(R.id.tv_gift_price);
|
||||
iv_gift_pic = itemView.findViewById(R.id.iv_gift_pic);
|
||||
item_layout = itemView.findViewById(R.id.cl_gift);
|
||||
ivDownOn = itemView.findViewById(R.id.iv_down_on);
|
||||
cl_iv_down_on = itemView.findViewById(R.id.cl_iv_down_on);
|
||||
}
|
||||
|
||||
void bind(RoonGiftModel bean) {
|
||||
tv_gift_name.setText(bean.getGift_name());
|
||||
//设置礼物价格
|
||||
String surplusTxt = bean.getGift_price();
|
||||
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(surplusTxt);
|
||||
//ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色
|
||||
tv_gift_price.setText(stringBuilder);
|
||||
// viewHolder.item_layout.setTag(R.id.id_gift_tag, giftModel);
|
||||
|
||||
//加载礼物图片
|
||||
ImageUtils.loadImageView(bean.getBase_image(), iv_gift_pic);
|
||||
//设置选中后的样式
|
||||
|
||||
if (bean.isSelected()) {//被选中
|
||||
cl_iv_down_on.setBackgroundResource(com.xscm.moduleutil.R.mipmap.room_gift_bjx);
|
||||
ivDownOn.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivDownOn.setVisibility(View.GONE);
|
||||
cl_iv_down_on.setBackgroundResource(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.zhpan.bannerview.BaseBannerAdapter;
|
||||
import com.zhpan.bannerview.BaseViewHolder;
|
||||
|
||||
public class CarouselBannerAdapter extends BaseBannerAdapter<TopRoom> {
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
protected void bindData(BaseViewHolder<TopRoom> holder, TopRoom data, int position, int pageSize) {
|
||||
ImageUtils.loadHeadCC(data.getRoom_cover(), holder.itemView.findViewById(R.id.iv_follow_bg));
|
||||
TextView textView= holder.itemView.findViewById(R.id.tv_num);
|
||||
TextView textView2= holder.itemView.findViewById(R.id.tv_room_name);
|
||||
|
||||
textView.setText(data.getUser_list().size()+"人");
|
||||
textView2.setText(data.getRoom_name());
|
||||
ImageView iv = holder.itemView.findViewById(R.id.iv_play);
|
||||
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv);
|
||||
// List<TopRoom.UserList> user_list = data.getUser_list();
|
||||
// if (user_list!= null && user_list.size() > 0) {
|
||||
// RecyclerView recyclerView = holder.itemView.findViewById(R.id.rv_tags);
|
||||
// recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext(), LinearLayoutManager.HORIZONTAL, false));
|
||||
//
|
||||
// // 设置item之间的间隔为负值,实现重叠效果
|
||||
// if (recyclerView.getItemDecorationCount() == 0) {
|
||||
// recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
|
||||
// @Override
|
||||
// public void getItemOffsets(@NonNull Rect outRect, @NonNull View view,
|
||||
// @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
|
||||
// super.getItemOffsets(outRect, view, parent, state);
|
||||
// // 设置负间距实现重叠效果,根据需要调整数值
|
||||
// outRect.left = -dpToPx(holder.itemView.getContext(), 8); // 重叠8dp
|
||||
// }
|
||||
//
|
||||
// private int dpToPx(Context context, int dp) {
|
||||
// return (int) TypedValue.applyDimension(
|
||||
// TypedValue.COMPLEX_UNIT_DIP, dp,
|
||||
// context.getResources().getDisplayMetrics());
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// CarouselImgAdapter adapter = new CarouselImgAdapter();
|
||||
//
|
||||
// // 创建最多包含3个元素的子列表
|
||||
// int endIndex = Math.min(user_list.size(), 3);
|
||||
// adapter.setNewData(user_list.subList(0, endIndex));
|
||||
// recyclerView.setAdapter(adapter);
|
||||
// }
|
||||
|
||||
// 设置点击事件
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener.onItemClick(holder.itemView, data, position);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, TopRoom data, int position);
|
||||
}
|
||||
@Override
|
||||
public int getLayoutId(int viewType) {
|
||||
return R.layout.index_item_carousel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class CarouselImgAdapter extends BaseQuickAdapter<TopRoom.UserList, BaseViewHolder> {
|
||||
public CarouselImgAdapter() {
|
||||
super(R.layout.index_item_image);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, TopRoom.UserList item) {
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_user_head));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.MyRoomBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ChatRoomMyFollowAdapter extends BaseQuickAdapter<MyRoomBean, BaseViewHolder> {
|
||||
|
||||
private int index = -1;
|
||||
|
||||
public ChatRoomMyFollowAdapter() {
|
||||
super(R.layout.room_index_item_chatroom_my_foot);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MyRoomBean item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
|
||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
|
||||
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, helper.getView(R.id.iv_play));
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNewData(@Nullable List<MyRoomBean> data) {
|
||||
index = -1;
|
||||
super.setNewData(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.MyFootResp;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
/**
|
||||
* 历史记录
|
||||
*/
|
||||
public class ChatRoomMyFootAdapter extends BaseQuickAdapter<MyFootResp, BaseViewHolder> {
|
||||
|
||||
public ChatRoomMyFootAdapter() {
|
||||
super(R.layout.room_index_item_chatroom_my_foot);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MyFootResp item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
// if (TextUtils.isEmpty(item.getLabel_icon())) {
|
||||
// helper.setGone(R.id.iv_room_labe, false);
|
||||
// } else {
|
||||
// helper.setGone(R.id.iv_room_labe, true);
|
||||
// ImageUtils.loadImageView(item.getLabel_icon(), helper.getView(R.id.iv_room_labe));
|
||||
// }
|
||||
if (item.getLabel_id().equals("23")){
|
||||
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.diang_c);
|
||||
}else if (item.getLabel_id().equals("108")){
|
||||
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.youxi);
|
||||
}else if (item.getLabel_id().equals("101")){
|
||||
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.youxi);
|
||||
} else if (item.getLabel_id().equals("120")){//女神
|
||||
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.nvshen);
|
||||
}else if (item.getLabel_id().equals("121")){//男神
|
||||
helper.setImageResource(R.id.iv_type, com.xscm.moduleutil.R.mipmap.nans);
|
||||
}
|
||||
// ImageUtils.loadGift(helper.getView(R.id.iv_hot), ImageUtils.ANIM);
|
||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
// helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
|
||||
helper.setText(R.id.tv_num, item.getPopularity());
|
||||
ImageView iv = helper.getView(R.id.iv_play);
|
||||
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv);
|
||||
// helper.setVisible(R.id.rl_lock, item.getLocked() == 1);
|
||||
// helper.setGone(R.id.tv_clean, false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.MyRoomBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ChatRoomMyManageAdapter extends BaseQuickAdapter<MyRoomBean, BaseViewHolder> {
|
||||
|
||||
private int index = -1;
|
||||
|
||||
public ChatRoomMyManageAdapter() {
|
||||
super(R.layout.room_index_item_chatroom_my_foot);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MyRoomBean item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
|
||||
// ImageUtils.loadGift(helper.getView(R.id.iv_hot), ImageUtils.ANIM);
|
||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
helper.setText(R.id.tv_id, "ID: " + item.getRoom_id());
|
||||
// helper.setText(R.id.tv_num, item.get());
|
||||
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, helper.getView(R.id.iv_play));
|
||||
// }
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNewData(@Nullable List<MyRoomBean> data) {
|
||||
index = -1;
|
||||
super.setNewData(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.HeatedBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CircleCategoryAdapter extends RecyclerView.Adapter<CircleCategoryAdapter.ViewHolder> {
|
||||
private List<HeatedBean> dataList;
|
||||
private OnItemClickListener onItemClickListener;
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
public CircleCategoryAdapter(List<HeatedBean> dataList) {
|
||||
this.dataList = dataList;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_circle_category, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
HeatedBean model = dataList.get(position);
|
||||
holder.tvTitle.setText(model.getTitle());
|
||||
holder.tvTitleContent.setText(model.getCount()+"条动态");
|
||||
if (model.getPic()==null){
|
||||
holder.ivIcon.setImageResource(com.xscm.moduleutil.R.mipmap.default_avatar);
|
||||
}else {
|
||||
ImageUtils.loadHeadCC(model.getPic(), holder.ivIcon);
|
||||
// 加载图片等逻辑
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
if (onItemClickListener != null && model != null) {
|
||||
onItemClickListener.onItemClick(holder.itemView, model, position);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return dataList != null ? dataList.size() : 0;
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView tvTitle;
|
||||
ImageView ivIcon;
|
||||
TextView tvTitleContent;
|
||||
|
||||
|
||||
public ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
tvTitle = itemView.findViewById(R.id.tvTitle);
|
||||
ivIcon = itemView.findViewById(R.id.ivAvatar);
|
||||
tvTitleContent = itemView.findViewById(R.id.tvDescription);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, HeatedBean data, int position);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.BaseListData;
|
||||
import com.xscm.moduleutil.bean.HeatedBean;
|
||||
import com.zhpan.bannerview.BaseBannerAdapter;
|
||||
import com.zhpan.bannerview.BaseViewHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CirleCategoryBannerAdapter extends BaseBannerAdapter<BaseListData> {
|
||||
List<HeatedBean> list;
|
||||
private OnItemClickListener onItemClickListener;
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void bindData(BaseViewHolder<BaseListData> holder, BaseListData data, int position, int pageSize) {
|
||||
CircleCategoryAdapter adapter = new CircleCategoryAdapter(data.getData());
|
||||
RecyclerView recyclerView = holder.itemView.findViewById(R.id.recyclerView);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(holder.itemView.getContext(), 2));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
adapter.setOnItemClickListener(new CircleCategoryAdapter.OnItemClickListener() {
|
||||
|
||||
@Override
|
||||
public void onItemClick(View view, HeatedBean data, int position) {
|
||||
onItemClickListener.onItemClick(view, data, position);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLayoutId(int viewType) {
|
||||
return R.layout.item_cirle_category_grid;
|
||||
}
|
||||
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, HeatedBean data, int position);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,718 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.DataSource;
|
||||
import com.bumptech.glide.load.engine.GlideException;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.FakeNinePatchDrawable;
|
||||
import com.xscm.moduleutil.bean.GiftBean;
|
||||
import com.xscm.moduleutil.bean.RoomMessageEvent;
|
||||
import com.xscm.moduleutil.bean.UserInfo;
|
||||
import com.xscm.moduleutil.bean.room.EMMessageInfo;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
import com.xscm.moduleutil.widget.AdaptiveImageView;
|
||||
import com.xscm.moduleutil.widget.GifAvatarOvalView;
|
||||
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
/**
|
||||
* @author xf
|
||||
*/
|
||||
public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, BaseViewHolder> {
|
||||
|
||||
// private int[] a = {R.drawable.random0s, R.drawable.random1s, R.drawable.random2s, R.drawable.random3s, R.drawable.random4s, R.drawable.random5s, R.drawable.random6s, R.drawable.random7s, R.drawable.random8s, R.drawable.random9s};
|
||||
|
||||
private int listShowType = 1;
|
||||
public static int SHOW_TYPE_ALL = 1;
|
||||
public static int SHOW_TYPE_USER = 2;
|
||||
public static int SHOW_TYPE_SYSTEM = 3;
|
||||
|
||||
private List<EMMessageInfo> allMsgList;
|
||||
private List<EMMessageInfo> userMsgList;
|
||||
private List<EMMessageInfo> systemMsgList;
|
||||
private String messageNameColor = "#00C8FF";//名称的颜色
|
||||
private String messageGiftColor = "#FFE309";//礼物的颜色
|
||||
|
||||
public EaseChatAdapter() {
|
||||
super(null);
|
||||
addItemType(1, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//系统消息、官方公告
|
||||
addItemType(2, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//用户发送的消息
|
||||
addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08,让和聊天显示的是同一个额布局,后面需要修改
|
||||
// addItemType(3, com.qxcm.moduleutil.R.layout.ease_row_received_message_join_room);//加入房间 、赠送礼物、上下麦、禁言
|
||||
addItemType(4, com.xscm.moduleutil.R.layout.ease_row_received_message_new_user);//新用户注册
|
||||
addItemType(5, com.xscm.moduleutil.R.layout.ease_row_received_message_wagging);//摇签
|
||||
addItemType(6, com.xscm.moduleutil.R.layout.ease_row_received_message_expression);//表情
|
||||
// addItemType(8, com.qxcm.moduleutil.R.layout.ease_row_received_message_game);//球球大作战
|
||||
// addItemType(9, com.qxcm.moduleutil.R.layout.ease_row_received_message_demand);//派单需求
|
||||
// addItemType(10, com.qxcm.moduleutil.R.layout.ease_row_received_message_red_rain);//红包雨消息
|
||||
// addItemType(11, com.qxcm.moduleutil.R.layout.ease_row_received_message_red_rain);//红包雨消息结束
|
||||
|
||||
allMsgList = new ArrayList<>();
|
||||
userMsgList = new ArrayList<>();
|
||||
systemMsgList = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void setShowType(int type) {
|
||||
if (type == listShowType) {
|
||||
return;
|
||||
}
|
||||
listShowType = type;
|
||||
List currData = new ArrayList();
|
||||
if (type == SHOW_TYPE_ALL) {
|
||||
currData.addAll(allMsgList);
|
||||
}
|
||||
if (type == SHOW_TYPE_USER) {
|
||||
currData.addAll(userMsgList);
|
||||
}
|
||||
if (type == SHOW_TYPE_SYSTEM) {
|
||||
currData.addAll(systemMsgList);
|
||||
}
|
||||
setNewData(currData);
|
||||
//notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private SpannableStringBuilder getSpannable(RoomMessageEvent message) {
|
||||
|
||||
// 在 Android 中实现类似的富文本功能
|
||||
SpannableStringBuilder spannable = new SpannableStringBuilder(message.getText().getText() != null ? message.getText().getText() : "");
|
||||
|
||||
// 设置发送者昵称的颜色
|
||||
if (message.getText().getFromUserInfo() != null && !TextUtils.isEmpty(message.getText().getFromUserInfo().getNickname())) {
|
||||
String nickname = message.getText().getFromUserInfo().getNickname();
|
||||
int startIndex = message.getText().getText().indexOf(nickname);
|
||||
if (startIndex != -1) {
|
||||
int endIndex = startIndex + nickname.length();
|
||||
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置接收者昵称的颜色
|
||||
if (message.getText().getToUserInfo() != null && !TextUtils.isEmpty(message.getText().getToUserInfo().getNickname())) {
|
||||
String nickname = message.getText().getToUserInfo().getNickname();
|
||||
int startIndex = message.getText().getText().indexOf(nickname);
|
||||
if (startIndex != -1) {
|
||||
int endIndex = startIndex + nickname.length();
|
||||
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理礼物名称的颜色设置
|
||||
if (message.getText().getGiftInfo() != null && !TextUtils.isEmpty(message.getText().getGiftInfo().getGift_name())) {
|
||||
String[] giftNames = message.getText().getGiftInfo().getGift_name().split(",");
|
||||
for (String giftName : giftNames) {
|
||||
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), giftName);
|
||||
for (int[] range : occurrences) {
|
||||
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 处理多个礼物信息的颜色设置
|
||||
if (message.getText().getGiftInfos() != null && !message.getText().getGiftInfos().isEmpty()) {
|
||||
for (GiftBean gift : message.getText().getGiftInfos()) {
|
||||
if (!TextUtils.isEmpty(gift.getGift_name())) {
|
||||
int startIndex = message.getText().getText().indexOf(gift.getGift_name());
|
||||
if (startIndex != -1) {
|
||||
int endIndex = startIndex + gift.getGift_name().length();
|
||||
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageGiftColor)), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 处理多个接收者信息的颜色设置
|
||||
if (message.getText().getToUserInfos() != null && !message.getText().getToUserInfos().isEmpty()) {
|
||||
for (int i = 0; i < message.getText().getToUserInfos().size(); i++) {
|
||||
UserInfo userModel = message.getText().getToUserInfos().get(i);
|
||||
if (!TextUtils.isEmpty(userModel.getNickname())) {
|
||||
List<int[]> occurrences = findAllOccurrencesOfString(message.getText().getText(), userModel.getNickname());
|
||||
for (int[] range : occurrences) {
|
||||
spannable.setSpan(new ForegroundColorSpan(Color.parseColor(messageNameColor)), range[0], range[1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return spannable;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找字符串中所有子字符串出现的位置
|
||||
*
|
||||
* @param text 原始文本
|
||||
* @param searchString 要查找的子字符串
|
||||
* @return 包含所有出现位置的列表,每个位置用 [start, end] 表示
|
||||
*/
|
||||
private List<int[]> findAllOccurrencesOfString(String text, String searchString) {
|
||||
List<int[]> occurrences = new ArrayList<>();
|
||||
if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchString)) {
|
||||
return occurrences;
|
||||
}
|
||||
|
||||
int index = text.indexOf(searchString);
|
||||
while (index >= 0) {
|
||||
occurrences.add(new int[]{index, index + searchString.length()});
|
||||
index = text.indexOf(searchString, index + searchString.length());
|
||||
}
|
||||
|
||||
return occurrences;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, EMMessageInfo item) {
|
||||
RoomMessageEvent emMessage = item.getEmMessage();
|
||||
// 重置 ImageView 状态,防止复用导致的图片错乱
|
||||
|
||||
switch (helper.getItemViewType()) {
|
||||
case 1:
|
||||
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE);
|
||||
helper.setText(R.id.tv_content, getSpannable(emMessage));
|
||||
|
||||
// helper.setText(R.id.tv_content, emMessage.getText().getText());
|
||||
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
|
||||
break;
|
||||
case 2:
|
||||
AdaptiveImageView emojiImageView = helper.getView(com.xscm.moduleutil.R.id.im_emj);
|
||||
emojiImageView.setTag("");
|
||||
Glide.with(mContext).clear(emojiImageView);
|
||||
emojiImageView.setVisibility(View.VISIBLE);
|
||||
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.GONE);
|
||||
|
||||
|
||||
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
|
||||
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
|
||||
if (emMessage.getText().getText() != null) {
|
||||
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
|
||||
}
|
||||
|
||||
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
|
||||
List<String> images = emMessage.getText().getFromUserInfo().getIcon();
|
||||
LinearLayout ll_images = helper.getView(com.xscm.moduleutil.R.id.line);
|
||||
ll_images.removeAllViews();
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView = new ImageView(helper.itemView.getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView.setLayoutParams(params);
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView);
|
||||
ll_images.addView(imageView);
|
||||
}
|
||||
}
|
||||
|
||||
if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
|
||||
// 使用 Glide 加载图片并设置名称
|
||||
String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
|
||||
Glide.with(mContext)
|
||||
.load(imageUrl)
|
||||
.into(new SimpleTarget<Drawable>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
|
||||
// 将资源转换为 Bitmap
|
||||
if (resource instanceof BitmapDrawable) {
|
||||
Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
|
||||
// 创建新的文件名
|
||||
Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
|
||||
|
||||
// 保存图片到本地
|
||||
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFailed(@Nullable Drawable errorDrawable) {
|
||||
// 加载失败处理
|
||||
}
|
||||
});
|
||||
} else {
|
||||
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
|
||||
}
|
||||
if (emMessage.getText().getEmoji() != null) {
|
||||
|
||||
|
||||
// 为每个加载任务设置唯一标识
|
||||
String uniqueId = emMessage.getRoomId() + "_" + helper.getLayoutPosition();
|
||||
emojiImageView.setTag(uniqueId);
|
||||
|
||||
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") ||
|
||||
emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
|
||||
|
||||
// 检查视图是否仍属于当前数据项
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), emojiImageView);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 使用 RequestListener 监听加载完成
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getAnimate_image())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
|
||||
DataSource dataSource, boolean isFirstResource) {
|
||||
// 检查视图是否仍属于当前数据项
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
// 加载完成后执行
|
||||
new Handler().postDelayed(() -> {
|
||||
// 再次检查视图状态
|
||||
if (uniqueId.equals(emojiImageView.getTag())) {
|
||||
Glide.with(mContext)
|
||||
.load(emMessage.getText().getEmoji().getImage())
|
||||
.into(emojiImageView);
|
||||
}
|
||||
}, 1500);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,
|
||||
boolean isFirstResource) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.into(emojiImageView);
|
||||
} else {
|
||||
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
|
||||
emojiImageView.setVisibility(View.GONE);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
// if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
|
||||
//// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
|
||||
//// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
|
||||
//
|
||||
// // 使用 Glide 加载图片并设置名称
|
||||
// String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
|
||||
//
|
||||
// Glide.with(mContext)
|
||||
// .load(imageUrl)
|
||||
// .into(new SimpleTarget<Drawable>() {
|
||||
// @Override
|
||||
// public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
|
||||
// // 将资源转换为 Bitmap
|
||||
// if (resource instanceof BitmapDrawable) {
|
||||
// Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
|
||||
// // 创建新的文件名
|
||||
// Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
|
||||
//
|
||||
// // 保存图片到本地
|
||||
// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onLoadFailed(@Nullable Drawable errorDrawable) {
|
||||
// // 加载失败处理
|
||||
// }
|
||||
// });
|
||||
// } else {
|
||||
// helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
|
||||
// }
|
||||
// if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
|
||||
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
|
||||
// }
|
||||
// helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
|
||||
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
|
||||
helper.getView(R.id.tv_content).setVisibility(View.VISIBLE);
|
||||
helper.setText(R.id.tv_content, getSpannable(emMessage));
|
||||
// List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
|
||||
// LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
|
||||
// ll_images1.removeAllViews();
|
||||
// if (images1 == null) {
|
||||
// return;
|
||||
// }
|
||||
// for (String url : images1) {
|
||||
// if (url.contains("http")) {
|
||||
// ImageView imageView = new ImageView(helper.itemView.getContext());
|
||||
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
// );
|
||||
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
// imageView.setLayoutParams(params);
|
||||
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
// // 使用 Glide 加载图片
|
||||
// ImageUtils.loadHeadCC(url, imageView);
|
||||
// ll_images1.addView(imageView);
|
||||
// }
|
||||
// }
|
||||
|
||||
break;
|
||||
// case 4:
|
||||
// TextView tvContent7 = helper.getView(R.id.tv_content);
|
||||
// ivNew = helper.getView(R.id.new_view);
|
||||
// ivNew.setNew(1);
|
||||
// tvContent7.setText(new SpanUtils().append(spanned).create());
|
||||
// break;
|
||||
// //抽签
|
||||
// case 5:
|
||||
// String number = emMessage.getStringAttribute("number", "");
|
||||
// ivRole = helper.getView(R.id.iv_role);
|
||||
// ivNew = helper.getView(R.id.iv_new);
|
||||
// ivGrade = helper.getView(R.id.iv_grade);
|
||||
// ivTitle = helper.getView(R.id.iv_title_label);
|
||||
// ivNHobility = helper.getView(R.id.iv_nobility);
|
||||
// tvName = helper.getView(R.id.tv_name);
|
||||
// TextView tvContent5 = helper.getView(R.id.tv_content);
|
||||
// ivRole.setRole(Integer.parseInt(role));
|
||||
// ivNew.setNew(Integer.parseInt(userIsNew));
|
||||
// ivGrade.setGrade(rankIcon);
|
||||
// //称号图标
|
||||
// try {
|
||||
// String s = user_title.substring(user_title.lastIndexOf("=") + 1);
|
||||
// int mWidth = (int) (Float.parseFloat(s) * 20);
|
||||
// int mHeight = 20;
|
||||
// ViewGroup.LayoutParams layoutParams = ivTitle.getLayoutParams();
|
||||
// layoutParams.width = ConvertUtils.dp2px(mWidth);
|
||||
// layoutParams.height = ConvertUtils.dp2px(mHeight);
|
||||
// ivTitle.setLayoutParams(layoutParams);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// ivTitle.setLabelView(user_title);
|
||||
// ivNHobility.setNobility(nobilityIcon);
|
||||
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
|
||||
// tvName.setText(String.format("%s:", nickname));
|
||||
// tvContent5.setText(new SpanUtils().append(spanned).create());
|
||||
// GlideApp.with(mContext).load(String.format("http://soundriver.oss-cn-hangzhou.aliyuncs.com/custom/random%ss.webp", number)).into(new SimpleTarget<Drawable>() {
|
||||
// @Override
|
||||
// public void onResourceReady(@NonNull Drawable drawable, @Nullable Transition<? super Drawable> transition) {
|
||||
// if (drawable instanceof WebpDrawable) {
|
||||
// AppCompatImageView imageView = helper.getView(R.id.iv_wagginh);
|
||||
// imageView.setImageDrawable(drawable);
|
||||
// ((WebpDrawable) drawable).start();
|
||||
// ((WebpDrawable) drawable).setLoopCount(1);
|
||||
// ((WebpDrawable) drawable).registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
|
||||
// @Override
|
||||
// public void onAnimationEnd(Drawable drawable) {
|
||||
// super.onAnimationEnd(drawable);
|
||||
// helper.setImageResource(R.id.iv_wagginh, a[Integer.parseInt(number)]);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// break;
|
||||
// //表情
|
||||
// case 6:
|
||||
// ivRole = helper.getView(R.id.iv_role);
|
||||
// ivNew = helper.getView(R.id.iv_new);
|
||||
// ivGrade = helper.getView(R.id.iv_grade);
|
||||
// ivTitle = helper.getView(R.id.iv_title_label);
|
||||
// ivNHobility = helper.getView(R.id.iv_nobility);
|
||||
// tvName = helper.getView(R.id.tv_name);
|
||||
// ivRole.setRole(Integer.parseInt(role));
|
||||
// ivNew.setNew(Integer.parseInt(userIsNew));
|
||||
// ivGrade.setGrade(rankIcon);
|
||||
// ivTitle.setLabelView(user_title);
|
||||
// ivNHobility.setNobility(nobilityIcon);
|
||||
// tvName.setText(Html.fromHtml(nickname));
|
||||
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
|
||||
// ImageLoader.loadIcon(mContext, helper.getView(R.id.iv_expression), emoji_special);
|
||||
//
|
||||
// //称号图标
|
||||
// try {
|
||||
// String s = user_title.substring(user_title.lastIndexOf("=") + 1);
|
||||
// int mWidth = (int) (Float.parseFloat(s) * 20);
|
||||
// int mHeight = 20;
|
||||
// ViewGroup.LayoutParams layoutParams = ivTitle.getLayoutParams();
|
||||
// layoutParams.width = ConvertUtils.dp2px(mWidth);
|
||||
// layoutParams.height = ConvertUtils.dp2px(mHeight);
|
||||
// ivTitle.setLayoutParams(layoutParams);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// break;
|
||||
// //球球大作战
|
||||
// case 8:
|
||||
// String first = emMessage.getStringAttribute("first", "");
|
||||
// String second = emMessage.getStringAttribute("second", "");
|
||||
// String third = emMessage.getStringAttribute("third", "");
|
||||
//
|
||||
// ivRole = helper.getView(R.id.iv_role);
|
||||
// ivNew = helper.getView(R.id.iv_new);
|
||||
// ivGrade = helper.getView(R.id.iv_grade);
|
||||
// ivTitle = helper.getView(R.id.iv_title_label);
|
||||
// ivNHobility = helper.getView(R.id.iv_nobility);
|
||||
// tvName = helper.getView(R.id.tv_name);
|
||||
// TextView tvContent8 = helper.getView(R.id.tv_content);
|
||||
//
|
||||
// ivRole.setRole(Integer.parseInt(role));
|
||||
// ivNew.setNew(Integer.parseInt(userIsNew));
|
||||
// ivGrade.setGrade(rankIcon);
|
||||
// ivTitle.setLabelView(user_title);
|
||||
// ivNHobility.setNobility(nobilityIcon);
|
||||
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
|
||||
// tvName.setText(Html.fromHtml(nickname));
|
||||
// if (emMessage.getIntAttribute("type", 0) == 6019) {//亮球
|
||||
// helper.setVisible(R.id.iv_qiu1, true);
|
||||
// helper.setVisible(R.id.iv_qiu2, true);
|
||||
// helper.setVisible(R.id.iv_qiu3, true);
|
||||
//
|
||||
// try {
|
||||
// helper.setImageResource(R.id.iv_qiu1, mContext.getResources().getIdentifier(first, "mipmap", mContext.getPackageName()));
|
||||
// helper.setImageResource(R.id.iv_qiu2, mContext.getResources().getIdentifier(second, "mipmap", mContext.getPackageName()));
|
||||
// helper.setImageResource(R.id.iv_qiu3, mContext.getResources().getIdentifier(third, "mipmap", mContext.getPackageName()));
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// } else {
|
||||
// helper.setVisible(R.id.iv_qiu1, false);
|
||||
// helper.setVisible(R.id.iv_qiu2, false);
|
||||
// helper.setVisible(R.id.iv_qiu3, false);
|
||||
// }
|
||||
// spanUtils.append(spanned);
|
||||
// tvContent8.setText(spanUtils.create());
|
||||
// break;
|
||||
// case 10:
|
||||
// TextView tv = helper.getView(R.id.tv_content);
|
||||
// float height = tv.getTextSize();//获取字体高度
|
||||
// String bell = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
|
||||
// Spanned sp = Html.fromHtml(bell + txtBody.getMessage(), source -> {
|
||||
// Drawable drawable;
|
||||
// drawable = mContext.getResources().getDrawable(Integer.parseInt(source));
|
||||
// drawable.setBounds(0, 0, (int) (height * 36f / 42f), (int) height); //等比例设置铃铛大小
|
||||
// return drawable;
|
||||
// }, null);
|
||||
// tv.setText(sp);
|
||||
// helper.setGone(R.id.tv_red_rain_detail, false);
|
||||
// break;
|
||||
// case 11:
|
||||
// TextView tv11 = helper.getView(R.id.tv_content);
|
||||
// float height11 = tv11.getTextSize();//获取字体高度
|
||||
// String bell11 = "<img src=\"" + R.drawable.ease_message_bell + "\"/>"; //前面加一个铃铛
|
||||
// Spanned sp11 = Html.fromHtml(bell11 + txtBody.getMessage(), source -> {
|
||||
// Drawable drawable;
|
||||
// drawable = mContext.getResources().getDrawable(Integer.parseInt(source));
|
||||
// drawable.setBounds(0, 0, (int) (height11 * 36f / 42f), (int) height11); //等比例设置铃铛大小
|
||||
// return drawable;
|
||||
// }, null);
|
||||
// tv11.setText(sp11);
|
||||
// helper.setGone(R.id.tv_red_rain_detail, true);
|
||||
// helper.addOnClickListener(R.id.tv_red_rain_detail);
|
||||
// break;
|
||||
// default:
|
||||
// helper.setText(R.id.tv_content, Html.fromHtml(txtBody.getMessage()));
|
||||
// break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void loadBubbleBackground(Context context, String bubbleUrl, ConstraintLayout messageTextView) {
|
||||
// String bubbleUrl = "https://midi01.oss-cn-beijing.aliyuncs.com/iosaixinqipao_17610381079117.png";
|
||||
|
||||
BubbleBackgroundHelper.loadBubbleBackground(context, bubbleUrl,
|
||||
new BubbleBackgroundHelper.OnBubbleBackgroundLoadedListener() {
|
||||
@Override
|
||||
public void onBackgroundLoaded(Drawable bubbleDrawable) {
|
||||
// 设置背景
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
messageTextView.setBackground(bubbleDrawable);
|
||||
} else {
|
||||
messageTextView.setBackgroundDrawable(bubbleDrawable);
|
||||
}
|
||||
|
||||
// 设置内边距,让文字不会贴边
|
||||
int padding = dpToPx(context, 10);
|
||||
messageTextView.setPadding(padding, padding, padding, padding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFailed() {
|
||||
// 加载失败,使用默认背景
|
||||
messageTextView.setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private int dpToPx(Context context, int dp) {
|
||||
return (int) (dp * context.getResources().getDisplayMetrics().density);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
|
||||
GifAvatarOvalView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
|
||||
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);
|
||||
ImageView ivCharm = holder.getView(com.xscm.moduleutil.R.id.iv_charm);
|
||||
|
||||
if (mContext instanceof Activity && (((Activity) mContext).isFinishing() || ((Activity) mContext).isDestroyed())) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// 清理表情图片
|
||||
if (holder.getView(com.xscm.moduleutil.R.id.im_emj) != null) {
|
||||
ImageView imEmj = (ImageView) holder.getView(com.xscm.moduleutil.R.id.im_emj);
|
||||
imEmj.setTag(null);
|
||||
imEmj.setImageDrawable(null);
|
||||
Glide.with(imEmj.getContext()).clear(imEmj);
|
||||
}
|
||||
|
||||
// 清理其他图片
|
||||
if (avatarOvalView != null) {
|
||||
avatarOvalView.setImageDrawable(null);
|
||||
Glide.with(avatarOvalView.getContext()).clear(avatarOvalView);
|
||||
}
|
||||
if (ivNobility != null) {
|
||||
ivNobility.setImageDrawable(null);
|
||||
Glide.with(ivNobility.getContext()).clear(ivNobility);
|
||||
}
|
||||
if (ivCharm != null) {
|
||||
ivCharm.setImageDrawable(null);
|
||||
Glide.with(ivCharm.getContext()).clear(ivCharm);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 清除数据
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
public void clearData() {
|
||||
this.mData.clear();
|
||||
userMsgList.clear();
|
||||
systemMsgList.clear();
|
||||
allMsgList.clear();
|
||||
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void clearSomeData() {
|
||||
if (this.mData != null && mData.size() > 500) {
|
||||
List<EMMessageInfo> emMessageInfos = mData.subList(500, mData.size());
|
||||
setNewData(emMessageInfos);
|
||||
}
|
||||
|
||||
if (allMsgList.size() > 500) {
|
||||
allMsgList = allMsgList.subList(500, allMsgList.size());
|
||||
}
|
||||
|
||||
if (userMsgList.size() > 500) {
|
||||
userMsgList = userMsgList.subList(500, userMsgList.size());
|
||||
}
|
||||
|
||||
if (systemMsgList.size() > 500) {
|
||||
systemMsgList = systemMsgList.subList(500, systemMsgList.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addData(@NonNull EMMessageInfo data) {
|
||||
|
||||
// 添加到对应的存储列表
|
||||
addToStorageLists(data);
|
||||
|
||||
// 维护数据量限制
|
||||
maintainDataLimits();
|
||||
|
||||
// 根据显示类型决定是否添加到适配器
|
||||
if (shouldAddToAdapter(data)) {
|
||||
super.addData(data);
|
||||
// 确保适配器数据量也不超过限制
|
||||
if (mData.size() > 100) {
|
||||
int removeCount = mData.size() - 100;
|
||||
mData.subList(0, removeCount).clear();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void addToStorageLists(EMMessageInfo data) {
|
||||
switch (data.getItemType()) {
|
||||
case 1: // 系统消息
|
||||
allMsgList.add(data);
|
||||
break;
|
||||
case 2: // 用户消息
|
||||
userMsgList.add(data);
|
||||
allMsgList.add(data);
|
||||
break;
|
||||
case 3: // 系统消息类型3
|
||||
systemMsgList.add(data);
|
||||
allMsgList.add(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void maintainDataLimits() {
|
||||
// 确保所有存储列表都不超过最大限制
|
||||
trimListToMaxSize(allMsgList);
|
||||
trimListToMaxSize(userMsgList);
|
||||
trimListToMaxSize(systemMsgList);
|
||||
}
|
||||
|
||||
private void trimListToMaxSize(List<EMMessageInfo> list) {
|
||||
if (list.size() > 100) {
|
||||
int removeCount = list.size() - 100;
|
||||
list.subList(0, removeCount).clear();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean shouldAddToAdapter(EMMessageInfo data) {
|
||||
// return (listShowType == SHOW_TYPE_ALL && (data.getItemType() == 1 || data.getItemType() == 2)) ||
|
||||
// (listShowType == SHOW_TYPE_USER && data.getItemType() == 2) ||
|
||||
// (listShowType == SHOW_TYPE_SYSTEM && data.getItemType() == 3);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addData(@NonNull Collection<? extends EMMessageInfo> newData) {
|
||||
// super.addData(newData);
|
||||
if (newData == null || newData.size() == 0) {
|
||||
return;
|
||||
}
|
||||
List<EMMessageInfo> list = new ArrayList<>();
|
||||
list.addAll(newData);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
addData(list.get(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.room.EmotionDeatils;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class EmotionAdapter extends BaseQuickAdapter<EmotionDeatils, BaseViewHolder> {
|
||||
// 转换后的 Java 代码
|
||||
private OnEmotionClickListener onEmotionClickListener;
|
||||
|
||||
// 定义接口
|
||||
public interface OnEmotionClickListener {
|
||||
void onEmotionClick(EmotionDeatils emotion);
|
||||
}
|
||||
|
||||
// 转换后的 Java 代码
|
||||
public void setOnEmotionClickListener(OnEmotionClickListener listener) {
|
||||
this.onEmotionClickListener = listener;
|
||||
}
|
||||
public EmotionAdapter() {
|
||||
super(R.layout.item_emotion);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, EmotionDeatils item) {
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_emotion));
|
||||
helper.setText(R.id.tv_emotion_name, item.getName());
|
||||
|
||||
// 设置点击事件
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
if (onEmotionClickListener != null) {
|
||||
onEmotionClickListener.onEmotionClick(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.adapter.OneImageYuanJiaoAdapter;
|
||||
import com.xscm.moduleutil.bean.ExpandColumnBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.MeHeadView;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.widget.MyGridView;
|
||||
import com.xscm.moduleutil.widget.img.FullScreenUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, BaseViewHolder> {
|
||||
public ExpandColumnAdapter() {
|
||||
super(R.layout.item_expand_column);
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onDianzanClick(ExpandColumnBean item);
|
||||
|
||||
void onHeadImageClick(ExpandColumnBean item);
|
||||
|
||||
void onZsClick(ExpandColumnBean item);
|
||||
|
||||
void onDiandianClick(ExpandColumnBean item);
|
||||
|
||||
void onPinglunClick(ExpandColumnBean item);
|
||||
|
||||
void onRelaClick(ExpandColumnBean item);
|
||||
|
||||
void onGnsClick(ExpandColumnBean item);
|
||||
}
|
||||
|
||||
private OnItemClickListener mListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, ExpandColumnBean item) {
|
||||
helper.addOnClickListener(R.id.dy_head_image);
|
||||
|
||||
//先让单图,多图,音频的布局显示
|
||||
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
|
||||
helper.setText(R.id.tv_agree,(item.getAgree()!=null?item.getAgree():"0")+"岁");
|
||||
//昵称
|
||||
helper.setText(R.id.dy_name_text, item.getNickname());
|
||||
helper.setText(R.id.tv_address, item.getLoginip());
|
||||
if (item.getUser_id().equals(SpUtil.getUserId()+"")){
|
||||
helper.setVisible(R.id.gensui, false);
|
||||
}else {
|
||||
helper.setVisible(R.id.gensui, true);
|
||||
}
|
||||
|
||||
if (item.getRoom_id() != 0) {
|
||||
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gsui);
|
||||
} else {
|
||||
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.six);
|
||||
}
|
||||
|
||||
helper.getView(com.xscm.moduleutil.R.id.dy_head_image).setOnClickListener(v -> {
|
||||
if (mListener != null) mListener.onHeadImageClick(item);
|
||||
});
|
||||
|
||||
helper.getView(R.id.gensui).setOnClickListener(v -> {
|
||||
if (mListener != null) mListener.onGnsClick(item);
|
||||
});
|
||||
|
||||
//头像
|
||||
// ImageUtils.loadHeadCC(item.getAvatar(), (ImageView) helper.getView(R.id.dy_head_image));
|
||||
MeHeadView headView = helper.getView(R.id.dy_head_image);
|
||||
headView.setData(item.getAvatar(), "", item.getSex());
|
||||
|
||||
if (item.getHome_bgimages() != null && !item.getHome_bgimages().isEmpty()) {
|
||||
// String[] arrIv = item.getHome_bgimages().toArray(new String[item.getHome_bgimages().size()]);
|
||||
String[] arrIv = item.getHome_bgimages().split(",");
|
||||
int length = arrIv.length;
|
||||
|
||||
|
||||
OneImageYuanJiaoAdapter oneImageYuanJiaoAdapter = new OneImageYuanJiaoAdapter(mContext);
|
||||
MyGridView recyclerView = helper.getView(R.id.dy_image_recyc);
|
||||
recyclerView.setNumColumns(3);
|
||||
recyclerView.setAdapter(oneImageYuanJiaoAdapter);
|
||||
oneImageYuanJiaoAdapter.getList_adapter().clear();
|
||||
|
||||
for (int j = 0; j < arrIv.length; j++) {
|
||||
oneImageYuanJiaoAdapter.getList_adapter().add(arrIv[j]);
|
||||
}
|
||||
|
||||
oneImageYuanJiaoAdapter.notifyDataSetChanged();
|
||||
|
||||
recyclerView.setOnItemClickListener((parent, view, position, id) -> {
|
||||
FullScreenUtil.showFullScreenDialog(mContext, position, oneImageYuanJiaoAdapter.getList_adapter());
|
||||
});
|
||||
}else {
|
||||
helper.getView(R.id.dy_image_recyc).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
LinearLayout llContainer = helper.getView(R.id.ll_image_container);
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
|
||||
ImageView imageView = new ImageView(mContext);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, mContext.getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView.setLayoutParams(params);
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView);
|
||||
|
||||
llContainer.addView(imageView);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FragmentAdapter extends FragmentStateAdapter {
|
||||
private static final String TAG = FragmentAdapter.class.getSimpleName();
|
||||
private List<Fragment> fragmentList;
|
||||
public FragmentAdapter(@NonNull FragmentActivity fragmentActivity) {
|
||||
super(fragmentActivity);
|
||||
}
|
||||
public FragmentAdapter(@NonNull Fragment fragment) {
|
||||
super(fragment);
|
||||
}
|
||||
public FragmentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
|
||||
super(fragmentManager, lifecycle);
|
||||
}
|
||||
public void setFragmentList(List<Fragment> fragmentList) {
|
||||
this.fragmentList = fragmentList;
|
||||
}
|
||||
@NonNull
|
||||
@Override
|
||||
public Fragment createFragment(int position) {
|
||||
if (fragmentList == null || fragmentList.size() <= position) {
|
||||
return new Fragment();
|
||||
}
|
||||
return fragmentList.get(position);
|
||||
}
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return fragmentList == null ? 0 : fragmentList.size();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.GiftBoxRecordBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GiftBoxAdapter extends RecyclerView.Adapter<GiftBoxAdapter.GiftBoxViewHolder> {
|
||||
|
||||
private static final int TYPE_HEADER = 0;
|
||||
private static final int TYPE_ITEM = 1;
|
||||
|
||||
private List<GiftBoxRecordBean> giftBoxList;
|
||||
|
||||
public GiftBoxAdapter(List<GiftBoxRecordBean> giftBoxList) {
|
||||
this.giftBoxList = giftBoxList;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public GiftBoxViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view;
|
||||
if (viewType == TYPE_HEADER) {
|
||||
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_box, parent, false);
|
||||
// 设置标题可见
|
||||
view.findViewById(R.id.tv_label_time).setVisibility(View.VISIBLE);
|
||||
view.findViewById(R.id.tv_label_gift_name).setVisibility(View.VISIBLE);
|
||||
view.findViewById(R.id.tv_label_obtain).setVisibility(View.VISIBLE);
|
||||
// 隐藏数据项
|
||||
view.findViewById(R.id.tv_time).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.tv_gift_name).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.tv_obtain).setVisibility(View.GONE);
|
||||
} else {
|
||||
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_box, parent, false);
|
||||
// 设置数据项可见
|
||||
view.findViewById(R.id.tv_time).setVisibility(View.VISIBLE);
|
||||
view.findViewById(R.id.tv_gift_name).setVisibility(View.VISIBLE);
|
||||
view.findViewById(R.id.tv_obtain).setVisibility(View.VISIBLE);
|
||||
// 隐藏标题项
|
||||
view.findViewById(R.id.tv_label_time).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.tv_label_gift_name).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.tv_label_obtain).setVisibility(View.GONE);
|
||||
}
|
||||
return new GiftBoxViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull GiftBoxViewHolder holder, int position) {
|
||||
if (position == 0) {
|
||||
// 设置标题文本
|
||||
holder.tvLabelTime.setText("时间");
|
||||
holder.tvLabelGiftName.setText("礼盒名称");
|
||||
holder.tvLabelObtain.setText("获取");
|
||||
} else {
|
||||
GiftBoxRecordBean giftBox = giftBoxList.get(position - 1);
|
||||
holder.tvTime.setText(giftBox.getCreatetime());
|
||||
holder.tvGiftName.setText(giftBox.getGift_bag_name());
|
||||
holder.tvObtain.setText(giftBox.getGift_name());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return giftBoxList.size() + 1; // 加上标题项
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return position == 0 ? TYPE_HEADER : TYPE_ITEM;
|
||||
}
|
||||
|
||||
static class GiftBoxViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView tvLabelTime;
|
||||
TextView tvLabelGiftName;
|
||||
TextView tvLabelObtain;
|
||||
TextView tvTime;
|
||||
TextView tvGiftName;
|
||||
TextView tvObtain;
|
||||
|
||||
GiftBoxViewHolder(View view) {
|
||||
super(view);
|
||||
tvLabelTime = view.findViewById(R.id.tv_label_time);
|
||||
tvLabelGiftName = view.findViewById(R.id.tv_label_gift_name);
|
||||
tvLabelObtain = view.findViewById(R.id.tv_label_obtain);
|
||||
tvTime = view.findViewById(R.id.tv_time);
|
||||
tvGiftName = view.findViewById(R.id.tv_gift_name);
|
||||
tvObtain = view.findViewById(R.id.tv_obtain);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RewardUserBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.widget.BaseWheatView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目名称 qipao-android
|
||||
* 包名:com.qpyy.room.adapter
|
||||
* 创建人 黄强
|
||||
* 创建时间 2020/8/6 14:48
|
||||
* 描述 describe
|
||||
*/
|
||||
public class GiftUserAdapter extends BaseQuickAdapter<RewardUserBean, BaseViewHolder> {
|
||||
private int ownerModel = 0;
|
||||
|
||||
|
||||
public GiftUserAdapter() {
|
||||
super(R.layout.room_rv_item_gift_wheat);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RewardUserBean item) {
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_gift_wheat_head_pic));
|
||||
ImageView rivPit = helper.getView(R.id.riv_pit);
|
||||
TextView tvPit = helper.getView(R.id.tv_pit);
|
||||
rivPit.setVisibility(item.isSelect() ? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
if (TextUtils.isEmpty(item.getPit_number()) || "0".equals(item.getPit_number())) {
|
||||
helper.setVisible(R.id.tv_pit, false);
|
||||
} else {
|
||||
helper.setVisible(R.id.tv_pit, true);
|
||||
int pitNumber = Integer.parseInt(item.getPit_number());
|
||||
if (pitNumber > 10) {
|
||||
helper.setText(R.id.tv_pit, item.getNickname());
|
||||
} else {
|
||||
helper.setText(R.id.tv_pit, String.format("%s号麦", item.getPit_number()));
|
||||
}
|
||||
if (item.getPit_number().equals("10")) {
|
||||
helper.setText(R.id.tv_pit, "嘉宾");
|
||||
}
|
||||
if (BaseWheatView.WHEAT_HOST.equals(item.getPit_number())) {
|
||||
if (2 == ownerModel || 0 == ownerModel) {
|
||||
helper.setText(R.id.tv_pit, "主持人");
|
||||
} else {
|
||||
helper.setText(R.id.tv_pit, "房主");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.isSelect()) {
|
||||
helper.getView(R.id.tv_pit).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_show);
|
||||
tvPit.setTextColor(Color.parseColor("#ffffff"));
|
||||
} else {
|
||||
helper.getView(R.id.tv_pit).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_show_b);
|
||||
tvPit.setTextColor(Color.parseColor("#ff333333"));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAll() {
|
||||
int count = 0;
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
if (item.isSelect()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count > 0 && count == data.size();
|
||||
}
|
||||
|
||||
public void allElection(boolean b) {
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
item.setSelect(b);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public int getSelectCount() {
|
||||
int count = 0;
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
if (!item.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
if (item.isSelect()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
///获取当前选中的人数
|
||||
public int getUserIdCount(){
|
||||
int count = 0;
|
||||
List<RewardUserBean> data = getData();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
if (data.get(i).isSelect()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
public List<RewardUserBean> getSelectRoomPitUserModel() {
|
||||
List<RewardUserBean> selects = getData();
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
if (item.isSelect()) {
|
||||
selects.add(item);
|
||||
}
|
||||
}
|
||||
return selects;
|
||||
}
|
||||
|
||||
public String getUserIdToString() {
|
||||
List<RewardUserBean> data = getData();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
if (!data.get(i).getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
if (data.get(i).isSelect()) {
|
||||
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
|
||||
sb.append(",");
|
||||
}
|
||||
sb.append(data.get(i).getUser_id());
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getUserPitToString() {
|
||||
List<RewardUserBean> data = getData();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
if (data.get(i).isSelect()) {
|
||||
if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!
|
||||
sb.append(",");
|
||||
}
|
||||
if (data != null && data.get(i) != null && data.get(i).getPit_number() != null) {
|
||||
sb.append(data.get(i).getPit_number());
|
||||
} else {
|
||||
sb.append("");
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
public List<RewardUserBean> getGiftUser() {
|
||||
List<RewardUserBean> data = getData();
|
||||
List<RewardUserBean> giftUserList = new ArrayList<>();
|
||||
for (RewardUserBean item : data) {
|
||||
if (item.isSelect()) {
|
||||
giftUserList.add(item);
|
||||
}
|
||||
}
|
||||
return giftUserList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除所有选中
|
||||
*/
|
||||
public List<String> clearAllSelected() {
|
||||
List<String> ids = new ArrayList<>();
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
if (item.isSelect()) {
|
||||
ids.add(item.getUser_id());
|
||||
}
|
||||
item.setSelect(false);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
return ids;
|
||||
}
|
||||
|
||||
public void setOwnerModel(int ownerModel) {
|
||||
this.ownerModel = ownerModel;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public List<String> getAllSelectedIds() {
|
||||
List<String> ids = new ArrayList<>();
|
||||
List<RewardUserBean> data = getData();
|
||||
for (RewardUserBean item : data) {
|
||||
if (item.isSelect()) {
|
||||
|
||||
ids.add(item.getUser_id());
|
||||
}
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolder> {
|
||||
public HotAdapter(List<TopRoom> data) {
|
||||
super(data);
|
||||
// addItemType(1, R.layout.index_rv_item_room_hot1);
|
||||
addItemType(1, R.layout.index_rv_item_room_hot0);
|
||||
}
|
||||
// 定义点击事件监听器接口
|
||||
public interface OnRoomClickListener {
|
||||
void onRoomClick(TopRoom room, int position);
|
||||
}
|
||||
|
||||
// 声明监听器实例
|
||||
private OnRoomClickListener mOnRoomClickListener;
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, TopRoom item) {
|
||||
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
|
||||
TextView tv_name = helper.getView(R.id.tv_name);
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_name.setSelected(true);
|
||||
|
||||
|
||||
ImageView iv = helper.getView(R.id.iv_play);
|
||||
if (item.getUser_list()!=null && item.getUser_list().size() > 0) {
|
||||
iv.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
iv.setVisibility(GONE);
|
||||
}
|
||||
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value())));
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||
// 如果外部设置了监听器,则触发外部监听器
|
||||
if (mOnRoomClickListener != null) {
|
||||
mOnRoomClickListener.onRoomClick(item, helper.getAdapterPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private String formatHotValue(int hotValue) {
|
||||
if (hotValue > 10000) {
|
||||
return String.format("%.1fw", hotValue / 10000.0);
|
||||
} else {
|
||||
return String.valueOf(hotValue);
|
||||
}
|
||||
}
|
||||
// 提供设置监听器的方法
|
||||
public void setOnRoomClickListener(OnRoomClickListener listener) {
|
||||
this.mOnRoomClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
// ImageView imageView = holder.getView(R.id.riv);
|
||||
// if (imageView != null) {
|
||||
// imageView.setImageDrawable(null);
|
||||
// Glide.with(imageView.getContext()).clear(imageView);
|
||||
// }
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.HeatedBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/17
|
||||
*@description: 这是发布动态选择话题的适配器,多选状态
|
||||
*/
|
||||
public class MultiSelectAdapter extends RecyclerView.Adapter<MultiSelectAdapter.ViewHolder> {
|
||||
private List<HeatedBean> options;
|
||||
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
|
||||
|
||||
public MultiSelectAdapter(List<HeatedBean> options) {
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_multi_select, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
HeatedBean item = options.get(position);
|
||||
|
||||
boolean isSelected = selectedPositions.get(position, false);
|
||||
|
||||
holder.tvOption.setText(item.getTitle());
|
||||
holder.checkbox.setSelected(isSelected);
|
||||
holder.checkbox.setOnClickListener(v -> {
|
||||
boolean newState = !isSelected;
|
||||
selectedPositions.put(position, newState);
|
||||
holder.checkbox.setSelected(newState);
|
||||
notifyItemChanged(position); // 刷新当前项
|
||||
});
|
||||
|
||||
// 点击整个 item 也可以触发选中/取消
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
boolean currentState = selectedPositions.get(position, false);
|
||||
boolean newState = !currentState;
|
||||
selectedPositions.put(position, newState);
|
||||
holder.checkbox.setSelected(newState);
|
||||
notifyItemChanged(position);
|
||||
});
|
||||
|
||||
// holder.itemView.setOnClickListener(v -> {
|
||||
// boolean isChecked = selectedPositions.get(position, false);
|
||||
// if (isChecked) {
|
||||
// selectedPositions.delete(position);
|
||||
// } else {
|
||||
// selectedPositions.put(position, true);
|
||||
// }
|
||||
// notifyItemChanged(position);
|
||||
// });
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return options.size();
|
||||
}
|
||||
|
||||
public List<HeatedBean> getSelectedItems() {
|
||||
List<HeatedBean> selected = new ArrayList<>();
|
||||
for (int i = 0; i < options.size(); i++) {
|
||||
if (selectedPositions.get(i)) {
|
||||
selected.add(options.get(i));
|
||||
}
|
||||
}
|
||||
return selected;
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
View checkbox;
|
||||
TextView tvOption;
|
||||
|
||||
public ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
checkbox = itemView.findViewById(R.id.v_checkbox);
|
||||
tvOption = itemView.findViewById(R.id.tv_option);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.AlbumBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class MyAlbumListAdapter extends BaseQuickAdapter<AlbumBean, BaseViewHolder> {
|
||||
private boolean b = false;
|
||||
private int longClickPos = -1;
|
||||
|
||||
public MyAlbumListAdapter() {
|
||||
super(R.layout.item_album_list);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, AlbumBean item) {
|
||||
|
||||
if (!"0".equals(item.getId())) {
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.riv_album));
|
||||
helper.setVisible(R.id.tv_album_name, true);
|
||||
helper.setVisible(R.id.tv_album_count, true);
|
||||
if (!item.getPwd().isEmpty()){
|
||||
ImageUtils.loadBlurredImageWithDefault(item.getImage(), helper.getView(R.id.riv_album), com.xscm.moduleutil.R.mipmap.default_avatar, 25);
|
||||
helper.setVisible(R.id.iv_album_suo,true);
|
||||
}
|
||||
helper.setText(R.id.tv_album_name, item.getName());
|
||||
helper.setText(R.id.tv_album_count, item.getRead_num());
|
||||
} else {
|
||||
helper.setImageResource(R.id.riv_album, com.xscm.moduleutil.R.mipmap.create_album);
|
||||
helper.setVisible(R.id.tv_album_name, false);
|
||||
helper.setVisible(R.id.tv_album_count, false);
|
||||
helper.setVisible(R.id.iv_album_suo,false);
|
||||
}
|
||||
|
||||
helper.setVisible(R.id.riv_album, true);
|
||||
helper.addOnClickListener(R.id.riv_album);
|
||||
// helper.addOnLongClickListener(R.id.riv_album);
|
||||
}
|
||||
|
||||
|
||||
public void setDelete(boolean b) {
|
||||
this.b = b;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setLongClickPos(int pos) {
|
||||
this.longClickPos = pos;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public boolean getDelete() {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,496 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
||||
import com.xscm.modulemain.activity.user.activity.MyRoomActivity;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.xscm.modulemain.manager.RoomManager;
|
||||
import com.xscm.moduleutil.RoomAutionTimeBean;
|
||||
import com.xscm.moduleutil.bean.MyCpRoom;
|
||||
import com.xscm.moduleutil.bean.MyFootResp;
|
||||
import com.xscm.moduleutil.bean.MyRoomBean;
|
||||
import com.xscm.moduleutil.bean.RoomData;
|
||||
import com.xscm.moduleutil.bean.RoomRelationBean;
|
||||
import com.xscm.moduleutil.bean.RoonGiftModel;
|
||||
import com.xscm.moduleutil.bean.ViewItem;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.widget.GifAvatarOvalView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private List<ViewItem> viewItems = new ArrayList<>();
|
||||
private int selectedRelationPosition = -1;
|
||||
private int selectedTimePosition = -1;
|
||||
private int selectedGiftPosition = -1;
|
||||
|
||||
private MyRoomActivity myRoomActivity;
|
||||
|
||||
public void setMyRoomActivity(MyRoomActivity myRoomActivity) {
|
||||
this.myRoomActivity = myRoomActivity;
|
||||
}
|
||||
|
||||
public void submitList(List<ViewItem> items) {
|
||||
if (items == null || items.isEmpty()) {
|
||||
viewItems.clear();
|
||||
notifyDataSetChanged();
|
||||
return;
|
||||
}
|
||||
|
||||
List<ViewItem> filteredList = new ArrayList<>();
|
||||
for (ViewItem item : items) {
|
||||
int type = item.getType();
|
||||
Object data = item.getData();
|
||||
|
||||
// 判断是否为空数据
|
||||
boolean isValid = true;
|
||||
|
||||
switch (type) {
|
||||
case ViewItem.TYPE_TEXT:
|
||||
// 文本类型直接展示(字符串不会为 null)
|
||||
break;
|
||||
|
||||
case ViewItem.TYPE_RELATION:
|
||||
isValid = data instanceof MyRoomBean && ((MyRoomBean) data).getRoom_name() != null; // 假设你有一个 isValid() 方法判断是否为空
|
||||
break;
|
||||
|
||||
case ViewItem.TYPE_GIFT:
|
||||
isValid = data instanceof MyCpRoom && !TextUtils.isEmpty(((MyCpRoom) data).getRoom_name()); // 示例判断字段非空
|
||||
break;
|
||||
|
||||
case ViewItem.TYPE_IMAGE_SELECTION:
|
||||
isValid = data instanceof MyFootResp && !TextUtils.isEmpty(((MyFootResp) data).getRoom_name());
|
||||
break;
|
||||
|
||||
default:
|
||||
isValid = false; // 默认不展示未知类型
|
||||
break;
|
||||
}
|
||||
|
||||
if (isValid) {
|
||||
filteredList.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
viewItems.clear();
|
||||
viewItems.addAll(filteredList);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return viewItems.get(position).getType();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
|
||||
|
||||
switch (viewType) {
|
||||
case ViewItem.TYPE_TEXT:
|
||||
return new TextViewHolder(inflater.inflate(R.layout.room_li_bu, parent, false));
|
||||
case ViewItem.TYPE_RELATION:
|
||||
return new RelationViewHolder(inflater.inflate(R.layout.room_fragment_my_room_list, parent, false));
|
||||
case ViewItem.TYPE_GIFT:
|
||||
return new RelationViewTimHolder(myRoomActivity,inflater.inflate(R.layout.room_fragment_my_room_cp_list, parent, false));
|
||||
case ViewItem.TYPE_IMAGE_SELECTION:
|
||||
return new GiftViewHolder(myRoomActivity,inflater.inflate(R.layout.room_index_item_chatroom_my_foot, parent, false));
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown view type");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
|
||||
ViewItem item = viewItems.get(position);
|
||||
|
||||
switch (item.getType()) {
|
||||
case ViewItem.TYPE_TEXT:
|
||||
RoomData roomData = (RoomData) item.getData();
|
||||
((TextViewHolder) holder).bind((roomData));
|
||||
break;
|
||||
case ViewItem.TYPE_RELATION:
|
||||
MyRoomBean relationBean = (MyRoomBean) item.getData();
|
||||
((RelationViewHolder) holder).bind(relationBean);
|
||||
|
||||
break;
|
||||
case ViewItem.TYPE_IMAGE_SELECTION:
|
||||
MyFootResp myFootResp = (MyFootResp) item.getData();
|
||||
((GiftViewHolder) holder).bind(myFootResp);
|
||||
break;
|
||||
case ViewItem.TYPE_GIFT:
|
||||
|
||||
MyCpRoom roomAutionTimeBean = (MyCpRoom) item.getData();
|
||||
((RelationViewTimHolder) holder).bind(roomAutionTimeBean);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public interface OnItemSelectedListener {
|
||||
void onItemSelected(int viewType, int position);
|
||||
}
|
||||
|
||||
private OnItemSelectedListener listener;
|
||||
|
||||
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public RoomRelationBean getSelectedRelation() {
|
||||
if (selectedRelationPosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedRelationPosition);
|
||||
if (item.getData() instanceof RoomRelationBean) {
|
||||
return (RoomRelationBean) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RoomAutionTimeBean getSelectedTime() {
|
||||
if (selectedTimePosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedTimePosition);
|
||||
if (item.getData() instanceof RoomAutionTimeBean) {
|
||||
return (RoomAutionTimeBean) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RoonGiftModel getSelectedGift() {
|
||||
if (selectedGiftPosition != -1) {
|
||||
ViewItem item = viewItems.get(selectedGiftPosition);
|
||||
if (item.getData() instanceof RoonGiftModel) {
|
||||
return (RoonGiftModel) item.getData();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 定义接口
|
||||
public interface OnImageClickListener {
|
||||
void onImageClick(View view, RoomData roomData);
|
||||
}
|
||||
|
||||
// 添加接口类型的变量
|
||||
private static OnImageClickListener onImageClickListener;
|
||||
|
||||
// 提供一个方法来设置接口变量
|
||||
public void setOnImageClickListener(OnImageClickListener listener) {
|
||||
this.onImageClickListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return viewItems.size();
|
||||
}
|
||||
|
||||
static class TextViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView textView;
|
||||
ImageView imageView1, imageView2;
|
||||
|
||||
TextViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
textView = itemView.findViewById(R.id.tv_title);
|
||||
imageView1 = itemView.findViewById(R.id.iv_footprint);
|
||||
imageView2 = itemView.findViewById(R.id.iv_delete_foot);
|
||||
}
|
||||
|
||||
void bind(RoomData roomData) {
|
||||
textView.setText(roomData.getTitle());
|
||||
if (roomData.getTitleType() == 0) {
|
||||
imageView2.setVisibility(View.INVISIBLE);
|
||||
} else {
|
||||
imageView2.setVisibility(View.VISIBLE);
|
||||
imageView2.setImageResource(roomData.getTitleType());
|
||||
}
|
||||
imageView1.setImageResource(roomData.getTitleIcon());
|
||||
|
||||
imageView2.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (onImageClickListener != null) {
|
||||
onImageClickListener.onImageClick(view, roomData);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class RelationViewHolder extends RecyclerView.ViewHolder {
|
||||
RoundedImageView riv;
|
||||
ImageView iv_play, im_sh;
|
||||
TextView tv_name;
|
||||
TextView tv_sy;
|
||||
TextView tv_user_id, tv_gz, tv_zx, tv_fw, rl_mx, tv_room_bt;
|
||||
ConstraintLayout cl_my_room_list;
|
||||
|
||||
RelationViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
riv = itemView.findViewById(R.id.riv);
|
||||
iv_play = itemView.findViewById(R.id.iv_play);
|
||||
tv_name = itemView.findViewById(R.id.tv_name);
|
||||
tv_sy = itemView.findViewById(R.id.tv_sy);
|
||||
tv_user_id = itemView.findViewById(R.id.tv_user_id);
|
||||
tv_gz = itemView.findViewById(R.id.tv_gz);
|
||||
tv_zx = itemView.findViewById(R.id.tv_zx);
|
||||
tv_fw = itemView.findViewById(R.id.tv_fw);
|
||||
rl_mx = itemView.findViewById(R.id.rl_mx);
|
||||
tv_room_bt = itemView.findViewById(R.id.tv_room_bt);
|
||||
im_sh = itemView.findViewById(R.id.im_sh);
|
||||
cl_my_room_list = itemView.findViewById(R.id.cl_my_room_list);
|
||||
}
|
||||
|
||||
void bind(MyRoomBean item) {
|
||||
|
||||
|
||||
ImageUtils.loadImageView(item.getRoom_cover(), riv);
|
||||
if (item.getLabel_icon() != null) {
|
||||
ImageUtils.loadImageView(item.getLabel_icon(), iv_play);
|
||||
}
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_sy.setText(item.getToday_profit() + "");
|
||||
tv_user_id.setText("ID: " + item.getRoom_number());
|
||||
|
||||
String concernText = "关注:" + item.getFollow_num();
|
||||
SpannableString spannableString = new SpannableString(concernText);
|
||||
// 设置关注数字部分的颜色为黑色
|
||||
spannableString.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tv_gz.setText(spannableString);
|
||||
|
||||
|
||||
String concernText1 = "在线:" + item.getOnline_num();
|
||||
SpannableString spannableString1 = new SpannableString(concernText1);
|
||||
// 设置关注数字部分的颜色为黑色
|
||||
spannableString1.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tv_zx.setText(spannableString1);
|
||||
|
||||
String concernText2 = "访问:" + item.getVisit_num();
|
||||
SpannableString spannableString2 = new SpannableString(concernText2);
|
||||
// 设置关注数字部分的颜色为黑色
|
||||
spannableString2.setSpan(new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.black)), 2, concernText2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tv_fw.setText(spannableString2);
|
||||
|
||||
rl_mx.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// TODO: 跳转到房间详情页面
|
||||
if (item.getApply_status().equals("1")) {
|
||||
queren(itemView.getContext());
|
||||
return;
|
||||
}
|
||||
if (myRoomActivity != null)
|
||||
myRoomActivity.isShowLoading(true);
|
||||
// startActivity(new Intent(getContext(), RoomDetailsActivity.class));
|
||||
ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
|
||||
}
|
||||
});
|
||||
cl_my_room_list.setOnClickListener(new View.OnClickListener() {//跳转房间
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (item.getApply_status().equals("1")) {
|
||||
queren(itemView.getContext());
|
||||
return;
|
||||
}
|
||||
if (myRoomActivity != null)
|
||||
myRoomActivity.isShowLoading(true);
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
|
||||
|
||||
// TODO: 跳转到房间
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
|
||||
}
|
||||
});
|
||||
tv_room_bt.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {//房间补贴
|
||||
if (item.getApply_status().equals("1")) {
|
||||
queren(itemView.getContext());
|
||||
return;
|
||||
}
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
|
||||
}
|
||||
});
|
||||
|
||||
if (item.getApply_status().equals("2")) {
|
||||
im_sh.setVisibility(View.GONE);
|
||||
} else if (item.getApply_status().equals("1")) {
|
||||
im_sh.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(rl_mx, itemView.getContext().getColor(com.xscm.moduleutil.R.color.color6c49e25), 53);
|
||||
rl_mx.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(tv_room_bt, itemView.getContext().getColor(com.xscm.moduleutil.R.color.colorCDEB52E), 53);
|
||||
tv_room_bt.setTextColor(ContextCompat.getColor(itemView.getContext(), com.xscm.moduleutil.R.color.colorC58600));
|
||||
}
|
||||
}
|
||||
|
||||
private static void queren(Context context) {
|
||||
// 创建并显示确认对话框
|
||||
new ConfirmDialog(context,
|
||||
"温馨提示",
|
||||
"您创建的房间正在审核中,请耐心等待或联系人工客服解决处理",
|
||||
"知道了",
|
||||
"",
|
||||
v -> {
|
||||
// 点击“确认”按钮时执行删除操作
|
||||
},
|
||||
v -> {
|
||||
// 点击“取消”按钮时什么都不做
|
||||
}, false, 0).show();
|
||||
}
|
||||
|
||||
static class RelationViewTimHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
ConstraintLayout cl_my_room_list;
|
||||
GifAvatarOvalView user_avatar1, user_avatar2;
|
||||
TextView tv_gx, tv_name, tv_sy, tv_user_id, room_head_top2, room_head_top3, rl_mx, tv_time;
|
||||
ImageView iv_play;
|
||||
private MyRoomActivity myRoomActivity;
|
||||
RelationViewTimHolder(MyRoomActivity myRoomActivity ,View itemView) {
|
||||
super(itemView);
|
||||
this.myRoomActivity = myRoomActivity;
|
||||
cl_my_room_list = itemView.findViewById(R.id.cl_my_room_list);
|
||||
user_avatar1 = itemView.findViewById(R.id.user_avatar1);
|
||||
user_avatar2 = itemView.findViewById(R.id.user_avatar2);
|
||||
tv_gx = itemView.findViewById(R.id.tv_gx);
|
||||
iv_play = itemView.findViewById(R.id.iv_play);
|
||||
tv_name = itemView.findViewById(R.id.tv_name);
|
||||
tv_sy = itemView.findViewById(R.id.tv_sy);
|
||||
tv_user_id = itemView.findViewById(R.id.tv_user_id);
|
||||
room_head_top2 = itemView.findViewById(R.id.room_head_top2);
|
||||
room_head_top3 = itemView.findViewById(R.id.room_head_top3);
|
||||
rl_mx = itemView.findViewById(R.id.rl_mx);
|
||||
tv_time = itemView.findViewById(R.id.tv_time);
|
||||
}
|
||||
|
||||
void bind(MyCpRoom item) {
|
||||
ImageUtils.loadImageView(item.getUser1_avatar(), user_avatar1);
|
||||
ImageUtils.loadImageView(item.getUser2_avatar(), user_avatar2);
|
||||
tv_gx.setText(item.getRelation());
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_sy.setText(item.getEarnings() + "");
|
||||
tv_user_id.setText("ID: " + item.getRoom_number());
|
||||
// room_head_top2.setText();
|
||||
tv_time.setText(formatTimestampToDaysHours(Long.parseLong(item.getEnd_time())));
|
||||
rl_mx.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
if (myRoomActivity != null){
|
||||
myRoomActivity.isShowLoading(true);
|
||||
}
|
||||
|
||||
// TODO: 跳转到房间详情页面
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
|
||||
|
||||
// startActivity(new Intent(getContext(), RoomDetailsActivity.class));
|
||||
// ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
|
||||
}
|
||||
});
|
||||
cl_my_room_list.setOnClickListener(new View.OnClickListener() {//跳转房间
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (myRoomActivity != null){
|
||||
myRoomActivity.isShowLoading(true);
|
||||
}
|
||||
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
|
||||
|
||||
// TODO: 跳转到房间
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
|
||||
}
|
||||
});
|
||||
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(rl_mx, itemView.getContext().getColor(com.xscm.moduleutil.R.color.color6c49e25), 53);
|
||||
rl_mx.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
|
||||
}
|
||||
}
|
||||
|
||||
public static String formatTimestampToDaysHours(long timestamp) {
|
||||
// 获取当前时间戳(秒)
|
||||
long currentTimestamp = System.currentTimeMillis() / 1000;
|
||||
|
||||
// 计算时间差(秒)
|
||||
long timeDifferenceSeconds = Math.abs(currentTimestamp - timestamp);
|
||||
|
||||
// 转换为天数和小时数
|
||||
long days = timeDifferenceSeconds / (24 * 60 * 60);
|
||||
long remainingSecondsAfterDays = timeDifferenceSeconds % (24 * 60 * 60);
|
||||
long hours = remainingSecondsAfterDays / (60 * 60);
|
||||
|
||||
return days + "天 " + hours + "小时";
|
||||
}
|
||||
|
||||
static class GiftViewHolder extends RecyclerView.ViewHolder {
|
||||
RoundedImageView iv_follow_bg;
|
||||
ImageView iv_type, iv_play;
|
||||
TextView tv_name, tv_num;
|
||||
ConstraintLayout rl_root;
|
||||
|
||||
private MyRoomActivity roomActivity;
|
||||
GiftViewHolder(MyRoomActivity roomActivity, View itemView) {
|
||||
super(itemView);
|
||||
this.roomActivity = roomActivity;
|
||||
iv_follow_bg = itemView.findViewById(R.id.iv_follow_bg);
|
||||
iv_type = itemView.findViewById(R.id.iv_type);
|
||||
tv_name = itemView.findViewById(R.id.tv_name);
|
||||
iv_play = itemView.findViewById(R.id.iv_play);
|
||||
tv_num = itemView.findViewById(R.id.tv_num);
|
||||
rl_root = itemView.findViewById(R.id.rl_root);
|
||||
}
|
||||
|
||||
void bind(MyFootResp item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), iv_follow_bg);
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), iv_type);
|
||||
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_num.setText(item.getHot_value());
|
||||
|
||||
rl_root.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (roomActivity != null){
|
||||
roomActivity.isShowLoading(true);
|
||||
}
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() + "", "",null);
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.RoomAutionTimeBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PkTimeAdapter extends BaseQuickAdapter<RoomAutionTimeBean, BaseViewHolder> {
|
||||
private int selectedRelationPosition = -1;
|
||||
private List<RoomAutionTimeBean> viewItems = new ArrayList<>();
|
||||
public PkTimeAdapter() {
|
||||
super(R.layout.item_relation);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomAutionTimeBean item) {
|
||||
TextView relationName = helper.getView(R.id.tv_name);
|
||||
relationName.setText( item.getDays()+"分钟");
|
||||
|
||||
if (item.isSelected()) {
|
||||
relationName.setBackground(helper.itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.pk_time_t));
|
||||
relationName.setTextColor(helper.itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
|
||||
} else {
|
||||
relationName.setBackground(helper.itemView.getResources().getDrawable(com.xscm.moduleutil.R.mipmap.pk_time_f));
|
||||
relationName.setTextColor(helper.itemView.getResources().getColor(com.xscm.moduleutil.R.color.color_FF333333));
|
||||
}
|
||||
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
int currentPosition = helper.getLayoutPosition();
|
||||
if (selectedRelationPosition == currentPosition) return; // 避免重复点击
|
||||
|
||||
if (selectedRelationPosition != -1) {
|
||||
getData().get(selectedRelationPosition).setSelected(false);
|
||||
notifyItemChanged(selectedRelationPosition);
|
||||
}
|
||||
|
||||
item.setSelected(true);
|
||||
selectedRelationPosition = currentPosition;
|
||||
notifyItemChanged(currentPosition);
|
||||
});
|
||||
}
|
||||
|
||||
public RoomAutionTimeBean getSelectedTime() {
|
||||
if (selectedRelationPosition != -1 && selectedRelationPosition < getData().size()) {
|
||||
return getData().get(selectedRelationPosition);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,598 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.blankj.utilcode.util.SpanUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.room.contacts.PlaceholderContacts;
|
||||
import com.xscm.modulemain.activity.room.presenter.PlaceholderPresenter;
|
||||
import com.xscm.modulemain.databinding.FragmentRankingListBinding;
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||
import com.xscm.moduleutil.bean.PlaceholderBean;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.StringUtil;
|
||||
import com.xscm.moduleutil.widget.CommonEmptyView;
|
||||
import com.xscm.moduleutil.widget.GifAvatarOvalView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author qx
|
||||
* @data 2025/7/11
|
||||
* @description: 榜单
|
||||
*/
|
||||
public class PlaceholderFragment extends BaseMvpFragment<PlaceholderPresenter,
|
||||
FragmentRankingListBinding> implements PlaceholderContacts.View {
|
||||
private int index;
|
||||
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||
private TextView tvDay, tvWeek, tvMonth;
|
||||
private String currentType = "日榜"; // 默认选中日榜
|
||||
private BaseQuickAdapter<PlaceholderBean.ListsBean, BaseViewHolder> mAdapter;
|
||||
|
||||
public static PlaceholderFragment newInstance(int index) {
|
||||
PlaceholderFragment fragment = new PlaceholderFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(ARG_SECTION_NUMBER, index);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
index = getArguments().getInt(ARG_SECTION_NUMBER);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PlaceholderPresenter bindPresenter() {
|
||||
return new PlaceholderPresenter(this, getActivity());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
private void setVisdisplay(boolean isVisible) {
|
||||
mBinding.includeTopBar.imUser1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvXing1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvName1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvId1.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.imUser2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvXing2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvName2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvId2.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.imUser3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvXing3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvName3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvId3.setVisibility(isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.ivOneCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.ivOneCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.imCp1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpXing1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName1.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName12.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
|
||||
mBinding.includeTopBar.ivSecondCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.ivSecondCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.imCp2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpXing2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName2.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName22.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.ivThreeCp1Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.ivThreeCp2Head.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.imCp3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpXing3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName3.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
mBinding.includeTopBar.tvCpName32.setVisibility(!isVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
tvDay = mBinding.tvDay;
|
||||
tvWeek = mBinding.tvWeek;
|
||||
tvMonth = mBinding.tvMonth;
|
||||
|
||||
// 设置点击事件
|
||||
tvDay.setOnClickListener(v -> switchTab("日榜"));
|
||||
tvWeek.setOnClickListener(v -> switchTab("周榜"));
|
||||
tvMonth.setOnClickListener(v -> switchTab("月榜"));
|
||||
|
||||
// 默认加载日榜数据
|
||||
loadRankingData("日榜");
|
||||
|
||||
// ShadowLayout slMy = mBinding.includeTopBar.slMy;
|
||||
// RelativeLayout r11 = mBinding.includeTopBar.r11;
|
||||
// RelativeLayout r12 = mBinding.includeTopBar.r12;
|
||||
// RelativeLayout r21 = mBinding.includeTopBar.r21;
|
||||
// RelativeLayout r22 = mBinding.includeTopBar.r22;
|
||||
// RelativeLayout r31 = mBinding.includeTopBar.r31;
|
||||
// RelativeLayout r32 = mBinding.includeTopBar.r32;
|
||||
RelativeLayout rlMy = mBinding.includeTopBar.rlMy;
|
||||
RelativeLayout rlMyCp = mBinding.includeTopBar.rlMyCp;
|
||||
RecyclerView recycleView = mBinding.includeTopBar.recycleView;
|
||||
|
||||
if (index == 0) {
|
||||
// slMy.setShadowColor(Color.parseColor("#618F6FFF"));
|
||||
// r11.setVisibility(View.VISIBLE);
|
||||
// r12.setVisibility(View.GONE);
|
||||
// r21.setVisibility(View.VISIBLE);
|
||||
// r22.setVisibility(View.GONE);
|
||||
// r31.setVisibility(View.VISIBLE);
|
||||
// r32.setVisibility(View.GONE);
|
||||
rlMy.setVisibility(View.VISIBLE);
|
||||
rlMyCp.setVisibility(View.GONE);
|
||||
setVisdisplay( true);
|
||||
} else if (index == 1) {
|
||||
// r11.setVisibility(View.VISIBLE);
|
||||
// r12.setVisibility(View.GONE);
|
||||
// r21.setVisibility(View.VISIBLE);
|
||||
// r22.setVisibility(View.GONE);
|
||||
// r31.setVisibility(View.VISIBLE);
|
||||
// r32.setVisibility(View.GONE);
|
||||
rlMy.setVisibility(View.VISIBLE);
|
||||
rlMyCp.setVisibility(View.GONE);
|
||||
setVisdisplay( true);
|
||||
// slMy.setShadowColor(Color.parseColor("#70F7B500"));
|
||||
} else if (index == 2) {
|
||||
// r11.setVisibility(View.VISIBLE);
|
||||
// r12.setVisibility(View.GONE);
|
||||
// r21.setVisibility(View.VISIBLE);
|
||||
// r22.setVisibility(View.GONE);
|
||||
// r31.setVisibility(View.VISIBLE);
|
||||
// r32.setVisibility(View.GONE);
|
||||
rlMy.setVisibility(View.VISIBLE);
|
||||
rlMyCp.setVisibility(View.GONE);
|
||||
setVisdisplay( true);
|
||||
// slMy.setShadowColor(Color.parseColor("#7AFE969D"));
|
||||
}else if (index == 3){
|
||||
// r11.setVisibility(View.GONE);
|
||||
// r12.setVisibility(View.VISIBLE);
|
||||
// r21.setVisibility(View.GONE);
|
||||
// r22.setVisibility(View.VISIBLE);
|
||||
// r31.setVisibility(View.GONE);
|
||||
// r32.setVisibility(View.VISIBLE);
|
||||
rlMy.setVisibility(View.GONE);
|
||||
rlMyCp.setVisibility(View.VISIBLE);
|
||||
setVisdisplay(false);
|
||||
}
|
||||
|
||||
// else if (index == 3) {
|
||||
// r11.setVisibility(View.VISIBLE);
|
||||
// r12.setVisibility(View.GONE);
|
||||
// r21.setVisibility(View.VISIBLE);
|
||||
// r22.setVisibility(View.GONE);
|
||||
// r31.setVisibility(View.VISIBLE);
|
||||
// r32.setVisibility(View.GONE);
|
||||
// rlMy.setVisibility(View.VISIBLE);
|
||||
// rlMyCp.setVisibility(View.GONE);
|
||||
// slMy.setShadowColor(Color.parseColor("#7AFE969D"));
|
||||
// } else if (index == 4) {
|
||||
// r11.setVisibility(View.GONE);
|
||||
// r12.setVisibility(View.VISIBLE);
|
||||
// r21.setVisibility(View.GONE);
|
||||
// r22.setVisibility(View.VISIBLE);
|
||||
// r31.setVisibility(View.GONE);
|
||||
// r32.setVisibility(View.VISIBLE);
|
||||
// rlMy.setVisibility(View.GONE);
|
||||
// rlMyCp.setVisibility(View.VISIBLE);
|
||||
// }
|
||||
|
||||
recycleView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
mAdapter = new BaseQuickAdapter<PlaceholderBean.ListsBean, BaseViewHolder>(R.layout.index_rv_item_ranking_list) {
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, PlaceholderBean.ListsBean item) {
|
||||
helper.setText(R.id.tv_charm, StringUtil.toWan2(item.getTotal(),1));
|
||||
ConstraintLayout rl = helper.getView(R.id.r_3_2);
|
||||
if (index == 0) {
|
||||
rl.setVisibility(View.GONE);
|
||||
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
|
||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.riv_avatar));
|
||||
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
|
||||
} else if (index == 3) {
|
||||
rl.setVisibility(View.VISIBLE);
|
||||
helper.getView(R.id.riv_avatar).setVisibility(View.GONE);
|
||||
ImageUtils.loadHeadCC(item.getUser_avatar(), helper.getView(R.id.iv_three_cp1_head));
|
||||
ImageUtils.loadHeadCC(item.getUser_avatar1(), helper.getView(R.id.iv_three_cp2_head));
|
||||
|
||||
// helper.setText(R.id.tv_charm, item.getNumber());
|
||||
helper.setText(R.id.tv_name, item.getNickname());
|
||||
helper.setVisible( R.id.tv_cp_name,true).setText(R.id.tv_cp_name, item.getNickname1());
|
||||
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
|
||||
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setTextColor(!TextUtils.isEmpty(item.getId_color()) ? Color.parseColor(item.getId_color()) : getResources().getColor(R.color.color_FF333333));
|
||||
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list)).setText(item.getNickname2());
|
||||
} else if (index == 1 || index == 2) {
|
||||
rl.setVisibility(View.GONE);
|
||||
helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
|
||||
helper.setText(R.id.tv_name, item.getNickname());
|
||||
helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.riv_avatar));
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// if (type == RankingFragment.TYPE_WEALTH) {
|
||||
// return;
|
||||
// }
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
// else if (index == 3) {
|
||||
// rl.setVisibility(View.GONE);
|
||||
// helper.getView(R.id.riv_avatar).setVisibility(View.VISIBLE);
|
||||
// helper.setText(R.id.tv_name, item.getGuild_name());
|
||||
// ImageUtils.loadHeadCC(item.getCover(), helper.getView(R.id.riv_avatar));
|
||||
// helper.setText(R.id.tv_no, String.valueOf(item.getRank()));
|
||||
// }
|
||||
}
|
||||
};
|
||||
recycleView.setAdapter(mAdapter);
|
||||
mAdapter.bindToRecyclerView(recycleView);
|
||||
CommonEmptyView commonEmptyView = new CommonEmptyView(getContext());
|
||||
commonEmptyView.setEmptyText("暂无上榜");
|
||||
mAdapter.setEmptyView(commonEmptyView);
|
||||
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay, ColorManager.getInstance().getPrimaryColorInt(), 79);
|
||||
// tvDay.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
switchTab("日榜");
|
||||
}
|
||||
|
||||
private void switchTab(String type) {
|
||||
if (currentType.equals(type)) return; // 避免重复点击
|
||||
// 更新 UI 状态
|
||||
updateTabState(type);
|
||||
// 请求对应榜单数据
|
||||
loadRankingData(type);
|
||||
}
|
||||
|
||||
private void loadRankingData(String type) {
|
||||
// 调用 Presenter 获取对应榜单的数据
|
||||
if (type.equals("日榜")) {
|
||||
MvpPre.wealthRanking(index + "", "1");
|
||||
} else if (type.equals("周榜")) {
|
||||
MvpPre.wealthRanking(index + "", "2");
|
||||
} else if (type.equals("月榜")) {
|
||||
MvpPre.wealthRanking(index + "", "3");
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTabState(String selectedType) {
|
||||
currentType = selectedType;
|
||||
// if (selectedType.equals("日榜")) {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay, ColorManager.getInstance().getPrimaryColorInt(), 79);
|
||||
// tvDay.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
// } else {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvDay,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
|
||||
// tvDay.setTextColor(Color.parseColor("#FF333333"));
|
||||
// }
|
||||
// if (selectedType.equals("周榜")) {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvWeek, ColorManager.getInstance().getPrimaryColorInt(), 79);
|
||||
// tvWeek.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
// }else {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvWeek,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
|
||||
// tvWeek.setTextColor(Color.parseColor("#FF333333"));
|
||||
// }
|
||||
// if (selectedType.equals("月榜")) {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvMonth, ColorManager.getInstance().getPrimaryColorInt(), 79);
|
||||
// tvMonth.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
// }else {
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(tvMonth,com.xscm.moduleutil.R.color.color_0DFFB9, 79);
|
||||
// tvMonth.setTextColor(Color.parseColor("#FF333333"));
|
||||
// }
|
||||
int selectedColor = ContextCompat.getColor(getContext(), android.R.color.white);
|
||||
int unselectedColor = ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.white); // 确保这个颜色在资源文件中定义
|
||||
|
||||
tvDay.setBackgroundResource(selectedType.equals("日榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele : com.xscm.moduleutil.R.mipmap.text_ranking_ud);
|
||||
tvDay.setTextColor(selectedType.equals("日榜") ? selectedColor : unselectedColor);
|
||||
|
||||
tvWeek.setBackgroundResource(selectedType.equals("周榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele: com.xscm.moduleutil.R.mipmap.text_ranking_ud);
|
||||
tvWeek.setTextColor(selectedType.equals("周榜") ? selectedColor : unselectedColor);
|
||||
|
||||
tvMonth.setBackgroundResource(selectedType.equals("月榜") ? com.xscm.moduleutil.R.mipmap.text_ranking_sele : com.xscm.moduleutil.R.mipmap.text_ranking_ud);
|
||||
tvMonth.setTextColor(selectedType.equals("月榜") ? selectedColor : unselectedColor);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.fragment_ranking_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void wealthRanking(PlaceholderBean.MyRanking data) {
|
||||
if (data != null) {
|
||||
if (index == 3) {
|
||||
GifAvatarOvalView cp1Head = mBinding.includeTopBar.ivMyCp1Head;
|
||||
GifAvatarOvalView cp2Head = mBinding.includeTopBar.ivMyCp2Head;
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar(), cp1Head);
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar1(), cp2Head);
|
||||
TextView tv_my_name = mBinding.includeTopBar.tvMyName;
|
||||
TextView tvid = mBinding.includeTopBar.tvMyId;
|
||||
tv_my_name.setText(data.getNickname());
|
||||
tvid.setText(data.getUser_code());
|
||||
|
||||
} else {
|
||||
TextView tvName = mBinding.includeTopBar.tvName;
|
||||
GifAvatarOvalView riv = mBinding.includeTopBar.riv;
|
||||
if (index == 0) {
|
||||
tvName.setText(data.getRoom_name());
|
||||
ImageUtils.loadHeadCC(data.getRoom_cover(), riv);
|
||||
}
|
||||
|
||||
// else if (index == 3) {
|
||||
// tvName.setText(data.getGuild_name());
|
||||
// ImageUtils.loadHeadCC(data.getCover(), riv);
|
||||
// }
|
||||
|
||||
else {
|
||||
tvName.setText(data.getNickname());
|
||||
ImageUtils.loadHeadCC(data.getAvatar(), riv);
|
||||
}
|
||||
|
||||
riv.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", myInfo.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
TextView tvCharm = mBinding.includeTopBar.tvCharm;
|
||||
TextView tvRankState = mBinding.includeTopBar.tvRankState;
|
||||
TextView tvRankNo = mBinding.includeTopBar.tvRankNo;
|
||||
|
||||
tvCharm.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
if (data.getRank().equals("-1")) {
|
||||
tvRankState.setText("暂未上榜");
|
||||
tvRankNo.setText(new SpanUtils().append("距上榜差 ").append(data.getDiff() + "").setBold().setForegroundColor(Color.parseColor("#FFFF8ACC")).setFontSize(12, true).create());
|
||||
} else {
|
||||
if (data.getRank().equals("1")) {
|
||||
tvRankState.setText("第1名");
|
||||
tvRankNo.setText("继续加油哦~");
|
||||
} else {
|
||||
tvRankState.setText(String.format("第%s名", data.getRank()));
|
||||
tvRankNo.setText(new SpanUtils().append("距上一名差 ").append(data.getDiff() + "").setBold().setForegroundColor(Color.parseColor("#FFFF8ACC")).setFontSize(12, true).create());
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNo1(PlaceholderBean.ListsBean data, String type) {
|
||||
TextView tvUsername1 = mBinding.includeTopBar.tvName1;
|
||||
// BeautifulNameView beautifulViewFirst = mBinding.includeTopBar.beautifulViewFirst;
|
||||
TextView tvXing1 = mBinding.includeTopBar.tvXing1;
|
||||
GifAvatarOvalView imUser1 = mBinding.includeTopBar.imUser1;
|
||||
// ImageView imVip1 = mBinding.includeTopBar.ivVip1;
|
||||
// ImageView imLevel1 = mBinding.includeTopBar.ivLevel1;
|
||||
TextView tvId1 = mBinding.includeTopBar.tvId1;
|
||||
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivOneCp1Head;
|
||||
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivOneCp2Head;
|
||||
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing1;
|
||||
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName1;
|
||||
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName12;
|
||||
|
||||
|
||||
|
||||
if (data == null) {
|
||||
// 设置默认值或清空内容
|
||||
tvUsername1.setText("");
|
||||
// beautifulViewFirst.setText("");
|
||||
tvXing1.setText("");
|
||||
imUser1.setImageResource(0); // 设置默认图片资源
|
||||
// imVip1.setImageResource(0); // 设置默认图片资源
|
||||
// imLevel1.setImageResource(0); // 设置默认图片资源
|
||||
tvId1.setText("");
|
||||
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
|
||||
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
|
||||
tv_cp_xing1.setText("");
|
||||
tv_cp_name1.setText("");
|
||||
tv_cp_name2.setText("");
|
||||
return;
|
||||
}
|
||||
tvXing1.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tvXing1.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
|
||||
if (type.equals("0")) {
|
||||
tvUsername1.setText(data.getRoom_name());
|
||||
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser1);
|
||||
tvId1.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
|
||||
imUser1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
} else if (type.equals("1") || type.equals("2")) {
|
||||
tvUsername1.setText(data.getNickname());
|
||||
ImageUtils.loadHeadCC(data.getAvatar(), imUser1);
|
||||
tvId1.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
|
||||
imUser1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
// else if (type.equals("3")) {
|
||||
// tvUsername1.setText(data.getGuild_name());
|
||||
// ImageUtils.loadHeadCC(data.getCover(), imUser1);
|
||||
// tvId1.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
|
||||
// }
|
||||
else {
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp1Hhead);
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp2Hhead);
|
||||
tvUsername1.setText(data.getNickname());
|
||||
tvId1.setText(data.getNickname1());
|
||||
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tv_cp_name1.setText(data.getNickname());
|
||||
tv_cp_name2.setText(data.getNickname1());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNo2(PlaceholderBean.ListsBean data, String type) {
|
||||
TextView tvUsername2 = mBinding.includeTopBar.tvName2;
|
||||
// BeautifulNameView beautifulViewSecond = mBinding.includeTopBar.beautifulViewSecond;
|
||||
TextView tvXing2 = mBinding.includeTopBar.tvXing2;
|
||||
GifAvatarOvalView imUser2 = mBinding.includeTopBar.imUser2;
|
||||
// ImageView imVip2 = mBinding.includeTopBar.ivVip2;
|
||||
// ImageView imLevel2 = mBinding.includeTopBar.ivLevel2;
|
||||
TextView tvId2 = mBinding.includeTopBar.tvId2;
|
||||
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivSecondCp1Head;
|
||||
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivSecondCp2Head;
|
||||
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing2;
|
||||
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName2;
|
||||
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName22;
|
||||
if (data == null) {
|
||||
tvUsername2.setText("");
|
||||
// beautifulViewSecond.setText("");
|
||||
tvXing2.setText("");
|
||||
imUser2.setImageResource(0); // 设置默认图片资源
|
||||
// imVip2.setImageResource(0); // 设置默认图片资源
|
||||
// imLevel2.setImageResource(0); // 设置默认图片资源
|
||||
tvId2.setText("");
|
||||
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
|
||||
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
|
||||
tv_cp_xing1.setText("");
|
||||
tv_cp_name1.setText("");
|
||||
tv_cp_name2.setText("");
|
||||
return;
|
||||
}
|
||||
tvXing2.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tvXing2.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
|
||||
if (type.equals("0")) {
|
||||
tvUsername2.setText(data.getRoom_name());
|
||||
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser2);
|
||||
tvId2.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
|
||||
} else if (type.equals("1") || type.equals("2")) {
|
||||
tvUsername2.setText(data.getNickname());
|
||||
ImageUtils.loadHeadCC(data.getAvatar(), imUser2);
|
||||
tvId2.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
|
||||
imUser2.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
// else if (type.equals("3")) {
|
||||
// tvUsername2.setText(data.getGuild_name());
|
||||
// ImageUtils.loadHeadCC(data.getCover(), imUser2);
|
||||
// tvId2.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
|
||||
// }
|
||||
else {
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp1Hhead);
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar1(), ivOneCp2Hhead);
|
||||
tvUsername2.setText(data.getNickname());
|
||||
tvId2.setText(data.getNickname1());
|
||||
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tv_cp_name1.setText(data.getNickname());
|
||||
tv_cp_name2.setText(data.getNickname1());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNo3(PlaceholderBean.ListsBean data, String type) {
|
||||
TextView tvUsername3 = mBinding.includeTopBar.tvName3;
|
||||
// BeautifulNameView beautifulViewThird = mBinding.includeTopBar.beautifulViewThird;
|
||||
TextView tvXing3 = mBinding.includeTopBar.tvXing3;
|
||||
GifAvatarOvalView imUser3 = mBinding.includeTopBar.imUser3;
|
||||
// ImageView imVip3 = mBinding.includeTopBar.ivVip3;
|
||||
// ImageView imLevel3 = mBinding.includeTopBar.ivLevel3;
|
||||
TextView tvId3 = mBinding.includeTopBar.tvId3;
|
||||
GifAvatarOvalView ivOneCp1Hhead = mBinding.includeTopBar.ivSecondCp1Head;
|
||||
GifAvatarOvalView ivOneCp2Hhead = mBinding.includeTopBar.ivSecondCp2Head;
|
||||
TextView tv_cp_xing1=mBinding.includeTopBar.tvCpXing3;
|
||||
TextView tv_cp_name1=mBinding.includeTopBar.tvCpName3;
|
||||
TextView tv_cp_name2=mBinding.includeTopBar.tvCpName32;
|
||||
if (data == null) {
|
||||
tvUsername3.setText("");
|
||||
// beautifulViewThird.setText("");
|
||||
tvXing3.setText("");
|
||||
imUser3.setImageResource(0); // 设置默认图片资源
|
||||
// imVip3.setImageResource(0); // 设置默认图片资源
|
||||
// imLevel3.setImageResource(0); // 设置默认图片资源
|
||||
tvId3.setText("");
|
||||
ivOneCp1Hhead.setImageResource(0); // 设置默认图片资源
|
||||
ivOneCp2Hhead.setImageResource(0); // 设置默认图片资源
|
||||
tv_cp_xing1.setText("");
|
||||
tv_cp_name1.setText("");
|
||||
tv_cp_name2.setText("");
|
||||
return;
|
||||
}
|
||||
tvXing3.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tvXing3.setBackgroundResource(type.equals("3") ? com.xscm.moduleutil.R.mipmap.ranking_za_hr :com.xscm.moduleutil.R.mipmap.ranking_hr);
|
||||
if (type.equals("0")) {
|
||||
tvUsername3.setText(data.getRoom_name());
|
||||
ImageUtils.loadHeadCC(data.getRoom_cover(), imUser3);
|
||||
tvId3.setText(data.getRoom_number() != null ? "ID:" + data.getRoom_number() : "");
|
||||
} else if (type.equals("1") || type.equals("2")) {
|
||||
tvUsername3.setText(data.getNickname());
|
||||
ImageUtils.loadHeadCC(data.getAvatar(), imUser3);
|
||||
tvId3.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
|
||||
imUser3.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", listsBean.getUser_id()).navigation();
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
// else if (type.equals("3")) {
|
||||
// tvUsername3.setText(data.getGuild_name());
|
||||
// ImageUtils.loadHeadCC(data.getCover(), imUser3);
|
||||
// tvId3.setText(data.getGuild_special_id() != null ? "ID:" + data.getGuild_special_id() : "");
|
||||
// }
|
||||
else {
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp1Hhead);
|
||||
ImageUtils.loadHeadCC(data.getUser_avatar(), ivOneCp2Hhead);
|
||||
tvUsername3.setText(data.getNickname());
|
||||
tvId3.setText(data.getNickname1());
|
||||
tv_cp_xing1.setText(StringUtil.toWan2(data.getTotal(),1));
|
||||
tv_cp_name1.setText(data.getNickname());
|
||||
tv_cp_name2.setText(data.getNickname1());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setList(List<PlaceholderBean.ListsBean> list) {
|
||||
if (list == null) {
|
||||
// 如果传入的数据为null,清空Adapter的数据
|
||||
mAdapter.getData().clear();
|
||||
mAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
// 如果传入的数据不为null,设置Adapter的数据
|
||||
mAdapter.setNewData(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
* com.xscm.modulemain.activity
|
||||
* qx
|
||||
* 2025/10/24
|
||||
*/
|
||||
public class PopularRoomAdapter extends BaseQuickAdapter<TopRoom, BaseViewHolder> {
|
||||
|
||||
public interface OnRoomClickListener {
|
||||
void onRoomClick(TopRoom room, int position);
|
||||
}
|
||||
|
||||
// 声明监听器实例
|
||||
private OnRoomClickListener mOnRoomClickListener;
|
||||
|
||||
public PopularRoomAdapter() {
|
||||
super(R.layout.item_popular_room);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, TopRoom item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
|
||||
TextView tv_name = helper.getView(R.id.tv_name);
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_name.setSelected(true);
|
||||
|
||||
ImageView iv = helper.getView(R.id.iv_play);
|
||||
if (item.getUser_list()!=null && item.getUser_list().size() > 0) {
|
||||
iv.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
iv.setVisibility(GONE);
|
||||
}
|
||||
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value())));
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// 如果外部设置了监听器,则触发外部监听器
|
||||
if (mOnRoomClickListener != null) {
|
||||
mOnRoomClickListener.onRoomClick(item, helper.getAdapterPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
private String formatHotValue(int hotValue) {
|
||||
if (hotValue > 10000) {
|
||||
return String.format("%.1fw", hotValue / 10000.0);
|
||||
} else {
|
||||
return String.valueOf(hotValue);
|
||||
}
|
||||
}
|
||||
// 提供设置监听器的方法
|
||||
public void setOnRoomClickListener(OnRoomClickListener listener) {
|
||||
this.mOnRoomClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
// ImageView imageView = holder.getView(R.id.riv);
|
||||
// if (imageView != null) {
|
||||
// imageView.setImageDrawable(null);
|
||||
// Glide.with(imageView.getContext()).clear(imageView);
|
||||
// }
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.room.RoomAuction;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RankingAutcionAdapter extends BaseQuickAdapter<RoomAuction.AuctionListBean, BaseViewHolder> {
|
||||
|
||||
private static String GG = "0";
|
||||
private static String MM = "1";
|
||||
|
||||
public RankingAutcionAdapter() {
|
||||
super(R.layout.item_ranking_auction);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
ImageView ivEmoji = holder.getView(R.id.room_item_head);
|
||||
ImageView ivGrade = holder.getView(R.id.room_item_grade);
|
||||
ImageView ivNobility = holder.getView(R.id.room_item_rank);
|
||||
if (ivEmoji != null) {
|
||||
ivEmoji.setImageDrawable(null);
|
||||
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
|
||||
}
|
||||
if (ivGrade != null) {
|
||||
ivGrade.setImageDrawable(null);
|
||||
Glide.with(ivGrade.getContext()).clear(ivGrade);
|
||||
}
|
||||
if (ivNobility != null) {
|
||||
ivNobility.setImageDrawable(null);
|
||||
Glide.with(ivNobility.getContext()).clear(ivNobility);
|
||||
}
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomAuction.AuctionListBean item) {
|
||||
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
|
||||
helper.setText(R.id.room_item_name, item.getNickname());
|
||||
helper.setText(R.id.room_item_pop, item.getGift_prices());
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.room_item_head));
|
||||
helper.addOnClickListener(R.id.room_item_head);
|
||||
|
||||
LinearLayout llContainer =helper.getView(R.id.lli);
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView1 = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1);
|
||||
|
||||
llContainer.addView(imageView1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.CharmRankingResp;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.StringUtil;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/7/16
|
||||
*@description: 房间榜单适配器
|
||||
*/
|
||||
public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp, BaseViewHolder> {
|
||||
|
||||
private static String GG = "0";
|
||||
private static String MM = "1";
|
||||
|
||||
public RankingCharmListAdapter() {
|
||||
super(R.layout.room_rv_item_ranking_rich);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, CharmRankingResp item) {
|
||||
//数据绑定赋值
|
||||
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
|
||||
helper.setText(R.id.room_item_name, item.getNickname());
|
||||
helper.setText(R.id.room_item_pop, StringUtil.toWan2(item.getTotal(),2));
|
||||
// if (GG.equals(item.getSex())) {
|
||||
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_gg_sr);
|
||||
// } else {
|
||||
// helper.setBackgroundRes(R.id.room_item_pop, R.mipmap.room_bg_wheat_charm_mm_sr);
|
||||
// }
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.room_item_head));
|
||||
// if (TextUtils.isEmpty(nobility)) {
|
||||
// helper.getView(R.id.room_item_grade).setVisibility(View.GONE);
|
||||
// } else {
|
||||
// helper.getView(R.id.room_item_grade).setVisibility(View.VISIBLE);
|
||||
// }
|
||||
// if (TextUtils.isEmpty(status)) {
|
||||
// helper.getView(R.id.room_item_rank).setVisibility(View.GONE);
|
||||
// } else {
|
||||
// helper.getView(R.id.room_item_rank).setVisibility(View.VISIBLE);
|
||||
// }
|
||||
// TextView textView = helper.getView(R.id.room_item_pop);
|
||||
// if (helper.getAdapterPosition() % 2 == 1) {
|
||||
// helper.getView(R.id.room_item_bg).setVisibility(View.GONE);//隔开隐藏背景
|
||||
// } else {
|
||||
// helper.getView(R.id.room_item_bg).setVisibility(View.VISIBLE);
|
||||
// }
|
||||
helper.addOnClickListener(R.id.room_item_head);
|
||||
LinearLayout ll = helper.getView(R.id.bnv_rank_list_rich);
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
ll.removeAllViews();
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView1 = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1);
|
||||
|
||||
ll.addView(imageView1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
ImageView ivEmoji = holder.getView(R.id.room_item_head);
|
||||
ImageView ivGrade = holder.getView(R.id.room_item_grade);
|
||||
ImageView ivNobility = holder.getView(R.id.room_item_rank);
|
||||
if (ivEmoji != null) {
|
||||
ivEmoji.setImageDrawable(null);
|
||||
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
|
||||
}
|
||||
if (ivGrade != null) {
|
||||
ivGrade.setImageDrawable(null);
|
||||
Glide.with(ivGrade.getContext()).clear(ivGrade);
|
||||
}
|
||||
if (ivNobility != null) {
|
||||
ivNobility.setImageDrawable(null);
|
||||
Glide.with(ivNobility.getContext()).clear(ivNobility);
|
||||
}
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.WealthRankingResp;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.logger.Logger;
|
||||
import com.xscm.moduleutil.widget.BeautifulNameView;
|
||||
|
||||
/**
|
||||
* 项目名称 qipao-android
|
||||
* 包名:com.qpyy.room.adapter
|
||||
* 创建人 黄强
|
||||
* 创建时间 2020/7/25 10:37
|
||||
* 描述 describe
|
||||
*/
|
||||
public class RankingWealthListAdapter extends BaseQuickAdapter<WealthRankingResp.ListsBean, BaseViewHolder> {
|
||||
|
||||
public RankingWealthListAdapter() {
|
||||
super(R.layout.room_rv_item_ranking_rich);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, WealthRankingResp.ListsBean item) {
|
||||
//数据绑定赋值
|
||||
helper.setText(R.id.room_item_seq, String.valueOf(helper.getAdapterPosition() + 4));//从第四个开始设置值
|
||||
helper.setText(R.id.room_item_name, item.getNickname());
|
||||
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setText(String.format(mContext.getResources().getString(R.string.common_id_formatter), item.getUser_code()));
|
||||
// ((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setTextColor(!TextUtils.isEmpty(item.getId_color()) ? Color.parseColor(item.getId_color()) : mContext.getResources().getColor(R.color.color_FFCCCCCC));
|
||||
((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setPlay(!TextUtils.isEmpty(item.getId_color()));
|
||||
((BeautifulNameView) helper.getView(R.id.bnv_rank_list_rich)).setImgVisible("1".equals(item.getGood_number()));
|
||||
helper.setText(R.id.room_item_pop, item.getNumber_format());
|
||||
ImageUtils.loadHeadCC(item.getHead_picture(), helper.getView(R.id.room_item_head));
|
||||
String nobility = item.getLevel_icon();//等级
|
||||
String status = item.getNobility_icon();//爵位
|
||||
ImageUtils.loadImageView(item.getNobility_icon(), helper.getView(R.id.room_item_rank));
|
||||
ImageUtils.loadImageView(item.getLevel_icon(), helper.getView(R.id.room_item_grade));
|
||||
if (TextUtils.isEmpty(nobility)) {
|
||||
helper.getView(R.id.room_item_grade).setVisibility(View.GONE);
|
||||
} else {
|
||||
helper.getView(R.id.room_item_grade).setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (TextUtils.isEmpty(status)) {
|
||||
helper.getView(R.id.room_item_rank).setVisibility(View.GONE);
|
||||
} else {
|
||||
helper.getView(R.id.room_item_rank).setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (helper.getAdapterPosition() % 2 == 1) {
|
||||
helper.getView(R.id.room_item_bg).setVisibility(View.GONE);//隔开隐藏背景
|
||||
} else {
|
||||
helper.getView(R.id.room_item_bg).setVisibility(View.VISIBLE);//隔开隐藏背景
|
||||
}
|
||||
helper.addOnClickListener(R.id.room_item_head);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
ImageView ivEmoji = holder.getView(R.id.room_item_head);
|
||||
ImageView ivGrade = holder.getView(R.id.room_item_grade);
|
||||
ImageView ivNobility = holder.getView(R.id.room_item_rank);
|
||||
if (ivEmoji != null) {
|
||||
ivEmoji.setImageDrawable(null);
|
||||
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
|
||||
}
|
||||
if (ivGrade != null) {
|
||||
ivGrade.setImageDrawable(null);
|
||||
Glide.with(ivGrade.getContext()).clear(ivGrade);
|
||||
}
|
||||
if (ivNobility != null) {
|
||||
ivNobility.setImageDrawable(null);
|
||||
Glide.with(ivNobility.getContext()).clear(ivNobility);
|
||||
}
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RedpacketDetail;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class RedAdapter extends BaseQuickAdapter<RedpacketDetail.Records, BaseViewHolder> {
|
||||
public RedAdapter() {
|
||||
super(R.layout.item_red);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder,RedpacketDetail.Records redBean) {
|
||||
ImageUtils.loadHeadCC(redBean.getAvatar(), baseViewHolder.getView(R.id.red_user_avatar));
|
||||
baseViewHolder.setText(R.id.tv_user_name, redBean.getNickname());
|
||||
baseViewHolder.setText(R.id.tv_red_num, redBean.getAmount());
|
||||
baseViewHolder.setText(R.id.tv_time, redBean.getCreatetime());
|
||||
}
|
||||
|
||||
private String formatTimestamp(long timestamp) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||
return sdf.format(new Date(timestamp));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RedPacketInfo;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* 红包的列表适配器
|
||||
*/
|
||||
public class RedBagAdapter extends BaseQuickAdapter<RedPacketInfo, BaseViewHolder> {
|
||||
private Map<Integer,View> viewMap;
|
||||
public RedBagAdapter() {
|
||||
super(R.layout.item_red_bag);
|
||||
viewMap=new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RedPacketInfo item) {
|
||||
viewMap.put(helper.getLayoutPosition(),helper.itemView);
|
||||
ImageView iv_red_bag= helper.getView(R.id.iv_red_bag);
|
||||
if (item.getIs_qiang()==1){
|
||||
iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red_bj_h);
|
||||
helper.setText(R.id.tv_djs, "已领取");
|
||||
}else {
|
||||
iv_red_bag.setImageResource(com.xscm.moduleutil.R.mipmap.red);
|
||||
|
||||
if (item.getType()==2){
|
||||
helper.setVisible(R.id.im_list_bj,true);
|
||||
}else {
|
||||
helper.setVisible(R.id.im_list_bj,false);
|
||||
}
|
||||
|
||||
// 显示倒计时
|
||||
if (item.getCountdown() > 0) {
|
||||
helper.setVisible(R.id.tv_djs, true);
|
||||
long minutes = item.getCountdown() / 60;
|
||||
long seconds = item.getCountdown() % 60;
|
||||
String timeFormat = String.format("%02d:%02d", minutes, seconds);
|
||||
helper.setText(R.id.tv_djs, timeFormat);
|
||||
} else {
|
||||
helper.setVisible(R.id.tv_djs, false);
|
||||
}
|
||||
}
|
||||
|
||||
helper.setText(R.id.tv_user_name, item.getNickname());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新指定位置的倒计时显示,不刷新整个item
|
||||
* @param position 列表位置
|
||||
* @param countdown 倒计时时间(秒)
|
||||
*/
|
||||
public void updateCountdown(int position, long countdown) {
|
||||
if (position >= 0 && position < getData().size()) {
|
||||
// 获取对应位置的item view
|
||||
View view = viewMap.get(position);
|
||||
if (view != null) {
|
||||
// 直接更新倒计时文本,不刷新整个item
|
||||
TextView tvDjs = view.findViewById(R.id.tv_djs);
|
||||
if (tvDjs != null) {
|
||||
// 格式化倒计时显示
|
||||
long minutes = countdown / 60;
|
||||
long seconds = countdown % 60;
|
||||
String timeFormat = String.format("%02d:%02d", minutes, seconds);
|
||||
tvDjs.setText(timeFormat);
|
||||
|
||||
// 控制倒计时显示状态
|
||||
if (countdown > 0) {
|
||||
tvDjs.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
tvDjs.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据位置获取item view
|
||||
* @param position 位置
|
||||
* @return item对应的view
|
||||
*/
|
||||
private View getViewByPosition(int position) {
|
||||
RecyclerView recyclerView = getRecyclerView();
|
||||
if (recyclerView != null) {
|
||||
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
|
||||
if (layoutManager != null) {
|
||||
// 检查 position 是否在可见范围内
|
||||
if (layoutManager instanceof LinearLayoutManager) {
|
||||
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
|
||||
int firstVisiblePosition = linearLayoutManager.findFirstVisibleItemPosition();
|
||||
int lastVisiblePosition = linearLayoutManager.findLastVisibleItemPosition();
|
||||
|
||||
// 确保 position 在可见范围内
|
||||
if (position >= firstVisiblePosition && position <= lastVisiblePosition) {
|
||||
return layoutManager.findViewByPosition(position);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RelationshipBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.utils.TimeUtils;
|
||||
|
||||
|
||||
public class RelationshipAdapter extends BaseQuickAdapter<RelationshipBean, com.chad.library.adapter.base.BaseViewHolder> {
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public RelationshipAdapter() {
|
||||
super(R.layout.item_relationship);
|
||||
}
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(com.chad.library.adapter.base.BaseViewHolder helper, RelationshipBean item) {
|
||||
if (item.getType() == 1){
|
||||
helper.getView(R.id.ll).setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_k);
|
||||
}else if (item.getType() == 2){
|
||||
helper.getView(R.id.ll).setBackgroundResource(com.xscm.moduleutil.R.mipmap.guxi_w);
|
||||
}
|
||||
ImageUtils.loadHeadCC(item.getAvatar1(), helper.getView(R.id.user_nav1));
|
||||
ImageUtils.loadHeadCC(item.getAvatar2(), helper.getView(R.id.user_nav2));
|
||||
helper.setText(R.id.tv_nickname1, item.getNickname1());
|
||||
helper.setText(R.id.tv_nickname2, item.getNickname2());
|
||||
helper.setText(R.id.tv_relation, item.getRelation_name());
|
||||
LogUtils.e("lxj",Long.parseLong(item.getEnd_time())-System.currentTimeMillis());
|
||||
helper.setText(R.id.tv_time, TimeUtils.formatDuration2(Long.parseLong(item.getEnd_time())*1000-System.currentTimeMillis()));
|
||||
if (item.getUser_id1()== SpUtil.getUserId() || item.getUser_id2() == SpUtil.getUserId()){
|
||||
helper.getView(R.id.im_zhid).setVisibility(View.VISIBLE);
|
||||
helper.getView(R.id.im_shanchu).setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
helper.getView(R.id.im_zhid).setVisibility(View.GONE);
|
||||
helper.getView(R.id.im_shanchu).setVisibility(View.GONE);
|
||||
}
|
||||
helper.getView(R.id.im_shanchu).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (onItemClickListener!= null) {
|
||||
onItemClickListener.onItemClick(view, item, helper.getLayoutPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
helper.getView(R.id.im_zhid).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (onItemClickListener!= null) {
|
||||
onItemClickListener.onItemClick(view, item, helper.getLayoutPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, RelationshipBean data, int position);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RevenueBean;
|
||||
import com.xscm.moduleutil.utils.TimeUtils;
|
||||
|
||||
public class RevenueAdapter extends BaseQuickAdapter<RevenueBean, BaseViewHolder> {
|
||||
public RevenueAdapter() {
|
||||
super(R.layout.item_revenue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RevenueBean item) {
|
||||
if (item!=null && item.getCreatetime()!=null) {
|
||||
String time = TimeUtils.getDateToStringNoZ(Long.parseLong(item.getCreatetime()) * 1000L);
|
||||
helper.setText(R.id.tv_time, time);
|
||||
helper.setText(R.id.tv_name, item.getRemarks());
|
||||
helper.setText(R.id.tv_jb, item.getChange_value());
|
||||
TextView textView=helper.getView(R.id.tv_name);
|
||||
textView.setSelected(true);
|
||||
if (item.getType()==2){
|
||||
helper.getView(R.id.im_ty).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_t);
|
||||
}else if (item.getType()==1){
|
||||
helper.getView(R.id.im_ty).setBackgroundResource(com.xscm.moduleutil.R.mipmap.jinb);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RoomSubsidyDetails;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RoomAllowanceDetailAdapter extends BaseQuickAdapter<RoomSubsidyDetails, BaseViewHolder> {
|
||||
public RoomAllowanceDetailAdapter() {
|
||||
super(R.layout.room_index_item_subsidy);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomSubsidyDetails item) {
|
||||
helper.setText(R.id.tv_data, item.getStart_time() + "-" + item.getEnd_time());
|
||||
helper.setText(R.id.tv_lj, item.getTotal_transaction());
|
||||
helper.setText(R.id.tv_bt, item.getSubsidy_amount());
|
||||
TextView tv_status = helper.getView(R.id.tv_status);
|
||||
if (item.getStatus().equals("1")) {
|
||||
tv_status.setText("已发放");
|
||||
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_FF999999));
|
||||
} else {
|
||||
tv_status.setText("未发放");
|
||||
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_45d08c));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNewData(@Nullable List<RoomSubsidyDetails> data) {
|
||||
super.setNewData(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RoomUserCharmListBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.MeHeadView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/9/10
|
||||
*@description: 魅力详情适配器
|
||||
*/
|
||||
public class RoomCharmAdapter extends BaseQuickAdapter<RoomUserCharmListBean, BaseViewHolder> {
|
||||
public RoomCharmAdapter() {
|
||||
super(R.layout.item_charm_dialog);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomUserCharmListBean item) {
|
||||
helper.setText(R.id.tv_nick_name, item.getNickname());
|
||||
helper.setText(R.id.tv_charm, item.getCharm()+"");
|
||||
helper.setText(R.id.tv_user_id,"ID:"+item.getUser_code());
|
||||
MeHeadView headView = helper.getView(R.id.im_user);
|
||||
headView.setData(item.getAvatar(), "", "");
|
||||
|
||||
LinearLayout llContainer =helper.getView(R.id.ll_in);
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
if (item.getIcon() == null){
|
||||
return;
|
||||
}
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView1 = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1);
|
||||
|
||||
llContainer.addView(imageView1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.details.BaseMultiItemEntity;
|
||||
import com.xscm.moduleutil.bean.details.RoomDeatailList;
|
||||
import com.xscm.moduleutil.bean.details.RoomDeatil;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.widget.GifAvatarOvalView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class RoomDetailsAdapter extends BaseMultiItemQuickAdapter<BaseMultiItemEntity, BaseViewHolder> {
|
||||
private static final int TYPE_DATE_HEADER = 1;
|
||||
private static final int TYPE_GIFT_ITEM = 2;
|
||||
|
||||
public RoomDetailsAdapter(List<BaseMultiItemEntity> data) {
|
||||
super(data);
|
||||
addItemType(BaseMultiItemEntity.TYPE_A, R.layout.item_date_header);
|
||||
addItemType(BaseMultiItemEntity.TYPE_B, R.layout.room_details_list);
|
||||
// 开启吸顶功能
|
||||
enableLoadMoreEndClick(false); // 禁用加载更多点击事件,防止冲突
|
||||
setEnableLoadMore(false); // 禁用加载更多功能,防止冲突
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, BaseMultiItemEntity item) {
|
||||
switch (helper.getItemViewType()) {
|
||||
case TYPE_DATE_HEADER:
|
||||
|
||||
RoomDeatailList roomDetailList = (RoomDeatailList) item;
|
||||
helper.setText(R.id.tv6, roomDetailList.getTime());
|
||||
helper.setText(R.id.tv8, roomDetailList.getTotal_earning() + "");
|
||||
helper.setText(R.id.tve, roomDetailList.getTotal_price() + "");
|
||||
break;
|
||||
case TYPE_GIFT_ITEM:
|
||||
RoomDeatil item1 = (RoomDeatil) item;
|
||||
GifAvatarOvalView avatarView = helper.getView(R.id.riv);
|
||||
TextView tvName = helper.getView(R.id.tv_name);
|
||||
TextView tv2 = helper.getView(R.id.tv_2);
|
||||
TextView tv3 = helper.getView(R.id.tv_3);
|
||||
TextView tv_go_to_room = helper.getView(R.id.tv_go_to_room);
|
||||
ImageUtils.loadImageView(item1.getSender_avatar(), avatarView);
|
||||
tvName.setText(item1.getSender_nickname());
|
||||
tv2.setText(item1.getReceive_nickname());
|
||||
tv3.setText(item1.getGift_name() + "x" + item1.getNumber());
|
||||
tv_go_to_room.setText(item1.getTotal_price() + "");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isSticky(RoomDeatailList item) {
|
||||
// 返回是否为吸顶项的逻辑
|
||||
return item.isSticky();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.room.RoomHourBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class RoomHourlyAdapter extends BaseQuickAdapter<RoomHourBean.RoomListBean, BaseViewHolder> {
|
||||
public RoomHourlyAdapter() {
|
||||
super(R.layout.item_hourly);
|
||||
}
|
||||
|
||||
// 定义点击监听器接口
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(RoomHourBean.RoomListBean item, int position);
|
||||
}
|
||||
|
||||
private OnItemClickListener mOnItemClickListener;
|
||||
|
||||
// 设置监听器的方法
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.mOnItemClickListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder, RoomHourBean.RoomListBean roomListBean) {
|
||||
// 获取当前项的索引
|
||||
int position = baseViewHolder.getLayoutPosition();
|
||||
if (position == 0){
|
||||
baseViewHolder.setText(R.id.tv_num, "");
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top1);
|
||||
}else if (position == 1){
|
||||
baseViewHolder.setText(R.id.tv_num, "");
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top2);
|
||||
}else if (position == 2){
|
||||
baseViewHolder.setText(R.id.tv_num, "");
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.top3);
|
||||
}else {
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_num, com.xscm.moduleutil.R.mipmap.hourly_num);
|
||||
baseViewHolder.setText(R.id.tv_num, position+1+"");
|
||||
}
|
||||
|
||||
ImageUtils.loadHeadCC(roomListBean.getRoom_cover(), baseViewHolder.getView(R.id.room_tx));
|
||||
if (roomListBean.getXlh_status()==1){
|
||||
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
|
||||
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
|
||||
baseViewHolder.setText(R.id.tv_sta, "进行中");
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_sta, com.xscm.moduleutil.R.mipmap.jxz);
|
||||
}else if (roomListBean.getXlh_status()==2){
|
||||
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
|
||||
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
|
||||
baseViewHolder.setText(R.id.tv_sta, "即将开始");
|
||||
baseViewHolder.setBackgroundRes(R.id.tv_sta, com.xscm.moduleutil.R.mipmap.jiks);
|
||||
}else {
|
||||
baseViewHolder.getView(R.id.im_xlh).setVisibility(View.GONE);
|
||||
baseViewHolder.getView(R.id.tv_sta).setVisibility(View.GONE);
|
||||
}
|
||||
if (roomListBean.getRedpacket_status()==0){
|
||||
baseViewHolder.getView(R.id.im_red).setVisibility(View.GONE);
|
||||
}else {
|
||||
baseViewHolder.getView(R.id.im_red).setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
baseViewHolder.setText(R.id.room_name, roomListBean.getRoom_name());
|
||||
ImageUtils.loadHeadCC(roomListBean.getLabel_icon(), baseViewHolder.getView(R.id.iv_type));
|
||||
baseViewHolder.setText(R.id.room_hr, roomListBean.getTotal_price()+"");
|
||||
// 为整个item设置点击事件
|
||||
baseViewHolder.itemView.setOnClickListener(v -> {
|
||||
if (mOnItemClickListener != null) {
|
||||
mOnItemClickListener.onItemClick(roomListBean, position);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.room.RoomOnlineBean;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author qx
|
||||
* @data 2025/6/23
|
||||
* @description: 在线列表适配器
|
||||
*/
|
||||
public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean, BaseViewHolder> {
|
||||
/**
|
||||
* Same as QuickAdapter#QuickAdapter(Context,int) but with
|
||||
* some initialization data.
|
||||
*
|
||||
* @param data A new list is created out of this one to avoid mutable list
|
||||
*/
|
||||
public RoomOnlineAdapter(List<RoomOnlineBean> data) {
|
||||
super(data);
|
||||
addItemType(1, R.layout.item_room_online_text);
|
||||
addItemType(2, R.layout.item_onlie_room);
|
||||
}
|
||||
|
||||
|
||||
// 接口定义
|
||||
public interface OnJoinButtonClickListener {
|
||||
void onJoinButtonClick(RoomOnlineBean item);
|
||||
|
||||
void onUserInfoClick(RoomOnlineBean item);
|
||||
}
|
||||
|
||||
private OnJoinButtonClickListener listener;
|
||||
|
||||
public void setListener(OnJoinButtonClickListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomOnlineBean item) {
|
||||
if (item.getItemType() == 1) {
|
||||
helper.setText(R.id.maishang, item.getTypeNames());
|
||||
} else if (item.getItemType() == 2) {
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.like_avatar));
|
||||
helper.setText(R.id.tv_nickname, item.getNickname());
|
||||
ImageView imageView = helper.getView(R.id.im_i);
|
||||
TextView textView = helper.getView(R.id.tv_status);
|
||||
imageView.setVisibility(VISIBLE);
|
||||
if (item.getRole().equals("1")) {
|
||||
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.fangz);
|
||||
} else if (item.getRole().equals("2")) {
|
||||
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.gly);
|
||||
} else if (item.getRole().equals("3")) {
|
||||
imageView.setImageResource(com.xscm.moduleutil.R.mipmap.zc);
|
||||
} else if (item.getRole().equals("4")) {
|
||||
helper.getView(R.id.im_i).setVisibility(GONE);
|
||||
// imageView.setImageResource(com.qxcm.moduleutil.R.mipmap.jb);
|
||||
} else {
|
||||
helper.getView(R.id.im_i).setVisibility(GONE);
|
||||
}
|
||||
// if (item.getType() == 1){
|
||||
//
|
||||
// }
|
||||
if (item.getType() == 2 && item.getType_pit() == 1) {
|
||||
textView.setVisibility(GONE);
|
||||
} else {
|
||||
textView.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
// else if (item.getType() == 2 && item.getType_pit() == 2){
|
||||
// textView.setVisibility(VISIBLE);
|
||||
// }else if (item.getType() == 1 && item.getType_pit() == 0){
|
||||
// textView.setVisibility(GONE);
|
||||
// }
|
||||
|
||||
textView.setText(item.getPit_number() != 0 ? (item.getPit_number() == 9 ? "主持" : (item.getPit_number() == 10 ? "嘉宾" : item.getPit_number()+ "号麦")) : "抱麦");
|
||||
|
||||
textView.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
|
||||
|
||||
LinearLayout llContainer = helper.getView(R.id.line);
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = item.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView1 = new ImageView(helper.itemView.getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
|
||||
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_14)
|
||||
);
|
||||
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView1.setLayoutParams(params);
|
||||
imageView1.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView1);
|
||||
llContainer.addView(imageView1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
helper.getView(R.id.tv_status).setOnClickListener(v -> {
|
||||
if (textView.getText().toString().equals("抱麦")) {
|
||||
if (listener != null) {
|
||||
listener.onJoinButtonClick(item);
|
||||
}
|
||||
}
|
||||
});
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
if (listener != null) {
|
||||
listener.onUserInfoClick(item);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.room.RoomSettingBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBean, BaseViewHolder> {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder holder, RoomSettingBean item) {
|
||||
|
||||
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()));
|
||||
}
|
||||
}
|
||||
|
||||
private String getName(int type, boolean isSelected, String name) {
|
||||
boolean b = isSelected;
|
||||
switch (type) {
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomOrderMic:
|
||||
return b ? "排麦模式" : "自由模式";
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomCloseEffects:
|
||||
return b ? "关闭特效" : "开启特效";
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
|
||||
return b ? "关闭飘屏" : "开启飘屏";
|
||||
default:
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
// 根据 type 获取对应的图标资源 ID
|
||||
private int getIconResId(int type, boolean isSelected) {
|
||||
boolean b = isSelected;
|
||||
switch (type) {
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomTypeSing:
|
||||
return com.xscm.moduleutil.R.mipmap.ic_sing;
|
||||
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:
|
||||
return com.xscm.moduleutil.R.mipmap.ic_jiaoy;
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomTypeHUYU:
|
||||
return com.xscm.moduleutil.R.mipmap.huyu;
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomTypeLianG:
|
||||
return com.xscm.moduleutil.R.mipmap.icon_liang;
|
||||
// 常用工具
|
||||
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;
|
||||
// 更多操作
|
||||
// case RoomSettingBean.QXRoomSettingTypeRoomLeave:
|
||||
// return com.xscm.moduleutil.R.mipmap.ic_leave;
|
||||
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;
|
||||
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;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
|
||||
/**
|
||||
* 历史记录
|
||||
*/
|
||||
public class SearchHistoryAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
|
||||
|
||||
public SearchHistoryAdapter() {
|
||||
super(R.layout.index_item_history);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, String item) {
|
||||
helper.setText(R.id.tv_text, item);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
|
||||
import com.chad.library.adapter.base.BaseSectionQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RecordSection;
|
||||
import com.xscm.moduleutil.utils.KeyWordUtil;
|
||||
|
||||
/**
|
||||
* 模糊搜索结果
|
||||
*/
|
||||
public class SearchRecordAdapter extends BaseSectionQuickAdapter<RecordSection, BaseViewHolder> {
|
||||
|
||||
|
||||
private String keyWord = "";
|
||||
|
||||
public SearchRecordAdapter() {
|
||||
super(R.layout.index_item_record, R.layout.index_item_tecord_head, null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RecordSection item) {
|
||||
helper.setText(R.id.tv_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.t, keyWord));
|
||||
helper.addOnClickListener(R.id.tv_text);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convertHead(BaseViewHolder helper, RecordSection item) {
|
||||
helper.setText(R.id.tv_head, item.header);
|
||||
}
|
||||
|
||||
public void setKeyWord(String keyWord) {
|
||||
this.keyWord = keyWord;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.RoomSearchResp;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
/**
|
||||
* 搜索房间结果
|
||||
*/
|
||||
public class SearchRoomResultAdapter extends BaseQuickAdapter<RoomSearchResp, BaseViewHolder> {
|
||||
|
||||
|
||||
public SearchRoomResultAdapter() {
|
||||
super(R.layout.index_item_search_room_result);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper,RoomSearchResp item) {
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
ImageView iv = helper.getView(R.id.iv_play);
|
||||
// if (item.getIcon()!=null && item.getIcon().size() > 0) {
|
||||
// iv.setVisibility(View.VISIBLE);
|
||||
// ImageUtils.loadRes(com.qxcm.moduleutil.R.drawable.voice_play, iv);
|
||||
// }else {
|
||||
iv.setVisibility(GONE);
|
||||
// }
|
||||
helper.setText(R.id.tv_num, formatHotValue(Integer.parseInt(item.getHot_value()!=null ? item.getHot_value() : "0")));
|
||||
ImageUtils.loadHeadCC(item.getLabel_icon(), helper.getView(R.id.iv_type));
|
||||
|
||||
// helper.setOnClickListener(R.id.iv_play,new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// RoomManager.getInstance().fetchRoomDataAndEnter(mContext.getApplicationContext(), item.getRoom_id() ,"");
|
||||
//
|
||||
//// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
//// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
//
|
||||
// }
|
||||
// });
|
||||
}
|
||||
private String formatHotValue(int hotValue) {
|
||||
if (hotValue > 10000) {
|
||||
return String.format("%.1fw", hotValue / 10000.0);
|
||||
} else {
|
||||
return String.valueOf(hotValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.UserResultResp;
|
||||
import com.xscm.moduleutil.utils.KeyWordUtil;
|
||||
import com.xscm.moduleutil.utils.MeHeadView;
|
||||
|
||||
/**
|
||||
* 搜索用户的结果
|
||||
*/
|
||||
public class SearchUserResultAdapter extends BaseQuickAdapter<UserResultResp, BaseViewHolder> {
|
||||
private OnItemClickListener mListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
|
||||
void onGnsClick(UserResultResp item);
|
||||
void onHeadImageClick(UserResultResp item);
|
||||
}
|
||||
|
||||
private String keyWord = "";
|
||||
|
||||
public SearchUserResultAdapter() {
|
||||
super(R.layout.index_item_search_user_result);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserResultResp item) {
|
||||
|
||||
helper.setText(R.id.dy_name_text, KeyWordUtil.matcherSearchTitle(Color.parseColor("#FFBC00"), item.getNickname(), keyWord));
|
||||
helper.setText(R.id.tv_id, "ID:" + item.getUser_code());
|
||||
MeHeadView headView = helper.getView(R.id.dy_head_image);
|
||||
headView.setData(item.getHead_picture(), "", item.getSex());
|
||||
// if (item.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
// helper.setVisible(R.id.gensui, false);
|
||||
// } else {
|
||||
// helper.setVisible(R.id.gensui, true);
|
||||
// }
|
||||
// 先判断不为null,再判断不是空字符串,且不是"0"(三个条件需同时满足)
|
||||
|
||||
if (item.getRoom_id() != null && !item.getRoom_id().isEmpty() && !"0".equals(item.getRoom_id())) {
|
||||
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gsui);
|
||||
} else {
|
||||
helper.getView(R.id.gensui).setBackgroundResource(com.xscm.moduleutil.R.mipmap.six);
|
||||
}
|
||||
helper.getView(R.id.dy_head_image).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mListener != null) mListener.onHeadImageClick(item);
|
||||
}
|
||||
});
|
||||
|
||||
helper.getView(R.id.gensui).setOnClickListener(v -> {
|
||||
if (mListener!=null){
|
||||
mListener.onGnsClick(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void setKeyWord(String keyWord) {
|
||||
this.keyWord = keyWord;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
|
||||
|
||||
/**
|
||||
* A [FragmentPagerAdapter] that returns a fragment corresponding to
|
||||
* one of the sections/tabs/pages.
|
||||
*/
|
||||
public class SectionsPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
@StringRes
|
||||
private static final int[] TAB_TITLES = new int[]{com.xscm.moduleutil.R.string.room_rank, com.xscm.moduleutil.R.string.wealth_rank,
|
||||
com.xscm.moduleutil.R.string.charm_rank, com.xscm.moduleutil.R.string.true_love_rank};
|
||||
// com.xscm.moduleutil.R.string.guild_rank,
|
||||
private final Context mContext;
|
||||
|
||||
public SectionsPagerAdapter(Context context, FragmentManager fm) {
|
||||
super(fm);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
// getItem is called to instantiate the fragment for the given page.
|
||||
// Return a PlaceholderFragment.
|
||||
return PlaceholderFragment.newInstance(position );
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return mContext.getResources().getString(TAB_TITLES[position]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
// Show 2 total pages.
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.AlbumBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/6
|
||||
*@description:相册单选弹框适配器
|
||||
*/
|
||||
public class SingleChoiceAdapter extends BaseQuickAdapter<AlbumBean, BaseViewHolder> {
|
||||
/**
|
||||
* -- GETTER --
|
||||
* 获取当前选中位置
|
||||
*/
|
||||
private int selectedPosition = -1; // 默认未选中
|
||||
|
||||
public SingleChoiceAdapter() {
|
||||
super(R.layout.item_multi_select_t);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, AlbumBean item) {
|
||||
int position1 = helper.getAdapterPosition();
|
||||
|
||||
boolean isSelected = (position1 == selectedPosition);
|
||||
TextView tv_album_name1 = helper.getView(R.id.tv_album_name1);
|
||||
tv_album_name1.setText(item.getName());
|
||||
helper.setText(R.id.tv_album_count1, "浏览数:"+item.getRead_num());
|
||||
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo1));
|
||||
helper.getView(R.id.v_checkbox).setSelected(isSelected); // 使用 CheckBox.setChecked()
|
||||
|
||||
// 设置点击事件
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
int pos = helper.getAdapterPosition();
|
||||
if (pos != RecyclerView.NO_POSITION) {
|
||||
if (selectedPosition == pos) {
|
||||
selectedPosition = -1; // 如果已选中,则取消
|
||||
} else {
|
||||
selectedPosition = pos; // 更新为新的选中项
|
||||
}
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
|
||||
helper.getView(R.id.v_checkbox).setOnClickListener(v -> {
|
||||
int pos = helper.getAdapterPosition();
|
||||
if (pos != RecyclerView.NO_POSITION) {
|
||||
if (selectedPosition == pos) {
|
||||
selectedPosition = -1;
|
||||
} else {
|
||||
selectedPosition = pos;
|
||||
}
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前选中的条目
|
||||
*/
|
||||
public AlbumBean getSelectedItem() {
|
||||
if (selectedPosition == -1 || selectedPosition >= getData().size()) return null;
|
||||
return getData().get(selectedPosition);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.UserBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/5/19
|
||||
*@description: 用户列表适配器
|
||||
*/
|
||||
public class SwitchAccountsAdapter extends BaseQuickAdapter<UserBean, BaseViewHolder> {
|
||||
|
||||
// 定义接口用于回调点击事件
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(UserBean item);
|
||||
}
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
|
||||
public SwitchAccountsAdapter() {
|
||||
super(R.layout.item_switch_accounts);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserBean item) {
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.im_user2));
|
||||
helper.setText(R.id.tv_nick_name, item.getNickname());
|
||||
TextView imageView= helper.getView(R.id.im_g);
|
||||
// 根据 type 设置图片资源
|
||||
// 根据 type 和 status 设置图片资源
|
||||
// 设置点击事件
|
||||
imageView.setOnClickListener(v -> {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener.onItemClick(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator;
|
||||
import com.xscm.moduleutil.bean.GiftBoxBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseViewHolder> {
|
||||
public TaskBoxAdapter() {
|
||||
super(R.layout.item_task_box);
|
||||
}
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(int position);
|
||||
}
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
@SuppressLint("UseCompatLoadingForDrawables")
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, GiftBoxBean.GiftBean item) {
|
||||
int position = helper.getLayoutPosition(); // 获取当前位置
|
||||
|
||||
View itemView = helper.itemView; // 获取整个 item 的根布局
|
||||
TextView giftName = helper.getView(R.id.tv_type_name);
|
||||
TextView giftTitle = helper.getView(R.id.tv_title);
|
||||
giftName.setText(item.getName());
|
||||
giftTitle.setText(item.getTitle());
|
||||
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_box));
|
||||
if (position == 0) {
|
||||
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FCE4ED)); // 红色
|
||||
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171));
|
||||
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_E24171);
|
||||
// helper.setImageDrawable(R.id.task_box, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.task_cj));
|
||||
|
||||
|
||||
} else if (position == 1) {
|
||||
itemView.setBackgroundColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_FDE8AE)); // 黄色
|
||||
giftName.setTextColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07));
|
||||
setSpannableText(giftTitle, "最高可获得%d金币", Integer.parseInt(item.getHighest_gain()),com.xscm.moduleutil.R.color.color_F35F07);
|
||||
// helper.setImageDrawable(R.id.task_box, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.task_gj));
|
||||
|
||||
} else {
|
||||
// 其他 item 恢复默认背景(可选)
|
||||
itemView.setBackground(null);
|
||||
}
|
||||
|
||||
helper.setText(R.id.tv_jb, "满"+item.getMeet()+"金币");
|
||||
double progress = Double.parseDouble(item.getUnlock_progress()!=null?item.getUnlock_progress():"0.00");
|
||||
long progressNum = (long) (progress * 1000);
|
||||
LinearProgressIndicator progressIndicator= helper.getView(R.id.progress_indicator);
|
||||
progressIndicator.setProgress(Integer.parseInt(String.valueOf(progressNum)));
|
||||
|
||||
double unlock_num = Double.parseDouble(item.getUnlock_progress()!=null?item.getUnlock_progress():"0.00");
|
||||
long unlock_num_long = (long) (unlock_num * 1000);
|
||||
|
||||
helper.setText(R.id.tv_jb_num, Integer.parseInt(String.valueOf(unlock_num_long))/10 + "%");
|
||||
if (position==0){
|
||||
progressIndicator.setIndicatorColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_E24171));
|
||||
}else {
|
||||
progressIndicator.setIndicatorColor(mContext.getResources().getColor(com.xscm.moduleutil.R.color.color_F35F07));
|
||||
|
||||
}
|
||||
helper.setText(R.id.iv_unlock, item.getStatus_str());
|
||||
View unlockView = helper.getView(R.id.iv_unlock);
|
||||
if (item.getStatus().equals("0")){
|
||||
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.not_unlocked));
|
||||
unlockView.setClickable(false);
|
||||
unlockView.setEnabled(false);
|
||||
// 可选:改变颜色或透明度来视觉反馈
|
||||
unlockView.setAlpha(0.9f); // 半透明表示不可点击
|
||||
}else if (item.getStatus().equals("1")){
|
||||
unlockView.setClickable(true);
|
||||
unlockView.setEnabled(true);
|
||||
unlockView.setAlpha(1.0f); // 恢复正常显示
|
||||
}else if (item.getStatus().equals("2")){
|
||||
unlockView.setClickable(false);
|
||||
unlockView.setEnabled(false);
|
||||
}
|
||||
else {
|
||||
// helper.setImageDrawable(R.id.iv_unlock, mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.unlocked));
|
||||
|
||||
unlockView.setClickable(false);
|
||||
unlockView.setEnabled(false);
|
||||
// 可选:改变颜色或透明度来视觉反馈
|
||||
unlockView.setAlpha(0.8f); // 半透明表示不可点击
|
||||
}
|
||||
|
||||
helper.getView(R.id.iv_unlock).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (onItemClickListener != null) {
|
||||
int position = helper.getLayoutPosition();
|
||||
onItemClickListener.onItemClick(position);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 设置带部分颜色的文本
|
||||
private void setSpannableText(TextView textView, String format, int number,int color) {
|
||||
String fullText = String.format(format, number);
|
||||
SpannableString spannableString = new SpannableString(fullText);
|
||||
|
||||
// 找到数字的位置
|
||||
String numberStr = String.valueOf(number);
|
||||
int startIndex = fullText.indexOf(numberStr);
|
||||
int endIndex = startIndex + numberStr.length();
|
||||
|
||||
if (startIndex >= 0) {
|
||||
// 设置数字为红色
|
||||
spannableString.setSpan(
|
||||
new ForegroundColorSpan(ContextCompat.getColor(mContext,color)), // 使用你定义的颜色
|
||||
startIndex,
|
||||
endIndex,
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
);
|
||||
}
|
||||
|
||||
textView.setText(spannableString);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.GiftBoxBean;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/7/12
|
||||
*@description: 每日任务
|
||||
*/
|
||||
public class TaskDataAdapter extends BaseQuickAdapter<GiftBoxBean.TaskDataBean.DailyTasksBean, BaseViewHolder> {
|
||||
public TaskDataAdapter() {
|
||||
super(R.layout.item_task_data);
|
||||
}
|
||||
|
||||
public interface ItemClickLitener{
|
||||
void onItemClick(View view, int position,GiftBoxBean.TaskDataBean.DailyTasksBean item);
|
||||
}
|
||||
private ItemClickLitener mItemClickLitener;
|
||||
public void setItemClickLitener(ItemClickLitener mItemClickLitener) {
|
||||
this.mItemClickLitener = mItemClickLitener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
|
||||
TextView textView=helper.getView(R.id.task_type);
|
||||
// if (item.getTaskType().equals("1")){
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_lock));
|
||||
// }else if (item.getTaskType().equals("2")){
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_wc));
|
||||
// } else if (item.getTaskType().equals("3")) {
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_sl));
|
||||
// }else if (item.getTaskType().equals("4")) {
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_yq));
|
||||
// }else if (item.getTaskType().equals("5")) {
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.go_cz));
|
||||
// }else if (item.getTaskType().equals("6")) {
|
||||
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.ylq));
|
||||
// }
|
||||
|
||||
// textView.setText(item.getTask_type_str().equals("去完成")?"未完成": (item.getTask_type_str().equals("领取金币")?"待领取":item.getTask_type_str()));
|
||||
if (item.getTask_type_str().equals("去完成")){
|
||||
textView.setText("未完成");
|
||||
}else if (item.getTask_type_str().equals("领取金币")){
|
||||
textView.setText("");
|
||||
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_lq);
|
||||
}else {
|
||||
textView.setText("");
|
||||
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_ylq);
|
||||
}
|
||||
|
||||
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_pic));
|
||||
helper.setText(R.id.task_name, item.getTask_name())
|
||||
.setText(R.id.task_jb_number, "+"+item.getGold_reward());
|
||||
helper.getView(R.id.task_type).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (mItemClickLitener!= null){
|
||||
mItemClickLitener.onItemClick(view, helper.getLayoutPosition(), item);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.GiftBoxBean;
|
||||
import com.xscm.moduleutil.bean.TaskItem;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TaskSectionAdapter extends RecyclerView.Adapter<TaskSectionAdapter.SectionViewHolder> {
|
||||
|
||||
private List<TaskItem> sections;
|
||||
|
||||
public TaskSectionAdapter(List<TaskItem> sections) {
|
||||
this.sections = sections;
|
||||
}
|
||||
// 定义点击事件接口
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(TaskItem taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item);
|
||||
}
|
||||
|
||||
private OnItemClickListener listener;
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
@NonNull
|
||||
@Override
|
||||
public SectionViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_task_header, parent, false);
|
||||
return new SectionViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull SectionViewHolder holder, int position) {
|
||||
TaskItem section = sections.get(position);
|
||||
holder.title.setText(section.title);
|
||||
|
||||
TaskDataAdapter adapter = new TaskDataAdapter();
|
||||
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext()));
|
||||
holder.recyclerView.setAdapter(adapter);
|
||||
adapter.setNewData(section.tasks);
|
||||
if (position==2){
|
||||
holder.view.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
holder.view.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
adapter.setItemClickLitener(new TaskDataAdapter.ItemClickLitener() {
|
||||
@Override
|
||||
public void onItemClick(View view, int position, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
|
||||
if (listener!= null) {
|
||||
listener.onItemClick(section,item);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return sections.size();
|
||||
}
|
||||
|
||||
static class SectionViewHolder extends RecyclerView.ViewHolder {
|
||||
TextView title;
|
||||
RecyclerView recyclerView;
|
||||
View view;
|
||||
|
||||
public SectionViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
title = itemView.findViewById(R.id.tv_title);
|
||||
recyclerView = itemView.findViewById(R.id.rv_task_list);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(itemView.getContext()));
|
||||
view = itemView.findViewById(R.id.v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author lxj$
|
||||
* @Time 2025年8月1日00:09:34$ $
|
||||
* @Description 礼物墙中赠送用户显示的adapter$
|
||||
*/
|
||||
public class TopUsersAdapter extends BaseQuickAdapter<CombinedGiftBean.TopUsers, BaseViewHolder> {
|
||||
|
||||
public TopUsersAdapter(List<CombinedGiftBean.TopUsers> topUsersList) {
|
||||
super(R.layout.item_top_user, topUsersList);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, CombinedGiftBean.TopUsers item) {
|
||||
ImageLoader.loadImage(mContext, helper.getView(R.id.riv_user_avatar), item.getAvatar());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.xscm.moduleutil.bean.MixerResp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/22
|
||||
*@description: 混响选择
|
||||
*/
|
||||
public class TunerListAdapter extends BaseQuickAdapter<MixerResp, BaseViewHolder> {
|
||||
private int index = 0;
|
||||
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
|
||||
private final List<Integer> mSelectedPositions = new ArrayList<>();
|
||||
int type;
|
||||
public TunerListAdapter(int type) {
|
||||
super(R.layout.room_rv_item_tuner);
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
notifyDataSetChanged();
|
||||
// setIndex(0); // 默认选择第一个项
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MixerResp item) {
|
||||
|
||||
int position = helper.getLayoutPosition();
|
||||
RoundedImageView rivPit = helper.getView(R.id.iv_tuner_pic);
|
||||
RoundedImageView rivPit2 = helper.getView(R.id.iv_tuner_pic2);
|
||||
View checkbox = helper.getView(R.id.v_checkbox);
|
||||
TextView tvName = helper.getView(R.id.name);
|
||||
|
||||
boolean isSelected = index == helper.getLayoutPosition();
|
||||
checkbox.setSelected(isSelected);
|
||||
|
||||
|
||||
if (type==1){
|
||||
tvName.setVisibility(View.GONE);
|
||||
rivPit.setVisibility(View.VISIBLE);
|
||||
rivPit.setImageResource(item.getImgUrtl());
|
||||
rivPit2.setVisibility(View.GONE);
|
||||
|
||||
}else {
|
||||
tvName.setVisibility(View.VISIBLE);
|
||||
tvName.setText(item.getName());
|
||||
rivPit.setVisibility(View.GONE);
|
||||
rivPit2.setVisibility(View.VISIBLE);
|
||||
rivPit2.setImageResource(item.getImgUrtl());
|
||||
}
|
||||
// 判断当前项是否被选中
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UserGiftWallAdapter extends BaseQuickAdapter<CombinedGiftBean, BaseViewHolder> {
|
||||
|
||||
|
||||
public UserGiftWallAdapter() {
|
||||
super(R.layout.me_item_user_gift_wall_2);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, CombinedGiftBean item) {
|
||||
helper.setText(R.id.tv_gift_name, item.getGift_name());
|
||||
helper.setText(R.id.tv_gift_price, item.getGift_price());
|
||||
//
|
||||
|
||||
TextView tv_number = helper.getView(R.id.tv_number);
|
||||
if (item.is_liang()) {
|
||||
// helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
|
||||
float[] corners = {0f, 4f, 0f, 4f};
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(tv_number, ColorManager.getInstance().getPrimaryColorInt(), corners);
|
||||
tv_number.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
// 点亮的礼物显示高亮和送礼物的用户
|
||||
helper.setText(R.id.tv_number, "x" + item.getTotal_count());
|
||||
helper.setVisible(R.id.tv_number, true);
|
||||
// helper.setVisible(R.id.riv_user_head, true);
|
||||
helper.setVisible(R.id.iv_gift_pic_overlay, false);
|
||||
ImageLoader.loadGrayscaleImage(mContext, item.getBase_image(),helper.getView(R.id.iv_gift_pic),1);
|
||||
// 显示送礼物的用户列表
|
||||
RecyclerView recyclerView = helper.getView(R.id.rv_gift_user_list);
|
||||
// recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false));
|
||||
// recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false) {
|
||||
@Override
|
||||
public boolean canScrollHorizontally() {
|
||||
return false; // 禁止水平滑动
|
||||
}
|
||||
});
|
||||
|
||||
// TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
|
||||
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
|
||||
List<CombinedGiftBean.TopUsers> displayUsers = new ArrayList<>();
|
||||
if (item.getTop_users() != null) {
|
||||
int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个
|
||||
for (int i = 0; i < maxDisplay; i++) {
|
||||
displayUsers.add(item.getTop_users().get(i));
|
||||
}
|
||||
}
|
||||
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
|
||||
recyclerView.setAdapter(topUsersAdapter);
|
||||
}
|
||||
|
||||
} else {
|
||||
// 未点亮的礼物只显示图片、名称和金额,不高亮
|
||||
helper.setVisible(R.id.tv_number, false);
|
||||
// helper.setVisible(R.id.riv_user_head, false);
|
||||
helper.setVisible(R.id.iv_gift_pic_overlay, false);
|
||||
ImageLoader.loadGrayscaleImage(mContext, item.getBase_image(),helper.getView(R.id.iv_gift_pic),0);
|
||||
// 隐藏送礼物的用户列表
|
||||
helper.setVisible(R.id.rv_gift_user_list, false);
|
||||
// helper.getView(R.id.iv_gift_pic).setAlpha(0.2f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class UserPhotoWallAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
|
||||
private boolean b = false;
|
||||
private int longClickPos = -1;
|
||||
public static final String ADD_PHOTO = "ADD_PHOTO";
|
||||
|
||||
|
||||
public UserPhotoWallAdapter() {
|
||||
super(R.layout.me_item_user_photo_wall);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, String item) {
|
||||
|
||||
if (item.equals(ADD_PHOTO)) {
|
||||
helper.setVisible(R.id.iv_close, false);
|
||||
// 显示加号图片
|
||||
helper.setImageResource(com.xscm.moduleutil.R.id.riv_user_head, com.xscm.moduleutil.R.mipmap.add_img);
|
||||
} else {
|
||||
helper.setVisible(R.id.iv_close, true);
|
||||
ImageUtils.loadCenterCrop(item, helper.getView(com.xscm.moduleutil.R.id.riv_user_head));
|
||||
}
|
||||
// if (helper.getAdapterPosition() == 5) {
|
||||
// helper.setVisible(R.id.riv_user_head, false);
|
||||
// helper.setVisible(R.id.iv_close, false);
|
||||
// } else {
|
||||
// helper.setVisible(R.id.riv_user_head, true);
|
||||
// if (!"0".equals(item.getId())) {
|
||||
// ImageUtils.loadCenterCrop(item.getUrl(), helper.getView(R.id.riv_user_head));
|
||||
// if (longClickPos == helper.getAdapterPosition()) {
|
||||
// helper.setVisible(R.id.iv_close, true);
|
||||
// } else {
|
||||
// helper.setVisible(R.id.iv_close, false);
|
||||
// }
|
||||
// } else {
|
||||
// helper.setImageResource(R.id.riv_user_head, com.qxcm.moduleutil.R.mipmap.add_img);
|
||||
// helper.setGone(R.id.iv_close, false);
|
||||
// }
|
||||
// }
|
||||
helper.addOnClickListener(R.id.iv_close);
|
||||
helper.addOnClickListener(R.id.riv_user_head);
|
||||
helper.addOnLongClickListener(R.id.riv_user_head);
|
||||
}
|
||||
|
||||
|
||||
public void setDelete(boolean b) {
|
||||
this.b = b;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setLongClickPos(int pos) {
|
||||
this.longClickPos = pos;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public boolean getDelete() {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.xscm.moduleutil.bean.room.RoomApplyListBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class WheatFeedingSelectAdapter extends RecyclerView.Adapter<WheatFeedingSelectAdapter.ViewHolder> {
|
||||
|
||||
private final List<RoomApplyListBean.Special> mData;
|
||||
private final List<Integer> mSelectedPositions = new ArrayList<>();
|
||||
private SparseBooleanArray selectedPositions = new SparseBooleanArray();
|
||||
public WheatFeedingSelectAdapter(List<RoomApplyListBean.Special> data) {
|
||||
this.mData = data;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_wheat_feeding_select, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
RoomApplyListBean.Special item = mData.get(position);
|
||||
boolean isSelected = selectedPositions.get(position, false);
|
||||
holder.nickname.setText(item.getNickname());
|
||||
holder.jin_e.setText(item.getRank_value());
|
||||
ImageUtils.loadHeadCC(item.getAvatar(), holder.userAvatar);
|
||||
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(holder.tv_bm, ColorManager.getInstance().getPrimaryColorInt(), 65);
|
||||
holder.tv_bm.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
|
||||
holder.checkbox.setSelected(isSelected);
|
||||
holder.checkbox.setOnClickListener(v -> {
|
||||
boolean newState = !isSelected;
|
||||
selectedPositions.put(position, newState);
|
||||
holder.checkbox.setSelected(newState);
|
||||
notifyItemChanged(position); // 刷新当前项
|
||||
if (newState) {
|
||||
mSelectedPositions.add(position);
|
||||
} else {
|
||||
mSelectedPositions.remove(Integer.valueOf(position)); // 修改这里
|
||||
}
|
||||
});
|
||||
holder.tv_bm.setOnClickListener(v -> {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener.onTvBmClick(item,position);
|
||||
}
|
||||
});
|
||||
// holder.itemView.setOnClickListener(v -> toggleSelection(position));
|
||||
|
||||
}
|
||||
public interface OnItemClickListener {
|
||||
void onTvBmClick(RoomApplyListBean.Special item,int position);
|
||||
}
|
||||
private OnItemClickListener onItemClickListener;
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
|
||||
|
||||
public void toggleSelection(int position) {
|
||||
if (mSelectedPositions.contains(position)) {
|
||||
mSelectedPositions.remove(Integer.valueOf(position));
|
||||
} else {
|
||||
mSelectedPositions.add(position);
|
||||
}
|
||||
notifyItemChanged(position);
|
||||
}
|
||||
|
||||
public List<String> getSelectedItems() {
|
||||
List<String> selected = new ArrayList<>();
|
||||
for (int pos : mSelectedPositions) {
|
||||
selected.add(mData.get(pos).getUser_id());
|
||||
}
|
||||
return selected;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mData.size();
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
RoundedImageView userAvatar;
|
||||
TextView nickname;
|
||||
TextView jin_e;
|
||||
TextView tv_bm;
|
||||
View checkbox ;
|
||||
|
||||
public ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
userAvatar = itemView.findViewById(R.id.user_avatar);
|
||||
nickname = itemView.findViewById(R.id.nick_name);
|
||||
jin_e = itemView.findViewById(R.id.jin_e);
|
||||
tv_bm = itemView.findViewById(R.id.tv_bm);
|
||||
checkbox = itemView.findViewById(R.id.v_checkbox);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
package com.xscm.modulemain.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.WithdrawalBean;
|
||||
|
||||
public class WithdrawalAdapter extends BaseQuickAdapter<WithdrawalBean, BaseViewHolder> {
|
||||
// 状态常量(替代魔法值,增强可读性)
|
||||
private static final int STATUS_PENDING = 1; // 待处理
|
||||
private static final int STATUS_APPROVED = 2; // 已通过
|
||||
private static final int STATUS_REJECTED = 3; // 已拒绝
|
||||
private static final int STATUS_PAYING = 4; // 打款中
|
||||
private static final int STATUS_PAY_FAILED = 5; // 打款失败
|
||||
private static final int STATUS_PAID = 6; // 已打款
|
||||
|
||||
// 固定文本常量(避免硬编码,便于统一修改)
|
||||
private static final String TEXT_AMOUNT = "提现金额";
|
||||
private static final String TEXT_FEE = "手续费";
|
||||
private static final String TEXT_TAX = "个人所得税";
|
||||
private static final String TEXT_EXPECTED_DEFAULT = "预计到账(个税扣除前)";
|
||||
private static final String TEXT_EXPECTED_REFUND = "退款金额";
|
||||
private static final String TEXT_EXPECTED_ACTUAL = "实际到账";
|
||||
private static final String TEXT_TAX_CALCULATING = "计算中...";
|
||||
|
||||
|
||||
public WithdrawalAdapter() {
|
||||
super(R.layout.item_withdrawal);
|
||||
}
|
||||
|
||||
@SuppressLint("ResourceType")
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, WithdrawalBean item) {
|
||||
// 1. 基础文本设置(所有状态通用)
|
||||
helper.setText(R.id.tv_amount, TEXT_AMOUNT)
|
||||
.setText(R.id.tv_fee, TEXT_FEE)
|
||||
.setText(R.id.tv_tax, TEXT_TAX)
|
||||
.setText(R.id.tv_fee_value, item != null ? item.getWithdraw_fee() : "")
|
||||
.setText(R.id.tv_amount_value, item != null ? item.getMoney() : "")
|
||||
.setText(R.id.tv_expected_value, item != null ? item.getSurplus_money() : "")
|
||||
.setText(R.id.tv_time, item != null ? item.getCreatetime() : "");
|
||||
|
||||
TextView tvStatus = helper.getView(R.id.tv_status);
|
||||
tvStatus.setText(item != null ? item.getStatus_str() : "");
|
||||
|
||||
// 2. 处理item为空的边界情况
|
||||
if (item == null) {
|
||||
clearStatusUI(helper);
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. 根据状态设置UI(使用switch替代多层if-else)
|
||||
switch (item.getStatus()) {
|
||||
case STATUS_PENDING:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl, // im_x图标
|
||||
com.xscm.moduleutil.R.color.color_0DFFB9, // 状态文本颜色
|
||||
TEXT_EXPECTED_DEFAULT, // 预计到账文本
|
||||
TEXT_TAX_CALCULATING, // 个税文本
|
||||
com.xscm.moduleutil.R.color.color_black); // 预计值颜色
|
||||
break;
|
||||
case STATUS_APPROVED:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl2,
|
||||
com.xscm.moduleutil.R.color.color_999999,
|
||||
TEXT_EXPECTED_DEFAULT,
|
||||
TEXT_TAX_CALCULATING,
|
||||
com.xscm.moduleutil.R.color.color_black);
|
||||
break;
|
||||
case STATUS_REJECTED:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl3,
|
||||
com.xscm.moduleutil.R.color.color_ff8acc,
|
||||
TEXT_EXPECTED_REFUND,
|
||||
item.getReceived_tax_amount(),
|
||||
com.xscm.moduleutil.R.color.color_black);
|
||||
break;
|
||||
case STATUS_PAYING:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl4,
|
||||
com.xscm.moduleutil.R.color.color_68A5FF,
|
||||
TEXT_EXPECTED_DEFAULT,
|
||||
TEXT_TAX_CALCULATING,
|
||||
com.xscm.moduleutil.R.color.color_black);
|
||||
break;
|
||||
case STATUS_PAY_FAILED:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl5,
|
||||
com.xscm.moduleutil.R.color.color_ff8acc,
|
||||
TEXT_EXPECTED_REFUND,
|
||||
item.getReceived_tax_amount(),
|
||||
com.xscm.moduleutil.R.color.color_black);
|
||||
break;
|
||||
case STATUS_PAID:
|
||||
setStatusUI(helper,
|
||||
com.xscm.moduleutil.R.mipmap.dcl6,
|
||||
com.xscm.moduleutil.R.color.color_999999,
|
||||
TEXT_EXPECTED_ACTUAL,
|
||||
item.getReceived_tax_amount(),
|
||||
com.xscm.moduleutil.R.color.color_2ADB88);
|
||||
break;
|
||||
default:
|
||||
// 未知状态处理
|
||||
setStatusUI(helper,
|
||||
0, // 空图标
|
||||
com.xscm.moduleutil.R.color.color_999999,
|
||||
"", "", com.xscm.moduleutil.R.color.color_black);
|
||||
tvStatus.setText("未知状态");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 封装状态相关UI设置(消除重复代码)
|
||||
*
|
||||
* @param helper ViewHolder
|
||||
* @param imXRes im_x的图标资源
|
||||
* @param statusTextColor 状态文本颜色
|
||||
* @param expectedText 预计到账文本
|
||||
* @param taxValue 个税文本
|
||||
* @param expectedValueColor 预计值文本颜色
|
||||
*/
|
||||
private void setStatusUI(BaseViewHolder helper, int imXRes, int statusTextColor,
|
||||
String expectedText, String taxValue, int expectedValueColor) {
|
||||
Context context = helper.itemView.getContext(); // 从itemView获取上下文,更可靠
|
||||
|
||||
// 设置im_x图标
|
||||
if (imXRes != 0) {
|
||||
helper.setBackgroundRes(R.id.im_x, imXRes);
|
||||
}
|
||||
|
||||
// 设置状态文本颜色(使用ContextCompat兼容低版本)
|
||||
TextView tvStatus = helper.getView(R.id.tv_status);
|
||||
tvStatus.setTextColor(ContextCompat.getColor(context, statusTextColor));
|
||||
|
||||
// 设置其他文本
|
||||
helper.setText(R.id.tv_expected, expectedText)
|
||||
.setText(R.id.tv_tax_value, taxValue)
|
||||
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(context, expectedValueColor));
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空状态相关UI(处理item为null的情况)
|
||||
*/
|
||||
private void clearStatusUI(BaseViewHolder helper) {
|
||||
helper.setBackgroundRes(R.id.im_x, 0)
|
||||
.setText(R.id.tv_expected, "")
|
||||
.setText(R.id.tv_tax_value, "")
|
||||
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_black));
|
||||
|
||||
TextView tvStatus = helper.getView(R.id.tv_status);
|
||||
tvStatus.setTextColor(ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_999999));
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user