diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index b947ecf..23789f6 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -9,9 +9,12 @@ import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope import com.ama.core.architecture.appBase.AppViewsFragment 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.setStatusBarDarkFont import com.gamedog.vididin.R +import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.TaskBean @@ -135,6 +138,28 @@ class TasksFragment : AppViewsFragment(), OnTab } 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() { 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 df86d1a..ed23c9b 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -1,6 +1,5 @@ package com.gamedog.vididin.manager -import android.R import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.FileUtil import com.ama.core.architecture.util.SpUtil @@ -255,6 +254,11 @@ class TaskManager private constructor() { return getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0 } + fun isDailySignAllOperationDone(): Boolean { + val curDayState = getDailySignStateBean(mCurDayIndexDailySign) + return curDayState.hasSigned && curDayState.hasWatchedAd && getForgotSignFirstDayIndex() <= 0 + } + } diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bc1f47b..0df0daa 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -86,6 +86,6 @@ #333333 #FF2F2828 #FF00591A - + #ff938a84 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 30e86d9..3c60463 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,5 +67,9 @@ Recuperar 1 dia de login Volte amanhã para fazer login + Fazer Login Agora + Recuperar Login + Disponível amanhã + \ No newline at end of file diff --git a/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsActivity.kt b/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsActivity.kt index 9963ff5..6b838b0 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsActivity.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsActivity.kt @@ -5,6 +5,7 @@ import android.view.ViewGroup import androidx.viewbinding.ViewBinding import com.ama.core.architecture.base.BaseViewModel 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.designsystem.widget.interfaces.LoadingDialog @@ -14,6 +15,29 @@ abstract class AppViewsActivity?)->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) // 消息的收集者,默认为Toast,可覆写为Snakbar等。 diff --git a/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsFragment.kt b/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsFragment.kt index b899c97..94af2d2 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsFragment.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/appBase/AppViewsFragment.kt @@ -4,6 +4,7 @@ import android.view.ViewGroup import androidx.viewbinding.ViewBinding import com.ama.core.architecture.base.BaseViewModel 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.common.util.getDataFromThemeAttr import com.ama.core.designsystem.widget.interfaces.LoadingDialog @@ -12,6 +13,29 @@ import com.google.android.material.R abstract class AppViewsFragment> : BaseViewsFragment() { + + + 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() diff --git a/core/architecture/src/main/res/values/colors.xml b/core/architecture/src/main/res/values/colors.xml index 6866be3..73c97a9 100644 --- a/core/architecture/src/main/res/values/colors.xml +++ b/core/architecture/src/main/res/values/colors.xml @@ -59,6 +59,7 @@ #FF00FF5E #99000000 + #ff938a84 \ No newline at end of file