package com.basic.security.manager.helper.rm.base; import com.basic.security.base.BaseFragment; import com.basic.security.manager.FaceTitleAndTipsManager; import com.basic.security.manager.impl.cblite.PersonManager; import com.basic.security.utils.CompareFeatureResult; import com.basic.security.utils.FaceId; import com.basic.security.utils.FacePosition; import com.basic.security.utils.FaceTitleAndTips; import com.basic.security.model.ModelAdapter; import java.util.ArrayList; import java.util.List; public class CurrentBaseFacePosition extends CurrentBaseDetectResult { public static CompareFeatureResult currentCompareFeatureResult = null; public static FaceTitleAndTips currentFaceTitleAndTips = null; public static ModelAdapter currentPerson = null; public static FacePosition currentFacePosition = null; public static String currentSignUpRuleName = ""; private static String currentDoorAccessMessage = ""; public static List currentValidSignUpRuleList = new ArrayList<>(); public static List currentValidSignUpRuleListButTimeNotReach = new ArrayList<>(); public static List currentValidBusinessRuleList = new ArrayList<>(); public static List currentValidBusinessRuleConfirmList = new ArrayList<>(); public static List currentValidBusinessRuleListButTimeNotReach = new ArrayList<>(); public static List currentValidDeviceRuleList = new ArrayList<>(); public static List currentValidDeviceRuleConfirmList = new ArrayList<>(); public static List currentIdentityNameList = new ArrayList<>(); public static String currentDeviceRuleName = ""; public static boolean currentIsAdmin = false; public static Boolean currentDoorAccessState = null; public static String currentFaceTitle = ""; public static String currentFaceTips = ""; public static String currentTitleColor = "#FF0000"; public static String currentBorderColor = "#FF0000"; public static int currentFacePositionIndex = 0; protected boolean needAdjustFaceTips() { return false; } protected boolean doSetFaceTitleWithRegistered() { return false; } protected void signingUpPersonLeft() { } protected void processPersonIsTemporarySave(ModelAdapter person) { } public static void setCurrentDoorAccessMessage(String newCurrentDoorAccessMessage) { currentDoorAccessMessage = newCurrentDoorAccessMessage; } public static String getCurrentDoorAccessMessage(){ return currentDoorAccessMessage; }; protected boolean doorAccessNeedToStep2() { return doorAccessAllowedList.size() == 0 && doorAccessDeniedList.size() == 0; } public void initCurrentPerson(int facePositionIndex) { if (currentFacePosition != detectedResult.facePositions.get(facePositionIndex)) { currentFacePosition = detectedResult.facePositions.get(facePositionIndex); currentCompareFeatureResult = currentFacePosition.compareFeatureResult; currentPerson = currentCompareFeatureResult.person; currentFaceTitleAndTips = FaceTitleAndTipsManager.getFaceTitleMap(currentFacePosition); currentSignUpRuleName = currentCompareFeatureResult.signUpRuleName; currentValidSignUpRuleList = currentCompareFeatureResult.validSignUpRuleList; currentValidSignUpRuleListButTimeNotReach = currentCompareFeatureResult.validSignUpRuleListButTimeNotReach; currentValidBusinessRuleList = currentCompareFeatureResult.validBusinessRuleList; currentValidBusinessRuleListButTimeNotReach = currentCompareFeatureResult.validBusinessRuleListButTimeNotReach; currentIdentityNameList = currentCompareFeatureResult.identityNameList; currentFaceTitle = ""; currentFaceTips = ""; currentTitleColor = "#FF0000"; currentBorderColor = "#FF0000"; currentFacePositionIndex = facePositionIndex; currentDoorAccessState = null; PersonManager.reFindPerson(currentCompareFeatureResult); } clearAdjustTips(); } public static boolean isCurrentFacePositionIsSigningUpPerson(FacePosition currentFacePosition) { boolean samePerson = false; try { byte[] signningUpPersonFeatureData = BaseFragment.getFaceFeature(); byte[] featureData2 = currentFacePosition.featureData; if (signningUpPersonFeatureData != null && featureData2 != null) { double score = FaceId.instance.compareFeature(signningUpPersonFeatureData, featureData2); // 修改分值 原分值 80 if (score >= 80) { samePerson = true; } } } catch (Exception e) { e.printStackTrace(); } return samePerson; } public void addToNeedSignUpPersonList() { needSignUpPersonList.add(currentFacePosition); needSignUpPersonIndexList.add(currentFacePositionIndex); } }