This commit is contained in:
renhaoting 2025-12-03 14:30:42 +08:00
parent e93d76f316
commit 3c081c230a
10 changed files with 142 additions and 91 deletions

View File

@ -5,7 +5,9 @@ import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.activity.viewModels import androidx.activity.viewModels
import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.AppViewsActivity
import com.gamedog.vididin.R
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.TaskManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlin.getValue import kotlin.getValue
import com.gamedog.vididin.databinding.ActivityBenefitBinding as ViewBinding import com.gamedog.vididin.databinding.ActivityBenefitBinding as ViewBinding
@ -26,17 +28,9 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
titlebar.setTitleText(R.string.benefit)
taskItem1.setActionFun { loadTaskState()
gotoWatchVideo() initAddSubTaskViews()
}
taskItem2.setActionFun {
gotoWatchVideo()
}
taskItem3.setActionFun {
gotoWatchVideo()
}
} }
override fun ViewBinding.initListeners() { override fun ViewBinding.initListeners() {
@ -55,6 +49,52 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
} }
private fun loadTaskState() {
val boxStatusBean = TaskManager.instance().boxTaskStatus()
}
private fun initAddSubTaskViews() {
val boxStatusBean = TaskManager.instance().boxTaskStatus()
/*
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
*/
}
private fun gotoWatchVideo() { private fun gotoWatchVideo() {
//TODO("Not yet implemented") //TODO("Not yet implemented")

View File

@ -8,7 +8,7 @@ import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.TaskBean
import com.gamedog.vididin.manager.helpers.DailyBoxHelper import com.gamedog.vididin.manager.helpers.BoxTaskHelper
import com.gamedog.vididin.manager.helpers.DailySignTaskHelper import com.gamedog.vididin.manager.helpers.DailySignTaskHelper
import com.gamedog.vididin.manager.helpers.DailyWatchAdTaskHelper import com.gamedog.vididin.manager.helpers.DailyWatchAdTaskHelper
import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper
@ -81,7 +81,7 @@ class TaskManager private constructor() {
private val mDailySignTaskHelper by lazy { DailySignTaskHelper() } private val mDailySignTaskHelper by lazy { DailySignTaskHelper() }
private val mDailyWatchVideoTaskHelper by lazy { DailyWatchVideoTaskHelper() } private val mDailyWatchVideoTaskHelper by lazy { DailyWatchVideoTaskHelper() }
private val mDailyWatchAdTaskHelper by lazy { DailyWatchAdTaskHelper() } private val mDailyWatchAdTaskHelper by lazy { DailyWatchAdTaskHelper() }
private val mDailyBoxHelper by lazy { DailyBoxHelper() } private val mBoxHelper by lazy { BoxTaskHelper() }
private val mNewbieJoinDiscordHelper by lazy { NewbieJoinDiscordHelper() } private val mNewbieJoinDiscordHelper by lazy { NewbieJoinDiscordHelper() }
private val mNewbieEnableNotifyHelper by lazy { NewbieEnableNotifyHelper() } private val mNewbieEnableNotifyHelper by lazy { NewbieEnableNotifyHelper() }
private val mNewbieFirstWithdrawHelper by lazy { NewbieFirstWithdrawHelper() } private val mNewbieFirstWithdrawHelper by lazy { NewbieFirstWithdrawHelper() }
@ -143,20 +143,21 @@ class TaskManager private constructor() {
} }
private suspend fun initHelpers() { private suspend fun initHelpers() {
mDailySignTaskHelper.initDatas(getDailyCheckInTask()!!) mDailySignTaskHelper.setConfigDatas(getDailyCheckInTask()!!)
mDailyWatchVideoTaskHelper.initDatas(getDailyVideoTask()!!) mDailyWatchVideoTaskHelper.setConfigDatas(getDailyVideoTask()!!)
mDailyWatchAdTaskHelper.initDatas(getDailyAdTask()!!) mDailyWatchAdTaskHelper.setConfigDatas(getDailyAdTask()!!)
mDailyBoxHelper.initDatas(getDailyVideoTask()!!) // TODO - get right box task config mNewbieJoinDiscordHelper.setConfigDatas(getNewbieJoinDiscordTask()!!)
mNewbieJoinDiscordHelper.initDatas(getNewbieJoinDiscordTask()!!) mNewbieEnableNotifyHelper.setConfigDatas(getNewbieEnableNotifyTask()!!)
mNewbieEnableNotifyHelper.initDatas(getNewbieEnableNotifyTask()!!) mNewbieFirstWithdrawHelper.setConfigDatas(getNewbieFirstWithdrawTask()!!)
mNewbieFirstWithdrawHelper.initDatas(getNewbieFirstWithdrawTask()!!)
mBoxHelper.setConfigDatas(getDailyVideoTask()!!)
} }
fun onDateChanged() { fun onDateChanged() {
mDailySignTaskHelper.onDateChanged() mDailySignTaskHelper.onDateChanged()
mDailyWatchVideoTaskHelper.onDateChanged() mDailyWatchVideoTaskHelper.onDateChanged()
mDailyWatchAdTaskHelper.onDateChanged() mDailyWatchAdTaskHelper.onDateChanged()
mDailyBoxHelper.onDateChanged() mBoxHelper.onDateChanged()
mNewbieJoinDiscordHelper.onDateChanged() mNewbieJoinDiscordHelper.onDateChanged()
mNewbieEnableNotifyHelper.onDateChanged() mNewbieEnableNotifyHelper.onDateChanged()
mNewbieFirstWithdrawHelper.onDateChanged() mNewbieFirstWithdrawHelper.onDateChanged()
@ -176,8 +177,8 @@ class TaskManager private constructor() {
return mDailyWatchAdTaskHelper return mDailyWatchAdTaskHelper
} }
fun dailyBoxStatus(): DailyBoxHelper { fun boxTaskStatus(): BoxTaskHelper {
return mDailyBoxHelper return mBoxHelper
} }
fun newbieJoinDiscordStatus(): NewbieJoinDiscordHelper { fun newbieJoinDiscordStatus(): NewbieJoinDiscordHelper {

View File

@ -3,7 +3,6 @@ package com.gamedog.vididin.manager.helpers
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.manager.taskbeans.BaseTaskState
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@ -15,7 +14,7 @@ abstract class BaseTaskHelper<T: Any> {
abstract fun loadTaskFromSp() abstract fun loadTaskFromSp()
suspend fun initDatas(taskConfig: Task) { suspend fun setConfigDatas(taskConfig: Task) {
mTaskConfig = taskConfig mTaskConfig = taskConfig
return withContext(Dispatchers.IO) { return withContext(Dispatchers.IO) {

View File

@ -0,0 +1,25 @@
package com.gamedog.vididin.manager.helpers
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.manager.taskbeans.TaskStateBoxRoot
class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot>() {
override val mSpKey = SpUtil.KEY_TASK_BOX
override fun loadTaskFromSp() {
val taskStateBeanInSp = SpUtil.instance().getObject<TaskStateBoxRoot>(mSpKey)
if (taskStateBeanInSp == null) {
//mStateBean = generateStateBeanFromConfig()
//saveState2Sp()
} else {
mStateBean = taskStateBeanInSp
}
}
private fun generateStateBeanFromConfig(): TaskStateBoxRoot? {
return null
}
}

View File

@ -1,14 +0,0 @@
package com.gamedog.vididin.manager.helpers
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.manager.taskbeans.TaskStateBoxRoot
class DailyBoxHelper: BaseTaskHelper<TaskStateBoxRoot>() {
override val mSpKey = SpUtil.KEY_TASK_BOX
override fun loadTaskFromSp() {
}
}

View File

@ -17,6 +17,7 @@ class DailySignTaskHelper : BaseTaskHelper<TaskDailySignBean>() {
override fun loadTaskFromSp() { override fun loadTaskFromSp() {
val taskStateBeanInSp = SpUtil.instance().getObject<TaskDailySignBean>(mSpKey) val taskStateBeanInSp = SpUtil.instance().getObject<TaskDailySignBean>(mSpKey)
if (taskStateBeanInSp == null) { if (taskStateBeanInSp == null) {
mStateBean = TaskDailySignBean()
saveState2Sp() saveState2Sp()
} else { } else {
mStateBean = taskStateBeanInSp mStateBean = taskStateBeanInSp

View File

@ -107,17 +107,22 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/benefit_item_expired"/> android:src="@mipmap/benefit_item_expired"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_expired_cash_num" android:id="@+id/tv_subtask_1_reward"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:textSize="12sp" android:textSize="12sp"
android:textColor="@color/white" android:textColor="@color/white"
android:text="@string/cash01"/> android:text="@string/cash"
android:drawableStart="@mipmap/icon_cash_s"
android:drawablePadding="3dp"
android:gravity="center_vertical"
/>
</FrameLayout> </FrameLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_subtask_1_state"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
@ -140,16 +145,21 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/benefit_item_ongoing"/> android:src="@mipmap/benefit_item_ongoing"/>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_ongoing_cash_num" android:id="@+id/tv_subtask_2_reward"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="3dp" android:textSize="12sp"
android:src="@mipmap/icon_check_mark"/> android:textColor="@color/white"
android:drawableStart="@mipmap/icon_check_mark"
android:gravity="center_vertical"
/>
</FrameLayout> </FrameLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_subtask_2_state"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
@ -172,18 +182,24 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/benefit_item_waitting"/> android:src="@mipmap/benefit_item_waitting"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_waiting_cash_num" android:id="@+id/tv_subtask_3_reward"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:textSize="12sp" android:textSize="12sp"
android:textColor="@color/white" android:textColor="@color/white"
android:text="@string/cash01"/> android:text="@string/cash"
android:drawableStart="@mipmap/icon_cash_s"
android:drawablePadding="3dp"
android:gravity="center_vertical"
/>
</FrameLayout> </FrameLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_subtask_3_state"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
@ -217,17 +233,35 @@
android:padding="15dp" android:padding="15dp"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginHorizontal="15dp"> android:layout_marginHorizontal="15dp">
<androidx.appcompat.widget.AppCompatTextView
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingVertical="15dp" android:paddingVertical="15dp"
android:paddingHorizontal="5dp" android:paddingHorizontal="5dp"
android:textSize="15sp"
android:background="@drawable/bg_benefit_tasks_top" android:background="@drawable/bg_benefit_tasks_top"
android:gravity="center" android:orientation="horizontal">
android:layout_gravity="bottom|center_horizontal" <androidx.appcompat.widget.AppCompatTextView
android:textColor="@color/black_33" android:layout_width="wrap_content"
android:text="@string/benefit_task_top_hint"/> android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
android:gravity="center_vertical"
android:textColor="@color/black_33"
android:text="@string/benefit_task_top_hint"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_hint_reward_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
android:layout_marginStart="5dp"
android:gravity="center_vertical"
android:textColor="@color/red_5c"
android:text="@string/cash"/>
</LinearLayout>
<LinearLayout <LinearLayout
@ -266,47 +300,11 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_sub_task_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:orientation="vertical"> android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_f2"
/>
<com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
android:id="@+id/task_item_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -46,7 +46,7 @@
<string name="expired">Expirado</string> <string name="expired">Expirado</string>
<string name="onging">Concluído</string> <string name="onging">Concluído</string>
<string name="waitting">Em andamento</string> <string name="waitting">Em andamento</string>
<string name="benefit_task_top_hint">Conclua todas as tarefas para retirar R$ 1.0</string> <string name="benefit_task_top_hint">Conclua todas as tarefas para retirar</string>
<string name="benefit_task_item_description">Assista a notícias ou vídeos curtos por 800 min</string> <string name="benefit_task_item_description">Assista a notícias ou vídeos curtos por 800 min</string>
<string name="go_and_do">Ir para</string> <string name="go_and_do">Ir para</string>
<string name="zero_buy_rule_dialog_title">Regras para Ganhar</string> <string name="zero_buy_rule_dialog_title">Regras para Ganhar</string>
@ -92,6 +92,7 @@
<string name="withdraw_fail_title">Falha no saque</string> <string name="withdraw_fail_title">Falha no saque</string>
<string name="withdraw_fail_desc"><![CDATA[Infelizmente, a conta que você inseriu está incorreta e o saque falhou. Clique no botão abaixo para corrigir a conta.]]></string> <string name="withdraw_fail_desc"><![CDATA[Infelizmente, a conta que você inseriu está incorreta e o saque falhou. Clique no botão abaixo para corrigir a conta.]]></string>
<string name="done">Done\n</string> <string name="done">Done\n</string>
<string name="benefit">Benefícios</string>
</resources> </resources>