package com.basic.security.base; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v4.app.Fragment; import android.view.View; import com.basic.security.activity.MainActivity; import com.basic.security.manager.FeatureManager; import com.basic.security.manager.PersonManager; import com.basic.security.model.ModelAdapter; import com.basic.security.model.Person; import com.basic.security.utils.DetectedResult; import com.basic.security.utils.FacePosition; import com.basic.security.utils.IdCard; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EFragment; import java.util.ArrayList; import java.util.List; @EFragment public abstract class BaseFragment extends Fragment { public static final int MIN_CLICK_DELAY_TIME = 1500; // 点击按钮的最短间隔时间 public static DetectedResult detectedResult; public static int selectedFacePositionIndex = 0; public static IdCard idCard; public static long idCardReadTime = 0; public static List faceTitleList = new ArrayList<>(); public static long detectedResultTime; public static MainActivity mainActivity; public static boolean changed = false; public boolean isShow = true; public static String getFaceTitle() { String faceTitle = ""; try { if (faceTitleList != null && faceTitleList.size() > 0) { faceTitle = faceTitleList.get(0); if (faceTitle == null) { faceTitle = ""; } } } catch (Exception e) { e.printStackTrace(); } return faceTitle; } public static byte[] getFacePositionJpgData() { if (selectedFacePositionIndex == -1) { selectedFacePositionIndex = 0; } return getFacePositionJpgData(selectedFacePositionIndex); } public static byte[] getFacePositionJpgData(int i) { try { if (detectedResult != null && detectedResult.facePositions != null && detectedResult.facePositions.size() > 0) { return detectedResult.facePositions.get(i).faceJpgData(); } } catch (Exception e) { e.printStackTrace(); } return null; } public static Bitmap getFacePositionBitmap() { if (selectedFacePositionIndex == -1) { selectedFacePositionIndex = 0; } return getFacePositionBitmap(selectedFacePositionIndex); } public static Bitmap getFacePositionBitmap(int i) { try { byte[] facePositionJpgData = getFacePositionJpgData(i); if (facePositionJpgData != null) { return BitmapFactory.decodeByteArray(facePositionJpgData, 0, facePositionJpgData.length); } } catch (Exception e) { e.printStackTrace(); } return null; } public static Bitmap getFacePositionBitmap(FacePosition facePosition) { try { if (facePosition != null && facePosition.faceJpgData() != null) { return BitmapFactory.decodeByteArray(facePosition.faceJpgData(), 0, facePosition.faceJpgData().length); } } catch (Exception e) { e.printStackTrace(); } return null; } public static byte[] getFaceFeature() { if (selectedFacePositionIndex == -1) { selectedFacePositionIndex = 0; } return getFaceFeature(selectedFacePositionIndex); } public static byte[] getFaceFeature(int i) { try { if (detectedResult != null && detectedResult.facePositions != null && detectedResult.facePositions.size() > 0) { return detectedResult.facePositions.get(i).featureData; } } catch (Exception e) { e.printStackTrace(); } return null; } public static boolean saveBlob(ModelAdapter document, String key, byte[] data) { try { if (data == null) { return false; } document.setBlob(key, data); return true; } catch (Exception e) { e.printStackTrace(); } return false; } public void saveIdCard(ModelAdapter person) { if (idCard != null && person != null) { String sign_up_status = person.getString("sign_up_status"); person.setString("name", idCard.name); person.setString("id_card_number", idCard.cardNumber); person.setString("verify_status", "已经验证身份证"); saveBlob(person, "id_card_image_feature", idCard.featureData); saveBlob(person, "id_card_image_path", idCard.jpgData); if (!"已注册".equals(sign_up_status)) { boolean messageComplete = mainActivity().fragment_face_detail.detailMessageIsComplete(); System1.out.println("BaseFragment.saveIdCard messageComplete=" + messageComplete); if (messageComplete) { person.setString(Person.sign_up_status, "已注册"); byte[] featureData = person.getBlob(Person.camera_image_feature); if (featureData != null && featureData.length > 10) { FeatureManager.addFeature(person.getString(Person.id), featureData); } } } PersonManager.savePerson(person); } } public void show() { // System1.out.println("BaseFragment.show 0 "); isShow = true; View view = getView(); } @AfterViews public void afterViewsBaseFragment() { } public void hide() { isShow = false; // System1.out.println("BaseFragment.hide " + this +" "+ TimeCostUtil.getCost()); } public MainActivity mainActivity() { if (mainActivity != null) { return mainActivity; } try { BaseApplication application = BaseApplication.getApplication(); if (application != null) { Activity activityObj = application.activity; if (activityObj != null && activityObj instanceof MainActivity) { mainActivity = (MainActivity) activityObj; return mainActivity; } } } catch (Exception e) { e.printStackTrace(); } return null; } public void showFragment(BaseFragment fragment) { try { BaseApplication application = BaseApplication.getApplication(); if (application != null) { Activity activityObj = application.activity; if (activityObj != null && activityObj instanceof MainActivity) { MainActivity mainActivity = (MainActivity) activityObj; mainActivity.showFragment(fragment); } } } catch (Exception e) { e.printStackTrace(); } } public boolean isShowing() { return isAdded() && isVisible() && getUserVisibleHint(); } }