From 38ea782dc164308a74173fe0ef532f9e7e1edc0b Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Wed, 26 Nov 2025 19:21:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E5=90=8EUI=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/fragments/task/DailySignDialog.kt | 17 +++++++--- .../gamedog/vididin/manager/TaskManager.kt | 12 ++++++- .../vididin/widget/DailySignItemView.kt | 19 +++++++---- app/src/main/res/layout/daily_sign_item.xml | 5 ++- app/src/main/res/layout/dialog_daily_sign.xml | 34 +++++++++++++------ app/src/main/res/values/strings.xml | 2 +- 6 files changed, 64 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt index 624de79..2b6688d 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt @@ -58,6 +58,7 @@ class DailySignDialog(context: Context) : BindingDialog( private fun clickedNormalSign() { if (TaskManager.instance().executeDailySign(mCurDayIndex, false, false)) { DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, true).show() + updateUI(mCurDayIndex) } } @@ -65,6 +66,7 @@ class DailySignDialog(context: Context) : BindingDialog( startAdTask("signalAd", { if (TaskManager.instance().executeDailySign(mCurDayIndex, false, true)) { DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, false).show() + updateUI(mCurDayIndex) } }) } @@ -73,6 +75,7 @@ class DailySignDialog(context: Context) : BindingDialog( startAdTask("doubleAd", { if (TaskManager.instance().executeDailySign(mCurDayIndex, true, true)) { DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, false).show() + updateUI(mCurDayIndex) } }) } @@ -83,11 +86,11 @@ class DailySignDialog(context: Context) : BindingDialog( startAdTask("complementAd", { if (TaskManager.instance().executeDailySign(firstForgotSignDayIndex, false, false)){ DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, false).show() + updateUI(firstForgotSignDayIndex) } }) - } else { - updateUI() + updateUI(firstForgotSignDayIndex) } } @@ -124,15 +127,21 @@ class DailySignDialog(context: Context) : BindingDialog( private fun initSignState() { mCurDayIndex = TaskManager.instance().getCurDayIndexOfDailyCheckIn() mSignItemViewList[mCurDayIndex].setSelectState(true) - updateUI() + updateUI(mCurDayIndex) } - private fun updateUI() { + private fun updateUI(signedDayIndex: Int) { val curDayView = mSignItemViewList[mCurDayIndex] val curDayStateBean = curDayView.getStateBean() + mBinding.tvSignedTotal.text = buildString { + append(TaskManager.instance().getSignDaysTotal()) + append("/7") + } + mSignItemViewList[signedDayIndex].updateUI() + if (!curDayStateBean.hasSigned) { mBinding.actionNormalTwoButs.isVisible = true mBinding.actionWatchAd.isVisible = false diff --git a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt index c58b24f..e22d9ad 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -177,7 +177,7 @@ class TaskManager private constructor() { fun executeDailySign(dayIndex: Int, isDoubleReward: Boolean, isByAd: Boolean) : Boolean { val daySignState = mDailySignData.signStateList[dayIndex] - if (!daySignState.hasSigned) { + if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) { val dayReward = getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0 daySignState.hasRewardedNum += if (isDoubleReward) 2*dayReward else dayReward daySignState.hasSigned = true @@ -219,6 +219,16 @@ class TaskManager private constructor() { return forgotSignDays } + fun getSignDaysTotal(): Int { + var signDays = 0 + mDailySignData.signStateList.forEachIndexed { index, item-> + if (item.hasSigned) { + signDays++ + } + } + return signDays + } + fun getForgotSignFirstDayIndex(): Int { val curDayIndex = getCurDayIndexOfDailyCheckIn() mDailySignData.signStateList.forEachIndexed { index, item-> diff --git a/app/src/main/java/com/gamedog/vididin/widget/DailySignItemView.kt b/app/src/main/java/com/gamedog/vididin/widget/DailySignItemView.kt index 3b9e211..e577e7d 100644 --- a/app/src/main/java/com/gamedog/vididin/widget/DailySignItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/widget/DailySignItemView.kt @@ -10,7 +10,6 @@ import com.ama.core.architecture.util.ResUtil 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 @@ -41,8 +40,7 @@ class DailySignItemView @JvmOverloads constructor( mBinding.tvGoldNum.text = "" + mConfigData.value mBinding.tvDayNum.text = context.getString(R.string.day) + " "+ mConfigData.day - mBinding.ivDone.isVisible = mStateData.hasSigned - mBinding.tvDayNum.isVisible = !mStateData.hasSigned + updateUI() } fun setLargeWidthMode() { @@ -52,15 +50,24 @@ class DailySignItemView @JvmOverloads constructor( fun setSelectState(isSelect: Boolean) { mIsSelected = isSelect + 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 } - } - fun getStateBean(): DailySignDayInfoBean { - return mStateData + mBinding.rlRoot.alpha = if (mStateData.hasSigned) 0.3F else 1F } diff --git a/app/src/main/res/layout/daily_sign_item.xml b/app/src/main/res/layout/daily_sign_item.xml index ebee031..efc421f 100644 --- a/app/src/main/res/layout/daily_sign_item.xml +++ b/app/src/main/res/layout/daily_sign_item.xml @@ -2,7 +2,7 @@ - @@ -67,7 +66,7 @@ android:id="@+id/iv_done" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="0dp" + android:layout_marginTop="2dp" android:tint="@color/green_39" android:src="@mipmap/icon_check_mark" android:layout_gravity="center" diff --git a/app/src/main/res/layout/dialog_daily_sign.xml b/app/src/main/res/layout/dialog_daily_sign.xml index 88da288..c69c4dc 100644 --- a/app/src/main/res/layout/dialog_daily_sign.xml +++ b/app/src/main/res/layout/dialog_daily_sign.xml @@ -66,19 +66,32 @@ android:text="@string/daily_sign_desc" /> - + android:orientation="horizontal" + android:layout_marginTop="5dp" > + + + + android:visibility="visible"> Convidar Game Center Conclua o login de hoje e pode ganhar até 666 moedas! - Logins realizados: 0/7 + Logins realizados: Resgatar Assistir Dia