【新手任务】已完成的任务会消失,剩余未完成的任务会往上填充,实际游戏中已经完成的任务未消失

This commit is contained in:
renhaoting 2026-01-15 19:25:40 +08:00
parent 4e28a5e436
commit 44380be0f1
4 changed files with 110 additions and 59 deletions

View File

@ -341,6 +341,10 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
private fun updateNewBieFirstWithdrawUI() {
with(binding?.beginnerTaskWithdraw!!) {
val stateBean = TaskManager.instance().newbieFirstWithdrawStatus().getStatusBean()
if (stateBean.hasClaimReward) {
binding?.llRootFirstWithdrarw?.isVisible = false
} else {
setActionFun {
if (stateBean.hasWithdrawed && !stateBean.hasClaimReward) {
TaskManager.instance().newbieFirstWithdrawStatus().claimReward()
@ -351,37 +355,49 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
setTaskStateInfo(
stateBean.rewardGoldNum.toString(),
if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
if (stateBean.hasClaimReward) R.string.resgatar else R.string.go_and_do,
ResUtil.getString(R.string.beginner_withdraw_desc),
stateBean.hasClaimReward
)
}
}
}
private fun updateNewBieDiscordUI() {
with(binding?.beginnerTaskDiscord!!) {
val stateBean = TaskManager.instance().newbieJoinDiscordStatus().getStatusBean()
val hasClaimDiscordGold = stateBean.hasClaimReward
//val hasClaimDiscordGold = stateBean.hasClaimReward
if (stateBean.hasClaimReward) {
binding?.llRootDiscord?.isVisible = false
} else {
setActionFun {
if (!hasClaimDiscordGold) {
gotoDiscord()
postDelayed({
if (!stateBean.hasClaimReward) {
if (stateBean.hasJoined) {
if (TaskManager.instance().newbieJoinDiscordStatus().claimReward()) {
DailySignSuccessDialog(requireActivity()).initData(stateBean.rewardGoldNum, false).show()
updateNewBieDiscordUI()
}
} else {
gotoDiscord()
postDelayed({
if (TaskManager.instance().newbieJoinDiscordStatus().setHasJoinedDiscord()) {
updateNewBieDiscordUI()
}
}, 5000)
}
}
}
setTaskStateInfo(
stateBean.rewardGoldNum.toString(),
if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
if (stateBean.hasClaimReward) R.string.Resgatado else (if (stateBean.hasJoined) R.string.resgatar 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!!) {
@ -399,12 +415,16 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
val stateBean = TaskManager.instance().newbieEnableNotifyStatus().getStatusBean()
if (stateBean.hasClaimReward) {
binding?.llRootNotify?.isVisible = false
} else {
val isNotifyEnable = AndroidUtil.isNotificationEnabled()
val actionButRes = if (stateBean.hasClaimReward) R.string.Resgatado 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)
}
}
}

View File

@ -40,6 +40,16 @@ class NewbieJoinDiscordHelper: BaseTaskHelper<TaskStateNewBieJoinDiscord, Task>(
return false
}
fun setHasJoinedDiscord() : Boolean {
if (!mStateBean.hasClaimReward) {
mStateBean.hasJoined = true
saveState2Sp()
notifyStateChangeEvent()
return true
}
return false
}
private fun notifyStateChangeEvent() {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED, null)
}

View File

@ -8,6 +8,7 @@ import java.io.Serializable
data class TaskStateNewBieJoinDiscord(
var rewardGoldNum: Int,
var hasClaimReward: Boolean = false,
var hasJoined: Boolean = false
): Serializable {
}

View File

@ -501,6 +501,12 @@
android:layout_marginTop="20dp"
android:orientation="vertical"
android:paddingHorizontal="15dp">
<LinearLayout
android:id="@+id/ll_root_first_withdrarw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -512,7 +518,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_root_discord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -524,7 +536,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_root_notify"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -537,6 +556,7 @@
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>