diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawSuccessDialog.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawSuccessDialog.kt index e984af7..7e89b1d 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawSuccessDialog.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawSuccessDialog.kt @@ -2,12 +2,14 @@ package com.gamedog.vididin.features.withdraw.dialogs import android.app.Activity +import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.widget.BindingDialog +import com.vididin.real.money.game.R import com.vididin.real.money.game.databinding.DialogWithdrawSuccessBinding as ViewBinding -class WithdrawSuccessDialog(context: Activity, private val mCashNum: Float) : BindingDialog(context, ViewBinding::inflate) { +class WithdrawSuccessDialog(context: Activity, private val mCashNum: Float = 0F, private val cashNumStr: String = "") : BindingDialog(context, ViewBinding::inflate) { init { build() @@ -32,7 +34,12 @@ class WithdrawSuccessDialog(context: Activity, private val mCashNum: Float) : Bi } } - tvCashNum.text = mCashNum.toString() + if (mCashNum > 0F) { + tvCashNum.text = ResUtil.getString(R.string.cash) + " " + mCashNum.toString() + } else { + tvCashNum.text = cashNumStr + } + } } } diff --git a/app/src/main/java/com/gamedog/vididin/features/zero/ZeroBuyActivity.kt b/app/src/main/java/com/gamedog/vididin/features/zero/ZeroBuyActivity.kt index 3db9d2f..4fafd86 100644 --- a/app/src/main/java/com/gamedog/vididin/features/zero/ZeroBuyActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/zero/ZeroBuyActivity.kt @@ -19,6 +19,7 @@ import com.vididin.real.money.game.R import com.gamedog.vididin.beans.ZeroBuyItem import com.gamedog.vididin.beans.ZeroBuyResp import com.gamedog.vididin.core.login.login.AccountManager +import com.gamedog.vididin.features.withdraw.dialogs.WithdrawSuccessDialog import com.gamedog.vididin.features.zero.dialogs.ZeroBuyNotWinDialog import com.gamedog.vididin.features.zero.dialogs.ZeroBuyRulesDialog import com.gamedog.vididin.features.zero.dialogs.ZeroBuyWinDialog @@ -106,6 +107,17 @@ class ZeroBuyActivity : AppViewsEmptyViewModelActivity() { }, VididinEvents.Event_Account_Diamond_Changed) requestData() + + checkPreWithdrawWaitNotifyResult() + } + + private fun checkPreWithdrawWaitNotifyResult() { + val waitNotifyList = ZeroManager.instance().getWaitNotifyResultList() + + waitNotifyList.forEach { + WithdrawSuccessDialog(this, cashNumStr = it.winCashNumStr).show() + ZeroManager.instance().updateHasNotifyValue(it.purchase_id) + } } private fun updateUIDiamondNum() { 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 f6064f1..7b3a9a2 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/ZeroManager.kt @@ -28,7 +28,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch -import okhttp3.internal.http2.Http2Reader import java.util.concurrent.locks.ReentrantLock import kotlin.Int @@ -75,6 +74,10 @@ class ZeroManager private constructor() { } + fun getWaitNotifyResultList() : List { + return mRecordList.filter { it.withdrawState == TRANSACTION_STATE_SUCCESS && !it.hasShowResultDialog } + } + /** * only add new one, if already exist - then do nothing */ @@ -94,7 +97,7 @@ class ZeroManager private constructor() { } if (!alreadyExist) { - mRecordList.add(WinZeroWithdrawInfoItem(zeroItem.id, zeroItem.title, zeroItem.price)) + mRecordList.add(WinZeroWithdrawInfoItem(zeroItem.id, zeroItem.title, zeroItem.price!!)) saveWinWithdrawInfos() } } finally { @@ -213,34 +216,31 @@ class ZeroManager private constructor() { if (userId > 0) { requestParams.put("UserId", userId.toString()) } - val joinZeroBuyItemIds = SpUtil.instance().getList(SpUtil.KEY_ZEROBUY_JOINED_ACTIVITY_IDS) + requestParams.put("ActivityId", zeroWithdrawItem.purchase_id.toString()) // withdraw check result 相关参数: requestParams.put("device_id", zeroWithdrawItem.orderId) requestParams.put("order_id", zeroWithdrawItem.orderId) - /*val signOriginStr = "${zeroWithdrawItem.purchase_id}-${userId}-${bankCPFAccount}-${accountType}-${bankCPFAccount}-${accountType}-${ZEROBUY_SECRET}" - requestParams.put("Sign", MD5Util.md5(signOriginStr)!!)*/ + requestParams.put("record_id", zeroWithdrawItem.orderId) + requestParams.put("recordId", zeroWithdrawItem.orderId) - val result = NetworkUtil.post("${VidiConst.URL_ZERO_BUY}/any", requestHeaders, requestParams, joinZeroBuyItemIds) + //val result = NetworkUtil.post("${VidiConst.URL_ZERO_BUY}/any", requestHeaders, requestParams) + val result = NetworkUtil.post("http://192.168.110.141:8081/any", requestHeaders, requestParams) + when (result) { is Result.Success -> { val respObj = AndroidUtil.json2Object(result.data.string()) respObj?.let { - if (it.code == 0 && it.content.isNotEmpty()) { + if (it.code == 0) { zeroWithdrawItem.orderId = respObj.content - zeroWithdrawItem.withdrawState = TRANSACTION_STATE_ONGOING + zeroWithdrawItem.withdrawState = TRANSACTION_STATE_SUCCESS 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) } } } @@ -309,9 +309,19 @@ class ZeroManager private constructor() { } finally { mRecordLocker.unlock() } - } - mLooperHandler.postDelayed(mLoopRunnable, 20 * 1000) + mLooperHandler.postDelayed(mLoopRunnable, 20 * 1000) + } + } + + fun updateHasNotifyValue(purchaseId: Int) { + mRecordList.forEach { + if (it.purchase_id == purchaseId) { + it.hasShowResultDialog = true + saveWinWithdrawInfos() + return@forEach + } + } } } @@ -321,7 +331,7 @@ class ZeroManager private constructor() { data class WinZeroWithdrawInfoItem( val purchase_id: Int = 0, val purchase_title: String? = "", - val winCashNumStr: String? = "", + val winCashNumStr: String = "", var operateMs: Long = System.currentTimeMillis(), var withdrawState: Int = TRANSACTION_STATE_UNSTART, var failReason: Int = 0, diff --git a/app/src/main/res/layout/dialog_withdraw_success.xml b/app/src/main/res/layout/dialog_withdraw_success.xml index 6b395d7..6215a57 100644 --- a/app/src/main/res/layout/dialog_withdraw_success.xml +++ b/app/src/main/res/layout/dialog_withdraw_success.xml @@ -37,7 +37,6 @@ android:textStyle="bold" android:gravity="center_vertical" android:textColor="@color/green_2c" - android:text="@string/cash" android:drawableStart="@mipmap/icon_cash" android:drawablePadding="3dp" /> @@ -48,6 +47,7 @@ android:layout_height="wrap_content" android:layout_marginStart="5dp" android:textSize="30sp" + android:text="@string/cash" android:textStyle="bold" android:textColor="@color/green_2c" />