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
|
|
}
|
}
|