package com.basic.security.fragment; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.text.TextUtils; import android.widget.Button; import android.widget.EditText; import com.basic.security.R; import com.basic.security.base.BaseFragment; import com.basic.security.manager.impl.cblite.AccountManager; import com.basic.security.manager.impl.cblite.DeviceManager; import com.basic.security.manager.impl.cblite.PersonManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.FaceId; import com.basic.security.utils.FacePosition; 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 de.hdodenhof.circleimageview.CircleImageView; @EFragment(R.layout.fragment_account_setting) public class AccountSettingFragment extends BaseFragment { @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; private boolean isChangePhoto = false; public FacePosition currentFacePosition; @Override public void show() { again_password.setText(""); new_password.setText(""); old_password.setText(""); try { currentFacePosition = null; ModelAdapter admin_person = PersonManager.findPersonById(AccountManager.getAdminAccount().getString("person_id")); // String name = admin_person.getString("name"); // String register_type = admin_person.getString("sign_up_method"); 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(), R.drawable.u1280)); } } catch (Exception e) { e.printStackTrace(); } } @Override public void hide() { super.hide(); } @Click void btn_change_photo() { isChangePhoto = true; } @Click void btn_sure_photo() { isChangePhoto = false; } @Click void save() { accountName = account.getText().toString().trim(); oldPassword = old_password.getText().toString().trim(); newPassword = new_password.getText().toString().trim(); againPassword = again_password.getText().toString().trim(); if (TextUtils.isEmpty(accountName)) { ToastUtil.show("账号不能为空"); return; } String adminPassword = AccountManager.getCurrentAdminPassword(); if (!TextUtils.isEmpty(newPassword) && !TextUtils.isEmpty(againPassword) && !TextUtils.isEmpty(oldPassword)) { if (newPassword.equals(againPassword)) { // if (newPassword.equals(oldPassword)) { // ToastUtil.show("旧密码与新密码相同,请检查后重新输入"); // return; // } else { if (!TextUtils.isEmpty(adminPassword) && adminPassword.equals(oldPassword)) { try { savePassWord(); ToastUtil.show("修改密码成功"); } catch (Exception e) { e.printStackTrace(); ToastUtil.show("修改密码失败,请稍后重试"); } } else { ToastUtil.show("旧密码输入不正确,请检查后重新输入"); return; } // } } else { ToastUtil.show("新密码与确认密码不一致,请检查后重新输入"); return; } } else { ToastUtil.show("密码不能为空,请检查后重新输入"); return; } ToastUtil.show("修改成功!"); mainActivity().showFragment(mainActivity().fragment_home); } /** * 保存账号密码 */ private void savePassWord() { ModelAdapter modelAdapter = AccountManager.getAdminAccount(); modelAdapter.setString("table", "user"); modelAdapter.setString("username", accountName); modelAdapter.setString("password", newPassword); modelAdapter.setString("device_id", DeviceManager.getDeviceId()); modelAdapter.setString("company_id", DeviceManager.getCompareId()); ModelAdapter admin_in_person = PersonManager.findPersonById(modelAdapter.getString("person_id")); if (admin_in_person.getBlob("camera_image_path") == null) { /*//2、摄像头头像路径 saveBlob(admin_in_person, "camera_image_path", currentFacePosition.faceJpgData); //3、摄像头头像特征 saveBlob(admin_in_person, "camera_image_feature", currentFacePosition.featureData);*/ } else { FaceId.instance.removeFeatureFromDb(admin_in_person.getId()); } PersonManager.savePerson(admin_in_person); AccountManager.saveAccount(modelAdapter); 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); } if (admin_in_person.getBlob("camera_image_feature") != null) { FaceId.instance.addFeatureToDb(admin_in_person.getId(), admin_in_person.getBlob("camera_image_feature")); } } @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); } } } }