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<String> 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();
|
}
|
}
|