diff --git a/app/src/main/java/com/gamedog/vididin/VidiConst.kt b/app/src/main/java/com/gamedog/vididin/VidiConst.kt index 5fe6633..756a069 100644 --- a/app/src/main/java/com/gamedog/vididin/VidiConst.kt +++ b/app/src/main/java/com/gamedog/vididin/VidiConst.kt @@ -3,6 +3,7 @@ package com.gamedog.vididin object VidiConst { + const val NEWBIE_GIFT_GOLD_NUM: Long = 100 /** * Varous type for watching Ad diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt index 72d86a7..0531d9b 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt @@ -1,24 +1,28 @@ package com.gamedog.vididin.beans +import com.ama.core.architecture.util.AndroidUtil +import com.ama.core.architecture.util.DateUtil import com.vididin.real.money.game.R import kotlin.Int -const val RECORD_GOLD_PLUS_WATCH_VIDEO: Int = 1 +const val RECORD_GOLD_PLUS_WATCH_VIDEO_BY_TIME_DURATION: Int = 1 const val RECORD_GOLD_PLUS_WATCH_REWARD_AD: Int = 2 -const val RECORD_GOLD_PLUS_TASK_NEWBIE: Int = 3 -const val RECORD_GOLD_PLUS_TASK_DAILY: Int = 3 -const val RECORD_GOLD_PLUS_TASK_BOX: Int = 3 -const val RECORD_GOLD_MINUS_CONVERT_2_CASH: Int = 4 +const val RECORD_GOLD_PLUS_NEWBIE_GIFT: Int = 3 +const val RECORD_GOLD_PLUS_TASK_ENABLE_NOTIFY: Int = 4 +const val RECORD_GOLD_PLUS_TASK_FIRST_WITHDRAW: Int = 5 +const val RECORD_GOLD_PLUS_TASK_JOIN_DISCORD: Int = 6 +const val RECORD_GOLD_PLUS_TASK_SIGN: Int = 7 +const val RECORD_GOLD_PLUS_TASK_DAILY_AD: Int = 8 +const val RECORD_GOLD_PLUS_TASK_DAILY_VIDEO: Int = 9 +const val RECORD_GOLD_MINUS_CONVERT_2_CASH: Int = 10 -open class RecordGold { - var uuid: String = "" - var dateMs: Long = 0L +open class RecordGold(var recordType: Int = 0, var amountNum: Long = 0) { var isSuccess: Boolean = false - var amountNum: Long = 0 - var recordType: Int = 0 + var dateMs: Long = DateUtil.getCurTimeMs() + var uuid: String = AndroidUtil.randomUUid() } class RecordGoldShow: RecordGold() { @@ -37,7 +41,7 @@ fun RecordGold.toShowBean(): RecordGoldShow { this@apply.recordType = this@toShowBean.recordType when (this@apply.recordType) { - RECORD_GOLD_PLUS_WATCH_VIDEO -> { + RECORD_GOLD_PLUS_WATCH_VIDEO_BY_TIME_DURATION -> { title = R.string.apply description = R.string.apply iconRes = R.mipmap.icon_ad @@ -49,19 +53,43 @@ fun RecordGold.toShowBean(): RecordGoldShow { iconRes = R.mipmap.icon_ad } - RECORD_GOLD_PLUS_TASK_NEWBIE -> { + RECORD_GOLD_PLUS_NEWBIE_GIFT -> { title = R.string.apply description = R.string.apply iconRes = R.mipmap.icon_ad } - RECORD_GOLD_PLUS_TASK_DAILY -> { + RECORD_GOLD_PLUS_TASK_ENABLE_NOTIFY -> { title = R.string.apply description = R.string.apply iconRes = R.mipmap.icon_ad } - RECORD_GOLD_PLUS_TASK_BOX -> { + RECORD_GOLD_PLUS_TASK_FIRST_WITHDRAW -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_JOIN_DISCORD -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_SIGN -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_DAILY_AD -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_DAILY_VIDEO -> { title = R.string.apply description = R.string.apply iconRes = R.mipmap.icon_ad diff --git a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt index 2551288..47d2ec5 100644 --- a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt +++ b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt @@ -10,7 +10,9 @@ import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.Account import com.gamedog.vididin.beans.BankInfo import com.gamedog.vididin.beans.RECORD_CASH_PLUS_GOLD_CONVERT +import com.gamedog.vididin.beans.RECORD_GOLD_MINUS_CONVERT_2_CASH import com.gamedog.vididin.beans.RecordCash +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.manager.RecordsManager object AccountManager { @@ -54,13 +56,14 @@ object AccountManager { return mAccount.goldCount } - fun adjustGold(adjustNum: Long): Boolean { + fun adjustGold(adjustNum: Long, recordBean: RecordGold): Boolean { if (adjustNum < 0L && Math.abs(adjustNum) > getGold()) { return false } mAccount.goldCount += adjustNum saveAccountInfo() NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null) + RecordsManager.instance().appendGoldRecord(recordBean) return true } @@ -131,7 +134,7 @@ object AccountManager { if (couldCovertCashTotal > 0) { val costGoldNum = couldCovertCashTotal * VidiConst.PER_01CASH_COST_GOLD_NUM if (getGold() >= costGoldNum) { - adjustGold(-1L * costGoldNum.toInt()) + adjustGold(-1L * costGoldNum.toInt(), RecordGold(RECORD_GOLD_MINUS_CONVERT_2_CASH, -1L * costGoldNum.toInt())) val adjustCashNum = couldCovertCashTotal * 0.1F adjustCash(adjustCashNum, RecordCash(RECORD_CASH_PLUS_GOLD_CONVERT, adjustCashNum.toDouble(), true)) AndroidUtil.showToast("Has convert $costGoldNum gold to $couldCovertCashTotal cash.") diff --git a/app/src/main/java/com/gamedog/vididin/main/BeginnerGiftDialog.kt b/app/src/main/java/com/gamedog/vididin/main/BeginnerGiftDialog.kt index 9cfad64..2fbb33f 100644 --- a/app/src/main/java/com/gamedog/vididin/main/BeginnerGiftDialog.kt +++ b/app/src/main/java/com/gamedog/vididin/main/BeginnerGiftDialog.kt @@ -12,6 +12,9 @@ import com.ama.core.architecture.util.ResUtil.dp import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.widget.BindingDialog +import com.gamedog.vididin.VidiConst +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_NEWBIE_GIFT +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.core.login.login.AccountManager import com.vididin.real.money.game.R import com.vididin.real.money.game.databinding.DialogBeginnerGiftBinding @@ -48,7 +51,7 @@ class BeginnerGiftDialog(activity: Activity) : BindingDialog(), OnSwit } else { mTotalMs = 0L binding?.dragIconView?.setProgress(mTotalMs * 100/ RewardConst.HOME_WATCH_DURATION) - AccountManager.adjustGold(RewardConst.HOME_WATCH_REWARD_NUM.toLong()) + val goldNum = RewardConst.HOME_WATCH_REWARD_NUM.toLong() + AccountManager.adjustGold(goldNum, RecordGold(RECORD_GOLD_PLUS_WATCH_VIDEO_BY_TIME_DURATION, goldNum)) binding?.dragIconView?.showRewardGoldAnim() } } 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 56e7c44..ac307e8 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 @@ -439,7 +439,7 @@ class TasksFragment : AppViewsFragment(), OnTab } } STATE_FINISH -> { - if (TaskManager.instance().dailyWatchVideoStatus().claimSubTaskReward(itemIndex)) { + if (TaskManager.instance().dailyWatchVideoStatus().claimSubTaskReward(itemIndex, false)) { DailySignSuccessDialog(requireActivity()).initData(subTaskState.mRewardNum, false).show() } } @@ -456,7 +456,7 @@ class TasksFragment : AppViewsFragment(), OnTab WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_WATCH_AD, null).show() } STATE_FINISH -> { - if (TaskManager.instance().dailyWatchAdStatus().claimSubTaskReward(itemIndex)) { + if (TaskManager.instance().dailyWatchAdStatus().claimSubTaskReward(itemIndex, true)) { DailySignSuccessDialog(requireActivity()).initData(subTaskState.mRewardNum, false).show() } } 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 e80e5fb..a651ada 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -5,6 +5,9 @@ import com.ama.core.architecture.util.FileUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_WATCH_REWARD_AD +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_WATCH_VIDEO_BY_TIME_DURATION +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.fragments.task.BoxTaskRoot import com.gamedog.vididin.main.fragments.task.Task @@ -16,6 +19,7 @@ import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper import com.gamedog.vididin.manager.helpers.NewbieEnableNotifyHelper import com.gamedog.vididin.manager.helpers.NewbieFirstWithdrawHelper import com.gamedog.vididin.manager.helpers.NewbieJoinDiscordHelper +import com.gamedog.vididin.youtubestatistic.RewardConst import com.google.gson.GsonBuilder import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock @@ -109,7 +113,8 @@ class TaskManager private constructor() { } VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD -> { - AccountManager.adjustGold(VidiConst.WATCH_AD_REWARD_GOLD.toLong()) + val goldNum = VidiConst.WATCH_AD_REWARD_GOLD.toLong() + AccountManager.adjustGold(goldNum, RecordGold(RECORD_GOLD_PLUS_WATCH_REWARD_AD, goldNum)) } } } diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseDailyTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseDailyTaskHelper.kt index 660f217..df75bd8 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseDailyTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseDailyTaskHelper.kt @@ -1,6 +1,9 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.DateUtil +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_TASK_DAILY_AD +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_TASK_DAILY_VIDEO +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.manager.taskbeans.BaseDailyTaskState @@ -17,12 +20,15 @@ abstract class BaseDailyTaskHelper : BaseTaskHelper= 0 && subTaskIndex < mStateBean.getSubTaskRewardState().size) { try { val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex] if (subTask.state == STATE_FINISH) { - AccountManager.adjustGold(subTask.mRewardNum.toLong()) + val goldNum = subTask.mRewardNum.toLong() + AccountManager.adjustGold(goldNum, RecordGold( + if (isEarnGoldByAd) RECORD_GOLD_PLUS_TASK_DAILY_AD else RECORD_GOLD_PLUS_TASK_DAILY_VIDEO, goldNum)) + subTask.state = STATE_CLAIMED saveState2Sp() notifyEvents() diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt index e20d6e0..fa0ef3d 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt @@ -3,7 +3,11 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan +import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_TASK_SIGN +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_WATCH_REWARD_AD +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.manager.taskbeans.TaskDailySignBean @@ -58,7 +62,8 @@ class DailySignTaskHelper : BaseTaskHelper() { daySignState.hasSigned = true daySignState.hasWatchedAd = isByAd saveState2Sp() - AccountManager.adjustGold(finalReward.toLong()) + val goldNum = finalReward.toLong() + AccountManager.adjustGold(goldNum, RecordGold(RECORD_GOLD_PLUS_TASK_SIGN, goldNum)) notifySignStateChanged(Pair(dayIndex, daySignState)) return true } 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 db5e459..ceaf9ed 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 @@ -4,6 +4,9 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_TASK_ENABLE_NOTIFY +import com.gamedog.vididin.beans.RECORD_GOLD_PLUS_TASK_SIGN +import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.manager.taskbeans.TaskStateNewBieEnableNotify @@ -29,7 +32,8 @@ class NewbieEnableNotifyHelper: BaseTaskHelper( fun claimReward() : Boolean { if (!mStateBean.hasClaimReward) { - AccountManager.adjustGold(mStateBean.rewardGoldNum.toLong()) + val goldNum = mStateBean.rewardGoldNum.toLong() + AccountManager.adjustGold(goldNum, RecordGold(RECORD_GOLD_PLUS_TASK_JOIN_DISCORD, goldNum)) mStateBean.hasClaimReward = true saveState2Sp() notifyStateChangeEvent()