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 c2f0cd2..90ea98e 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 @@ -110,35 +110,18 @@ class TasksFragment : AppViewsFragment(), OnTab with(beginnerTaskWithdraw) { initUI(R.mipmap.icon_cash_s, R.string.beginner_withdraw_title, R.string.resgatar) //setRewardTextStyle(21, R.color.green_39) - setActionFun { - gotoWithDraw() - } - val stateBean = TaskManager.instance().newbieFirstWithdrawStatus().getStatusBean() - setTaskStateInfo(stateBean.rewardGoldNum.toString(), - if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do, - ResUtil.getString(R.string.beginner_withdraw_desc)) + updateNewBieFirstWithdrawUI() } with(beginnerTaskDiscord) { initUI(R.mipmap.icon_dicord, R.string.beginner_discord_title,R.string.resgatar) - setActionFun { - gotoDiscord() - } - val stateBean = TaskManager.instance().newbieJoinDiscordStatus().getStatusBean() - setTaskStateInfo(stateBean.rewardGoldNum.toString(), if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do, - String.format(ResUtil.getString(R.string.beginner_discord_desc), stateBean.rewardGoldNum)) + updateNewBieDiscordUI() } with(beginnerTaskEnableNotify) { initUI(R.mipmap.icon_notify, R.string.beginner_notify_title,R.string.Resgatado) - beginnerTaskEnableNotify.setActionFun { - gotoNotification() - } - - val stateBean = TaskManager.instance().newbieEnableNotifyStatus().getStatusBean() - setTaskStateInfo(stateBean.rewardGoldNum.toString(), if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do, - String.format(ResUtil.getString(R.string.beginner_notify_desc), stateBean.rewardGoldNum)) + updateNewBieNotifyUI() } @@ -269,15 +252,15 @@ class TasksFragment : AppViewsFragment(), OnTab } VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED -> { - + updateNewBieDiscordUI() } VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED -> { - + updateNewBieNotifyUI() } VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED -> { - + updateNewBieFirstWithdrawUI() } } @@ -307,6 +290,58 @@ class TasksFragment : AppViewsFragment(), OnTab } } + private fun updateNewBieFirstWithdrawUI() { + with(binding?.beginnerTaskWithdraw!!) { + setActionFun { + gotoWithDraw() + } + val stateBean = TaskManager.instance().newbieFirstWithdrawStatus().getStatusBean() + setTaskStateInfo( + stateBean.rewardGoldNum.toString(), + if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do, + ResUtil.getString(R.string.beginner_withdraw_desc), + stateBean.hasClaimReward + ) + } + } + + private fun updateNewBieDiscordUI() { + with(binding?.beginnerTaskDiscord!!) { + setActionFun { + gotoDiscord() + } + val stateBean = TaskManager.instance().newbieJoinDiscordStatus().getStatusBean() + setTaskStateInfo( + stateBean.rewardGoldNum.toString(), + if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do, + String.format(ResUtil.getString(R.string.beginner_discord_desc), stateBean.rewardGoldNum), + stateBean.hasClaimReward + ) + } + } + + private fun updateNewBieNotifyUI() { + with(binding?.beginnerTaskEnableNotify!!) { + val isNotifyEnable = AndroidUtil.isNotificationEnabled() + val stateBean = TaskManager.instance().newbieEnableNotifyStatus().getStatusBean() + setActionFun { + if (!isNotifyEnable) { + gotoNotification() + } else { + if (TaskManager.instance().newbieEnableNotifyStatus().claimReward()) { + DailySignSuccessDialog(requireActivity()).initData(stateBean.rewardGoldNum, false).show() + } + } + } + + val actionButRes = if (stateBean.hasClaimReward) R.string.finished else (if (isNotifyEnable) R.string.resgatar else R.string.go_and_do) + setTaskStateInfo(stateBean.rewardGoldNum.toString(), actionButRes, + String.format(ResUtil.getString(R.string.beginner_notify_desc), stateBean.rewardGoldNum), stateBean.hasClaimReward) + } + } + + + override fun ViewBinding.initObservers() { } @@ -348,6 +383,7 @@ class TasksFragment : AppViewsFragment(), OnTab }) } + private fun handleDailyVideoButClicked(itemIndex: Int) { val subTaskList = TaskManager.instance().dailyWatchVideoStatus().getStatusBean().getSubTaskRewardState() if (itemIndex >= 0 && itemIndex < subTaskList.size) { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt index 3e69bd1..09f1aef 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt @@ -4,14 +4,11 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout -import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.R import com.gamedog.vididin.VidiConst import com.gamedog.vididin.databinding.BeginnerTaskItemViewBinding import com.gamedog.vididin.main.fragments.task.Task -import com.gamedog.vididin.manager.TaskManager -import com.gamedog.vididin.manager.helpers.NewbieEnableNotifyHelper class BeginnerTaskItemView @JvmOverloads constructor( @@ -60,10 +57,16 @@ class BeginnerTaskItemView @JvmOverloads constructor( mBinding.tvRewardNum.setTextColor(color) } - fun setTaskStateInfo(rewardNum: String, textRes: Int, describleStr: String) { + fun setTaskStateInfo( + rewardNum: String, + textRes: Int, + describleStr: String, + hasClaimReward: Boolean + ) { mBinding.tvRewardNum.text = rewardNum mBinding.tvAction.setText(textRes) mBinding.tvItemDescrible.text = describleStr + mBinding.tvAction.isClickable = !hasClaimReward } diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt index bab8757..ea5a349 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt @@ -27,12 +27,15 @@ class NewbieEnableNotifyHelper: BaseTaskHelper( return TaskStateNewBieJoinDiscord(mTaskConfig.reward_value) } - fun claimReward() { + fun claimReward() : Boolean { if (!mStateBean.hasClaimReward) { AccountManager.addGold(mStateBean.rewardGoldNum) + mStateBean.hasClaimReward = true saveState2Sp() notifyStateChangeEvent() + return true } + return false } private fun notifyStateChangeEvent() { diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt index 0ee31cc..ae2f490 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt @@ -9,6 +9,7 @@ import android.os.Build import android.os.Bundle import android.provider.Settings import android.widget.Toast +import androidx.core.app.NotificationManagerCompat import com.ama.core.architecture.BaseApp import kotlin.random.Random @@ -65,6 +66,10 @@ class AndroidUtil private constructor() { + fun isNotificationEnabled(): Boolean { + return NotificationManagerCompat.from(BaseApp.appContext()).areNotificationsEnabled() + } + fun getAppVersionInfo(): String {