package com.basic.security.fragment;
|
|
import android.annotation.SuppressLint;
|
import android.content.Context;
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Color;
|
import android.os.Bundle;
|
import android.os.SystemClock;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.AdapterView;
|
import android.widget.ArrayAdapter;
|
import android.widget.BaseAdapter;
|
import android.widget.Button;
|
import android.widget.CheckBox;
|
import android.widget.EditText;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.ListView;
|
import android.widget.PopupWindow;
|
import android.widget.RadioButton;
|
import android.widget.ScrollView;
|
import android.widget.Spinner;
|
import android.widget.TextView;
|
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.manager.BaseSettingManager;
|
import com.basic.security.manager.DeviceManager;
|
import com.basic.security.manager.IdentityManager;
|
import com.basic.security.manager.OrgManager;
|
import com.basic.security.manager.PersonIdentityManager;
|
import com.basic.security.manager.PersonManager;
|
import com.basic.security.manager.VisitManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.Org;
|
import com.basic.security.model.Person;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.DateEditUtil1;
|
import com.basic.security.utils.DateEditUtilForValidTime;
|
import com.basic.security.utils.DateUtil;
|
import com.basic.security.utils.ResolutionAdaptation;
|
import com.basic.security.utils.ToastUtil;
|
import com.basic.security.widget.MyTextView;
|
import com.basic.security.widget.abslistview.CommonAdapter;
|
import com.basic.security.widget.abslistview.ViewHolder;
|
import com.basic.security.widget.hlistview.HListView;
|
|
import org.androidannotations.annotations.AfterViews;
|
import org.androidannotations.annotations.Click;
|
import org.androidannotations.annotations.EFragment;
|
import org.androidannotations.annotations.UiThread;
|
import org.androidannotations.annotations.ViewById;
|
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
@EFragment
|
public class FaceDetailFragment extends BaseFragment {
|
public static TreeAdapter treeAdapter = new TreeAdapter(true);
|
@ViewById
|
public MyTextView name;
|
@ViewById
|
public TextView phone, idcard_number, register_time, register_type, last_visit_time, org_id, student_id;
|
@ViewById
|
public EditText name_input, phone_input, idcard_number_input, student_id_input;
|
@ViewById
|
public 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, show_student_id_input;
|
@ViewById
|
public LinearLayout ll_id_card, ll_face_detail;
|
@ViewById
|
public Spinner spinner_sign_up_rule;
|
@ViewById
|
public ListView face_detail_org;
|
@ViewById
|
public View face_detail_org_parent;
|
@ViewById
|
public View org_id_parent;
|
@ViewById
|
public View org_id_row, student_id_row, sign_up_rule_field;
|
@ViewById
|
public ScrollView scrollView;
|
public String verify_status = "";
|
public ModelAdapter person = null;
|
public boolean showNameInPut = false;
|
public boolean showStudentInput = false;
|
public boolean showPhoneInPut = false;
|
public boolean showIdCardInPut = false;
|
// 点击头像在获取的头像与身份证上的头像转换
|
public int photoClickTimes = 0;
|
public float downX = 0;
|
public float moveX = 51;
|
// 通行方式
|
public String[] arr = {"允许通行", "有效时间内通行", "确认通行", "拒绝通行"};
|
public boolean initSpinner = true;
|
public boolean checkedTimeRuleChanged = false;
|
public boolean isRegister = false;
|
public ModelAdapter selectedOrg;
|
public String initOrgId;
|
@ViewById
|
public TextView guest_visit_valid_time;
|
@ViewById
|
public View guest_visit_valid_time_row;
|
@ViewById
|
public View guest_visit_status_row;
|
@ViewById
|
public Spinner guest_visit_status;
|
public String[] guestVisitStatusArray = {"访问中", "已离开"};
|
public String guestVisitStatus = guestVisitStatusArray[0];
|
@ViewById
|
public HListView identity_list;
|
@ViewById
|
public Button save, tempSave, deletePerson, giveUpSave;
|
@ViewById
|
public RadioButton clusterDevices, thisDevice;
|
@ViewById
|
public View next;
|
@ViewById
|
public ListView cluster_devices;
|
@ViewById
|
public View cluster_devices_parent;
|
public List<ModelAdapter> identityList = new ArrayList<>();
|
public Map<String, ModelAdapter> checkedIdentityMapByPerson = new HashMap<>();
|
public ModelAdapter checkedPerson = null;
|
public IdentityAdapter identityAdapter;
|
public ClusterDeviceAdapter clusterDeviceAdapter;
|
public Set<CheckBox> identityCheckBoxSet = new HashSet<>();
|
public long lastLoadIdentityListFromDB = 0;
|
long org_idLastTime = 0;
|
boolean orgLoaded = false;
|
PopupWindow orgPopupWindow;
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
|
private long exitTime;
|
private long validTime;
|
|
@Click
|
public void show_name_in_put() {
|
if (person != null) {
|
showNameInPut = true;
|
name_input.setVisibility(View.VISIBLE);
|
name.setVisibility(View.GONE);
|
name_input.setText(person.getString("name") == null ? "" : person.getString("name"));
|
}
|
}
|
|
@Click
|
public void show_phone_in_put() {
|
if (person != null) {
|
showPhoneInPut = true;
|
phone_input.setVisibility(View.VISIBLE);
|
phone.setVisibility(View.GONE);
|
phone_input.setText(person.getString("phone") == null ? "" : person.getString("phone"));
|
}
|
}
|
|
@Click
|
public void show_id_in_put() {
|
if (person != null) {
|
showIdCardInPut = true;
|
idcard_number_input.setVisibility(View.VISIBLE);
|
idcard_number.setVisibility(View.GONE);
|
idcard_number_input.setText(person.getString("id_card_number") == null ? "" : person.getString("id_card_number"));
|
}
|
}
|
|
@SuppressLint("ClickableViewAccessibility")
|
@Click
|
public void face() {
|
face.setOnTouchListener((v, 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 = person.getBlob("camera_image_path");
|
} else {
|
blob = person.getBlob("id_card_image_path");
|
}
|
if (blob != null) {
|
if (blob.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
|
face.setImageBitmap(bitmap);
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
public void loadIdentityListFromDB() {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
identityList.clear();
|
identityList.addAll(IdentityManager.findIdentityList());
|
SystemClock.sleep(100);
|
showIdentityList();
|
});
|
}
|
|
@UiThread
|
public void showIdentityList() {
|
identityAdapter.notifyDataSetChanged();
|
}
|
|
@Click
|
public void clusterDevices() {
|
if (clusterDevices.isChecked()) {
|
mainActivity().fragment_device_list_dialog.showDeviceListDialog();
|
}
|
}
|
|
public void loadClusterDeviceFromDb() {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
clusterDeviceAdapter.deviceList.clear();
|
clusterDeviceAdapter.deviceList.addAll(DeviceManager.findList("select * from device"));
|
showClusterDevices();
|
});
|
}
|
|
@UiThread
|
public void showClusterDevices() {
|
clusterDeviceAdapter.notifyDataSetChanged();
|
}
|
|
@Click
|
public void thisDevice() {
|
thisDevice.setChecked(true);
|
}
|
|
@UiThread
|
public void setIsTempSave(boolean isTempSave) {
|
if (save != null && tempSave != null) {
|
boolean alwaysShowSave = mainActivity().currentFragment == mainActivity().fragment_person_manage &&
|
"已注册".equals(mainActivity().fragment_face_list.isRegister());
|
if (isTempSave && !alwaysShowSave) {
|
save.setVisibility(View.GONE);
|
tempSave.setVisibility(View.VISIBLE);
|
} else {
|
tempSave.setVisibility(View.GONE);
|
save.setVisibility(View.VISIBLE);
|
}
|
}
|
}
|
|
@Click
|
public void save() {
|
mainActivity().fragment_person_manage.savePerson();
|
FaceListFragment.treeAdapter.clearUI();
|
}
|
|
@Click
|
public void tempSave() {
|
mainActivity().fragment_person_manage.savePerson();
|
}
|
|
@Click
|
public void deletePerson() {
|
mainActivity().fragment_person_manage.deletePerson();
|
FaceListFragment.treeAdapter.clearUI();
|
}
|
|
@Click
|
public void giveUpSave() {
|
mainActivity().fragment_person_manage.giveUpSave();
|
}
|
|
public void updateIdentityListUI(ModelAdapter person) {
|
checkedPerson = person;
|
if (checkedPerson == null) {
|
checkThisDevice();
|
checkedIdentityMapByPerson.clear();
|
} else {
|
setDevice(checkedPerson.getString("all_device"));
|
checkedIdentityMapByPerson.clear();
|
checkedIdentityMapByPerson.putAll(PersonIdentityManager.findIdentityMapByPersonId(person.getString(Person.id)));
|
}
|
showIdentityList();
|
}
|
|
public void updateIdentityListUI2(ModelAdapter person) {
|
checkedPerson = person;
|
if (checkedPerson == null) {
|
checkThisDevice();
|
checkedIdentityMapByPerson.clear();
|
} else {
|
setDevice(checkedPerson.getString("all_device"));
|
checkedIdentityMapByPerson.clear();
|
checkedIdentityMapByPerson.putAll(PersonIdentityManager.findIdentityMapByPersonId(person.getString(Person.id)));
|
}
|
showIdentityList();
|
}
|
|
public void updateIdentityListUI1(ModelAdapter person) {
|
checkedPerson = person;
|
if (checkedPerson == null) {
|
checkThisDevice();
|
} else {
|
setDevice(checkedPerson.getString("all_device"));
|
}
|
showIdentityList();
|
}
|
|
@UiThread
|
public void checkThisDevice() {
|
thisDevice.setChecked(true);
|
}
|
|
@UiThread
|
public void setDevice(String all_device) {// 1 所有设备 0 当前设备
|
if ("1".equals(all_device)) {
|
clusterDevices.setChecked(true);
|
} else {
|
thisDevice.setChecked(true);
|
}
|
}
|
|
/**
|
* 保存人员信息时,如果checkedIdentityMapByPerson为null时返回FALSE会影响其他逻辑
|
* 所以写了一个checkedIdentityMapByPerson.keySet().size()方法
|
*/
|
public boolean savePersonIdentity(String personId) {
|
List<String> nameList = new ArrayList<>();
|
for (ModelAdapter identityModelAdapter : checkedIdentityMapByPerson.values()) {
|
if (identityModelAdapter != null && !TextUtils.isEmpty(identityModelAdapter.getString("name"))) {
|
nameList.add(identityModelAdapter.getString("name"));
|
}
|
}
|
if (nameList.contains("黑名单") && nameList.contains("管理员")) {
|
ToastUtil.show("管理员和黑名单不能同时选中");
|
return false;
|
}
|
if (mainActivity().currentFragment == mainActivity().fragment_su_auto_ic_compare_success
|
|| mainActivity().currentFragment == mainActivity().fragment_su_auto_nic_wait_detail
|
|| mainActivity().currentFragment == mainActivity().fragment_sign_up_success
|
|| mainActivity().currentFragment == mainActivity().fragment_su_auto_ic_wait_idcard
|
|| mainActivity().currentFragment == mainActivity().fragment_su_auto_wait_face
|
) {
|
checkedIdentityMapByPerson.clear();
|
String id = BaseSettingManager.getDefaultIdentityId();
|
if (id != null) {
|
if (IdentityManager.findIdentityById(id) == null) {
|
ToastUtil.show("自助注册默认身份出错,请联系管理员");
|
} else {
|
checkedIdentityMapByPerson.put(id, IdentityManager.findIdentityById(id));
|
}
|
}
|
}
|
Map<String, ModelAdapter> dbCheckedIdentityMapByPerson = PersonIdentityManager.findIdentityMapByPersonId(personId);
|
for (String identityId : checkedIdentityMapByPerson.keySet()) {
|
if (!dbCheckedIdentityMapByPerson.containsKey(identityId)) {
|
PersonIdentityManager.save(personId, identityId);
|
if (IdentityManager.findIdentityById(identityId) != null &&
|
"管理员".equals(IdentityManager.findIdentityById(identityId).getString("name"))) {
|
PersonIdentityManager.saveAdminIdentity(personId);
|
}
|
}
|
}
|
for (String identityId : dbCheckedIdentityMapByPerson.keySet()) {
|
if (!checkedIdentityMapByPerson.containsKey(identityId)) {
|
PersonIdentityManager.delete(personId, identityId);
|
if (IdentityManager.findIdentityById(identityId) != null &&
|
"管理员".equals(IdentityManager.findIdentityById(identityId).getString("name"))) {
|
PersonIdentityManager.delAdminIdentity(personId);
|
}
|
}
|
}
|
return true;
|
}
|
|
public String aboutDevice() {
|
if (clusterDevices.isChecked()) {
|
return "1";
|
}
|
if (thisDevice.isChecked()) {
|
return "0";
|
}
|
return null;
|
}
|
|
public int getIdentitySize() {
|
return checkedIdentityMapByPerson.values().size();
|
}
|
|
@Click
|
public void next() {
|
int position = identity_list.getFirstVisiblePosition();
|
if (position + 2 > identityList.size()) {
|
position = identityList.size();
|
} else {
|
position += 2;
|
}
|
identity_list.setSelection(position);
|
}
|
|
public void notifyDataSetChanged() {
|
}
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
return inflater.inflate(ResolutionAdaptation.fragment_face_detail(), container, false);
|
}
|
|
public void show() {
|
super.show();
|
selectedOrg = null;
|
if (System.currentTimeMillis() - lastLoadIdentityListFromDB > 5 * 1000) {
|
lastLoadIdentityListFromDB = System.currentTimeMillis();
|
loadIdentityListFromDB();
|
}
|
if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_face) {
|
deletePerson.setVisibility(View.VISIBLE);
|
}
|
if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success) {
|
deletePerson.setVisibility(View.VISIBLE);
|
}
|
if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) {
|
deletePerson.setVisibility(View.VISIBLE);
|
}
|
}
|
|
@Click
|
public void guest_visit_valid_time() {
|
if (validTime == 0) {
|
validTime = System.currentTimeMillis();
|
}
|
try {
|
validTime = sdf.parse(guest_visit_valid_time.getText().toString()).getTime();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
;
|
DateEditUtilForValidTime.selectTime(validTime, validTime, false, (start_time, end_time) -> {
|
validTime = start_time;
|
guest_visit_valid_time.setText(getDateString(validTime));
|
}, true);
|
}
|
|
public String getDateString(long time) {
|
return DateUtil.formatTime(time, "yyyy/MM/dd HH:mm");
|
}
|
|
@Click
|
public void org_id() {
|
if (System.currentTimeMillis() - org_idLastTime < 1000
|
|| face_detail_org_parent.getVisibility() == View.VISIBLE) {
|
return;
|
}
|
org_idLastTime = System.currentTimeMillis();
|
int[] outLocation = new int[2];
|
org_id.getLocationOnScreen(outLocation);
|
orgPopupWindow.showAsDropDown(org_id);
|
orgLoaded = true;
|
org_id_background();
|
}
|
|
public void org_id_background() {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
treeAdapter.findTreeNodeList(false);
|
treeAdapter.setUI(initOrgId);
|
if (!TextUtils.isEmpty(initOrgId)) {
|
treeAdapter.treeNodeList.setUISelected(OrgManager.findById(Org.tableName, initOrgId));
|
}
|
notifyOrg(initOrgId);
|
});
|
}
|
|
@UiThread
|
public void notifyOrg(String initOrgId) {
|
if (!TextUtils.isEmpty(initOrgId)) {
|
try {
|
face_detail_org.setSelection(treeAdapter.treeNodeList.getSelection(initOrgId));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
public void showPersonListByOrg(ModelAdapter org) {
|
orgPopupWindow.dismiss();
|
face_detail_org_parent.setVisibility(View.GONE);
|
selectedOrg = org;
|
org_id.setText(OrgManager.getOrgFullName(selectedOrg.getString(Org.id)));
|
treeAdapter.selectedOrg = null;
|
}
|
|
public void hideOrgParent() {
|
orgPopupWindow.dismiss();
|
face_detail_org_parent.setVisibility(View.GONE);
|
}
|
|
@AfterViews
|
public void afterViews() {
|
face_detail_org.setAdapter(treeAdapter);
|
treeAdapter.setOrgSelectedListener(this::showPersonListByOrg);
|
if (orgPopupWindow == null) {
|
LayoutInflater layoutInflater = (LayoutInflater) mainActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
View customView = layoutInflater.inflate(com.basic.security.utils.ResolutionAdaptation.popup(), null);
|
ListView face_detail_popup_org = customView.findViewById(com.basic.security.utils.RUtils.R_id_face_detail_popup_org);
|
View cancel = customView.findViewById(com.basic.security.utils.RUtils.R_id_cancel);
|
cancel.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
orgPopupWindow.dismiss();
|
}
|
});
|
face_detail_popup_org.setAdapter(treeAdapter);
|
orgPopupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
}
|
ArrayAdapter<String> guestVisitAdapter = new ArrayAdapter<String>(getContext(), com.basic.security.utils.ResolutionAdaptation.spinner_item_small_text(), guestVisitStatusArray);
|
guest_visit_status.setPopupBackgroundResource(com.basic.security.utils.RUtils.R_color_press_menu_text);
|
guest_visit_status.setAdapter(guestVisitAdapter);
|
guest_visit_status.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
guestVisitStatus = guestVisitStatusArray[position];
|
}
|
|
public void onNothingSelected(AdapterView<?> parent) {
|
}
|
});
|
setIsTempSave(true);
|
thisDevice.setChecked(true);
|
identityAdapter = new IdentityAdapter(mainActivity(), com.basic.security.utils.ResolutionAdaptation.identity_checkbox_item(), identityList);
|
identity_list.setAdapter(identityAdapter);
|
clusterDeviceAdapter = new ClusterDeviceAdapter();
|
cluster_devices.setAdapter(clusterDeviceAdapter);
|
}
|
|
@Click
|
public void show_student_id_input() {
|
student_id.setVisibility(View.GONE);
|
student_id_input.setVisibility(View.VISIBLE);
|
}
|
|
public void updateDetailUI(ModelAdapter person) {
|
mainActivity().runOnUiThread(() -> {
|
try {
|
scrollView.fullScroll(ScrollView.FOCUS_UP);
|
initOrgId = null;
|
selectedOrg = null;
|
guest_visit_valid_time_row.setVisibility(View.GONE);
|
guest_visit_status_row.setVisibility(View.GONE);
|
student_id_input.setVisibility(View.GONE);
|
if (person != null) {
|
setViewVisisble(person);
|
if ("访客注册".equals(person.getString(Person.sign_up_method))) {
|
guest_visit_valid_time_row.setVisibility(View.VISIBLE);
|
guest_visit_valid_time.setText("");
|
try {
|
guest_visit_valid_time.setText(getDateString(Long.parseLong(person.getString(Person.guest_visit_valid_time))));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
// guest_visit_status_row.setVisibility(View.VISIBLE);
|
// try {
|
// String dbGuestVisitStatus = person.getString(Person.guest_visit_status);
|
// if (dbGuestVisitStatus != null) {
|
// for (int i = 0; i < guestVisitStatusArray.length; i++) {
|
// String guestVisitStatus = guestVisitStatusArray[i];
|
// if (dbGuestVisitStatus.equals(guestVisitStatus)) {
|
// guest_visit_status.setSelection(i);
|
// break;
|
// }
|
// }
|
// }
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
}
|
}
|
FaceDetailFragment.this.person = person;
|
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"));
|
photoClickTimes = 0;
|
initSignUpRuleSpinner(person);
|
if (Constants.useOrg) {
|
student_id_row.setVisibility(View.VISIBLE);
|
org_id_row.setVisibility(View.VISIBLE);
|
}
|
if (person != null && "访客注册".equals(person.getString(Person.sign_up_method))) {
|
student_id_row.setVisibility(View.GONE);
|
org_id_row.setVisibility(View.GONE);
|
if (!"已经验证身份证".equals(person.getString(Person.verify_status))) {
|
show_name_in_put.setVisibility(View.VISIBLE);
|
show_id_in_put.setVisibility(View.VISIBLE);
|
}
|
show_phone_in_put.setVisibility(View.VISIBLE);
|
}
|
if (person == null) {
|
sign_up_rule_field.setVisibility(View.INVISIBLE);
|
last_visit_time.setVisibility(View.INVISIBLE);
|
} else {
|
sign_up_rule_field.setVisibility(View.VISIBLE);
|
last_visit_time.setVisibility(View.VISIBLE);
|
}
|
if (person == null) {
|
face.setVisibility(View.GONE);
|
name.setText1("");
|
phone.setText("");
|
idcard_number.setText("");
|
register_time.setText("");
|
register_type.setText("");
|
last_visit_time.setText("");
|
last_visit_time.setText("暂无");
|
org_id.setVisibility(View.GONE);
|
org_id_parent.setVisibility(View.GONE);
|
student_id.setVisibility(View.GONE);
|
show_student_id_input.setVisibility(View.GONE);
|
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_sign_up_rule.setSelection(i);
|
break;
|
}
|
}
|
}
|
}
|
}
|
} else if ("1".equals(person.getString("auto_init"))) {
|
student_id.setVisibility(View.GONE);
|
student_id_input.setVisibility(View.GONE);
|
show_student_id_input.setVisibility(View.GONE);
|
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.setText1(person.getString("name"));
|
phone.setText(person.getString("phone"));
|
idcard_number.setText(person.getString("id_card_number"));
|
byte[] blob = person.getBlob("camera_image_path");
|
if (blob != null) {
|
if (blob.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
|
face.setImageBitmap(bitmap);
|
}
|
} else {
|
face.setImageResource(com.basic.security.utils.RUtils.R_drawable_u1280);
|
}
|
register_type.setText(person.getString("sign_up_method"));
|
String lastTime = VisitManager.getLastVisitTime(person.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 = person.getString("verify_status");
|
org_id.setVisibility(View.VISIBLE);
|
org_id_parent.setVisibility(View.VISIBLE);
|
org_id.setText(OrgManager.getOrgFullName(person.getString(Person.org_id)));
|
initOrgId = person.getString(Person.org_id);
|
String studentIdStr = person.getString(Person.student_id);
|
student_id_input.setText(studentIdStr);
|
student_id.setText(studentIdStr);
|
if (TextUtils.isEmpty(studentIdStr)) {
|
student_id.setVisibility(View.GONE);
|
student_id_input.setVisibility(View.VISIBLE);
|
show_student_id_input.setVisibility(View.GONE);
|
} else {
|
student_id.setVisibility(View.VISIBLE);
|
student_id_input.setVisibility(View.GONE);
|
show_student_id_input.setVisibility(View.VISIBLE);
|
}
|
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.setText1(person.getString("name") == null ? "" : person.getString("name"));
|
phone.setText(person.getString("phone") == null ? "" : person.getString("phone"));
|
idcard_number.setText(person.getString("id_card_number") == null ? "" : person.getString("id_card_number"));
|
if (!TextUtils.isEmpty(verify_status) && ((TextUtils.equals(verify_status, "已经验证身份证")
|
|| TextUtils.equals(verify_status, "未验证身份证")))) {
|
showTextOrEditText(verify_status);
|
if (TextUtils.equals(verify_status, "未验证身份证")) {
|
idcard_number.setText("请在刷卡区验证身份证");
|
idcard_number.setTextColor(Color.parseColor("#4BA6AD"));
|
}
|
}
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
showTextOrEditText(verify_status);
|
}
|
face.setVisibility(View.VISIBLE);
|
byte[] blob = person.getBlob("camera_image_path");
|
if (blob != null) {
|
try {
|
if (blob.length != 0) {
|
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
|
face.setImageBitmap(bitmap);
|
}
|
} catch (Exception e) {
|
face.setImageResource(com.basic.security.utils.RUtils.R_drawable_u1280);
|
e.printStackTrace();
|
}
|
} else {
|
face.setImageResource(com.basic.security.utils.RUtils.R_drawable_u1280);
|
}
|
try {
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Long sign_up_time = Long.parseLong(person.getString("sign_up_time"));
|
if (sign_up_time != null) {
|
register_time.setText(format.format(sign_up_time));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
String type = person.getString("sign_up_method");
|
if ("自助注册".equals(type)) {
|
if ("不需要验证身份证".equals(person.getString("verify_status"))) {
|
type = type + "-普通验证";
|
} else {
|
type = type + "-身份证验证";
|
}
|
} else if ("人工注册".equals(type)) {
|
if ("不需要验证身份证".equals(person.getString("verify_status"))) {
|
type = "人工注册-普通验证";
|
} else {
|
type = "人工注册-身份证验证";
|
}
|
}
|
register_type.setText(type);
|
String lastTime = VisitManager.getLastVisitTime(person.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"));
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
});
|
}
|
|
private void initSignUpRuleSpinner(ModelAdapter person) {
|
initSpinner = true;
|
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), com.basic.security.utils.ResolutionAdaptation.spinner_item(), arr);
|
spinner_sign_up_rule.setPopupBackgroundResource(com.basic.security.utils.RUtils.R_color_press_menu_text);
|
spinner_sign_up_rule.setAdapter(adapter);
|
spinner_sign_up_rule.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
if (position == 1 && !initSpinner) {
|
if (person != null) {
|
mainActivity().fragment_time_rule_list_dialog
|
.showTimeRuleListDialog(person.getString("checked_time_rule_id"),
|
selectedTimeRuleId -> {
|
}
|
);
|
}
|
checkedTimeRuleChanged = true;
|
}
|
initSpinner = false;
|
}
|
|
public void onNothingSelected(AdapterView<?> parent) {
|
}
|
});
|
if (person != null) {
|
String signUpRule = person.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_sign_up_rule.setSelection(i);
|
break;
|
}
|
}
|
}
|
}
|
}
|
|
private void showTextOrEditText(String verify_status) {
|
if (!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) {
|
if (TextUtils.isEmpty(person.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.setText1(person.getString("name"));
|
show_name_in_put.setVisibility(View.VISIBLE);
|
}
|
if (TextUtils.isEmpty(person.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(person.getString("id_card_number"));
|
show_id_in_put.setVisibility(View.VISIBLE);
|
}
|
}
|
if (TextUtils.isEmpty(person.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(person.getString("phone"));
|
show_phone_in_put.setVisibility(View.VISIBLE);
|
}
|
}
|
|
@UiThread
|
public void clearInPutText() {
|
name_input.setText("");
|
phone_input.setText("");
|
idcard_number_input.setText("");
|
student_id.setText("");
|
student_id_input.setText("");
|
showStudentInput = false;
|
showNameInPut = false;
|
showPhoneInPut = false;
|
showIdCardInPut = false;
|
}
|
|
@UiThread
|
public void updateIdCard() {
|
if (idCard != null) {
|
name.setText1(idCard.name);
|
name_input.setText(idCard.name);
|
idcard_number.setVisibility(View.VISIBLE);
|
idcard_number_input.setText(idCard.cardNumber);
|
idcard_number.setText(idCard.cardNumber);
|
idcard_number.setTextColor(Color.WHITE);
|
name.setVisibility(View.VISIBLE);
|
saveIdCard(person);
|
}
|
}
|
|
public boolean detailMessageIsComplete() {
|
ModelAdapter person = mainActivity().fragment_person_manage.selectedPerson;
|
if (person != null) {
|
String name = person.getString("name");
|
String id_card_number = person.getString("id_card_number");
|
String phone_number = person.getString("phone");
|
String sign_up_method = person.getString("sign_up_method");
|
isRegister = "已注册".equals(person.getString("sign_up_status"));
|
if ("自助注册".equals(sign_up_method)) {
|
if ("不需要验证身份证".equals(person.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(person.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 person = mainActivity().fragment_person_manage.selectedPerson;
|
if ("1".equals(person.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 person.getString("name");
|
}
|
if ((!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证")) ||
|
TextUtils.isEmpty(verify_status)
|
) {
|
if (showNameInPut) {
|
return name_input.getText().toString().trim();
|
}
|
return name.getText().toString().trim();
|
}
|
return name.getText().toString().trim();
|
}
|
|
public String getInPutIdCardNumber() {
|
ModelAdapter person = mainActivity().fragment_person_manage.selectedPerson;
|
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 person.getString("id_card_number");
|
}
|
if ((!TextUtils.isEmpty(verify_status) && TextUtils.equals(verify_status, "不需要验证身份证"))
|
|| TextUtils.isEmpty(verify_status)
|
) {
|
if (showIdCardInPut) {
|
return idcard_number_input.getText().toString().trim();
|
}
|
return idcard_number.getText().toString().trim();
|
}
|
return idcard_number.getText().toString().trim();
|
}
|
|
public String getInPutPhoneNumber() {
|
if (showPhoneInPut) {
|
return phone_input.getText().toString().trim();
|
} else {
|
return phone.getText().toString().trim();
|
}
|
}
|
|
public void nameRequired(boolean required) {
|
if (required) {
|
// System.out.println("FaceDetailFragment.nameRequired " + FrameUtil.getFrames() + " " + required);
|
face_detail_name_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_name_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
public void phoneRequired(boolean required) {
|
if (required) {
|
face_detail_phone_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_phone_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
public void idcardRequired(boolean required) {
|
if (required) {
|
face_detail_id_need.setVisibility(View.VISIBLE);
|
} else {
|
face_detail_id_need.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
public void updateData(String personId) {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
try {
|
ModelAdapter selectedPerson = PersonManager.findPersonById(personId);
|
if (selectedPerson != null) {
|
updateDataUI(selectedPerson);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
});
|
}
|
|
@UiThread
|
public void updateDataUI(ModelAdapter selectedPerson) {
|
try {
|
if (showNameInPut) {
|
name_input.setText(selectedPerson.getString("name"));
|
} else {
|
name.setText1(selectedPerson.getString("name"));
|
}
|
if (showIdCardInPut) {
|
idcard_number_input.setText(selectedPerson.getString("id_card_number"));
|
} else {
|
idcard_number.setText(selectedPerson.getString("id_card_number"));
|
}
|
if (showPhoneInPut) {
|
phone_input.setText(selectedPerson.getString("phone"));
|
} else {
|
phone.setText(selectedPerson.getString("phone"));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public String getSignUpRule() {
|
return arr[spinner_sign_up_rule.getSelectedItemPosition()];
|
}
|
|
public String getCheckedTimeRuleId() {
|
if (arr[1].equals(arr[spinner_sign_up_rule.getSelectedItemPosition()]) && checkedTimeRuleChanged) {
|
return TimeRuleListDialogFragment.checkedTimeRuleId;
|
} else {
|
return person.getString("sign_up_rule");
|
}
|
}
|
|
public void setViewVisisble(ModelAdapter person) {
|
if (person == null || "系统初始化分配".equals(person.getString("sign_up_method"))) {
|
phoneRequired(false);
|
nameRequired(false);
|
idcardRequired(false);
|
} else {
|
if ("人工注册".equals(person.getString("sign_up_method"))) {
|
if ("已经验证身份证".equals(person.getString("verify_status"))
|
|| "未验证身份证".equals(person.getString("verify_status"))) {
|
phoneRequired(BaseSettingManager.adminIDCardSignUpModeNeedPhone());
|
nameRequired(false);
|
idcardRequired(false);
|
}
|
if ("不需要验证身份证".equals(person.getString("verify_status"))) {
|
nameRequired(BaseSettingManager.adminNormalSignUpModeNeedName());
|
idcardRequired(BaseSettingManager.adminNormalSignUpModeNeedIDNumber());
|
phoneRequired(BaseSettingManager.adminNormalSignUpModeNeedPhone());
|
}
|
}
|
if ("自助注册".equals(person.getString("sign_up_method"))) {
|
if ("已经验证身份证".equals(person.getString("verify_status"))
|
|| "未验证身份证".equals(person.getString("verify_status"))) {
|
phoneRequired(BaseSettingManager.isAutoSignUpIDCardModeNeedPhone());
|
nameRequired(false);
|
idcardRequired(false);
|
}
|
if ("不需要验证身份证".equals(person.getString("verify_status"))) {
|
nameRequired(BaseSettingManager.isAutoSignUpNotIDCardModeNeedName());
|
idcardRequired(BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber());
|
phoneRequired(BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone());
|
}
|
}
|
}
|
}
|
|
public String getInputStudentId() {
|
return student_id_input.getText().toString().trim();
|
}
|
|
public String getGuestVisitValid() {
|
try {
|
return DateEditUtil1.sdf.parse(guest_visit_valid_time.getText().toString()).getTime() + "";
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "";
|
}
|
|
@UiThread
|
public void emptyInput() {
|
try {
|
student_id.setText("");
|
student_id_input.setText("");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public class IdentityAdapter extends CommonAdapter<ModelAdapter> {
|
public IdentityAdapter(Context context, int layoutId, List<ModelAdapter> datas) {
|
super(context, layoutId, datas);
|
}
|
|
protected void convert(ViewHolder viewHolder, ModelAdapter identity, int position) {
|
CheckBox identityCB = viewHolder.getView(com.basic.security.utils.RUtils.R_id_identity_checkbox);
|
identityCheckBoxSet.add(identityCB);
|
identityCB.setText(identity.getString("name"));
|
identityCB.setTag(identity);
|
identityCB.setChecked(checkedIdentityMapByPerson.containsKey(identity.getId()));
|
identityCB.setClickable(true);
|
if (checkedPerson != null && "1".equals(checkedPerson.getString("auto_init"))) {
|
identityCB.setClickable(false);
|
} else {
|
identityCB.setClickable(true);
|
identityCB.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
if (isChecked) {
|
if (!checkedIdentityMapByPerson.containsKey(identity.getId())) {
|
checkedIdentityMapByPerson.put(identity.getId(), identity);
|
}
|
} else {
|
if (checkedIdentityMapByPerson.containsKey(identity.getId())) {
|
checkedIdentityMapByPerson.remove(identity.getId());
|
}
|
}
|
identityAdapter.notifyDataSetChanged();
|
});
|
}
|
}
|
}
|
|
public class ClusterDeviceAdapter extends BaseAdapter {
|
public List<String> checkedDeviceList = new ArrayList<>();
|
private List<ModelAdapter> deviceList = new ArrayList<>();
|
|
public ClusterDeviceAdapter() {
|
}
|
|
public int getCount() {
|
return deviceList == null ? 0 : deviceList.size();
|
}
|
|
public Object getItem(int position) {
|
return deviceList.get(position);
|
}
|
|
public long getItemId(int position) {
|
return position;
|
}
|
|
public View getView(int position, View convertView, ViewGroup parent) {
|
ClusterDeviceAdapter.ViewHolder viewHolder;
|
if (convertView == null) {
|
viewHolder = new ClusterDeviceAdapter.ViewHolder();
|
convertView = LayoutInflater.from(getActivity()).inflate(com.basic.security.utils.ResolutionAdaptation.checkbox_spinner_item(), null);
|
viewHolder.checkBox = convertView.findViewById(com.basic.security.utils.RUtils.R_id_ck_item_spinner);
|
viewHolder.spinner = convertView.findViewById(com.basic.security.utils.RUtils.R_id_spinner_item_spinner);
|
initSpinner(viewHolder.spinner);
|
convertView.setTag(viewHolder);
|
} else {
|
viewHolder = (ClusterDeviceAdapter.ViewHolder) convertView.getTag();
|
}
|
viewHolder.checkBox.setText(deviceList.get(position).getString("name"));
|
checkedDeviceList.add(deviceList.get(position).getString("name"));
|
ClusterDeviceAdapter.ViewHolder finalViewHolder = viewHolder;
|
viewHolder.checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
if (finalViewHolder.checkBox.isChecked()) {
|
checkedDeviceList.add(deviceList.get(position).getString("name"));
|
} else {
|
if (checkedDeviceList.contains(deviceList.get(position).getString("name"))) {
|
checkedDeviceList.remove(deviceList.get(position).getString("name"));
|
}
|
}
|
});
|
return convertView;
|
}
|
|
private void initSpinner(Spinner spinner) {
|
String[] signUpRuleArray = {"允许通行", "有效时间内通行", "确认通行", "拒绝通行"};
|
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), com.basic.security.utils.ResolutionAdaptation.spinner_item(), signUpRuleArray);
|
spinner.setPopupBackgroundResource(com.basic.security.utils.RUtils.R_color_press_menu_text);
|
spinner.setAdapter(adapter);
|
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
}
|
|
public void onNothingSelected(AdapterView<?> parent) {
|
}
|
});
|
}
|
|
class ViewHolder {
|
CheckBox checkBox;
|
Spinner spinner;
|
}
|
}
|
}
|