package com.gamedog.vididin.widget import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout import androidx.core.view.isVisible import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.R import com.gamedog.vididin.databinding.DailySignItemBinding import com.gamedog.vididin.main.fragments.task.RewardDetail import com.gamedog.vididin.manager.DailySignBean import com.gamedog.vididin.manager.DailySignDayInfoBean import kotlin.run class DailySignItemView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : LinearLayout(context, attrs, defStyleAttr) { private lateinit var mConfigData: RewardDetail private lateinit var mStateData: DailySignDayInfoBean private var mBinding: DailySignItemBinding private var mIsSelected = false private var mSelectStateCallback: ((isSelected: Boolean)->Unit)? = null init { mBinding = DailySignItemBinding.inflate(LayoutInflater.from(context), this, true) mBinding.run { setOnClickBatch(contentRoot, ) { when(this) { contentRoot -> { if (!mIsSelected) { setSelectState(true) mSelectStateCallback?.invoke(mIsSelected) } } } } } } fun setData(data: RewardDetail, stateData: DailySignDayInfoBean, selectStateCallback: (isSelected: Boolean)->Unit) { mConfigData = data mStateData = stateData mSelectStateCallback = selectStateCallback mBinding.tvGoldNum.text = "" + mConfigData.value mBinding.tvDayNum.text = context.getString(R.string.day) + " "+ mConfigData.day when(mStateData.signState) { DailySignBean.SIGN_STATE_ENABLE -> { mBinding.ivDone.isVisible = false } DailySignBean.SIGN_STATE_DISABLE -> { mBinding.ivDone.isVisible = false } DailySignBean.SIGN_STATE_DONE -> { mBinding.ivDone.isVisible = true mBinding.tvDayNum.isVisible = false } DailySignBean.SIGN_STATE_FORGOT -> { mBinding.ivDone.isVisible = false } } } fun setLargeWidthMode() { mBinding.ivGold.setImageResource(R.mipmap.icon_gold_x3) mBinding.ivBg.setImageResource(R.mipmap.bg_biginner_daily_large) } fun setSelectState(isSelect: Boolean) { mIsSelected = isSelect if (mIsSelected) { mBinding.rlRoot.foreground = ResUtil.getDrawable(R.drawable.bg_daily_sign_day_item) } else { mBinding.rlRoot.foreground = null } } fun getStateBean(): DailySignDayInfoBean { return mStateData } }