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 androidx.activity.viewModels
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.eventbus.NotifyMan
import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.vididin.R
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.main.fragments.task.DailySignDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
@ -193,12 +197,18 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
val couldClaimCashNum = taskStateHelper.getCouldClaimCashNum()
with (tvResgatar) {
if (couldClaimCashNum > 0) {
(R.mipmap.icon_but_bg_green)
setBackgroundResource(R.mipmap.icon_but_bg_green)
isClickable = true
} else {
setBackgroundResource(R.mipmap.but_bg_grady)
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
}
@Synchronized
fun addGold(newGold: Int) {
mAccount?.goldCount += newGold
saveAccountInfo()
NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null)
}
@Synchronized
fun addCash(newCash: Float) {
mAccount?.cashCount += newCash
saveAccountInfo()

View File

@ -5,6 +5,7 @@ import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.R
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.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_ZERO_BUY
import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_SIGN
@ -263,4 +264,24 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
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>,
// new added
val hasClaimedReward: Boolean = false,
var hasClaimedReward: Boolean = false,
): Serializable
data class TaskStateBoxSub(

View File

@ -11,200 +11,17 @@
android:layout_height="wrap_content"
/>
<LinearLayout
<FrameLayout
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_height="0dp"
android:layout_weight="1"
android:layout_marginHorizontal="15dp" >
<WebView
android:id="@+id/web_view"
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"
android:layout_height="match_parent"
/>
<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
android:id="@+id/ll_right_lost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:background="@mipmap/bg_record_lost_rgiht"
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>
</RelativeLayout>
</LinearLayout>
</FrameLayout>
</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_2">Assistir a 50 vídeos</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>