lmw
2024-11-20 ec282d9bf134fbda578ff901e4a620222a851d3f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.sinata.xqmuse.ui.course.adapter
 
import android.view.View
import android.widget.TextView
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.visible
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>,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(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)
        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_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()
            }
        }
    }
 
}