diff --git a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt index 9797d94..a76dc4e 100644 --- a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt +++ b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt @@ -54,4 +54,8 @@ object VididinEvents { const val EVENT_WITHDRAW_ITEM_LIST_CHANGED = 503 + // zero withdraw events + const val EVENT_ZERO_WITHDRAW_LIST_CHANGED = 200 + + } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt b/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt index ef63bcf..0c2dc52 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/ZeroBuyResp.kt @@ -32,5 +32,9 @@ data class ZeroBuyItem ( - +data class ZeroBuyWithdrawResp ( + val code: Int, + val message: String, + val content: String, +) diff --git a/app/src/main/java/com/gamedog/vididin/features/winrecords/WinRecordsActivity.kt b/app/src/main/java/com/gamedog/vididin/features/winrecords/WinRecordsActivity.kt index f47da30..80935dc 100644 --- a/app/src/main/java/com/gamedog/vididin/features/winrecords/WinRecordsActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/winrecords/WinRecordsActivity.kt @@ -11,7 +11,10 @@ import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.LinearLayoutManager import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity import com.ama.core.architecture.util.CommonItemDecoration +import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.VididinEvents.EVENT_ZERO_WITHDRAW_LIST_CHANGED import com.gamedog.vididin.beans.ZeroBuyResp +import com.gamedog.vididin.beans.resp.WithdrawRecord import com.gamedog.vididin.features.zero.ZeroBuyViewModel import com.gamedog.vididin.features.zero.ZeroRecordAdapter import com.vididin.real.money.game.R @@ -60,7 +63,18 @@ class WinRecordsActivity : AppViewsEmptyViewModelActivity(), OnTabS } override fun ViewBinding.initListeners() { - //TODO("Not yet implemented") + + registerEvents({ data-> + when (data?.mEventType) { + VididinEvents.EVENT_ZERO_WITHDRAW_LIST_CHANGED -> { + mAdapter.notifyDataSetChanged() + } + } + + }, VididinEvents.EVENT_ZERO_WITHDRAW_LIST_CHANGED,) + + + requestData() } diff --git a/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt b/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt index a3df068..e972a0c 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt @@ -5,10 +5,13 @@ import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.DeviceUtil import com.ama.core.architecture.util.MD5Util import com.ama.core.architecture.util.SpUtil +import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst.ZEROBUY_SECRET +import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.ZeroBuyItem import com.gamedog.vididin.beans.ZeroBuyResp +import com.gamedog.vididin.beans.ZeroBuyWithdrawResp import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog import com.gamedog.vididin.features.withdraw.dialogs.WithdrawInfoConfirmDialog @@ -24,6 +27,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import kotlin.Int @@ -41,21 +45,18 @@ class ZeroManager private constructor() { } } - private val backgroundScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + private val mBgScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) private val mWinZeroList: MutableList by lazy { SpUtil.instance().getList(SpUtil.KEY_ZEROBUY_WIN_ITEMS).toMutableList() } private fun saveWinWithdrawInfos() { SpUtil.instance().putList(SpUtil.KEY_ZEROBUY_WIN_ITEMS, mWinZeroList) + notifyChangeUpdate() } - fun getWinItemList() : List { - return mWinZeroList - } - - fun addOrUpdateWinItem() { - + private fun notifyChangeUpdate() { + NotifyMan.instance().sendEvent(VididinEvents.EVENT_ZERO_WITHDRAW_LIST_CHANGED, null) } @@ -128,7 +129,7 @@ class ZeroManager private constructor() { private fun requestWithdrawZeroReward(zeroWithdrawItem: WinZeroWithdrawInfoItem) { - backgroundScope.launch { + mBgScope.launch { // header val operationVal = VidiConst.ZERO_WITHDRAW_OPERATION val curTimeSec = System.currentTimeMillis()/1000 @@ -160,18 +161,21 @@ class ZeroManager private constructor() { val result = NetworkUtil.post("${VidiConst.URL_ZERO_BUY}/any", requestHeaders, requestParams, joinZeroBuyItemIds) when (result) { is Result.Success -> { - val respObj = AndroidUtil.json2Object(result.data.string()) + val respObj = AndroidUtil.json2Object(result.data.string()) - respObj?.contentObj?.let { - if (respObj.code == 0 && respObj.Content.isNotEmpty()) { - zeroWithdrawItem.orderId = respObj.Content + respObj?.let { + if (it.code == 0 && it.content.isNotEmpty()) { + zeroWithdrawItem.orderId = respObj.content zeroWithdrawItem.withdrawState = TRANSACTION_STATE_ONGOING saveWinWithdrawInfos() + + AndroidUtil.showToast(R.string.zero_withdraw_ongoing) return@launch } else { zeroWithdrawItem.withdrawState = TRANSACTION_STATE_FAIL zeroWithdrawItem.failReason = respObj.code saveWinWithdrawInfos() + AndroidUtil.showToast(R.string.zero_withdraw_failed) } } } @@ -190,7 +194,7 @@ class ZeroManager private constructor() { if (couldStartWithdraw(item)) { val onConfirmed: (cashNum: Float)->Unit = { - + requestWithdrawZeroReward(zeroWithdrawInfoItem) } if (AccountManager.isBankAccountExist()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 22d3379..70c1c51 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -212,6 +212,8 @@ Processing Failed Paid + Claim reward failed + The withdraw request has submitted successfully \ No newline at end of file diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt index 512f325..16181a9 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/AndroidUtil.kt @@ -35,18 +35,42 @@ class AndroidUtil private constructor() { } fun showTopToast(strRes: Int) { - Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).apply { - setGravity(Gravity.TOP, 0, 0) - show() + if (Looper.getMainLooper() != Looper.myLooper()) { + val handler = Handler(Looper.getMainLooper()) + handler.post { + Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).apply { + setGravity(Gravity.TOP, 0, 0) + show() + } + } + } else { + Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).apply { + setGravity(Gravity.TOP, 0, 0) + show() + } } } fun showToast(strRes: Int) { - Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).show() + if (Looper.getMainLooper() != Looper.myLooper()) { + val handler = Handler(Looper.getMainLooper()) + handler.post { + Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).show() + } + } else { + Toast.makeText(BaseApp.appContext(), strRes, Toast.LENGTH_SHORT).show() + } } fun showToast(str: String) { - Toast.makeText(BaseApp.appContext(), str, Toast.LENGTH_SHORT).show() + if (Looper.getMainLooper() != Looper.myLooper()) { + val handler = Handler(Looper.getMainLooper()) + handler.post { + Toast.makeText(BaseApp.appContext(), str, Toast.LENGTH_SHORT).show() + } + } else { + Toast.makeText(BaseApp.appContext(), str, Toast.LENGTH_SHORT).show() + } } fun openUrl(url: String) {