lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt
@@ -10,30 +10,50 @@
import com.facebook.drawee.view.SimpleDraweeView
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.entity.CourseBean
import com.sinata.xqmuse.utils.HtmlUtils
import java.util.ArrayList
class CourseGridAdapter(list: ArrayList<CourseBean>):HFRecyclerAdapter<CourseBean>(list, R.layout.item_course_grid) {
class CourseGridAdapter(list: ArrayList<CourseBean>,val isVoice:Boolean = false):HFRecyclerAdapter<CourseBean>(list, R.layout.item_course_grid) {
    var isOrder:Boolean = false
    override fun onBind(holder: ViewHolder, position: Int, data: CourseBean) {
        holder.bind<SimpleDraweeView>(R.id.iv_bg).setImageURI(data.coverUrl)
        holder.setText(R.id.tv_title,data.courseTitle)
        holder.setText(R.id.tv_subtitle,data.briefIntroduction)
        holder.setText(R.id.tv_count,(data.count).toString())
        holder.bind<SimpleDraweeView>(R.id.iv_bg).setImageURI(if (data.coverUrl.contains(",")) data.coverUrl.split(",").getOrNull(1) else data.coverUrl)
        holder.setText(R.id.tv_title,if (isVoice) data.meditationTitle else data.courseTitle)
        holder.setText(R.id.tv_subtitle,if (isVoice) data.coverDescription else if (!data.description.isNullOrEmpty()) data.description else HtmlUtils.getTextFromHtml(data.briefIntroduction))
        holder.setText(R.id.tv_count,(if (isVoice) data.realLearnedNum else data.count).toString())
        val iv_vip = holder.bind<View>(R.id.iv_vip)
        val tv_price = holder.bind<TextView>(R.id.tv_price)
        when(data?.chargeType){ //1=免费 2=会员免费 3=单独收费
        val tv_free = holder.bind<View>(R.id.tv_free)
        if (isOrder){
            val tvPay = holder.bind<TextView>(R.id.tv_not_pay)
            iv_vip.gone()
            tv_price.gone()
            if (data.paymentStatus == 1){
                tvPay.visible()
                val s = "待支付 | ¥${data.generalPrice}"
                tvPay.text = SpanBuilder(s).size(6,7,7).build()
            }else
                tvPay.gone()
        }else when(data?.chargeType){ //1=免费 2=会员免费 3=单独收费
            2->{
                iv_vip.visible()
                tv_price.gone()
                tv_free.gone()
            }
            3->{
                iv_vip.gone()
                tv_price.visible()
                tv_price.text = SpanBuilder("¥${"9.0"}").size(0,1,7).build()
            }else->{
            iv_vip.gone()
            tv_price.gone()
        }
                tv_free.gone()
                tv_price.text = SpanBuilder("¥${data.generalPrice}").size(0,1,6).build()
            }
            else->{
                iv_vip.gone()
                tv_price.gone()
                if (data.courseType == 2) //线下
                    tv_free.gone()
                else
                    tv_free.visible()
            }
        }
    }