DoubleVerifyActivity.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.example.chemical.ui.verify;
  2. import android.graphics.Bitmap;
  3. import android.os.Bundle;
  4. import android.view.KeyEvent;
  5. import android.view.View;
  6. import androidx.annotation.NonNull;
  7. import androidx.annotation.Nullable;
  8. import androidx.core.util.Pair;
  9. import com.example.chemical.databinding.ActivityDoubleVerifyBinding;
  10. import com.example.chemical.receiver.OnSerialScanListener;
  11. import com.example.chemical.receiver.PortScanHelper;
  12. import com.example.chemical.ui.common.BaseCountDownActivity;
  13. import com.example.chemical.ui.verify.include.DetectType;
  14. import com.rc.httpcore.bean.UserValidationBean;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. public class DoubleVerifyActivity extends BaseCountDownActivity<ActivityDoubleVerifyBinding> {
  18. protected ActivityDoubleVerifyBinding binding;
  19. private DoubleVerifyActivityHelp activityHelp;
  20. private PortScanHelper portScanHelper;
  21. /**
  22. * 当前识别类型
  23. */
  24. private DetectType detectType = DetectType.FACE_DETECT;
  25. /**
  26. * a:是否验证通过
  27. * b:是否是 全部柜门管理员或安全员或实验室负责人
  28. */
  29. protected final List<Pair<Boolean, Boolean>> doubleVerifyList = new ArrayList<Pair<Boolean, Boolean>>() {{
  30. add(Pair.create(false, false));
  31. add(Pair.create(false, false));
  32. }};
  33. @NonNull
  34. @Override
  35. protected ActivityDoubleVerifyBinding createViewBinding() {
  36. return binding = ActivityDoubleVerifyBinding.inflate(getLayoutInflater());
  37. }
  38. @Override
  39. protected void initViews(@Nullable Bundle savedInstanceState) {
  40. super.initViews(savedInstanceState);
  41. activityHelp = new DoubleVerifyActivityHelp(this);
  42. }
  43. @Override
  44. protected void initData() {
  45. super.initData();
  46. binding.card1IB.setOnClickListener(new View.OnClickListener() {
  47. @Override
  48. public void onClick(View v) {
  49. activityHelp.switchShowDetect(detectType = DetectType.CARD_DETECT, true, true);
  50. }
  51. });
  52. binding.face1IB.setOnClickListener(new View.OnClickListener() {
  53. @Override
  54. public void onClick(View v) {
  55. activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, true, true);
  56. }
  57. });
  58. binding.scan1IB.setOnClickListener(new View.OnClickListener() {
  59. @Override
  60. public void onClick(View v) {
  61. activityHelp.switchShowDetect(detectType = DetectType.SCAN_DETECT, true, true);
  62. }
  63. });
  64. binding.card2IB.setOnClickListener(new View.OnClickListener() {
  65. @Override
  66. public void onClick(View v) {
  67. activityHelp.switchShowDetect(detectType = DetectType.CARD_DETECT, false, true);
  68. }
  69. });
  70. binding.face2IB.setOnClickListener(new View.OnClickListener() {
  71. @Override
  72. public void onClick(View v) {
  73. activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, false, true);
  74. }
  75. });
  76. binding.scan2IB.setOnClickListener(new View.OnClickListener() {
  77. @Override
  78. public void onClick(View v) {
  79. activityHelp.switchShowDetect(detectType = DetectType.SCAN_DETECT, false, true);
  80. }
  81. });
  82. activityHelp.switchShowDetect(detectType = DetectType.FACE_DETECT, true, true);
  83. portScanHelper = new PortScanHelper(this, new OnSerialScanListener() {
  84. @Override
  85. public void dispatchScanEvent(@NonNull ScanType type, @NonNull String content) {
  86. Pair<Boolean, Boolean> first = doubleVerifyList.get(0);
  87. Pair<Boolean, Boolean> second = doubleVerifyList.get(1);
  88. // 第一位
  89. if (!first.first) {
  90. }
  91. // 第二位
  92. else if (!second.first) {
  93. }
  94. }
  95. });
  96. }
  97. @Override
  98. public boolean dispatchKeyEvent(KeyEvent event) {
  99. if (detectType == DetectType.CARD_DETECT) {
  100. portScanHelper.dispatchKeyEvent(event);
  101. }
  102. return super.dispatchKeyEvent(event);
  103. }
  104. public interface DoubleVerifyListener {
  105. /**
  106. * @param type 验证类型
  107. * @param faceBitmap 人脸图片
  108. * @param userValidationBean 验证通过的人信息
  109. */
  110. void detect(DetectType type, Bitmap faceBitmap, UserValidationBean userValidationBean);
  111. }
  112. }