package com.basic.security.fragment; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import com.basic.security.base.BaseFragment; import com.basic.security.manager.CompanyManager; import com.basic.security.manager.DeviceManager; import com.basic.security.manager.FeatureManager; import com.basic.security.manager.PersonManager; import com.basic.security.manager.UserManager; import com.basic.security.model.ModelAdapter; import com.basic.security.model.Person; import com.basic.security.utils.FacePosition; import com.basic.security.utils.ResolutionAdaptation; 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.io.File; import de.hdodenhof.circleimageview.CircleImageView; @EFragment public class UserFragment extends BaseFragment { public static boolean isChangePhoto = false; public FacePosition currentFacePosition; @ViewById EditText again_password, new_password, old_password, account; @ViewById CircleImageView user_photo; @ViewById Button save, btn_change_photo, btn_sure_photo; private String accountName, oldPassword, newPassword, againPassword; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(ResolutionAdaptation.fragment_user1(), container, false); } @Override public void show() { super.show(); isChangePhoto = false; currentFacePosition = null; again_password.setText(""); new_password.setText(""); old_password.setText(""); try { ModelAdapter adminAccount = UserManager.adminUser(); if (adminAccount != null) { ModelAdapter admin_person = PersonManager.findPersonById(UserManager.adminUser().getString("person_id")); byte[] data = admin_person.getBlob("camera_image_path"); if (data != null) { user_photo.setImageBitmap(BitmapFactory.decodeByteArray(data, 0, data.length)); } else { user_photo.setImageBitmap(BitmapFactory.decodeResource(mainActivity().getResources(), com.basic.security.utils.RUtils.R_drawable_u1280)); } } } catch (Exception e) { e.printStackTrace(); } } @Override public void hide() { super.hide(); } @Click void btn_change_photo() { isChangePhoto = true; } @Click void btn_delete_photo() { ModelAdapter user = UserManager.adminUser(); ModelAdapter admin_in_person = PersonManager.findPersonById(user.getString("person_id")); String camera_image_path = ModelAdapter.getAttachmentPath(admin_in_person.getId(), Person.camera_image_path, Person.tableName); if (!TextUtils.isEmpty(camera_image_path)) { File camera_image_path_file = new File(camera_image_path); if (camera_image_path_file.exists()) { camera_image_path_file.delete(); } } FeatureManager.removeFeature(admin_in_person.getString(Person.id)); admin_in_person.setString(Person.camera_image_path, ""); admin_in_person.setString(Person.camera_image_feature, ""); PersonManager.savePerson(admin_in_person); Bitmap emptyBitmap = BitmapFactory.decodeResource(mainActivity().getResources(), com.basic.security.utils.RUtils.R_drawable_u1280); //mainActivity().fragment_toolbar.login_photo.setImageBitmap(emptyBitmap); user_photo.setImageBitmap(emptyBitmap); ToastUtil.show("恢复头像成功"); } @Click void btn_sure_photo() { try { isChangePhoto = false; ModelAdapter user = UserManager.adminUser(); user.setString("table", "user"); user.setString("password", newPassword); user.setString("device_id", DeviceManager.getDeviceId()); user.setString("company_id", CompanyManager.getCompanyId()); ModelAdapter admin_in_person = PersonManager.findPersonById(user.getString("person_id")); if (currentFacePosition != null && currentFacePosition.faceJpgData() != null && currentFacePosition.featureData != null) { // 更换摄像头头像路径 、摄像头头像特征 saveBlob(admin_in_person, "camera_image_path", currentFacePosition.faceJpgData()); saveBlob(admin_in_person, "camera_image_feature", currentFacePosition.featureData); PersonManager.savePerson(admin_in_person); } if (admin_in_person.getBlob("camera_image_feature") != null) { FeatureManager.addFeature(admin_in_person.getId(), admin_in_person.getBlob("camera_image_feature")); } //mainActivity().fragment_toolbar.login_photo.setImageBitmap(currentFacePosition.faceBitmap); ToastUtil.show("修改成功"); } catch (Exception e) { e.printStackTrace(); } } @Click void save() { oldPassword = old_password.getText().toString().trim(); newPassword = new_password.getText().toString().trim(); againPassword = again_password.getText().toString().trim(); String adminPassword = UserManager.getCurrentAdminPassword(); if (TextUtils.isEmpty(oldPassword)) { ToastUtil.show("旧密码不能为空,请检查后重新输入"); return; } else { if (!TextUtils.isEmpty(adminPassword) && adminPassword.equals(oldPassword)) { } else { ToastUtil.show("旧密码输入不正确,请检查后重新输入"); return; } } if (TextUtils.isEmpty(newPassword)) { ToastUtil.show("新密码不能为空"); return; } if (TextUtils.isEmpty(againPassword)) { ToastUtil.show("确认密码不能为空"); return; } if (!newPassword.equals(againPassword)) { ToastUtil.show("新密码与确认密码不一致,请检查后重新输入"); return; } try { ModelAdapter user = UserManager.adminUser(); user.setString("table", "user"); user.setString("password", newPassword); user.setString("device_id", DeviceManager.getDeviceId()); user.setString("company_id", CompanyManager.getCompanyId()); ModelAdapter admin_in_person = PersonManager.findPersonById(user.getString("person_id")); PersonManager.savePerson(admin_in_person); UserManager.saveAccount(user); ToastUtil.show("修改密码成功"); } catch (Exception e) { e.printStackTrace(); ToastUtil.show("修改密码失败,请稍后重试"); } ToastUtil.show("修改成功!"); isChangePhoto = false; currentFacePosition = null; again_password.setText(""); new_password.setText(""); old_password.setText(""); } @UiThread public void userPhotoDetected(FacePosition currentFacePosition) { if (isChangePhoto) { this.currentFacePosition = currentFacePosition; Bitmap user_photo_bitmap = getFacePositionBitmap(currentFacePosition); if (user_photo_bitmap != null) { user_photo.setImageBitmap(user_photo_bitmap); } } } }