diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt index 0cef1d9..4b82d46 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordCash.kt @@ -1,15 +1,68 @@ package com.gamedog.vididin.beans -data class RecordCash( - val id: Long, - val dateTime: Long, - val status: TransactionStatus, - val statusText: String, - val description: String, - val amount: String, -) +import com.vididin.real.money.game.R -enum class TransactionStatus { - SUCCESS, FAILED, PROCESSING, REDEEM +// Record 类型 +const val RECORD_CASH_PLUS_GOLD_CONVERT: Int = 1 +const val RECORD_CASH_PLUS_NEWBIE_GIFT: Int = 2 +const val RECORD_CASH_PLUS_BOX_TASK: Int = 3 +const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 4 +const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 5 + +open class RecordCash { + var uuid: String = "" + var dateMs: Long = 0L + var isSuccess: Boolean = false + var amountNum: Double = 0.0 + var recordType: Int = 0 +} + +class RecordCashShow: RecordCash() { + var title: Int = 0 + var description: Int = 0 + var iconRes: Int = 0 +} + + +fun RecordCash.toShowBean(): RecordCashShow { + return RecordCashShow().apply { + this@apply.uuid = this@toShowBean.uuid + this@apply.dateMs = this@toShowBean.dateMs + this@apply.isSuccess = this@toShowBean.isSuccess + this@apply.amountNum = this@toShowBean.amountNum + this@apply.recordType = this@toShowBean.recordType + + when (this@apply.recordType) { + RECORD_CASH_PLUS_GOLD_CONVERT -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_PLUS_NEWBIE_GIFT -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_PLUS_BOX_TASK -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_MINUS_WITHDRAW_SMALL -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_MINUS_WITHDRAW_BIG -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + } + } } \ No newline at end of file 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 bb41458..2cf3cd1 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordGold.kt @@ -1,11 +1,77 @@ package com.gamedog.vididin.beans -data class RecordGold( - val id: Long, - val dateTime: Long, - val status: TransactionStatus, - val statusText: String, - val description: String, - val amount: String, -) +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_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 + + + +open class RecordGold { + var uuid: String = "" + var dateMs: Long = 0L + var isSuccess: Boolean = false + var amountNum: Int = 0 + var recordType: Int = 0 +} + +class RecordGoldShow: RecordGold() { + var title: Int = 0 + var description: Int = 0 + var iconRes: Int = 0 +} + + +fun RecordGold.toShowBean(): RecordGoldShow { + return RecordGoldShow().apply { + this@apply.uuid = this@toShowBean.uuid + this@apply.dateMs = this@toShowBean.dateMs + this@apply.isSuccess = this@toShowBean.isSuccess + this@apply.amountNum = this@toShowBean.amountNum + this@apply.recordType = this@toShowBean.recordType + + when (this@apply.recordType) { + RECORD_GOLD_PLUS_WATCH_VIDEO -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_WATCH_REWARD_AD -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_NEWBIE -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_DAILY -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_PLUS_TASK_BOX -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_GOLD_MINUS_CONVERT_2_CASH -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt b/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt index 9fbe785..fb52e7d 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/RecordZero.kt @@ -1,11 +1,61 @@ package com.gamedog.vididin.beans -data class RecordZero( - val id: Long, - val dateTime: Long, - val status: TransactionStatus, - val statusText: String, - val description: String, - val amount: String, -) +import com.vididin.real.money.game.R + +open class RecordZero { + var uuid: String = "" + var dateMs: Long = 0L + var isSuccess: Boolean = false + var amountNum: Double = 0.0 + var recordType: Int = 0 +} + +class RecordZeroShow: RecordZero() { + var title: Int = 0 + var description: Int = 0 + var iconRes: Int = 0 +} + + +fun RecordZero.toShowBean(): RecordZeroShow { + return RecordZeroShow().apply { + this@apply.uuid = this@toShowBean.uuid + this@apply.dateMs = this@toShowBean.dateMs + this@apply.isSuccess = this@toShowBean.isSuccess + this@apply.amountNum = this@toShowBean.amountNum + this@apply.recordType = this@toShowBean.recordType + + when (this@apply.recordType) { + RECORD_CASH_PLUS_GOLD_CONVERT -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_PLUS_NEWBIE_GIFT -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_PLUS_BOX_TASK -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_MINUS_WITHDRAW_SMALL -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + + RECORD_CASH_MINUS_WITHDRAW_BIG -> { + title = R.string.apply + description = R.string.apply + iconRes = R.mipmap.icon_ad + } + } + } +} diff --git a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordCashRvAdapter.kt b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordCashRvAdapter.kt index 16d968d..a46202a 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordCashRvAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordCashRvAdapter.kt @@ -2,15 +2,16 @@ package com.gamedog.vididin.features.withdrawrecord import android.view.LayoutInflater import android.view.ViewGroup -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.gamedog.vididin.beans.RecordCash +import com.ama.core.architecture.util.ResUtil +import com.gamedog.vididin.beans.RecordCashShow +import com.vididin.real.money.game.R import java.text.SimpleDateFormat import com.vididin.real.money.game.databinding.FragmentWithdrawRecordCashItemBinding as ViewBinding -class RecordCashRvAdapter : ListAdapter(DiffCallback()) { +class RecordCashRvAdapter : ListAdapter(DiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding = ViewBinding.inflate(LayoutInflater.from(parent.context), parent, false) @@ -22,22 +23,23 @@ class RecordCashRvAdapter : ListAdapter() { - override fun areItemsTheSame(oldItem: RecordCash, newItem: RecordCash): Boolean { - return oldItem.id == newItem.id + class DiffCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: RecordCashShow, newItem: RecordCashShow): Boolean { + return oldItem.uuid == newItem.uuid } - override fun areContentsTheSame(oldItem: RecordCash, newItem: RecordCash): Boolean { - return oldItem == newItem + override fun areContentsTheSame(oldItem: RecordCashShow, newItem: RecordCashShow): Boolean { + return oldItem.uuid == newItem.uuid } } } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordGoldRvAdapter.kt b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordGoldRvAdapter.kt index 9dd7bbe..ad25adc 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordGoldRvAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/RecordGoldRvAdapter.kt @@ -2,15 +2,16 @@ package com.gamedog.vididin.features.withdrawrecord import android.view.LayoutInflater import android.view.ViewGroup -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.gamedog.vididin.beans.RecordGold +import com.ama.core.architecture.util.ResUtil +import com.gamedog.vididin.beans.RecordGoldShow +import com.vididin.real.money.game.R import java.text.SimpleDateFormat import com.vididin.real.money.game.databinding.FragmentWithdrawRecordGoldItemBinding as ViewBinding -class RecordGoldRvAdapter : ListAdapter(DiffCallback()) { +class RecordGoldRvAdapter : ListAdapter(DiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding = ViewBinding.inflate(LayoutInflater.from(parent.context), parent, false) @@ -22,22 +23,23 @@ class RecordGoldRvAdapter : ListAdapter() { - override fun areItemsTheSame(oldItem: RecordGold, newItem: RecordGold): Boolean { - return oldItem.id == newItem.id + class DiffCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: RecordGoldShow, newItem: RecordGoldShow): Boolean { + return oldItem.uuid == newItem.uuid } - override fun areContentsTheSame(oldItem: RecordGold, newItem: RecordGold): Boolean { - return oldItem == newItem + override fun areContentsTheSame(oldItem: RecordGoldShow, newItem: RecordGoldShow): Boolean { + return oldItem.uuid == newItem.uuid } } } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/CashRecordFragment.kt b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/CashRecordFragment.kt index b247c5a..254a071 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/CashRecordFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/CashRecordFragment.kt @@ -5,15 +5,17 @@ package com.gamedog.vididin.features.withdrawrecord.fragments import android.view.LayoutInflater import android.view.ViewGroup import androidx.fragment.app.viewModels +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.util.setStatusBarDarkFont import com.vididin.real.money.game.R import com.gamedog.vididin.beans.RecordCash -import com.gamedog.vididin.beans.TransactionStatus import com.gamedog.vididin.features.withdrawrecord.RecordCashRvAdapter +import com.gamedog.vididin.manager.RecordsManager import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch import kotlin.getValue import com.vididin.real.money.game.databinding.FragmentWithdrawRecordCashBinding as ViewBinding import com.gamedog.vididin.features.withdrawrecord.RecordCashUiState as UiState @@ -69,47 +71,9 @@ class CashRecordFragment : AppViewsFragment(), binding?.recyclerView?.adapter = mAdapter binding?.recyclerView?.layoutManager = LinearLayoutManager(requireContext()) - // 模拟数据 - val transactions = listOf( - RecordCash( - id = 1, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.SUCCESS, - statusText = "Sucesso", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 0,1", - amountColor = R.color.red_11 - ), - RecordCash( - id = 2, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.FAILED, - statusText = "Falhou", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 0,0", - amountColor = R.color.red_11 - ), - RecordCash( - id = 3, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.PROCESSING, - statusText = "Em processamento...", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 10,0", - amountColor = R.color.red_11 - ), - RecordCash( - id = 4, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.REDEEM, - statusText = "Resgatar", - description = "Você resgatou 4980 moedas", - amount = "+R$ 10,0", - amountColor = R.color.green_39 - ) - ) - - mAdapter.submitList(transactions) + lifecycleScope.launch { + mAdapter.submitList(RecordsManager.instance().getCashRecords()) + } } companion object { diff --git a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/GoldRecordFragment.kt b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/GoldRecordFragment.kt index 755519f..c364ddd 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/GoldRecordFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdrawrecord/fragments/GoldRecordFragment.kt @@ -5,16 +5,17 @@ package com.gamedog.vididin.features.withdrawrecord.fragments import android.view.LayoutInflater import android.view.ViewGroup import androidx.fragment.app.viewModels +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.util.setStatusBarDarkFont import com.vididin.real.money.game.R import com.gamedog.vididin.beans.RecordGold -import com.gamedog.vididin.beans.TransactionStatus -import com.gamedog.vididin.features.withdrawrecord.RecordCashRvAdapter import com.gamedog.vididin.features.withdrawrecord.RecordGoldRvAdapter +import com.gamedog.vididin.manager.RecordsManager import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch import kotlin.getValue import com.vididin.real.money.game.databinding.FragmentWithdrawRecordGoldBinding as ViewBinding import com.gamedog.vididin.features.withdrawrecord.RecordGoldUiState as UiState @@ -70,47 +71,9 @@ class GoldRecordFragment : AppViewsFragment(), binding?.recyclerView?.adapter = mAdapter binding?.recyclerView?.layoutManager = LinearLayoutManager(requireContext()) - // 模拟数据 - val transactions = listOf( - RecordGold( - id = 1, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.SUCCESS, - statusText = "Sucesso", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 0,1", - amountColor = R.color.red_11 - ), - RecordGold( - id = 2, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.FAILED, - statusText = "Falhou", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 0,0", - amountColor = R.color.red_11 - ), - RecordGold( - id = 3, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.PROCESSING, - statusText = "Em processamento...", - description = "Você solicitou o saque com sucesso!", - amount = "-R$ 10,0", - amountColor = R.color.red_11 - ), - RecordGold( - id = 4, - dateTime = "2025/10/31 17:30", - status = TransactionStatus.REDEEM, - statusText = "Resgatar", - description = "Você resgatou 4980 moedas", - amount = "+R$ 10,0", - amountColor = R.color.green_39 - ) - ) - - mAdapter.submitList(transactions) + lifecycleScope.launch { + mAdapter.submitList(RecordsManager.instance().getGoldRecords()) + } } companion object { diff --git a/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt b/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt index 4bba857..2dcb8a7 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/RecordsManager.kt @@ -2,8 +2,12 @@ package com.gamedog.vididin.manager import com.ama.core.architecture.util.SpUtil import com.gamedog.vididin.beans.RecordCash +import com.gamedog.vididin.beans.RecordCashShow import com.gamedog.vididin.beans.RecordGold +import com.gamedog.vididin.beans.RecordGoldShow import com.gamedog.vididin.beans.RecordZero +import com.gamedog.vididin.beans.RecordZeroShow +import com.gamedog.vididin.beans.toShowBean import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -42,16 +46,31 @@ class RecordsManager private constructor() { mZeroHelper.addRecord(newRecord) } - fun getCashRecords() : List { - return mCashHelper.getRecordList() + fun getCashRecords() : List { + val resultList = mutableListOf() + val dataList = mCashHelper.getRecordList() + dataList.forEach { + resultList.add(it.toShowBean()) + } + return resultList.toList() } - fun getGoldRecords() : List { - return mGoldHelper.getRecordList() + fun getGoldRecords() : List { + val resultList = mutableListOf() + val dataList = mGoldHelper.getRecordList() + dataList.forEach { + resultList.add(it.toShowBean()) + } + return resultList.toList() } - fun getZeroRecords() : List { - return mZeroHelper.getRecordList() + fun getZeroRecords() : List { + val resultList = mutableListOf() + val dataList = mZeroHelper.getRecordList() + dataList.forEach { + resultList.add(it.toShowBean()) + } + return resultList.toList() } } @@ -65,15 +84,6 @@ class CashRecordHelper() : BaseRecordHelper() { override suspend fun loadRecordsFromSp(): List { return SpUtil.instance().getList(mSpKey) } - - companion object { - // Record 类型 - const val RECORD_CASH_PLUS_GOLD_CONVERT: Int = 1 - const val RECORD_CASH_PLUS_NEWBIE_GIFT: Int = 2 - const val RECORD_CASH_PLUS_BOX_TASK: Int = 3 - const val RECORD_CASH_MINUS_WITHDRAW_SMALL: Int = 4 - const val RECORD_CASH_MINUS_WITHDRAW_BIG: Int = 5 - } } class GoldRecordHelper() : BaseRecordHelper() { @@ -81,16 +91,6 @@ class GoldRecordHelper() : BaseRecordHelper() { override suspend fun loadRecordsFromSp(): List { return SpUtil.instance().getList(mSpKey) } - - companion object { - // Record 类型 - const val RECORD_GOLD_PLUS_WATCH_VIDEO: 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 - } } class ZeroRecordHelper() : BaseRecordHelper() {