package com.basic.security.manager.helper.rm.base; import android.os.SystemClock; import com.basic.security.base.BaseFragment; import com.basic.security.fragment.FaceDetailFragment; import com.basic.security.fragment.PersonIdentityFragment; import com.basic.security.fragment.PersonManageFragment; 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.PersonManager; import com.basic.security.utils.FaceId; import com.basic.security.utils.IdCard; import com.basic.security.utils.ToastUtil; import com.couchbase.lite.Blob; import com.basic.security.model.ModelAdapter; import java.util.Map; public class CurrentBaseIdCard extends CurrentBasePersonList { public boolean needCompareIdCard() { return false; } public void compareCameraFaceAndIdCardFace() { if (needCompareIdCard()) { IdCard idcard = BaseFragment.idCard; if (idcard == null || idcard.featureData == null) { return; } byte[] camera_image_feature = null; if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard || activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard) { camera_image_feature = BaseFragment.getFaceFeature(); } if (activity.currentFragment == activity.fragment_person_manage ) { byte[] camera_image_feature_blob = ((PersonManageFragment) activity.fragment_person_manage).selectedPersonDocument.getBlob("camera_image_feature"); if (camera_image_feature_blob != null) { camera_image_feature = camera_image_feature_blob; } } if (camera_image_feature == null) { return; } double score = FaceId.instance.compareFeature(idcard.featureData, camera_image_feature); if (score > 50) { ToastUtil.show(HintSignUpManager.getVerificationSuccessHint()); if (AccountManager.adminLoggedIn()) { ((FaceDetailFragment) activity.fragment_face_detail).setIDCardData(); ((PersonManageFragment) activity.fragment_person_manage).savePerson(); if (activity.currentFragment == activity.fragment_person_manage) { PersonManageFragment personManageFragment = ((PersonManageFragment) activity.fragment_person_manage); Map checkedRuleMapByPerson = ((PersonIdentityFragment) activity.fragment_person_identity).checkedIdentityMapByPerson; personManageFragment.personChanged(PersonManager.findPersonById(personManageFragment.savedPersonId), true, true); activity.currentFragmentShowTime = System.currentTimeMillis(); SystemClock.sleep(300); activity.currentFragmentShowTime = System.currentTimeMillis(); ((PersonIdentityFragment) activity.fragment_person_identity).checkedIdentityMapByPerson = checkedRuleMapByPerson; ((PersonIdentityFragment) activity.fragment_person_identity).notifyDataSetChanged(); } } if (!AccountManager.adminLoggedIn()) { if (activity.currentFragment == activity.fragment_su_auto_ic_wait_idcard) { SystemClock.sleep(1000); if (BaseSettingManager.isAutoSignUpIDCardModeNeedPhone()) { showFragment(activity.fragment_su_auto_ic_compare_success, false); } else { saveFullPersonAndShowFragment(activity.fragment_sign_up_success); } } } } else { ToastUtil.show(HintSignUpManager.getVerificationFail()); BaseFragment.idCard = null;// 身份证验证失败后清空IDcard数据 if (activity.currentFragment == activity.fragment_su_logged_ic_wait_idcard) { showFragment(activity.fragment_su_logged_ic_wait_face); } } } } }