Forráskód Böngészése

refactor(更新) :
- 人脸登录无人脸提示

周文健 3 hónapja
szülő
commit
cc9b437a64

+ 14 - 0
app/src/main/java/com/grkj/iscs_mars/util/ArcSoftUtil.kt

@@ -26,6 +26,8 @@ import com.grkj.iscs_mars.view.activity.test.face.arcsoft.CameraHelper
 import com.grkj.iscs_mars.view.activity.test.face.arcsoft.CameraListener
 import com.grkj.iscs_mars.view.activity.test.face.arcsoft.NV21ToBitmap
 import com.grkj.iscs_mars.view.widget.FaceOverlayView
+import com.sik.sikcore.thread.ThreadUtils
+import kotlinx.coroutines.Runnable
 
 object ArcSoftUtil {
     private var cameraHelper: CameraHelper? = null
@@ -37,6 +39,10 @@ object ArcSoftUtil {
     private var afCode = -1
     private val processMask: Int =
         FaceEngine.ASF_AGE or FaceEngine.ASF_FACE3DANGLE or FaceEngine.ASF_GENDER or FaceEngine.ASF_LIVENESS
+    private var startDetectFaceTime = 0L
+    private val faceNotDetectTip: () -> Unit = {
+        ToastUtils.tip(CommonUtils.getStr(R.string.not_detect_face))
+    }
 
     private const val ACTION_REQUEST_PERMISSIONS: Int = 0x001
     var isActivated = false
@@ -117,6 +123,7 @@ object ArcSoftUtil {
                 isMirror: Boolean
             ) {
                 LogUtil.i("onCameraOpened: $cameraId  $displayOrientation $isMirror")
+                startDetectFaceTime = System.currentTimeMillis()
                 previewSize = camera.parameters.previewSize
                 faceOverlayView?.setCameraPreviewSize(previewSize!!.width, previewSize!!.height)
             }
@@ -132,6 +139,13 @@ object ArcSoftUtil {
                     faceInfoList
                 )
                 faceOverlayView?.setFaceRect(faceInfoList.map { it.rect })
+                if (faceInfoList.isEmpty()) {
+                    if (System.currentTimeMillis() - startDetectFaceTime > 3000) {
+                        faceNotDetectTip()
+                        startDetectFaceTime = System.currentTimeMillis()
+                    }
+                    return
+                }
                 if (!needCheckCenter || (faceInfoList[0].rect.isInCenterArea(
                         previewSize!!.width,
                         previewSize!!.height

+ 5 - 0
app/src/main/java/com/grkj/iscs_mars/view/dialog/LoginDialog.kt

@@ -17,6 +17,7 @@ import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.view.base.BaseActivity
 import com.grkj.iscs_mars.view.base.BaseDialog
 import com.grkj.iscs_mars.view.presenter.LoginPresenter
+import com.sik.sikcore.thread.ThreadUtils
 
 class LoginDialog(
     val presenter: LoginPresenter?,
@@ -151,6 +152,10 @@ class LoginDialog(
                     BusinessManager.sendLoadingEventMsg(null, false)
                     if (isSuccess) {
                         dismiss()
+                    } else {
+                        ThreadUtils.runOnMainDelayed(1300) {
+                            startFace()
+                        }
                     }
                     callBack?.invoke(isSuccess, userInfoRespVO)
                 }

+ 1 - 3
app/src/main/res/layout/dialog_face_capture.xml

@@ -118,10 +118,8 @@
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
                             android:layout_gravity="center"
-                            android:layout_marginTop="10dp"
-                            android:layout_marginBottom="@dimen/common_spacing"
-                            android:gravity="center"
                             android:paddingVertical="@dimen/common_spacing_small"
+                            android:gravity="center"
                             android:text="@string/only_one_person_allowed"
                             android:textColor="@color/common_status_red"
                             android:textSize="@dimen/common_text_size"

+ 1 - 0
app/src/main/res/values-en/strings.xml

@@ -390,4 +390,5 @@
     <string name="detect_face_tip">Detected face, about to shoot</string>
     <string name="please_re_press_fingerprint_again">Please press the fingerprint again</string>
     <string name="use_default_url">Use default url</string>
+    <string name="not_detect_face">No face detected yet</string>
 </resources>

+ 1 - 0
app/src/main/res/values-zh/strings.xml

@@ -390,4 +390,5 @@
     <string name="detect_face_tip">检测到人脸,即将拍摄</string>
     <string name="please_re_press_fingerprint_again">请重新按压指纹</string>
     <string name="use_default_url">使用默认地址</string>
+    <string name="not_detect_face">暂未检测到人脸</string>
 </resources>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -390,4 +390,5 @@
     <string name="detect_face_tip">检测到人脸,即将拍摄</string>
     <string name="please_re_press_fingerprint_again">请重新按压指纹</string>
     <string name="use_default_url">使用默认地址</string>
+    <string name="not_detect_face">暂未检测到人脸</string>
 </resources>