lmw
2024-07-09 b13afc751dbbce24753d008f1f87d2c5e133a4ad
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.dollearn.student.ui.home.adapter
 
import android.app.Activity
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import cn.sinata.xldutils.activity.BaseActivity
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.dollearn.student.R
import com.dollearn.student.dialog.EditUserDialog
import com.dollearn.student.network.entity.Student
import com.dollearn.student.ui.home.AddStudentActivity
import com.dollearn.student.ui.home.ChooseUserActivity
import com.dollearn.student.utils.extention.clickDelay
import com.dollearn.student.utils.interfaces.StringCallback
import org.jetbrains.anko.backgroundResource
import org.jetbrains.anko.imageResource
import org.jetbrains.anko.startActivityForResult
import java.util.ArrayList
 
class StudentAdapter(students: ArrayList<Student>,val type:Int = TYPE_COURSE_CHOOSE):HFRecyclerAdapter<Student>(students, R.layout.item_student) {
    var checked = arrayListOf<String>() //选中的运动营成员id
    var delCallback:StringCallback? = null
    var delable = true
 
    override fun onBind(holder: ViewHolder, position: Int, data: Student) {
        val del = holder.bind<ImageView>(R.id.iv_del)
        if (!delable||(data.isStudent == 1&&type == TYPE_MATCH_EDIT))
            del.gone()
        else
            del.visible()
        val tvIdCard = holder.bind<TextView>(R.id.tv_idCard)
        var name:String
        var age:String
        var phone:String
        when(type){
            TYPE_COURSE_CHOOSE->{
                val bg = holder.bind<View>(R.id.bg)
                name = "姓名:${data.stuName}"
                age = "年龄:${data.stuAge}"
                phone = "联系电话:${if (data.stuPhone.isNullOrEmpty()) "" else (data.stuPhone?:"")}"
                if (data.stuId in checked){
                    bg.backgroundResource = R.drawable.bg_orange_line_4dp
                    del.imageResource = R.mipmap.icon_selected
                }else{
                    bg.backgroundResource = R.drawable.bg_grey_line_4dp
                    del.imageResource = 0
                }
            }
            TYPE_MATCH_CHOOSE->{
                val bg = holder.bind<View>(R.id.bg)
                name = "姓名:${data.name}"
                age = "年龄:${data.age}"
                phone = "联系电话:${data.phone}"
                if (data.idcard.isNullOrEmpty()){
                    tvIdCard.text = ""
                } else {
                    val s = "身份证号:${data.idcard}"
                    tvIdCard.text = SpanBuilder(s).color(context,0,5,R.color.textColor66).bold(5,s.length).build()
                }
 
                if (data.id in checked){
                    bg.backgroundResource = R.drawable.bg_orange_line_4dp
                    del.imageResource = R.mipmap.icon_selected
                }else{
                    bg.backgroundResource = R.drawable.bg_grey_line_4dp
                    del.imageResource = 0
                }
            }
            TYPE_MATCH_EDIT->{
                name = "姓名:${data.name}"
                age = "年龄:${data.age}"
                phone = "联系电话:${if (data.phone.isNullOrEmpty()) "" else data.phone}"
                val idCard = if (data.idcard.isNullOrEmpty()) "身份证号:去实名>>" else "身份证号:${data.idcard}"
                val ivEdit = holder.bind<View>(R.id.iv_edit)
                ivEdit.visible()
                ivEdit.setOnClickListener {
                    EditUserDialog.show((context as BaseActivity).supportFragmentManager,data.id?:"",data.headImg?:"",data.height?:"",data.weight?:"",data.phone?:"",object :StringCallback{
                        override fun onResult(rst: String) {
                            (context as ChooseUserActivity).apply {
                                getUser()
                                setResult(Activity.RESULT_OK)
                            }
                        }
                    })
                }
 
                if (data.idcard.isNullOrEmpty()){
                    tvIdCard.text = SpanBuilder(idCard).color(context,0,5,R.color.textColor66).color(context,5,idCard.length,R.color.colorPrimary).bold(5,idCard.length).build()
                    tvIdCard.clickDelay {
                        (context as ChooseUserActivity).startActivityForResult<AddStudentActivity>(1,"type" to AddStudentActivity.TYPE_EDIT_MATCH, "user" to data)
                    }
                }else{
                    tvIdCard.text = SpanBuilder(idCard).color(context,0,5,R.color.textColor66).bold(5,idCard.length).build()
                }
                del.clickDelay {
                    delCallback?.onResult(position.toString())
                }
 
            }
            else->{
                name = "姓名:${data.name}"
                age = "年龄:${data.age}"
                phone = "联系电话:${if (data.phone.isNullOrEmpty()) "" else data.phone}"
                del.clickDelay {
                    delCallback?.onResult(position.toString())
                }
                if ((type == TYPE_MATCH_DETAIL||type == TYPE_MY_MATCH_DETAIL)&&!data.idcard.isNullOrEmpty()){
                    val s = "身份证号:${data.idcard}"
                    tvIdCard.text = SpanBuilder(s).color(context,0,5,R.color.textColor66).bold(5,s.length).build()
                }else
                    tvIdCard.text = ""
                if (type == TYPE_MY_MATCH_DETAIL)
                    del.gone()
            }
        }
        holder.setText(R.id.tv_name,SpanBuilder(name).color(context,0,3,R.color.textColor66).bold(3,name.length).build())
        holder.setText(R.id.tv_age,SpanBuilder(age).color(context,0,3,R.color.textColor66).bold(3,age.length).build())
        holder.setText(R.id.tv_phone,SpanBuilder(phone).color(context,0,5,R.color.textColor66).bold(5,phone.length).build())
    }
 
    companion object{
        const val TYPE_COURSE_CHOOSE = 1 //运动营运动营成员底部弹窗 ChooseStudentDialog
        const val TYPE_COURSE_DETAIL = 2
        const val TYPE_MATCH_DETAIL = 3
        const val TYPE_MATCH_CHOOSE = 4 //参赛人员底部弹窗 ChooseStudentDialog
        const val TYPE_MATCH_EDIT = 5 //ChooseUserActivity
        const val TYPE_MY_MATCH_DETAIL = 6 //MyMatchDetailActivity
 
    }
}