From 84e391f79e4c298e31b990667a54d991d645949f Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 十二月 2019 09:01:50 +0800
Subject: [PATCH] a

---
 app/src/main/java/com/basic/security/fragment/PersonManageFragment.java |  136 ++++++++++++++++++++++++--------------------
 1 files changed, 74 insertions(+), 62 deletions(-)

diff --git a/app/src/main/java/com/basic/security/fragment/PersonManageFragment.java b/app/src/main/java/com/basic/security/fragment/PersonManageFragment.java
index fa17ed3..6515a12 100644
--- a/app/src/main/java/com/basic/security/fragment/PersonManageFragment.java
+++ b/app/src/main/java/com/basic/security/fragment/PersonManageFragment.java
@@ -4,18 +4,17 @@
 
 import com.basic.security.R;
 import com.basic.security.base.BaseFragment;
+import com.basic.security.manager.BaseSettingManager;
+import com.basic.security.manager.HintSignUpManager;
+import com.basic.security.manager.PersonIdentityManager;
+import com.basic.security.manager.PersonManager;
 import com.basic.security.manager.impl.cblite.AccountManager;
-import com.basic.security.manager.impl.cblite.BaseSettingManager;
-import com.basic.security.manager.impl.cblite.HintSignUpManager;
-import com.basic.security.manager.impl.cblite.PersonIdentityManager;
-import com.basic.security.manager.impl.cblite.PersonManager;
 import com.basic.security.model.ModelAdapter;
 import com.basic.security.model.Person;
 import com.basic.security.utils.BasicIdUtil;
 import com.basic.security.utils.ButtonClickIntervalsUtils;
 import com.basic.security.utils.CheckIdCard;
 import com.basic.security.utils.FaceId;
-import com.basic.security.utils.IdCard;
 import com.basic.security.utils.PhoneNumberCheckUtils;
 import com.basic.security.utils.ToastUtil;
 import com.basic.security.widget.ConfirmDialog;
@@ -34,11 +33,11 @@
 
     public ModelAdapter selectedPersonDocument;
     public boolean needVerifyIDCard = false;
-    private boolean isFromAdminRegister = false;
-    private boolean canSavePerson = true;
     public ConfirmDialog confirmDialog;
     public String savedPersonId;
     boolean messageComplete = false;
+    private boolean isFromAdminRegister = false;
+    private boolean canSavePerson = true;
     private String all_device = null;
 
     public boolean needIdCardInfo() {
@@ -52,11 +51,11 @@
     @Override
     public void show() {
         if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) {
-            ((PersonIdentityFragment) mainActivity().fragment_person_identity).setIdentityWithPerson(null);
+            mainActivity().fragment_person_identity.setIdentityWithPerson(null);
         }
         // 瑙e喅浠庢敞鍐岄〉闈㈣烦鍒颁汉鍛樼鐞嗛〉闈�,绗竴娆′笉鏄剧ず璇峰湪鍒峰崱鍖洪獙璇佽韩浠借瘉
         if (selectedPersonDocument != null && isFromAdminRegister) {
-            ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(selectedPersonDocument);
+            mainActivity().fragment_face_detail.setPerson(selectedPersonDocument);
         }
     }
 
@@ -78,18 +77,18 @@
         }
     }
 
