2025-11-20 07:30:17 +00:00
|
|
|
package com.gamedog.vididin.widget
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
|
import android.util.AttributeSet
|
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
|
import android.widget.LinearLayout
|
2025-11-26 08:40:28 +00:00
|
|
|
import androidx.core.view.isVisible
|
2025-11-26 06:09:10 +00:00
|
|
|
import com.ama.core.architecture.util.ResUtil
|
2025-11-26 03:22:22 +00:00
|
|
|
import com.ama.core.architecture.util.setOnClickBatch
|
2025-11-20 08:00:23 +00:00
|
|
|
import com.gamedog.vididin.R
|
2025-11-20 07:30:17 +00:00
|
|
|
import com.gamedog.vididin.databinding.DailySignItemBinding
|
2025-11-26 02:54:59 +00:00
|
|
|
import com.gamedog.vididin.main.fragments.task.RewardDetail
|
2025-11-26 08:40:28 +00:00
|
|
|
import com.gamedog.vididin.manager.DailySignBean
|
|
|
|
|
import com.gamedog.vididin.manager.DailySignDayInfoBean
|
2025-11-20 07:30:17 +00:00
|
|
|
import kotlin.run
|
|
|
|
|
|
|
|
|
|
class DailySignItemView @JvmOverloads constructor(
|
|
|
|
|
context: Context,
|
|
|
|
|
attrs: AttributeSet? = null,
|
|
|
|
|
defStyleAttr: Int = 0
|
|
|
|
|
) : LinearLayout(context, attrs, defStyleAttr) {
|
|
|
|
|
|
2025-11-26 08:40:28 +00:00
|
|
|
private lateinit var mConfigData: RewardDetail
|
|
|
|
|
private lateinit var mStateData: DailySignDayInfoBean
|
2025-11-26 03:22:22 +00:00
|
|
|
private var mBinding: DailySignItemBinding
|
|
|
|
|
private var mIsSelected = false
|
|
|
|
|
private var mSelectStateCallback: ((isSelected: Boolean)->Unit)? = null
|
2025-11-20 07:30:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
init {
|
|
|
|
|
mBinding = DailySignItemBinding.inflate(LayoutInflater.from(context), this, true)
|
2025-11-20 08:00:23 +00:00
|
|
|
mBinding.run {
|
2025-11-26 07:31:34 +00:00
|
|
|
setOnClickBatch(contentRoot, ) {
|
2025-11-26 03:22:22 +00:00
|
|
|
when(this) {
|
|
|
|
|
contentRoot -> {
|
|
|
|
|
if (!mIsSelected) {
|
|
|
|
|
setSelectState(true)
|
|
|
|
|
mSelectStateCallback?.invoke(mIsSelected)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-20 07:30:17 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-20 08:00:23 +00:00
|
|
|
|
|
|
|
|
|
2025-11-26 08:40:28 +00:00
|
|
|
fun setData(data: RewardDetail, stateData: DailySignDayInfoBean, selectStateCallback: (isSelected: Boolean)->Unit) {
|
|
|
|
|
mConfigData = data
|
|
|
|
|
mStateData = stateData
|
2025-11-26 03:22:22 +00:00
|
|
|
mSelectStateCallback = selectStateCallback
|
2025-11-26 08:40:28 +00:00
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-20 08:00:23 +00:00
|
|
|
}
|
|
|
|
|
|
2025-11-21 09:52:58 +00:00
|
|
|
fun setLargeWidthMode() {
|
|
|
|
|
mBinding.ivGold.setImageResource(R.mipmap.icon_gold_x3)
|
|
|
|
|
mBinding.ivBg.setImageResource(R.mipmap.bg_biginner_daily_large)
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-26 03:22:22 +00:00
|
|
|
fun setSelectState(isSelect: Boolean) {
|
|
|
|
|
mIsSelected = isSelect
|
2025-11-26 06:09:10 +00:00
|
|
|
if (mIsSelected) {
|
|
|
|
|
mBinding.rlRoot.foreground = ResUtil.getDrawable(R.drawable.bg_daily_sign_day_item)
|
|
|
|
|
} else {
|
|
|
|
|
mBinding.rlRoot.foreground = null
|
|
|
|
|
}
|
2025-11-26 03:22:22 +00:00
|
|
|
}
|
|
|
|
|
|
2025-11-26 08:40:28 +00:00
|
|
|
fun getStateBean(): DailySignDayInfoBean {
|
|
|
|
|
return mStateData
|
|
|
|
|
}
|
2025-11-26 03:22:22 +00:00
|
|
|
|
|
|
|
|
|
2025-11-20 07:30:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|