zhangzengfei
2020-03-31 0ce893695d32ab686f9e2309509e80c6feb0d380
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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.PersonManager;
import com.basic.security.model.ModelAdapter;
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 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 = "";
    public static List<ModelAdapter> currentValidSignUpRuleList = new ArrayList<>();
    public static List<ModelAdapter> currentValidSignUpRuleListButTimeNotReach = new ArrayList<>();
    public static List<ModelAdapter> currentValidBusinessRuleList = new ArrayList<>();
    public static List<ModelAdapter> currentValidBusinessRuleConfirmList = new ArrayList<>();
    public static List<ModelAdapter> currentValidBusinessRuleListButTimeNotReach = new ArrayList<>();
    public static List<ModelAdapter> currentValidDeviceRuleList = new ArrayList<>();
    public static List<ModelAdapter> currentValidDeviceRuleConfirmList = new ArrayList<>();
    public static List<String> 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;
    private static String currentDoorAccessMessage = "";
 
    public static String getCurrentDoorAccessMessage() {
        return currentDoorAccessMessage;
    }
 
    public static void setCurrentDoorAccessMessage(String newCurrentDoorAccessMessage) {
        currentDoorAccessMessage = newCurrentDoorAccessMessage;
    }
 
    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;
    }
 
    protected boolean needAdjustFaceTips() {
        return false;
    }
 
    protected boolean doSetFaceTitleWithRegistered() {
        return false;
    }
 
    protected void signingUpPersonLeft() {
    }
 
    ;
 
    protected void processPersonIsTemporarySave(ModelAdapter person) {
    }
 
    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;
            currentFaceTitleAndTips = FaceTitleAndTipsManager.getFaceTitleMap(currentFacePosition);
            if (currentCompareFeatureResult != null) {
                currentPerson = currentCompareFeatureResult.person;
                currentSignUpRuleName = currentCompareFeatureResult.signUpRuleName;
                currentValidSignUpRuleList = currentCompareFeatureResult.validSignUpRuleList;
                currentValidSignUpRuleListButTimeNotReach = currentCompareFeatureResult.validSignUpRuleListButTimeNotReach;
                currentValidBusinessRuleList = currentCompareFeatureResult.validBusinessRuleList;
                currentValidBusinessRuleListButTimeNotReach = currentCompareFeatureResult.validBusinessRuleListButTimeNotReach;
                currentIdentityNameList = currentCompareFeatureResult.identityNameList;
            } else {
                currentPerson = null;
                currentSignUpRuleName = "";
                currentValidSignUpRuleList = new ArrayList<>();
                currentValidSignUpRuleListButTimeNotReach = new ArrayList<>();
                currentValidBusinessRuleList = new ArrayList<>();
                currentValidBusinessRuleListButTimeNotReach = new ArrayList<>();
                currentIdentityNameList = new ArrayList<>();
            }
            currentFaceTitle = "";
            currentFaceTips = "";
            currentTitleColor = "#FF0000";
            currentBorderColor = "#FF0000";
            currentFacePositionIndex = facePositionIndex;
            currentDoorAccessState = null;
            PersonManager.reFindPerson(currentCompareFeatureResult);
        }
 
        clearAdjustTips();
    }
 
    public void addToNeedSignUpPersonList() {
        needSignUpPersonList.add(currentFacePosition);
        needSignUpPersonIndexList.add(currentFacePositionIndex);
    }
 
}