package com.example.chemical.ui.verify; import android.graphics.Bitmap; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.util.Pair; import com.example.chemical.databinding.ActivityDoubleVerifyBinding; import com.example.chemical.receiver.OnSerialScanListener; import com.example.chemical.receiver.PortScanHelper; import com.example.chemical.ui.common.BaseCountDownActivity; import com.example.chemical.ui.verify.include.DetectType; import com.rc.httpcore.bean.UserValidationBean; import java.util.ArrayList; import java.util.List; public class DoubleVerifyActivity extends BaseCountDownActivity { protected ActivityDoubleVerifyBinding binding; private DoubleVerifyActivityHelp activityHelp; private PortScanHelper portScanHelper; /** * 当前识别类型 */ private DetectType detectType = DetectType.FACE_DETECT; /** * a:是否验证通过 * b:是否是 全部柜门管理员或安全员或实验室负责人 */ protected final List> doubleVerifyList = new ArrayList>() {{ add(Pair.create(false, false)); add(Pair.create(false, false)); }}; @NonNull @Override protected ActivityDoubleVerifyBinding createViewBinding() { return binding = ActivityDoubleVerifyBinding.inflate(getLayoutInflater()); } @Override protected void initViews(@Nullable Bundle savedInstanceState) { super.initViews(savedInstanceState); activityHelp = new DoubleVerifyActivityHelp(this); } @Override protected void initData() { super.initData(); binding.card1IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.CARD_DETECT, true, true); } }); binding.face1IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, true, true); } }); binding.scan1IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.SCAN_DETECT, true, true); } }); binding.card2IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.CARD_DETECT, false, true); } }); binding.face2IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, false, true); } }); binding.scan2IB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { activityHelp.switchShowDetect(detectType = DetectType.SCAN_DETECT, false, true); } }); activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, true, true); portScanHelper = new PortScanHelper(this, new OnSerialScanListener() { @Override public void dispatchScanEvent(@NonNull ScanType type, @NonNull String content) { Pair first = doubleVerifyList.get(0); Pair second = doubleVerifyList.get(1); // 第一位 if (!first.first) { } // 第二位 else if (!second.first) { } } }); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (detectType == DetectType.CARD_DETECT) { portScanHelper.dispatchKeyEvent(event); } return super.dispatchKeyEvent(event); } public interface DoubleVerifyListener { /** * @param type 验证类型 * @param faceBitmap 人脸图片 * @param userValidationBean 验证通过的人信息 */ void detect(DetectType type, Bitmap faceBitmap, UserValidationBean userValidationBean); } }