package com.basic.security.fragment;
|
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Color;
|
import android.text.TextUtils;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.widget.AdapterView;
|
import android.widget.ArrayAdapter;
|
import android.widget.EditText;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.Spinner;
|
import android.widget.TextView;
|
|
import com.basic.security.R;
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.manager.BaseSettingManager;
|
import com.basic.security.manager.PersonManager;
|
import com.basic.security.manager.impl.cblite.VisitManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.utils.DateUtil;
|
import com.basic.security.utils.ToastUtil;
|
|
import org.androidannotations.annotations.Click;
|
import org.androidannotations.annotations.EFragment;
|
import org.androidannotations.annotations.UiThread;
|
import org.androidannotations.annotations.ViewById;
|
|
import java.text.SimpleDateFormat;
|
|
|
@EFragment(R.layout.fragment_face_detail)
|
public class FaceDetailFragment extends BaseFragment {
|
|
public boolean initSpinner = true;
|
@ViewById
|
TextView name, phone, idcard_number, register_time, register_type, last_visit_time;
|
@ViewById
|
EditText name_input, phone_input, idcard_number_input;
|
@ViewById
|
ImageView face, face_detail_name_need, face_detail_phone_need, face_detail_id_need,
|
show_name_in_put, show_phone_in_put, show_id_in_put;
|
@ViewById
|
LinearLayout ll_id_card, ll_face_detail;
|
@ViewById
|
Spinner spinner_register_model;
|
// 通行方式
|
String[] arr = {"允许通行"
|
// , "有效时间内通行", "确认通行", "拒绝通行"
|
};
|
private String verify_status = "";
|
private ModelAdapter personDocument = null;
|
private boolean showNameInPut = false;
|
private boolean showPhoneInPut = false;
|
private boolean showIdCardInPut = false;
|
// 点击头像在获取的头像与身份证上的头像转换
|
private int photoClickTimes = 0;
|
private float downX = 0;
|
private float moveX = 51;
|
private boolean checkedTimeRuleChanged = false;
|
private boolean isRegister = false;
|
|
@Click
|
void show_name_in_put() {
|
if (personDocument != null) {
|
showNameInPut = true;
|
name_input.setVisibility(View.VISIBLE);
|
name.setVisibility(View.GONE);
|
name_input.setText(personDocument.getString("name") == null ? "" : personDocument.getString("name"));
|
}
|
}
|
|
@Click
|
void show_phone_in_put() {
|
if (personDocument != null) {
|
showPhoneInPut = true;
|
phone_input.setVisibility(View.VISIBLE);
|
phone.setVisibility(View.GONE);
|
phone_input.setText(personDocument.getString("phone") == null ? "" : personDocument.getString("phone"));
|
}
|
}
|
|
@Click
|
void show_id_in_put() {
|
if (personDocument != null) {
|
showIdCardInPut = true;
|
idcard_number_input.setVisibility(View.VISIBLE);
|
idcard_number.setVisibility(View.GONE);
|
idcard_number_input.setText(personDocument.getString("id_card_number") == null ? "" : personDocument.getString("id_card_number"));
|
}
|
}
|
|
@Click
|
void face() {
|
face.setOnTouchListener(new View.OnTouchListener() {
|
@Override
|
public boolean onTouch(View v, MotionEvent event) {
|
switch (event.getAction()) {
|
case MotionEvent.ACTION_DOWN:
|
downX = event.getX();
|
break;
|
case MotionEvent.ACTION_MOVE:
|
moveX = event.getX() - downX;
|
break;
|
case MotionEvent.ACTION_UP:
|
|
break;
|
}
|
return false;
|
}
|
});
|
|
if (!TextUtils.isEmpty(verify_status) && (TextUtils.equals(verify_status, "已经验证身份证")
|
|| TextUtils.equals(verify_status, "未验证身份证")) && Math.abs(moveX) > 50) {
|
moveX = 0;
|
photoClickTimes++;
|
byte[] blob;
|
try {
|
if (photoClickTimes % 2 == 0) {
|
blob = personDocument.getBlob("camera_image_path");
|
} else {
|
blob = personDocument.getBlob("id_card_image_path");
|
}
|
if (blob != null) {
|
// byte[] data = blob;
|
if (blob.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
|
face.setImageBitmap(bitmap);
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
public void setPerson(ModelAdapter personDocument) {
|
this.personDocument = personDocument;
|
show_name_in_put.setVisibility(View.GONE);
|
show_phone_in_put.setVisibility(View.GONE);
|
show_id_in_put.setVisibility(View.GONE);
|
idcard_number.setTextColor(Color.parseColor("#FFFFFFFF"));
|
clearInPutText();
|
photoClickTimes = 0;
|
initSpinner(personDocument);
|
if (personDocument == null) { // 没有人员时
|
face.setVisibility(View.GONE);
|
name.setText("");
|
phone.setText("");
|
|
idcard_number.setText("");
|
register_time.setText("");
|
register_type.setText("");
|
last_visit_time.setText("");
|
last_visit_time.setText("暂无");
|
phone_input.setVisibility(View.GONE);
|
phone.setVisibility(View.GONE);
|
name_input.setVisibility(View.GONE);
|
name.setVisibility(View.GONE);
|
idcard_number_input.setVisibility(View.GONE);
|
idcard_number.setVisibility(View.GONE);
|
if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success ||
|
mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_face ||
|
mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard ||
|
mainActivity().currentFragment == mainActivity().fragment_su_logged_nic_wait_detail ||
|
mainActivity().currentFragment == mainActivity().fragment_su_logged_nic_wait_face ||
|
mainActivity().currentFragment == mainActivity().fragment_person_manage ||
|
mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) {
|
if (BaseSettingManager.isAutoSignUpMode()) {
|
String signUpRule = BaseSettingManager.getDefaultRegisterRule();
|
if (!TextUtils.isEmpty(signUpRule)) {
|
for (int i = 0; i < arr.length; i++) {
|
String item = arr[i];
|
if (item.equals(signUpRule)) {
|
spinner_register_model.setSelection(i);
|
break;
|
}
|
}
|
}
|
}
|
|
}
|
|
// 默认textview,edittext隐藏
|
} else if ("1".equals(personDocument.getString("auto_init"))) {
|
face.setVisibility(View.VISIBLE);
|
name_input.setVisibility(View.GONE);
|
name.setVisibility(View.VISIBLE);
|
phone_input.setVisibility(View.GONE);
|
phone.setVisibility(View.VISIBLE);
|
ll_id_card.setVisibility(View.VISIBLE);
|
idcard_number_input.setVisibility(View.GONE);
|
name.setText(personDocument.getString("name"));
|
phone.setText(personDocument.getString("phone"));
|
idcard_number.setText(personDocument.getString("id_card_number"));
|
byte[] blob = personDocument.getBlob("camera_image_path");
|
if (blob != null) {
|
byte[] data = blob;
|
if (data.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
|
face.setImageBitmap(bitmap);
|
}
|
} else {
|
face.setImageResource(R.drawable.u1280);
|
}
|
register_type.setText(personDocument.getString("sign_up_method"));
|
String lastTime = VisitManager.getLastVisitTime(personDocument.getId());
|
if (TextUtils.isEmpty(lastTime)) {
|
last_visit_time.setText("暂无");
|
} else {
|
last_visit_time.setText(DateUtil.formatTime(Long.parseLong(lastTime), "yyyy-MM-dd HH:mm:ss"));
|
}
|
|
} else {
|
// ======================姓名 手机号 身份证号 开始=============================
|
verify_status = personDocument.getString("verify_status");
|
name_input.setVisibility(View.GONE);
|
name.setVisibility(View.VISIBLE);
|
phone_input.setVisibility(View.GONE);
|
phone.setVisibility(View.VISIBLE);
|
idcard_number_input.setVisibility(View.GONE);
|
idcard_number.setVisibility(View.VISIBLE);
|
ll_id_card.setVisibility(View.VISIBLE);
|
name.setText(personDocument.getString("name") == null ? "" : personDocument.getString("name"));
|
phone.setText(personDocument.getString("phone") == null ? "" : personDocument.getString("phone"));
|
idcard_number.setText(personDocument.getString("id_card_number") == null ? "" : personDocument.getString("id_card_number"));
|
// 已经验证身份证或者未验证身份证, 手机号:edittext
|
if (!TextUtils.isEmpty(verify_status) && ((TextUtils.equals(verify_status, "已经验证身份证")
|
|| TextUtils.equals(verify_status, "未验证身份证")))) {
|
showTextOrEditText(verify_status);
|
if (TextUtils.equals(verify_status, "未验证身份证")) {
|
// 注释解决如果未注册中第一个人为身份证验证--未注册,从其他页面跳转过来不显示请在刷卡区验证身份证
|
// if (mainActivity().currentFragment == mainActivity().fragment_person_manage
|
// || mainActivity().currentFragment == mainActivity().fragment_admin_face_login
|
// || mainActivity().currentFragment == mainActivity().fragment_admin_password_login) {
|
|
idcard_number.setText("请在刷卡区验证身份证");
|
idcard_number.setTextColor(Color.parseColor("#4BA6AD"));
|
// }
|
}
|
}
|
// 不需要验证身份证 (姓名 身份证号(可选) 手机号:edittext)
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
showTextOrEditText(verify_status);
|
}
|
// ======================姓名 手机号 身份证号 结束=============================
|
face.setVisibility(View.VISIBLE);
|
byte[] blob = personDocument.getBlob("camera_image_path");
|
if (blob != null) {
|
try {
|
byte[] data = blob;
|
if (data.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
|
face.setImageBitmap(bitmap);
|
// 防止有大图OOM,采用软引用,写了一个工具类,暂时没用=======>
|
// face.setImageBitmap(BitmapUtil.byteToBitmap(data));
|
//<========
|
}
|
|
} catch (Exception e) {
|
face.setImageResource(R.drawable.u1280);
|
e.printStackTrace();
|
}
|
} else {
|
face.setImageResource(R.drawable.u1280);
|
}
|
|
try {
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Long sign_up_time = Long.parseLong(personDocument.getString("sign_up_time"));
|
if (sign_up_time != null) {
|
register_time.setText(format.format(sign_up_time));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
String type = personDocument.getString("sign_up_method");
|
if ("自助注册".equals(type)) {
|
if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) {
|
type = type + "-普通验证";
|
} else {
|
type = type + "-身份证验证";
|
}
|
} else if ("管理员注册".equals(type)) {
|
if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) {
|
type = "人工注册-普通验证";
|
} else {
|
type = "人工注册-身份证验证";
|
}
|
}
|
register_type.setText(type);
|
String lastTime = VisitManager.getLastVisitTime(personDocument.getId());
|
if (TextUtils.isEmpty(lastTime)) {
|
last_visit_time.setText("暂无");
|
} else {
|
last_visit_time.setText(DateUtil.formatTime(Long.parseLong(lastTime), "yyyy-MM-dd HH:mm:ss"));
|
}
|
}
|
|
}
|
|
private void initSpinner(ModelAdapter personDocument) {
|
initSpinner = true;
|
spinner_register_model.setEnabled(false);
|
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), R.layout.spinner_item, arr);
|
spinner_register_model.setPopupBackgroundResource(R.color.press_menu_text);
|
spinner_register_model.setAdapter(adapter);
|
spinner_register_model.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
@Override
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
if (position == 1 && !initSpinner) {
|
mainActivity().fragment_face_detail_time.checkPassTime(personDocument.getString("checked_time_rule_id"));
|
checkedTimeRuleChanged = true;
|
}
|
initSpinner = false;
|
}
|
|
@Override
|
public void onNothingSelected(AdapterView<?> parent) {
|
|
}
|
});
|
if (personDocument != null) {
|
String signUpRule = personDocument.getString("sign_up_rule");
|
if (!TextUtils.isEmpty(signUpRule)) {
|
for (int i = 0; i < arr.length; i++) {
|
String item = arr[i];
|
if (item.equals(signUpRule)) {
|
spinner_register_model.setSelection(i);
|
break;
|
}
|
}
|
}
|
}
|
}
|
|
// 根据新的需求,如果可以输入,为空时直接显示输入框
|
private void showTextOrEditText(String verify_status) {
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
if (TextUtils.isEmpty(personDocument.getString("name"))) {
|
showNameInPut = true;
|
name_input.setVisibility(View.VISIBLE);
|
name.setVisibility(View.GONE);
|
} else {
|
showNameInPut = false;
|
name_input.setVisibility(View.GONE);
|
name.setVisibility(View.VISIBLE);
|
name.setText(personDocument.getString("name"));
|
show_name_in_put.setVisibility(View.VISIBLE);
|
}
|
if (TextUtils.isEmpty(personDocument.getString("id_card_number"))) {
|
showIdCardInPut = true;
|
idcard_number_input.setVisibility(View.VISIBLE);
|
idcard_number.setVisibility(View.GONE);
|
} else {
|
showIdCardInPut = false;
|
idcard_number_input.setVisibility(View.GONE);
|
idcard_number.setVisibility(View.VISIBLE);
|
idcard_number.setText(personDocument.getString("id_card_number"));
|
show_id_in_put.setVisibility(View.VISIBLE);
|
}
|
}
|
if (TextUtils.isEmpty(personDocument.getString("phone"))) {
|
showPhoneInPut = true;
|
phone_input.setVisibility(View.VISIBLE);
|
phone.setVisibility(View.GONE);
|
} else {
|
phone_input.setVisibility(View.GONE);
|
showPhoneInPut = false;
|
phone.setVisibility(View.VISIBLE);
|
phone.setText(personDocument.getString("phone"));
|
show_phone_in_put.setVisibility(View.VISIBLE);
|
}
|
|
}
|
|
// 初始化显示框
|
public void clearInPutText() {
|
name_input.setText("");
|
phone_input.setText("");
|
idcard_number_input.setText("");
|
showNameInPut = false;
|
showPhoneInPut = false;
|
showIdCardInPut = false;
|
}
|
|
@UiThread
|
public void setIDCardData() {
|
if (idCard != null) {
|
name.setVisibility(View.VISIBLE);
|
idcard_number.setVisibility(View.VISIBLE);
|
name.setText(idCard.name);
|
idcard_number.setText(idCard.cardNumber);
|
}
|
}
|
|
public boolean detailMessageIsComplete() {
|
|
ModelAdapter personDocument = mainActivity().fragment_person_manage.selectedPersonDocument;
|
if (personDocument != null) {
|
String name = personDocument.getString("name");
|
String id_card_number = personDocument.getString("id_card_number");
|
String phone_number = personDocument.getString("phone");
|
String sign_up_method = personDocument.getString("sign_up_method");
|
if ("已注册".equals(personDocument.getString("sign_up_status"))) {
|
isRegister = true;
|
} else {
|
isRegister = false;
|
}
|
|
if ("自助注册".equals(sign_up_method)) {
|
if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) {
|
if (BaseSettingManager.isAutoSignUpNotIDCardModeNeedName()) {
|
if (TextUtils.isEmpty(name)) {
|
if (isRegister) {
|
ToastUtil.show("姓名不能为空");
|
}
|
return false;
|
}
|
}
|
if (BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber()) {
|
if (TextUtils.isEmpty(id_card_number)) {
|
if (isRegister) {
|
ToastUtil.show("身份证号不能为空");
|
}
|
return false;
|
}
|
}
|
if (BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone()) {
|
if (TextUtils.isEmpty(phone_number)) {
|
ToastUtil.show("手机号不能为空");
|
return false;
|
}
|
}
|
} else {
|
if (BaseSettingManager.isAutoSignUpIDCardModeNeedPhone()) {
|
if (TextUtils.isEmpty(phone_number)) {
|
if (isRegister) {
|
ToastUtil.show("手机号不能为空");
|
}
|
return false;
|
}
|
}
|
}
|
|
}
|
if ("管理员注册".equals(sign_up_method)) {
|
if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) {
|
if (BaseSettingManager.adminNormalSignUpModeNeedName()) {
|
if (TextUtils.isEmpty(name)) {
|
if (isRegister) {
|
ToastUtil.show("姓名不能为空");
|
}
|
return false;
|
}
|
}
|
if (BaseSettingManager.adminNormalSignUpModeNeedIDNumber()) {
|
if (TextUtils.isEmpty(id_card_number)) {
|
if (isRegister) {
|
ToastUtil.show("身份证号不能为空");
|
}
|
return false;
|
}
|
}
|
if (BaseSettingManager.adminNormalSignUpModeNeedPhone()) {
|
if (TextUtils.isEmpty(phone_number)) {
|
if (isRegister) {
|
ToastUtil.show("手机号不能为空");
|
}
|
return false;
|
}
|
}
|
} else {
|
if (BaseSettingManager.adminIDCardSignUpModeNeedPhone()) {
|
if (TextUtils.isEmpty(phone_number)) {
|
if (isRegister) {
|
ToastUtil.show("手机号不能为空");
|
}
|
return false;
|
}
|
}
|
if (BaseSettingManager.isAdminAuthSignUpModeNeedIdCard()) {
|
if (TextUtils.isEmpty(id_card_number)) {
|
if (isRegister) {
|
ToastUtil.show("身份证号不能为空");
|
}
|
return false;
|
}
|
}
|
}
|
}
|
}
|
|
return true;
|
}
|
|
public String getInPutName() {
|
ModelAdapter personDocument = mainActivity().fragment_person_manage.selectedPersonDocument;
|
if ("1".equals(personDocument.getString("auto_init"))) {
|
return "系统管理员";
|
}
|
if (!TextUtils.isEmpty(verify_status) && (TextUtils.equals(verify_status, "已经验证身份证")
|
|| TextUtils.equals(verify_status, "未验证身份证"))) {
|
if (mainActivity().fragment_person_manage.needIdCardInfo()) {
|
return name.getText().toString().trim();
|
}
|
return personDocument.getString("name");
|
}
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
if (showNameInPut) {
|
return name_input.getText().toString().trim();
|
}
|
return name.getText().toString().trim();
|
|
}
|
|
return null;
|
}
|
|
public String getInPutIdCardNumber() {
|
ModelAdapter personDocument = mainActivity().fragment_person_manage.selectedPersonDocument;
|
if (!TextUtils.isEmpty(verify_status) && (TextUtils.equals(verify_status, "已经验证身份证") || TextUtils.equals(verify_status, "未验证身份证"))) {
|
if (mainActivity().fragment_person_manage.needIdCardInfo()) {
|
return idcard_number.getText().toString().trim();
|
}
|
return personDocument.getString("id_card_number");
|
}
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
if (showIdCardInPut) {
|
return idcard_number_input.getText().toString().trim();
|
}
|
return idcard_number.getText().toString().trim();
|
}
|
return null;
|
|
}
|
|
public String getInPutPhoneNumber() {
|
if (showPhoneInPut) {
|
return phone_input.getText().toString().trim();
|
} else {
|
return phone.getText().toString().trim();
|
}
|
}
|
|
// name是否必填
|
public void needName(boolean isNeed) {
|
if (isNeed) {
|
face_detail_name_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_name_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
// phone是否必填
|
public void needPhone(boolean isNeed) {
|
if (isNeed) {
|
face_detail_phone_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_phone_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
// IdNumber是否必填
|
public void needIdNumber(boolean isNeed) {
|
if (isNeed) {
|
face_detail_id_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_id_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
public void setFaceDetailUI(String personId) {
|
try {
|
ModelAdapter selectedPersonDocument = PersonManager.findPersonById(personId);
|
if (showNameInPut) {
|
name_input.setText(selectedPersonDocument.getString("name"));
|
} else {
|
name.setText(selectedPersonDocument.getString("name"));
|
}
|
if (showIdCardInPut) {
|
idcard_number_input.setText(selectedPersonDocument.getString("id_card_number"));
|
} else {
|
idcard_number.setText(selectedPersonDocument.getString("id_card_number"));
|
}
|
if (showPhoneInPut) {
|
phone_input.setText(selectedPersonDocument.getString("phone"));
|
} else {
|
phone.setText(selectedPersonDocument.getString("phone"));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public String getSignUpRule() {
|
return arr[spinner_register_model.getSelectedItemPosition()];
|
}
|
|
public String getCheckedTimeRuleId() {
|
if (arr[1].equals(arr[spinner_register_model.getSelectedItemPosition()]) && checkedTimeRuleChanged) {
|
return FaceDetailTimeFragment.checkedTimeRuleId;
|
} else {
|
return personDocument.getString("sign_up_rule");
|
}
|
}
|
|
}
|