package com.basic.security.base; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v4.app.Fragment; import com.basic.security.activity.MainActivity; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.DetectedResult; import com.basic.security.utils.FacePosition; import com.basic.security.utils.IdCard; import java.util.ArrayList; import java.util.List; 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 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 void setOnlyOneFaceTitle(String faceTitle) { faceTitleList.clear(); faceTitleList.add(faceTitle); } public static byte[] getFacePositionJpgData() { // System.out.print("getFacePositionJpgData .selectedFacePositionIndex = " + selectedFacePositionIndex + " \r\n"); 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) { Bitmap bitmap = BitmapFactory.decodeByteArray(facePositionJpgData, 0, facePositionJpgData.length); return bitmap; } } 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; } // System.out.println("saveBlob=" + ((System.currentTimeMillis() - detectedResultTime) / 1000.0)); // Blob blob = new Blob("image/jpeg", data); document.setBlob(key, data); return true; } catch (Exception e) { e.printStackTrace(); } return false; } public void show() { isShow = true; // System.out.println("BaseFragment.show " + this +" "+ TimeCostUtil.getCost()); } public void hide() { isShow = false; // System.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 = (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(); } }