diff --git a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt index a372e02..c4e727d 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt @@ -7,6 +7,7 @@ import com.sw.plate.utils.arcface.FaceApi import com.sw.platecabinet.GlobalData import com.sw.platecabinet.databinding.ActivityDeviceInitBinding import com.sw.platecabinet.databinding.ItemTitleTimeBinding +import com.sw.platecabinet.utils.SpTool import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -48,9 +49,11 @@ class DeviceInitActivity : BaseActivity() { showWaitingDialog("加载中……") lifecycleScope.launch { withContext(Dispatchers.Default) { - val count = FaceApi().queryFaceCount() - if (count == 0) { + //val count = FaceApi().queryFaceCount() + //if (count == 0) { + if (SpTool.getFirstGetFace()) { userViewModel.getUserFaceCache { status, msg -> + SpTool.setFirstGetFace(false) getDeviceConfig() } } else { diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index a60e3a4..927d33a 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -658,7 +658,8 @@ class LoginByFaceActivity : BaseActivity(), } // 调用示例:构造 1920×1080 的全黑帧(长度 1382400) - private val emptyFrame = createBlackNV21Frame(1920, 1080) +// private val emptyFrame = createBlackNV21Frame(1920, 1080) + private val emptyFrame = createBlackNV21Frame(1280, 720) // 传递“空帧” recognizeViewModel.onPreviewFrame(emptyFrame, true) // /** @@ -854,23 +855,15 @@ class LoginByFaceActivity : BaseActivity(), //1-会员、2-临时用户 it.userType = if (faceModel.isMember) "1" else "2" } - faceDao.insert(faceEntity) + val faceId = faceDao.insert(faceEntity) + faceEntity.faceId = faceId loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------") recognizeViewModel.refreshFaceList() loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------") - val faceCount = faceDao.getFaceCount() - isRecognition = false runOnUiThread { - ToastUtils.showToast("采集完成") - recognizeViewModel.onPreviewFrame(emptyFrame, true) - if (faceCount == 1) { - //数据库的第一条数据,刚采集完成 - binding.dualCameraFaceRectView.clearFaceInfo() - recognizeViewModel.clearLeftFace(facePreviewInfoList) - binding.root.postDelayed({ - isRecognition = true - }, 1500) - } + //采集完成,不再识别,直接提示成功 + isRecognition = false + recognizeSuccess("${System.currentTimeMillis()}") } loadLogInfo("---------------------------------") collectCount = 0 diff --git a/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt b/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt index ccee471..344df64 100644 --- a/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt +++ b/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt @@ -10,6 +10,9 @@ import com.sw.platecabinet.model.response.EquipmentUserInfo object SpTool { const val LAST_FACE_TIMESTAMP: String = "faceTimestamp" const val PLATE_BOX_DATA: String = "plateBoxBind" + + const val IS_FIRST_GET_FACE = "isFirstGetFace" + private var spUtil: SPUtil? = null init { @@ -39,4 +42,9 @@ object SpTool { return GsonUtils.fromJsonList(jsonData, EquipmentUserInfo::class.java) } + fun getFirstGetFace() = spUtil?.get(IS_FIRST_GET_FACE, false)?:false + fun setFirstGetFace(state: Boolean) { + spUtil?.boolean(IS_FIRST_GET_FACE, state) + } + }