存在待支付订单时停止识别

This commit is contained in:
2026-03-12 11:43:20 +08:00
parent 45a7bf8369
commit 4f1860eb37
@@ -2,7 +2,6 @@ package com.sw.dualscreen.presentation.pay
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog
import android.app.Presentation import android.app.Presentation
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.Point import android.graphics.Point
@@ -11,24 +10,20 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.Spanned import android.text.Spanned
import android.text.SpannedString import android.text.SpannedString
import android.text.TextUtils
import android.text.style.AbsoluteSizeSpan import android.text.style.AbsoluteSizeSpan
import android.view.Display import android.view.Display
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.TextView
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.text.buildSpannedString import androidx.core.text.buildSpannedString
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.arcsoft.face.ErrorInfo import com.arcsoft.face.ErrorInfo
import com.sw.dualscreen.GlobalKey
import com.sw.dualscreen.R import com.sw.dualscreen.R
import com.sw.dualscreen.activity.PayActivity import com.sw.dualscreen.activity.PayActivity
import com.sw.dualscreen.databinding.PresentationFacePayBinding
import com.sw.dualscreen.databinding.PresentationPayBinding import com.sw.dualscreen.databinding.PresentationPayBinding
import com.sw.dualscreen.ext.dp import com.sw.dualscreen.ext.dp
import com.sw.dualscreen.ext.format2String import com.sw.dualscreen.ext.format2String
@@ -38,9 +33,7 @@ import com.sw.dualscreen.ext.load
import com.sw.dualscreen.ext.visible import com.sw.dualscreen.ext.visible
import com.sw.dualscreen.model.response.MemberInfo import com.sw.dualscreen.model.response.MemberInfo
import com.sw.dualscreen.model.response.TextBean import com.sw.dualscreen.model.response.TextBean
import com.sw.dualscreen.utils.SPUtil
import com.sw.dualscreen.utils.SpannedUtils import com.sw.dualscreen.utils.SpannedUtils
import com.sw.dualscreen.view.CustomDialog
import com.sw.dualscreen.viewmodel.UserViewModel import com.sw.dualscreen.viewmodel.UserViewModel
import com.sw.plate.utils.ToastUtils import com.sw.plate.utils.ToastUtils
import com.sw.plate.utils.arcface.ConfigUtil import com.sw.plate.utils.arcface.ConfigUtil
@@ -58,6 +51,7 @@ import com.sw.plate.utils.arcface.face.model.RecognizeConfiguration
import com.sw.plate.utils.arcface.viewmodel.RecognizeViewModel import com.sw.plate.utils.arcface.viewmodel.RecognizeViewModel
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
import java.util.concurrent.atomic.AtomicBoolean
class PayPresentation( class PayPresentation(
val activity: PayActivity, val activity: PayActivity,
@@ -299,14 +293,16 @@ class PayPresentation(
.i("recognizeUserId observe compareResult = ${compareResult.trackId}, userId = ${compareResult.faceEntity.userName}") .i("recognizeUserId observe compareResult = ${compareResult.trackId}, userId = ${compareResult.faceEntity.userName}")
// recognitionTime = System.currentTimeMillis() // recognitionTime = System.currentTimeMillis()
// recognitionWeight = lastWeight // recognitionWeight = lastWeight
if (isExistNotPayOrder.get()) return@Observer
lastFaceTrackId = compareResult.trackId lastFaceTrackId = compareResult.trackId
val faceEntity = compareResult.faceEntity val faceEntity = compareResult.faceEntity
val userId = faceEntity.userName val userId = faceEntity.userName
val isMember = faceEntity.userType == "1" val isMember = faceEntity.userType == "1"
activity.isMember = isMember activity.isMember = isMember
if (userId == null) return@Observer if (userId.isNullOrBlank()) return@Observer
// TODO: 测试支付用户id // TODO: 测试支付用户id
// userId = "1987710988425662466" // userId = "1987710988425662466"
isExistNotPayOrder.set(true)
faceRecSuccess(userId, isMember) faceRecSuccess(userId, isMember)
}) })
@@ -315,6 +311,7 @@ class PayPresentation(
}) })
} }
private var isExistNotPayOrder = AtomicBoolean(false)
private fun initArcView() { private fun initArcView() {
//在布局结束后才做初始化操作 //在布局结束后才做初始化操作
@@ -606,6 +603,7 @@ class PayPresentation(
//ToastUtils.showToast("订单绑定失败") //ToastUtils.showToast("订单绑定失败")
return@bindOrder return@bindOrder
} }
binding.root.postDelayed({ binding.root.postDelayed({
activity.hideWaitingDialog() activity.hideWaitingDialog()
// TODO: 测试 memberInfo.member是否返回正常数据--------------- // TODO: 测试 memberInfo.member是否返回正常数据---------------