-    public void savePerson() {
+    public boolean savePerson() {
         if (!ButtonClickIntervalsUtils.isCanClick()) {
-            return;
+            return false;
         }
         final String[] msg = {"淇濆瓨鎴愬姛"};
         canSavePerson = true;
         BaseFragment currentFragment = mainActivity().currentFragment;
         class SavePersonHelper {
-            public void execute() {
+            public boolean execute() {
                 if (checkPersonDocument()) {
                     if (!canSavePerson) {// 鏍¢獙韬唤璇佸彿鍜屾墜鏈哄彿鏄惁绗﹀悎瑕佹眰
-                        return;
+                        return false;
                     }
                     if (needSaveIdCard()) {
                         saveIdCard();
@@ -100,21 +99,21 @@
                         setVerifyStatus();
                     }
                     setIsRegistered();
-                    if (((PersonIdentityFragment) mainActivity().fragment_person_identity).savePersonIdentity(selectedPersonDocument.getId())) {
+                    if (mainActivity().fragment_person_identity.savePersonIdentity(selectedPersonDocument.getId())) {
                         byte[] camera_image_feature = selectedPersonDocument.getBlob("camera_image_feature");
                         if (camera_image_feature != null && camera_image_feature != null) {
                             //  瑙e喅鍦╬ersonManager鐨勫凡娉ㄥ唽涓汉鍛樹俊鎭笉瀹屾暣鐨勬彁绀�,浜哄憳淇℃伅涓嶅畬鏁�,涓嶄繚瀛�
 //                            boolean messageComplete = ((FaceDetailFragment) mainActivity().fragment_face_detail).detailMessageIsComplete();
-                            int identitySize = ((PersonIdentityFragment) mainActivity().fragment_person_identity).getIdentitySize();
+                            int identitySize = mainActivity().fragment_person_identity.getIdentitySize();
                             identitySize = 1; // 涓嶅垽鏂槸鍚︽湁韬唤淇℃伅
                             if ("宸叉敞鍐�".equals(selectedPersonDocument.getString("sign_up_status"))
                                     && currentFragment == mainActivity().fragment_person_manage) {
                                 if (!messageComplete) {
-                                    return;
+                                    return false;
                                 }
                                 if (identitySize == 0) {
                                     ToastUtil.show("璇烽�夋嫨韬唤");
-                                    return;
+                                    return false;
                                 }
                                 ToastUtil.show(msg[0]);
                             }
@@ -123,10 +122,21 @@
                             PersonManager.savePerson(selectedPersonDocument);
                             savedPersonId = selectedPersonDocument.getId();
 
-                            doInUIThread(selectedPersonDocument);
-
+                            afterSavePerson(selectedPersonDocument);
                             if (isNewPerson()) {
+                                try {
+                                    String camera_image_path = selectedPersonDocument.getString(Person.camera_image_path);
+                                    byte[] feature = FaceId.instance.extractFeature(camera_image_path);
+                                    if (feature == null) {
+                                        PersonManager.deletePerson(selectedPersonDocument);
+                                        return false;
+                                    }
+                                } catch (Exception e) {
+                                    PersonManager.deletePerson(selectedPersonDocument);
+                                    return false;
+                                }
                                 FaceId.instance.addFeatureToDb(selectedPersonDocument.getId(), selectedPersonDocument.getBlob("camera_image_feature"));
+                                ToastUtil.show("娉ㄥ唽鎴愬姛");
                             }
                         } else {
                             ToastUtil.show("鑾峰彇澶村儚澶辫触,璇风◢鍚庨噸璇�!");
@@ -139,11 +149,13 @@
                         });
                     }
                 }
+                return true;
             }
-            public void setDevice(){
+
+            public void setDevice() {
                 //鑾峰彇閫夋嫨鐨勮澶囷細褰撳墠璁惧杩樻槸闆嗙兢鎵�鏈夎澶�
-                String s = ((PersonIdentityFragment) mainActivity().fragment_person_identity).aboutDevice();
-                selectedPersonDocument.setString("all_device",s);
+                String s = mainActivity().fragment_person_identity.aboutDevice();
+                selectedPersonDocument.setString("all_device", s);
             }
 
             public void setIsRegistered() {
@@ -152,8 +164,8 @@
                 }
                 if (AccountManager.adminLoggedIn()) {
                     String sign_up_status = selectedPersonDocument.getString("sign_up_status");
-                    messageComplete = ((FaceDetailFragment) mainActivity().fragment_face_detail).detailMessageIsComplete();
-                    int identitySize = ((PersonIdentityFragment) mainActivity().fragment_person_identity).getIdentitySize();
+                    messageComplete = mainActivity().fragment_face_detail.detailMessageIsComplete();
+                    int identitySize = mainActivity().fragment_person_identity.getIdentitySize();
                     identitySize = 1; // 涓嶅垽鏂槸鍚︽湁韬唤淇℃伅閮藉彲浠ヤ繚瀛�
                     if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success
                             || mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard
@@ -169,7 +181,6 @@
 //                        }
                         if (messageComplete) {
                             selectedPersonDocument.setString("sign_up_status", "宸叉敞鍐�");
-                            ToastUtil.show("娉ㄥ唽鎴愬姛");
                         } else {
                             selectedPersonDocument.setString("sign_up_status", "鏈敞鍐�");
                         }
@@ -254,7 +265,7 @@
 
                     if (currentFragment == mainActivity().fragment_su_logged_nic_wait_detail) {
                         mainActivity().showFragment(mainActivity().fragment_su_logged_nic_wait_face);
-                        ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText();
+                        mainActivity().fragment_face_detail.clearInPutText();
                         return;
                     }
                     if (currentFragment == mainActivity().fragment_su_logged_ic_wait_face) {
@@ -263,7 +274,7 @@
                     if (currentFragment == mainActivity().fragment_su_logged_ic_compare_success) {
                         isFromAdminRegister = true;
                         mainActivity().showFragment(mainActivity().fragment_su_logged_ic_wait_face);
-                        ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText();
+                        mainActivity().fragment_face_detail.clearInPutText();
                         return;
                     }
                     if (currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) {
@@ -280,15 +291,15 @@
                     if (mainActivity().currentFragment != mainActivity().fragment_person_manage) {
                         if (mainActivity().currentFragment != mainActivity().fragment_su_logged_nic_wait_face
                                 || mainActivity().currentFragment != mainActivity().fragment_su_logged_nic_wait_detail) {
-                            ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(null);
-                            ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setIdentityWithPerson(null);
-                            ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setDevice("0");
+                            mainActivity().fragment_face_detail.setPerson(null);
+                            mainActivity().fragment_person_identity.setIdentityWithPerson(null);
+                            mainActivity().fragment_person_identity.setDevice("0");
                         } else {
                             personChanged(null);
                         }
                     } else {
-                        if ("鏈敞鍐�".equals(((FaceListFragment) mainActivity().fragment_face_list).isRegister)) {
-                            ((FaceListFragment) mainActivity().fragment_face_list).findNextPosition(selectedPersonDocument);
+                        if ("鏈敞鍐�".equals(mainActivity().fragment_face_list.isRegister)) {
+                            mainActivity().fragment_face_list.findNextPosition(selectedPersonDocument);
                         } else {
                             personChanged(PersonManager.findPersonById(selectedPersonDocument.getId()), false);
                         }
@@ -363,7 +374,7 @@
                         selectedPersonDocument.setString("checked_time_rule_id", BaseSettingManager.getDefaultRegisterTimeId());
                     }
                     if (currentFragment == mainActivity().fragment_su_auto_ic_compare_success) {
-                        String phone = ((SuAutoIcCompareSuccessFragment) mainActivity().fragment_su_auto_ic_compare_success).phone_number.getText().toString().trim();
+                        String phone = mainActivity().fragment_su_auto_ic_compare_success.phone_number.getText().toString().trim();
                         if (!TextUtils.isEmpty(phone) && !PhoneNumberCheckUtils.isPhone(phone)) {
                             allowPhone = false;
                         } else {
@@ -371,7 +382,7 @@
                         }
                     } else if (currentFragment == mainActivity().fragment_su_auto_wait_face) {
                     } else if (currentFragment == mainActivity().fragment_su_auto_nic_wait_detail) {
-                        SuAutoNicWaitDetailFragment fragment_su_auto_nic_wait_detail = (SuAutoNicWaitDetailFragment) mainActivity().fragment_su_auto_nic_wait_detail;
+                        SuAutoNicWaitDetailFragment fragment_su_auto_nic_wait_detail = mainActivity().fragment_su_auto_nic_wait_detail;
 
                         String phone = fragment_su_auto_nic_wait_detail.phone_number.getText().toString();
                         String idCardNumber = fragment_su_auto_nic_wait_detail.id_card.getText().toString();
@@ -396,7 +407,7 @@
                     }
                 }
                 if (AccountManager.adminLoggedIn()) {
-                    FaceDetailFragment faceDetailFragment = (FaceDetailFragment) mainActivity().fragment_face_detail;
+                    FaceDetailFragment faceDetailFragment = mainActivity().fragment_face_detail;
                     String phone = faceDetailFragment.getInPutPhoneNumber();
                     String idCardNumber = faceDetailFragment.getInPutIdCardNumber();
                     selectedPersonDocument.setString("sign_up_rule", faceDetailFragment.getSignUpRule());
@@ -499,15 +510,16 @@
                 return false;
             }
         }
-        new SavePersonHelper().execute();
+        return new SavePersonHelper().execute();
     }
 
     @UiThread
-    public void doInUIThread(ModelAdapter selectedPersonDocument) {
+    public void afterSavePerson(ModelAdapter selectedPersonDocument) {
         // 瑙e喅褰撲慨鏀硅繃浜哄憳淇℃伅鍚庡啀鐐瑰嚮淇濆瓨娓呯┖鏁版嵁
         try {
             if (selectedPersonDocument != null) {
-                ((FaceDetailFragment) mainActivity().fragment_face_detail).setText(selectedPersonDocument.getId());
+                mainActivity().fragment_face_detail.setFaceDetailUI(selectedPersonDocument.getId());
+//                personChanged(selectedPersonDocument);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -536,7 +548,7 @@
 
                 if (mainActivity().currentFragment == mainActivity().fragment_person_manage) {
                     // 姝ゆ柟娉曞垹闄ゅ悗浼氶�変腑鍓嶄竴涓�,濡傛灉鏄涓�涓細閫変腑鍚庝竴涓�
-                    ((FaceListFragment) mainActivity().fragment_face_list).findNextPosition(selectedPersonDocument);
+                    mainActivity().fragment_face_list.findNextPosition(selectedPersonDocument);
                 }
                 if (mainActivity().currentFragment == mainActivity().fragment_su_logged_nic_wait_detail
                         || mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success
@@ -546,7 +558,7 @@
                     } else {
                         mainActivity().showFragment(mainActivity().fragment_su_logged_nic_wait_face);
                     }
-                    ((PersonManageFragment) mainActivity().fragment_person_manage).personChanged(null, false);
+                    mainActivity().fragment_person_manage.personChanged(null, false);
                 }
                 confirmDialog.dismiss();
             }
@@ -561,12 +573,12 @@
 
     //鍙栨秷
     public void giveUpSave() {
-        ((MenuFragment) mainActivity().fragment_menu).person_add();
+        mainActivity().fragment_menu.person_add();
     }
 
 
     public void personChanged(ModelAdapter personDocument) {
-        ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText();
+        mainActivity().fragment_face_detail.clearInPutText();
         personChanged(personDocument, true);
     }
 
@@ -580,11 +592,11 @@
         showHotPoint(personDocument);
         if (personDocument == null) {
             if (reloadFaceList) {
-                ((FaceListFragment) mainActivity().fragment_face_list).findPersonList(null, null);
+                mainActivity().fragment_face_list.findPersonList(null, null);
             }
         } else {
             if (selectPerson) {
-                ((FaceListFragment) mainActivity().fragment_face_list).findPersonList(personDocument.getString("sign_up_status"),
+                mainActivity().fragment_face_list.findPersonList(personDocument.getString("sign_up_status"),
                         new HashMap<>(), personDocument);
             }
             all_device = personDocument.getString("all_device");
@@ -592,41 +604,41 @@
         }
         selectedPersonDocument = personDocument;
 
-        ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(personDocument);
-        ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setIdentityWithPerson(personDocument != null ? personDocument.getId() : null);
-        ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setDevice(all_device);
+        mainActivity().fragment_face_detail.setPerson(personDocument);
+        mainActivity().fragment_person_identity.setIdentityWithPerson(personDocument != null ? personDocument.getId() : null);
+        mainActivity().fragment_person_identity.setDevice(all_device);
     }
 
     private void showHotPoint(ModelAdapter personDocument) {
         if (personDocument == null || "绯荤粺鍒濆鍖栧垎閰�".equals(personDocument.getString("sign_up_method"))) {
-            ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(false);
-            ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false);
-            ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false);
+            mainActivity().fragment_face_detail.needPhone(false);
+            mainActivity().fragment_face_detail.needName(false);
+            mainActivity().fragment_face_detail.needIdNumber(false);
         } else {  // 鏍规嵁褰撳墠鐨勬敞鍐屾柟寮忓喅瀹氭槸鍚︽樉绀哄墠闈㈢殑绾㈢偣,缁熶竴瀵煎叆鐨勬殏涓嶅鐞�
             if ("绠$悊鍛樻敞鍐�".equals(personDocument.getString("sign_up_method"))) {
                 if ("宸茬粡楠岃瘉韬唤璇�".equals(personDocument.getString("verify_status"))
                         || "鏈獙璇佽韩浠借瘉".equals(personDocument.getString("verify_status"))) {
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.adminIDCardSignUpModeNeedPhone());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false);
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false);
+                    mainActivity().fragment_face_detail.needPhone(BaseSettingManager.adminIDCardSignUpModeNeedPhone());
+                    mainActivity().fragment_face_detail.needName(false);
+                    mainActivity().fragment_face_detail.needIdNumber(false);
                 }
                 if ("涓嶉渶瑕侀獙璇佽韩浠借瘉".equals(personDocument.getString("verify_status"))) {
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(BaseSettingManager.adminNormalSignUpModeNeedName());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(BaseSettingManager.adminNormalSignUpModeNeedIDNumber());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.adminNormalSignUpModeNeedPhone());
+                    mainActivity().fragment_face_detail.needName(BaseSettingManager.adminNormalSignUpModeNeedName());
+                    mainActivity().fragment_face_detail.needIdNumber(BaseSettingManager.adminNormalSignUpModeNeedIDNumber());
+                    mainActivity().fragment_face_detail.needPhone(BaseSettingManager.adminNormalSignUpModeNeedPhone());
                 }
             }
             if ("鑷姪娉ㄥ唽".equals(personDocument.getString("sign_up_method"))) {
                 if ("宸茬粡楠岃瘉韬唤璇�".equals(personDocument.getString("verify_status"))
                         || "鏈獙璇佽韩浠借瘉".equals(personDocument.getString("verify_status"))) {
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.isAutoSignUpIDCardModeNeedPhone());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false);
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false);
+                    mainActivity().fragment_face_detail.needPhone(BaseSettingManager.isAutoSignUpIDCardModeNeedPhone());
+                    mainActivity().fragment_face_detail.needName(false);
+                    mainActivity().fragment_face_detail.needIdNumber(false);
                 }
                 if ("涓嶉渶瑕侀獙璇佽韩浠借瘉".equals(personDocument.getString("verify_status"))) {
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(BaseSettingManager.isAutoSignUpNotIDCardModeNeedName());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber());
-                    ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone());
+                    mainActivity().fragment_face_detail.needName(BaseSettingManager.isAutoSignUpNotIDCardModeNeedName());
+                    mainActivity().fragment_face_detail.needIdNumber(BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber());
+                    mainActivity().fragment_face_detail.needPhone(BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone());
                 }
             }
         }

--
Gitblit v1.8.0