box 奖励获取

This commit is contained in:
renhaoting 2025-12-04 11:27:27 +08:00
parent 9189b845ef
commit 3b0abf5235
6 changed files with 44 additions and 193 deletions

View File

@ -8,10 +8,14 @@ import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.activity.viewModels import androidx.activity.viewModels
import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.ext.toast
import com.ama.core.architecture.util.AndroidUtil
import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView import com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
@ -193,12 +197,18 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
val couldClaimCashNum = taskStateHelper.getCouldClaimCashNum() val couldClaimCashNum = taskStateHelper.getCouldClaimCashNum()
with (tvResgatar) { with (tvResgatar) {
if (couldClaimCashNum > 0) { if (couldClaimCashNum > 0) {
(R.mipmap.icon_but_bg_green) setBackgroundResource(R.mipmap.icon_but_bg_green)
isClickable = true isClickable = true
} else { } else {
setBackgroundResource(R.mipmap.but_bg_grady) setBackgroundResource(R.mipmap.but_bg_grady)
isClickable = false isClickable = false
} }
setOnClickListener {
if (taskStateHelper.executeClaimCash()) {
AndroidUtil.showToast(String.format(ResUtil.getString(R.string.has_claim_box_cash_hint), couldClaimCashNum))
}
}
} }

View File

@ -46,12 +46,14 @@ object AccountManager {
return mAccount?.cashCount ?: 0F return mAccount?.cashCount ?: 0F
} }
@Synchronized
fun addGold(newGold: Int) { fun addGold(newGold: Int) {
mAccount?.goldCount += newGold mAccount?.goldCount += newGold
saveAccountInfo() saveAccountInfo()
NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null) NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null)
} }
@Synchronized
fun addCash(newCash: Float) { fun addCash(newCash: Float) {
mAccount?.cashCount += newCash mAccount?.cashCount += newCash
saveAccountInfo() saveAccountInfo()

View File

@ -5,6 +5,7 @@ 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.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.main.fragments.task.BoxTaskRoot import com.gamedog.vididin.main.fragments.task.BoxTaskRoot
import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY
import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_SIGN import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_SIGN
@ -263,4 +264,24 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
return 0 return 0
} }
fun executeClaimCash(): Boolean {
try {
val couldClaimCashNum = getCouldClaimCashNum()
if (couldClaimCashNum > 0F) {
AccountManager.addCash(couldClaimCashNum)
mStateBean.tasks.forEachIndexed { index, box ->
if (getBoxStateEnum(index) == STATE_FINISH) {
box.hasClaimedReward = true
}
}
saveState2Sp()
notifyEvent()
return true
}
} catch (e: Exception) {
e.printStackTrace()
}
return false
}
} }

View File

@ -21,7 +21,7 @@ data class TaskStateBox(
val tasks: List<TaskStateBoxSub>, val tasks: List<TaskStateBoxSub>,
// new added // new added
val hasClaimedReward: Boolean = false, var hasClaimedReward: Boolean = false,
): Serializable ): Serializable
data class TaskStateBoxSub( data class TaskStateBoxSub(

View File

@ -11,201 +11,18 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
/> />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_date_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:textSize="12sp"
android:textColor="@color/gray6"
android:text="2025/10/31"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/bg_records_win"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:paddingVertical="5dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_left_win"
android:layout_width="45dp"
android:layout_height="45dp"
android:src="@mipmap/record_win"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginHorizontal="10dp"
android:layout_toRightOf="@+id/iv_left_win"
android:layout_toLeftOf="@+id/ll_right_win"
android:layout_centerVertical="true"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="@color/white"
android:text="@string/record_win_item_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_desc_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textSize="14sp"
android:textColor="@color/white_alpha_99"
android:text="@string/record_win_item_desc"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_right_win"
android:layout_width="75dp"
android:layout_height="75dp"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:background="@mipmap/bg_record_win_rgiht"
android:paddingHorizontal="6dp"
android:gravity="center_horizontal"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_win_right_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textStyle="bold"
android:textSize="15sp"
android:textColor="@color/yellow_00"
android:text="Ganhar"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_win_right_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="11dp"
android:textSize="10sp"
android:textColor="@color/green_54"
android:text="Ver detalhes"
/>
</LinearLayout>
</RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_date_lost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:textSize="12sp"
android:textColor="@color/gray6"
android:text="2025/10/31"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/bg_records_lost"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:paddingVertical="5dp"
>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_left_lost"
android:layout_width="45dp"
android:layout_height="45dp"
android:src="@mipmap/record_lost"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginHorizontal="10dp"
android:layout_toRightOf="@+id/iv_left_lost"
android:layout_toLeftOf="@+id/ll_right_lost"
android:layout_centerVertical="true"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title_lost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="@color/white"
android:text="@string/record_lost_item_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_desc_lost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textSize="14sp"
android:textColor="@color/white_alpha_99"
android:text="@string/record_lost_item_desc"
/>
</LinearLayout>
<FrameLayout <FrameLayout
android:id="@+id/ll_right_lost" android:layout_width="match_parent"
android:layout_width="wrap_content" android:layout_height="0dp"
android:layout_height="wrap_content" android:layout_weight="1"
android:orientation="vertical" android:layout_marginHorizontal="15dp" >
android:layout_alignParentEnd="true" <WebView
android:layout_centerVertical="true" android:id="@+id/web_view"
android:layout_marginEnd="5dp" android:layout_width="match_parent"
android:background="@mipmap/bg_record_lost_rgiht" android:layout_height="match_parent"
android:paddingHorizontal="6dp"
android:gravity="center"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_lost_right_top"
android:layout_width="75dp"
android:layout_height="75dp"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center"
android:textSize="15sp"
android:textColor="@color/gray9"
android:text="@string/not_win"
/> />
</FrameLayout> </FrameLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -104,5 +104,6 @@
<string name="box_subtask_hint_3_1">Assistir a 30 anúncios</string> <string name="box_subtask_hint_3_1">Assistir a 30 anúncios</string>
<string name="box_subtask_hint_3_2">Assistir a 50 vídeos</string> <string name="box_subtask_hint_3_2">Assistir a 50 vídeos</string>
<string name="box_subtask_hint_3_3">Participar de 10 compras gratuitas</string> <string name="box_subtask_hint_3_3">Participar de 10 compras gratuitas</string>
<string name="has_claim_box_cash_hint">Has claimed %f cash successfully.</string>
</resources> </resources>