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

78 lines
2.0 KiB
Kotlin
Raw Normal View History

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
import com.ama.core.architecture.util.ResUtil
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-12-01 06:46:11 +00:00
import com.gamedog.vididin.manager.taskbeans.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
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-20 07:30:17 +00:00
}
}
2025-11-20 08:00:23 +00:00
fun setData(data: RewardDetail, stateData: DailySignDayInfoBean) {
2025-11-26 08:40:28 +00:00
mConfigData = data
mStateData = stateData
mBinding.tvGoldNum.text = "" + mConfigData.value
mBinding.tvDayNum.text = context.getString(R.string.day) + " "+ mConfigData.day
2025-11-26 11:21:37 +00:00
updateUI()
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 11:21:37 +00:00
updateUI()
}
fun getStateBean(): DailySignDayInfoBean {
return mStateData
}
fun updateUI() {
mBinding.ivDone.isVisible = mStateData.hasSigned
mBinding.tvDayNum.isVisible = !mStateData.hasSigned
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 11:21:37 +00:00
mBinding.rlRoot.alpha = if (mStateData.hasSigned) 0.3F else 1F
2025-11-26 08:40:28 +00:00
}
2025-11-26 03:22:22 +00:00
2025-11-20 07:30:17 +00:00
}