package com.yidianling.home.ui.view
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Paint
import android.text.TextUtils
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.yidianling.common.tools.RxImageTool
import com.yidianling.home.R
import com.yidianling.home.event.HomeImpl
import com.yidianling.home.event.IHomeBaseEvent
import com.yidianling.home.event.IHomeEvent
import com.yidianling.home.model.bean.HomeConfideBean
import kotlinx.android.synthetic.xlzx.home_confide_expert_info_view.view.*
/**
* @author jiucheng
* @描述:首页倾诉模块--专家个人信息view
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2019/2/16
*/
class HomeConfideExpertInfoView(
private var mContext: Context,
private var homeEvent: HomeImpl?
) : FrameLayout(mContext) {
private var dp70 = 0
init {
initView()
dp70 = RxImageTool.dip2px(70f)
}
private fun initView() {
var params = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
layoutParams = params
View.inflate(context, R.layout.home_confide_expert_info_view, this)
}
fun setData(bean: HomeConfideBean.BodyBean?, position: Int, isLast: Boolean) {
if (bean == null) {
visibility = View.GONE
return
}
//设置头像
setHead(bean)
//设置名称
tv_name.text = bean.confidedName
//设置倾诉标签View的最大宽度
tag_view.setConfideWidth()
//咨询师标签
tag_view.initData(bean.confidedTag as MutableList<String>)
//设置向TA倾诉人数
setConfideNum(bean)
//设置接通率文案
setConnection(bean)
//设置向TA倾诉按钮状态
setConfideButton(bean)
//设置红包、原价
setCoupon(bean)
//最后一项显示分割线
if (isLast) {
view_line.visibility = View.GONE
} else {
view_line.visibility = View.VISIBLE
}
this.setOnClickListener {
homeEvent?.confideClick(bean.linkUrl, bean.confidedId.toString(), bean.doctorId, bean.uid.toString())
}
iv_confide_voice.setOnClickListener {
homeEvent?.confidePlayClick(iv_confide_voice, bean)
}
}
/**
* 设置头像
*/
private fun setHead(bean: HomeConfideBean.BodyBean) {
val op = SimpleImageOpConfiger()
op.errorPic = R.drawable.platform_head_place_hold_pic
op.loadingPic = R.drawable.platform_head_place_hold_pic
op.transform = 0
YDLImageCacheManager.showImage(mContext, bean.confidedIcon, img_head, op)
}
/**
* 设置向TA倾诉人数
*/
private fun setConfideNum(bodyBean: HomeConfideBean.BodyBean) {
if (TextUtils.isEmpty(bodyBean.confideNum)) {
tv_confideNum.visibility = View.GONE
tv_tv_confideNumContent.visibility = View.GONE
} else {
tv_confideNum.visibility = View.VISIBLE
tv_tv_confideNumContent.visibility = View.VISIBLE
if (bodyBean.confideNum?.indexOf("人") != -1) {
bodyBean.confideNum =
bodyBean.confideNum?.substring(0, bodyBean.confideNum?.length!! - 1)
}
tv_confideNum.text = bodyBean.confideNum
}
}
/**
* 设置接通率文案
*/
private fun setConnection(bodyBean: HomeConfideBean.BodyBean) {
if (TextUtils.isEmpty(bodyBean.confideConnection)) {
tv_Connection.visibility = View.INVISIBLE
tv_ConnectionContent.visibility = View.INVISIBLE
} else {
tv_Connection.visibility = View.VISIBLE
tv_ConnectionContent.visibility = View.VISIBLE
tv_Connection.text = bodyBean.confideConnection
}
}
/**
* 设置向TA倾诉按钮状态
*/
private fun setConfideButton(bodyBean: HomeConfideBean.BodyBean) {
when (bodyBean.confideLine) {//1在线 2离线 3通话中 4继续倾诉
1 -> {
tv_confide.setBackgroundResource(R.drawable.home_confide_line_1)
}
2 -> {
tv_confide.setBackgroundResource(R.drawable.home_confide_line_2)
}
3 -> {
tv_confide.setBackgroundResource(R.drawable.home_confide_line_3)
}
4 -> {
tv_confide.setBackgroundResource(R.drawable.home_confide_line_4)
}
}
tv_confide.setOnClickListener {
if (bodyBean.confideLine == 2) {//喊他上线 私聊
homeEvent!!.toChatForMsg(bodyBean.uid.toString())
} else {
homeEvent!!.confideClick(bodyBean.linkUrl, bodyBean.confidedId.toString(), bodyBean.doctorId, bodyBean.uid.toString())
}
}
}
/**
* 设置红包、原价
*/
@SuppressLint("SetTextI18n")
private fun setCoupon(bodyBean: HomeConfideBean.BodyBean) {
if (bodyBean.couponMoney.toFloat().toInt() <= 0) {//优惠金额
tvCoupon.visibility = View.GONE
tvOriginalPrice.visibility = View.GONE
tv_price.text = "¥${bodyBean.confideFee}"
} else {
val couponMoney = bodyBean.couponMoney.toFloat().toInt()
val confideFee = bodyBean.confideFee.toFloat().toInt()
val sb = StringBuilder()
sb.append("立减").append(couponMoney).append("元")
tvCoupon.text = sb.toString()
tvCoupon.visibility = View.VISIBLE
tvOriginalPrice.visibility = View.VISIBLE
val originalBuffer = StringBuilder()
originalBuffer.append("原价¥").append(bodyBean.confideFee)
tvOriginalPrice.text = originalBuffer.toString()
//添加删除线
tvOriginalPrice.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
if (couponMoney >= confideFee) {
tv_price.text = "¥0"
} else {
val price = confideFee - couponMoney
tv_price.text = "¥$price"
}
}
}
}