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.AccountManager;
|
import com.basic.security.manager.CompanyManager;
|
import com.basic.security.manager.DeviceManager;
|
import com.basic.security.manager.PersonManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.Person;
|
import com.basic.security.utils.FaceId;
|
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 AccountSettingFragment 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_account_setting1(), container, false);
|
}
|
|
@Override
|
public void show() {
|
super.show();
|
isChangePhoto = false;
|
currentFacePosition = null;
|
again_password.setText("");
|
new_password.setText("");
|
old_password.setText("");
|
try {
|
ModelAdapter adminAccount = AccountManager.getAdminAccount();
|
if (adminAccount != null) {
|
ModelAdapter admin_person = PersonManager.findPersonById(AccountManager.getAdminAccount().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 = AccountManager.getAdminAccount();
|
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();
|
}
|
}
|
FaceId.instance.removeFeatureFromDb(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 = AccountManager.getAdminAccount();
|
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) {
|
FaceId.instance.addFeatureToDb(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() {
|
if (AccountManager.isBasic()) {
|
ToastUtil.show("只有管理员才能修改密码");
|
return;
|
}
|
oldPassword = old_password.getText().toString().trim();
|
newPassword = new_password.getText().toString().trim();
|
againPassword = again_password.getText().toString().trim();
|
String adminPassword = AccountManager.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 = AccountManager.getAdminAccount();
|
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);
|
AccountManager.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);
|
}
|
}
|
}
|
}
|