diff --git a/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt b/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt index 336a296..8d288eb 100644 --- a/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt @@ -8,15 +8,12 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.activity.viewModels import com.ama.core.architecture.appBase.AppViewsActivity -import com.ama.core.architecture.ext.toast import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.eventbus.NotifyMan -import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.VidiConst import com.vididin.real.money.game.R import com.gamedog.vididin.VididinEvents -import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.interfaces.OnTabStyleListener diff --git a/app/src/main/java/com/gamedog/vididin/features/benefit/widget/CounterDownTimerView.kt b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/CounterDownTimerView.kt new file mode 100644 index 0000000..9b29c63 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/CounterDownTimerView.kt @@ -0,0 +1,58 @@ +package com.gamedog.vididin.features.benefit.widget + +import android.content.Context +import android.os.CountDownTimer +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import com.ama.core.architecture.util.DateUtil +import com.gamedog.vididin.manager.TaskManager +import com.vididin.real.money.game.databinding.BenefitCountdownTimerViewBinding + + +class CounterDownTimerView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + private lateinit var mTimer: CountDownTimer + private var mBinding: BenefitCountdownTimerViewBinding + + + init { + mBinding = BenefitCountdownTimerViewBinding.inflate(LayoutInflater.from(context), this, true) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + startTimer() + } + + private fun startTimer() { + val startMs = TaskManager.instance().boxTaskStatus().getAllBoxStartTimeMs() + val totalMs = TaskManager.instance().boxTaskStatus().getAllBoxTotalDurationMs() + + val restMs = startMs + totalMs - System.currentTimeMillis() + + mTimer = object : CountDownTimer(restMs, 1000) { + override fun onTick(millisUntilFinished: Long) { + val resultList = DateUtil.formatMs2HMS(millisUntilFinished) + mBinding.tvHour.text = resultList[0].toString() + mBinding.tvMin.text = resultList[1].toString() + mBinding.tvSecond.text = resultList[2].toString() + } + + override fun onFinish() { + } + }.start() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + if (mTimer != null) { + mTimer.cancel() + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt index 4e224a7..3e263e2 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt @@ -148,6 +148,18 @@ class BoxTaskHelper: BaseTaskHelper() { return null } + fun getAllBoxTotalDurationMs(): Long { + var totalDays = 0L + mStateBean.tasks.forEach { + totalDays += it.duration_days + } + return totalDays * 24 * 3600000 + } + + fun getAllBoxStartTimeMs(): Long { + return mStateBean.startMs + } + fun isBoxAllFinished(boxIndex: Int) : Boolean { val stateEnum = getBoxStateEnum(boxIndex) return stateEnum == STATE_FINISH || stateEnum == STATE_CLAIMED diff --git a/app/src/main/res/drawable/bg_benefit_timer_item.xml b/app/src/main/res/drawable/bg_benefit_timer_item.xml new file mode 100644 index 0000000..8a19cd9 --- /dev/null +++ b/app/src/main/res/drawable/bg_benefit_timer_item.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_benefit.xml b/app/src/main/res/layout/activity_benefit.xml index 1402611..b51a4b9 100644 --- a/app/src/main/res/layout/activity_benefit.xml +++ b/app/src/main/res/layout/activity_benefit.xml @@ -60,11 +60,17 @@ + + android:layout_height="wrap_content" + android:layout_marginTop="10dp"> + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt index b038d91..c2812b8 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt @@ -215,6 +215,18 @@ class DateUtil private constructor() { return ((calendarCurrent.timeInMillis - calendarStart.timeInMillis) / MS_NUM_ONE_DAY).toInt() } + fun formatMs2HMS(msNum: Long): List { + val resultList = mutableListOf() + val hours = msNum / (3600000) + val minute = (msNum - hours * 3600000) / (60000) + val second = (msNum - hours * 3600000 - minute * 60000) / (1000) + + resultList.add(hours) + resultList.add(minute) + resultList.add(second) + return resultList + } + }