VidiDin-Android/app/src/main/java/com/gamedog/vididin/widget/DailySignItemView.kt

68 lines
1.9 KiB
Kotlin

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.setOnClickBatch
import com.gamedog.vididin.R
import com.gamedog.vididin.databinding.DailySignItemBinding
import com.gamedog.vididin.main.fragments.task.RewardDetail
import kotlin.run
class DailySignItemView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
private lateinit var mData: RewardDetail
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, selectStateCallback: (isSelected: Boolean)->Unit) {
mData = data
mSelectStateCallback = selectStateCallback
mBinding.tvGoldNum.text = "" + mData.value
mBinding.tvDayNum.text = context.getString(R.string.day) + " "+ mData.day
}
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
mBinding.ivSelected.isVisible = mIsSelected
}
}