更新观看完成一个视频后更新 UI

This commit is contained in:
renhaoting 2025-12-01 17:24:01 +08:00
parent 63d636ff1a
commit dc7ff87e33
5 changed files with 29 additions and 5 deletions

View File

@ -175,6 +175,19 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
}
private fun updateDailyWatchUI() {
/*binding?.tvCashTotal?.text = buildString {
append(ResUtil.getString(R.string.cash))
append(" ")
append(AccountManager.getCash())
}*/
val statusBean = TaskManager.instance().dailyWatchStatus().getStatus()
mDailyWatchVideoTaskViewList.forEachIndexed { index, view ->
view.updateProgress(statusBean.getTodayWatchedCount())
}
}
private fun updateUIGoldTotal() {
binding?.tvGoldTotal?.text = AccountManager.getGold().toString()
}
@ -193,8 +206,13 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
VididinEvents.Event_Account_Cash_Changed -> {
updateUICashTotal()
}
VididinEvents.Event_Toady_Watched_Total -> {
updateDailyWatchUI()
}
}
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed, VididinEvents.Event_Account_Gold_Changed)
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed,
VididinEvents.Event_Account_Gold_Changed, VididinEvents.Event_Toady_Watched_Total)
}
private fun updateDailySignButUI() {

View File

@ -49,7 +49,7 @@ class DailyTaskItemView @JvmOverloads constructor(
fun updateProgress(finishVideoNum: Int) {
val showWatchedNum = if (finishVideoNum > mNeedWatchTotal) mNeedWatchTotal else finishVideoNum
mBinding.tvItemProgress.text = "($showWatchedNum/$mNeedWatchTotal)"
mBinding.itemProgress.setProgress(showWatchedNum/mNeedWatchTotal)
mBinding.itemProgress.setProgress(100*showWatchedNum/mNeedWatchTotal)
}

View File

@ -40,6 +40,9 @@ abstract class BaseTaskHelper<T: Any> {
SpUtil.instance().putObject(mSpKey, mStateBean)
}
fun getStatus() : T {
return mStateBean
}
fun release() {
NotifyMan.instance().unregister(mEventCallback)

View File

@ -21,7 +21,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper<DailyStateWatchVideoBean>() {
override fun loadTaskFromSp() {
val spStateBean = SpUtil.instance().getObject<DailyStateWatchVideoBean>(mSpKey)
if (spStateBean == null || !isCurBeanInToday(spStateBean)) {
if (spStateBean == null || !isTodayStatusBean(spStateBean)) {
generateTodayTask()
saveState2Sp()
} else {
@ -41,7 +41,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper<DailyStateWatchVideoBean>() {
mStateBean = DailyStateWatchVideoBean(DateUtil.getCurTimeMs())
}
private fun isCurBeanInToday(stateBean: DailyStateWatchVideoBean): Boolean {
private fun isTodayStatusBean(stateBean: DailyStateWatchVideoBean): Boolean {
return DateUtil.isToday(stateBean.todayStartMs)
}
@ -49,7 +49,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper<DailyStateWatchVideoBean>() {
private fun handleVideoWatched(dataPair: Pair<String, Long>) {
mStateBean.run {
addWatchedVideoInfo(dataPair)
notifyEvents()
}
}

View File

@ -26,6 +26,9 @@ data class DailyStateWatchVideoBean(
}
fun getTodayWatchedCount(): Int {
return mWatchedMap.size
}
}