增加支付成功语音提示;增加扫码支付;

This commit is contained in:
2026-03-10 09:41:34 +08:00
parent 6c857dd1f7
commit 7bcb74d9e0
7 changed files with 489 additions and 7 deletions
@@ -157,7 +157,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
override fun onScanSuccess(barcode: String?) {
Timber.d("onScanSuccess barcode = $barcode")
if (barcode == null) return
handleScanKeyInfo(barcode)
scanGunKeyEventCallback(barcode)
}
})
}
@@ -166,12 +166,8 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
/**
* 处理扫描枪数据
*/
protected open fun handleScanKeyInfo(scanInfo: String) {
var payCode = scanInfo
//if (scanInfo.length > 6) {
// payCode = scanInfo.take(6)
//}
Log.d("TAG", "handleScanKeyInfo: " + payCode)
open fun scanGunKeyEventCallback(scanInfo: String) {
Timber.tag("TAG").d("handleScanKeyInfo: $scanInfo")
}
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
@@ -16,10 +16,12 @@ import com.sw.dualscreen.model.response.MemberInfo
import com.sw.dualscreen.model.response.PaySuccessEvent
import com.sw.dualscreen.presentation.pay.PayPresentation
import com.sw.dualscreen.utils.SPUtil
import com.sw.dualscreen.utils.SoundPoolUtil
import com.sw.dualscreen.viewmodel.BaseViewModel
import com.sw.dualscreen.viewmodel.UserViewModel
import com.sw.plate.utils.arcface.viewmodel.RecognizeViewModel
import org.greenrobot.eventbus.EventBus
import timber.log.Timber
class PayActivity : BaseActivity<ActivityPayBinding>() {
@@ -36,6 +38,7 @@ class PayActivity : BaseActivity<ActivityPayBinding>() {
const val TAG_PAY_NUMBER = "tagPayNumber"
const val TAG_PAY_FACE = "tagPayFace"
const val TAG_PAY_RESULT = "tagPayResult"
const val PAY_SUCCESS = "pay_success"
}
val userViewModel by viewModels<UserViewModel>()
@@ -70,10 +73,19 @@ class PayActivity : BaseActivity<ActivityPayBinding>() {
)
}
fun playSoundOnPaySuccess() {
SoundPoolUtil.getInstance().play(PAY_SUCCESS, 0)
}
@Suppress("DEPRECATION")
override fun initialize() {
super.initialize()
presentation.show()
val soundMap = hashMapOf<String, Int>()
soundMap[PAY_SUCCESS] = R.raw.pay_success
SoundPoolUtil.getInstance().loadR(this, soundMap)
foodInfo = intent.getParcelableExtra(FOOD_INFO)
foodOrderId = intent.getStringExtra(FOOD_ORDER_ID) ?: ""
eatNum = intent.getIntExtra(FOOD_EAT_NUM, 1)
@@ -185,6 +197,7 @@ class PayActivity : BaseActivity<ActivityPayBinding>() {
}
fun showPaySuccess(isVip: Boolean) {
playSoundOnPaySuccess()
EventBus.getDefault().post(PaySuccessEvent())
showPayInfo(type = 2, isVip = isVip, memberInfo = memberInfo)
hidePayTab()
@@ -273,6 +286,17 @@ class PayActivity : BaseActivity<ActivityPayBinding>() {
}
}
override fun scanGunKeyEventCallback(scanInfo: String) {
super.scanGunKeyEventCallback(scanInfo)
userViewModel.qrCodePay(scanInfo, foodOrderId) { payState, backData ->
Timber.d("qrCodePay支付返回数据:state=$payState,backData=$backData")
if (payState) {
showPaySuccess(false)
}
}
}
// fun bindOrder(userId: String, block: () -> Unit) {
// val pickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0)
// val mode = if (pickupMode == 1) 1 else 2