@@ -15,11 +15,13 @@ import android.text.style.ForegroundColorSpan;
import android.view.View ;
import android.widget.ImageView ;
import android.widget.LinearLayout ;
import android.widget.TextView ;
import androidx.annotation.NonNull ;
import androidx.annotation.Nullable ;
import androidx.constraintlayout.widget.ConstraintLayout ;
import com.blankj.utilcode.util.LogUtils ;
import com.bumptech.glide.Glide ;
import com.bumptech.glide.load.DataSource ;
import com.bumptech.glide.load.engine.GlideException ;
@@ -29,19 +31,18 @@ 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.modulemain.R ;
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.bean.room.EmotionDeatils ;
import com.xscm.moduleutil.utils.ImageUtils ;
import com.xscm.moduleutil.utils.MeHeadView ;
import com.xscm.moduleutil.utils.logger.Logger ;
import com.xscm.moduleutil.widget.AdaptiveImageView ;
import com.xscm.moduleutil.widget.GifAvatarOval View ;
import com.xscm.moduleutil.widget.ShineText View ;
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper ;
import com.xscm.moduleutil.bean.room.EmotionDeatils ;
import java.util.ArrayList ;
import java.util.Collection ;
@@ -73,7 +74,6 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
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 ) ; //表情
@@ -199,10 +199,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
switch ( helper . getItemViewType ( ) ) {
case 1 :
helper . getView ( R . id . tv_content ) . setVisibility ( View . VISIBLE ) ;
helper . setText ( R . id . tv_content , getSpannable ( emMessage ) ) ;
helper . getView ( com . xscm . moduleutil . R. id . tv_content ) . setVisibility ( View . VISIBLE ) ;
helper . setText ( com . xscm . moduleutil . R. id . tv_content , getSpannable ( emMessage ) ) ;
// helper.setText(R.id.tv_content, emMessage.getText().getText());
// helper.setText(com.xscm.moduleutil. R.id.tv_content, emMessage.getText().getText());
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break ;
case 2 :
@@ -215,8 +215,18 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
MeHeadView avatar = helper . getView ( com . xscm . moduleutil . R . id . avatar ) ;
avatar . setData ( emMessage . getText ( ) . getFromUserInfo ( ) . getAvatar ( ) , " " , emMessage . getText ( ) . getFromUserInfo ( ) . getNobility_image ( ) ) ;
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
helper . s etText ( com . xscm . moduleutil . R . id . tv_name , emMessage . getText ( ) . getFromUserInfo ( ) . getNickname ( ) );
helper . setTextColor ( com . xscm . moduleutil . R . id . tv_name , emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) ! = null & & ! emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) . isEmpty ( ) ? Color . parseColor ( emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) ) : Color . parseColor ( " #CCA882 " ) ) ;
ShineTextView tvName = helper. g etView ( com . xscm . moduleutil . R . id . tv_name ) ;
tvName . setText ( emMessage . getText ( ) . getFromUserInfo ( ) . getNickname( ) ) ;
if ( ! emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) . isEmpty ( ) ) {
tvName . setStartColor ( Color . parseColor ( emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) ) ) ;
tvName . setShineColor ( Color . parseColor ( emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) ) ) ;
tvName . setEndColor ( Color . parseColor ( emMessage . getText ( ) . getFromUserInfo ( ) . getNickname_color ( ) ) ) ;
tvName . setShine ( true ) ;
tvName . setShineType ( 0 ) ;
}
// helper.setTextColor(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname_color() != null && !emMessage.getText().getFromUserInfo().getNickname_color().isEmpty() ? Color.parseColor(emMessage.getText().getFromUserInfo().getNickname_color()) : Color.parseColor("#CCA882"));
if ( emMessage . getText ( ) . getText ( ) ! = null ) {
helper . setText ( com . xscm . moduleutil . R . id . tv_content , getSpannable ( emMessage ) ) ;
}
@@ -335,7 +345,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
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);
//// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(R.mipmap.qipaokang);
//// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
//
// // 使用 Glide 加载图片并设置名称
@@ -363,15 +373,15 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// }
// });
// } else {
// helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(com.xscm.moduleutil. R.drawable.ease_row_pubilc_user_bg);
// helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(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 ) ) ;
helper . getView ( com . xscm . moduleutil . R. id . tv_content ) . setVisibility ( View . VISIBLE ) ;
helper . setText ( com . xscm . moduleutil . 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();
@@ -382,10 +392,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// 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)
// helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_57),
// helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_15)
// );
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil. R.dimen.dp_5), 0); // 右边距
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.dp_5), 0); // 右边距
// imageView.setLayoutParams(params);
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// // 使用 Glide 加载图片
@@ -396,21 +406,21 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
break ;
// case 4:
// TextView tvContent7 = helper.getView(R.id.tv_content);
// ivNew = helper.getView(R.id.new_view);
// TextView tvContent7 = helper.getView(com.xscm.moduleutil. R.id.tv_content);
// ivNew = helper.getView(com.xscm.moduleutil. 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 = helper.getView(com.xscm.moduleutil. R.id.iv_role);
// ivNew = helper.getView(com.xscm.moduleutil. R.id.iv_new);
// ivGrade = helper.getView(com.xscm.moduleutil. R.id.iv_grade);
// ivTitle = helper.getView(com.xscm.moduleutil. R.id.iv_title_label);
// ivNHobility = helper.getView(com.xscm.moduleutil. R.id.iv_nobility);
// tvName = helper.getView(com.xscm.moduleutil. R.id.tv_name);
// TextView tvContent5 = helper.getView(com.xscm.moduleutil. R.id.tv_content);
// ivRole.setRole(Integer.parseInt(role));
// ivNew.setNew(Integer.parseInt(userIsNew));
// ivGrade.setGrade(rankIcon);
@@ -428,14 +438,14 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// }
// ivTitle.setLabelView(user_title);
// ivNHobility.setNobility(nobilityIcon);
// ImageUtils.loadIcon(charmIcon, helper.getView(R.id.iv_charm));
// ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil. 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);
// AppCompatImageView imageView = helper.getView(com.xscm.moduleutil. R.id.iv_wagginh);
// imageView.setImageDrawable(drawable);
// ((WebpDrawable) drawable).start();
// ((WebpDrawable) drawable).setLoopCount(1);
@@ -443,7 +453,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// @Override
// public void onAnimationEnd(Drawable drawable) {
// super.onAnimationEnd(drawable);
// helper.setImageResource(R.id.iv_wagginh, a[Integer.parseInt(number)]);
// helper.setImageResource(com.xscm.moduleutil. R.id.iv_wagginh, a[Integer.parseInt(number)]);
// }
// });
// }
@@ -452,20 +462,20 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// 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 = helper.getView(com.xscm.moduleutil. R.id.iv_role);
// ivNew = helper.getView(com.xscm.moduleutil. R.id.iv_new);
// ivGrade = helper.getView(com.xscm.moduleutil. R.id.iv_grade);
// ivTitle = helper.getView(com.xscm.moduleutil. R.id.iv_title_label);
// ivNHobility = helper.getView(com.xscm.moduleutil. R.id.iv_nobility);
// tvName = helper.getView(com.xscm.moduleutil. 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);
// ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil. R.id.iv_charm));
// ImageLoader.loadIcon(mContext, helper.getView(com.xscm.moduleutil. R.id.iv_expression), emoji_special);
//
// //称号图标
// try {
@@ -486,44 +496,44 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// 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 = helper.getView(com.xscm.moduleutil. R.id.iv_role);
// ivNew = helper.getView(com.xscm.moduleutil. R.id.iv_new);
// ivGrade = helper.getView(com.xscm.moduleutil. R.id.iv_grade);
// ivTitle = helper.getView(com.xscm.moduleutil. R.id.iv_title_label);
// ivNHobility = helper.getView(com.xscm.moduleutil. R.id.iv_nobility);
// tvName = helper.getView(com.xscm.moduleutil. R.id.tv_name);
// TextView tvContent8 = helper.getView(com.xscm.moduleutil. 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));
// ImageUtils.loadIcon(charmIcon, helper.getView(com.xscm.moduleutil. 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);
// helper.setVisible(com.xscm.moduleutil. R.id.iv_qiu1, true);
// helper.setVisible(com.xscm.moduleutil. R.id.iv_qiu2, true);
// helper.setVisible(com.xscm.moduleutil. 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()));
// helper.setImageResource(com.xscm.moduleutil. R.id.iv_qiu1, mContext.getResources().getIdentifier(first, "mipmap", mContext.getPackageName()));
// helper.setImageResource(com.xscm.moduleutil. R.id.iv_qiu2, mContext.getResources().getIdentifier(second, "mipmap", mContext.getPackageName()));
// helper.setImageResource(com.xscm.moduleutil. 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);
// helper.setVisible(com.xscm.moduleutil. R.id.iv_qiu1, false);
// helper.setVisible(com.xscm.moduleutil. R.id.iv_qiu2, false);
// helper.setVisible(com.xscm.moduleutil. R.id.iv_qiu3, false);
// }
// spanUtils.append(spanned);
// tvContent8.setText(spanUtils.create());
// break;
// case 10:
// TextView tv = helper.getView(R.id.tv_content);
// TextView tv = helper.getView(com.xscm.moduleutil. 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 -> {
@@ -533,10 +543,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// return drawable;
// }, null);
// tv.setText(sp);
// helper.setGone(R.id.tv_red_rain_detail, false);
// helper.setGone(com.xscm.moduleutil. R.id.tv_red_rain_detail, false);
// break;
// case 11:
// TextView tv11 = helper.getView(R.id.tv_content);
// TextView tv11 = helper.getView(com.xscm.moduleutil. 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 -> {
@@ -546,11 +556,11 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// return drawable;
// }, null);
// tv11.setText(sp11);
// helper.setGone(R.id.tv_red_rain_detail, true);
// helper.addOnClickListener(R.id.tv_red_rain_detail);
// helper.setGone(com.xscm.moduleutil. R.id.tv_red_rain_detail, true);
// helper.addOnClickListener(com.xscm.moduleutil. R.id.tv_red_rain_detail);
// break;
// default:
// helper.setText(R.id.tv_content, Html.fromHtml(txtBody.getMessage()));
// helper.setText(com.xscm.moduleutil. R.id.tv_content, Html.fromHtml(txtBody.getMessage()));
// break;
}
@@ -590,7 +600,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
@Override
public void onViewRecycled ( @NonNull BaseViewHolder holder ) {
Logger . e ( " onViewRecycled " , " onViewRecycled " ) ;
LogUtils . e ( " onViewRecycled " , " onViewRecycled " ) ;
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
MeHeadView avatarOvalView = holder . getView ( com . xscm . moduleutil . R . id . avatar ) ;
ImageView ivNobility = holder . getView ( com . xscm . moduleutil . R . id . iv_nobility ) ;