Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/adapter/ItemCpHeartAdapter.kt

61 lines
2.1 KiB
Kotlin
Raw Normal View History

2025-11-22 18:38:49 +08:00
package com.xscm.modulemain.adapter
import android.content.Context
import android.text.SpannableStringBuilder
import android.text.SpannedString
import android.text.style.ForegroundColorSpan
import android.widget.TextView
import androidx.compose.ui.graphics.Color
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.xscm.modulemain.R
import com.xscm.moduleutil.bean.HeartCpBean
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.utils.TimeUtils
class ItemCpHeartAdapter(
val context: Context,
val userId: Int,
layoutId: Int,
data: MutableList<HeartCpBean.GiftLog>?
) :
BaseQuickAdapter<HeartCpBean.GiftLog, BaseViewHolder>(layoutId, data) {
override fun convert(helper: BaseViewHolder, item: HeartCpBean.GiftLog) {
ImageUtils.loadHead(item.from_user_info.avatar, helper.getView(R.id.iv_head))
helper.setText(R.id.tv_name, item.from_user_info.nickname)
helper.setText(R.id.tv_time, TimeUtils.getDateToStringNoZ(item.createtime))
val tv = helper.getView(R.id.tv_name) as TextView
val cid = if (userId == item.from_user_id) {
tv.setTextColor(context.getColor(R.color.ffff53cc))
R.color.ffff53cc
} else {
tv.setTextColor(context.getColor(R.color.ff4a89ff))
R.color.ff4a89ff
}
if (item.remark.contains(userId.toString())) {
val builder = getContentColor(item.from_user_info.nickname, item.remark, cid)
helper.setText(R.id.tv_content, builder)
} else {
helper.setText(R.id.tv_content, item.remark)
}
}
private fun getContentColor(
userName: String,
content: String,
cid: Int
): SpannableStringBuilder {
val builder = SpannableStringBuilder()
val start = content.indexOf(userName)
val end = start + userName.length
builder.append(content)
val colorSpan = ForegroundColorSpan(context.getColor(cid))
builder.setSpan(colorSpan, start, end, SpannedString.SPAN_EXCLUSIVE_EXCLUSIVE)
return builder
}
}