1:添加签到功能,在首页展示,跟在青少年模式下,
2:在任务页面展示签到功能
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
package com.xscm.modulemain.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.blankj.utilcode.util.ScreenUtils
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.databinding.DialogSignBinding
|
||||
import com.xscm.moduleutil.bean.SignInData
|
||||
import com.xscm.moduleutil.http.BaseObserver
|
||||
import com.xscm.moduleutil.http.RetrofitClient
|
||||
import com.xscm.moduleutil.utils.ImageLoader
|
||||
import com.xscm.moduleutil.widget.dialog.BaseDialog
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
||||
/**
|
||||
* 项目名称:羽声语音
|
||||
* 时间:2025/12/9 18:21
|
||||
* 用途:签到
|
||||
*/
|
||||
class SignInDialog(context: Context) : BaseDialog<DialogSignBinding>(context) {
|
||||
var signInDataLists: List<SignInData>? = ArrayList<SignInData>()
|
||||
private var onCloseCallback: (() -> Unit)? = null
|
||||
|
||||
fun setOnCloseListener(callback: () -> Unit) = apply {
|
||||
onCloseCallback = callback
|
||||
}
|
||||
|
||||
|
||||
init {
|
||||
// 设置对话框从底部弹出
|
||||
window?.setGravity(Gravity.CENTER)
|
||||
// 设置对话框的宽度为屏幕宽度
|
||||
window?.setLayout(
|
||||
(ScreenUtils.getScreenWidth() * 315f / 375).toInt(),
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
// 添加动画效果
|
||||
window?.setWindowAnimations(com.xscm.moduleutil.R.style.DialogAnimationt)
|
||||
setCancelable(false)
|
||||
setCanceledOnTouchOutside(false)
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.dialog_sign
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
mBinding.ivClose.setOnClickListener {
|
||||
onCloseCallback?.invoke()
|
||||
dismiss()
|
||||
}
|
||||
mBinding.btnSign.setOnClickListener {
|
||||
|
||||
RetrofitClient.getInstance().dailyTasksSign(object : BaseObserver<String>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
}
|
||||
|
||||
override fun onNext(t: String) {
|
||||
var signInSuccessDialog=SignInSuccessDialog(context)
|
||||
signInSuccessDialog.viewData(signInData)
|
||||
signInSuccessDialog.setOnCloseListener {
|
||||
onCloseCallback?.invoke()
|
||||
}
|
||||
signInSuccessDialog.show()
|
||||
dismiss()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
RetrofitClient.getInstance().signIn(object : BaseObserver<List<SignInData>>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
}
|
||||
|
||||
override fun onNext(t: List<SignInData>) {
|
||||
signInDataLists = t
|
||||
for (i in signInDataLists!!) {
|
||||
setUpView(i)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
var signInData = SignInData()
|
||||
|
||||
fun setUpView(signInData: SignInData) {
|
||||
if (signInData.is_today == 1) {
|
||||
this.signInData = signInData
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.btnSign.text = "已签到"
|
||||
mBinding.btnSign.isEnabled = false
|
||||
mBinding.btnSign.setBackgroundResource(com.xscm.moduleutil.R.drawable.bg_r53_f3f3f3)
|
||||
}
|
||||
}
|
||||
if (signInData.day == 1) {
|
||||
mBinding.day1.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day1.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day1.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day1.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day1.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day1.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day1.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 2) {
|
||||
mBinding.day2.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day2.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day2.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day2.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day2.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day2.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day2.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 3) {
|
||||
mBinding.day3.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day3.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day3.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day3.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day3.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day3.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day3.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 4) {
|
||||
mBinding.day4.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day4.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day4.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day4.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day4.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day4.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day4.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 5) {
|
||||
mBinding.day5.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day5.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day5.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day5.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day5.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day5.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day5.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 6) {
|
||||
mBinding.day6.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day6.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day6.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day6.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day6.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day6.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day6.ivSign
|
||||
)
|
||||
}
|
||||
} else if (signInData.day == 7) {
|
||||
mBinding.day7.tvDay.text = signInData.day.toString()
|
||||
|
||||
mBinding.day7.tvSiginPrice.text = signInData.gift_name + "*" + signInData.num
|
||||
if (signInData.sign_in_status == 1) {
|
||||
mBinding.day7.ivCollected.visibility = View.VISIBLE
|
||||
mBinding.day7.root.setBackgroundResource(R.drawable.select_item_click)
|
||||
ImageLoader.loadImage(
|
||||
context,
|
||||
mBinding.day7.ivSign,
|
||||
signInData.base_image,
|
||||
0.4f
|
||||
)
|
||||
} else {
|
||||
mBinding.day7.ivCollected.visibility = View.GONE
|
||||
com.xscm.moduleutil.utils.ImageUtils.loadHead(
|
||||
signInData.base_image,
|
||||
mBinding.day7.ivSign
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.xscm.modulemain.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.ViewGroup
|
||||
import com.blankj.utilcode.util.ScreenUtils
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.databinding.DialogSignSuccesBinding
|
||||
import com.xscm.moduleutil.bean.SignInData
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
import com.xscm.moduleutil.widget.dialog.BaseDialog
|
||||
|
||||
/**
|
||||
* 项目名称:羽声语音
|
||||
* 时间:2025/12/12 9:37
|
||||
* 用途:签到成功后展示页面
|
||||
*/
|
||||
class SignInSuccessDialog(context: Context) : BaseDialog<DialogSignSuccesBinding>(context) {
|
||||
private var onCloseCallback: (() -> Unit)? = null
|
||||
|
||||
fun setOnCloseListener(callback: () -> Unit) = apply {
|
||||
onCloseCallback = callback
|
||||
}
|
||||
init {
|
||||
// 设置对话框从底部弹出
|
||||
window?.setGravity(Gravity.CENTER)
|
||||
// 设置对话框的宽度为屏幕宽度
|
||||
window?.setLayout(
|
||||
(ScreenUtils.getScreenWidth() * 315f / 375).toInt(),
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
// 添加动画效果
|
||||
window?.setWindowAnimations(com.xscm.moduleutil.R.style.DialogAnimationt)
|
||||
setCancelable(false)
|
||||
setCanceledOnTouchOutside(false)
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.dialog_sign_succes
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
mBinding.btnSign.setOnClickListener {
|
||||
onCloseCallback?.invoke()
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
fun viewData(signInData: SignInData) {
|
||||
ImageUtils.loadHead(signInData.base_image, mBinding.imV)
|
||||
mBinding.tvSignPrice.text ="签到成功 "+ signInData.gift_name+""+signInData.num
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user