同步更新 homeFragment+1

This commit is contained in:
renhaoting 2025-11-27 14:19:20 +08:00
parent 47db87935a
commit 78842d8d60
7 changed files with 84 additions and 2 deletions

View File

@ -9,9 +9,12 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.AppViewsFragment
import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.util.setStatusBarDarkFont import com.ama.core.architecture.util.setStatusBarDarkFont
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.WatchVideoDialog
import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog
import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.TaskBean
@ -135,6 +138,28 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
override fun ViewBinding.initListeners() { override fun ViewBinding.initListeners() {
registerEvents({data: NotifyMan.NotifyData<*>? ->
when (data?.mEventType) {
VididinEvents.Event_Sign_State_Changed -> {
updateDailySignButUI()
}
}
}, VididinEvents.Event_Sign_State_Changed)
}
private fun updateDailySignButUI() {
val hasFinishAllSignWork = TaskManager.instance().isDailySignAllOperationDone()
binding?.ivGotoDailySign?.apply {
setText(
if (hasFinishAllSignWork) R.string.daily_sign_but_text_3 else R.string.daily_sign_but_text_1
)
isClickable = !hasFinishAllSignWork
if (hasFinishAllSignWork) {
background.setTint(ResUtil.getColor(R.color.gray_84))
}
}
} }
override fun ViewBinding.initObservers() { override fun ViewBinding.initObservers() {

View File

@ -1,6 +1,5 @@
package com.gamedog.vididin.manager package com.gamedog.vididin.manager
import android.R
import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.FileUtil import com.ama.core.architecture.util.FileUtil
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.SpUtil
@ -255,6 +254,11 @@ class TaskManager private constructor() {
return getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0 return getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0
} }
fun isDailySignAllOperationDone(): Boolean {
val curDayState = getDailySignStateBean(mCurDayIndexDailySign)
return curDayState.hasSigned && curDayState.hasWatchedAd && getForgotSignFirstDayIndex() <= 0
}
} }

View File

@ -86,6 +86,6 @@
<color name="black_33">#333333</color> <color name="black_33">#333333</color>
<color name="black_28">#FF2F2828</color> <color name="black_28">#FF2F2828</color>
<color name="green_1a">#FF00591A</color> <color name="green_1a">#FF00591A</color>
<color name="gray_84">#ff938a84</color>
</resources> </resources>

View File

@ -67,5 +67,9 @@
<string name="complement_hint">Recuperar 1 dia de login</string> <string name="complement_hint">Recuperar 1 dia de login</string>
<string name="tomorrow_sign">Volte amanhã para fazer login</string> <string name="tomorrow_sign">Volte amanhã para fazer login</string>
<string name="daily_sign_but_text_1">Fazer Login Agora</string>
<string name="daily_sign_but_text_2">Recuperar Login</string>
<string name="daily_sign_but_text_3">Disponível amanhã</string>
</resources> </resources>

View File

@ -5,6 +5,7 @@ import android.view.ViewGroup
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.ama.core.architecture.base.BaseViewModel import com.ama.core.architecture.base.BaseViewModel
import com.ama.core.architecture.base.views.BaseViewsActivity import com.ama.core.architecture.base.views.BaseViewsActivity
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.state.createAppStateView import com.ama.core.architecture.util.state.createAppStateView
import com.ama.core.designsystem.widget.interfaces.LoadingDialog import com.ama.core.designsystem.widget.interfaces.LoadingDialog
@ -14,6 +15,29 @@ abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel
// 全部使用反射来实现 // 全部使用反射来实现
//override val viewModel: ViewModel by reflectViewModels() //override val viewModel: ViewModel by reflectViewModels()
private var mEventCallback: NotifyMan.ICallback? = null
protected fun registerEvents(onEvents: ((NotifyMan.NotifyData<*>?)->Unit), vararg eventTypes: Int) {
if (mEventCallback == null) {
mEventCallback = object : NotifyMan.ICallback(true) {
override fun onEvent(data: NotifyMan.NotifyData<*>?) {
onEvents.invoke(data)
}
}
}
NotifyMan.instance().register(mEventCallback, *eventTypes)
}
override fun onDestroy() {
super.onDestroy()
if (mEventCallback != null) {
NotifyMan.instance().unregister(mEventCallback)
}
}
override fun createStateView(stateViewParent: ViewGroup) = createAppStateView(stateViewParent) override fun createStateView(stateViewParent: ViewGroup) = createAppStateView(stateViewParent)
// 消息的收集者默认为Toast可覆写为Snakbar等。 // 消息的收集者默认为Toast可覆写为Snakbar等。

View File

@ -4,6 +4,7 @@ import android.view.ViewGroup
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.ama.core.architecture.base.BaseViewModel import com.ama.core.architecture.base.BaseViewModel
import com.ama.core.architecture.base.views.BaseViewsFragment import com.ama.core.architecture.base.views.BaseViewsFragment
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.state.createAppStateView import com.ama.core.architecture.util.state.createAppStateView
import com.ama.core.common.util.getDataFromThemeAttr import com.ama.core.common.util.getDataFromThemeAttr
import com.ama.core.designsystem.widget.interfaces.LoadingDialog import com.ama.core.designsystem.widget.interfaces.LoadingDialog
@ -12,6 +13,29 @@ import com.google.android.material.R
abstract class AppViewsFragment<Binding : ViewBinding, UiState : Any, ViewModel : BaseViewModel<UiState>> : abstract class AppViewsFragment<Binding : ViewBinding, UiState : Any, ViewModel : BaseViewModel<UiState>> :
BaseViewsFragment<Binding, UiState, ViewModel>() { BaseViewsFragment<Binding, UiState, ViewModel>() {
private var mEventCallback: NotifyMan.ICallback? = null
protected fun registerEvents(onEvents: ((NotifyMan.NotifyData<*>?)->Unit), vararg eventTypes: Int) {
if (mEventCallback == null) {
mEventCallback = object : NotifyMan.ICallback(true) {
override fun onEvent(data: NotifyMan.NotifyData<*>?) {
onEvents.invoke(data)
}
}
}
NotifyMan.instance().register(mEventCallback, *eventTypes)
}
override fun onDestroyView() {
super.onDestroyView()
if (mEventCallback != null) {
NotifyMan.instance().unregister(mEventCallback)
}
}
// 全部使用反射来实现 // 全部使用反射来实现
// override val viewModel: ViewModel by reflectViewModels() // override val viewModel: ViewModel by reflectViewModels()

View File

@ -59,6 +59,7 @@
<color name="progress_green">#FF00FF5E</color> <color name="progress_green">#FF00FF5E</color>
<color name="progress_background">#99000000</color> <color name="progress_background">#99000000</color>
<color name="gray_84">#ff938a84</color>
</resources> </resources>