package com.dayu.pipirrapp.activity; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import androidx.annotation.Nullable; import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.bean.net.IssueResult; import com.dayu.pipirrapp.databinding.ActivityChangePassWordBinding; import com.dayu.pipirrapp.net.ApiManager; import com.dayu.pipirrapp.net.BaseResponse; import com.dayu.pipirrapp.net.Constants; import com.dayu.pipirrapp.net.subscribers.SubscriberListener; import com.dayu.pipirrapp.utils.ToastUtil; import com.dayu.pipirrapp.view.TitleBar; import java.util.HashMap; import java.util.Map; /** * author: zuo * Date: 2024-01-29 * Time: 17:19 * 备注:修改密码 */ public class ChangePSActivity extends BaseActivity { ActivityChangePassWordBinding binding; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityChangePassWordBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); new TitleBar(this).setTitleText("修改密码").setLeftIco().setLeftIcoListening(v -> ChangePSActivity.this.finish()); initView(); } private void initView() { binding.changePSBtn.setOnClickListener(v -> { String oldPassword = binding.oldPassword.getText().toString(); String newPSOne = binding.newPsone.getText().toString(); String newPStwo = binding.newPsTwo.getText().toString(); if (!TextUtils.isEmpty(oldPassword) && !TextUtils.isEmpty(newPSOne) && !TextUtils.isEmpty(newPStwo)) { if (newPStwo.equals(newPSOne)) { if (isPasswordComplex(newPSOne)) { changePS(oldPassword, newPSOne); } else { ToastUtil.showToastShort(ChangePSActivity.this, "新密码长度应为6-12位,并且至少包含1个数字或字母!"); } } else { ToastUtil.showToastShort(ChangePSActivity.this, "两次密码不一致!"); } } else { ToastUtil.showToastShort(ChangePSActivity.this, "请输入完整信息!"); } }); } private void changePS(String oldPassword, String newPassword) { Map params = new HashMap<>(); params.put("id", MyApplication.myApplication.userId); params.put("oldPassword", oldPassword); params.put("newPassword", newPassword); ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/base/user/changePassword", IssueResult.class, params, new SubscriberListener>() { @Override public void onNext(BaseResponse t) { if (t.isSuccess()) { ToastUtil.showToastLong(ChangePSActivity.this, "修改成功!"); ChangePSActivity.this.finish(); } else { ToastUtil.showToast(ChangePSActivity.this, t.getMsg()); } } @Override public void onCloose() { super.onCloose(); } @Override public void onError(Throwable e) { super.onError(e); ToastUtil.showToastLong(ChangePSActivity.this, "修改失败,请稍后再试"); } }); } // 检查密码复杂度的方法 boolean isPasswordComplex(String password) { // 密码复杂度规则:长度在6到12位之间,至少包含一个数字和一个字母 return password.length() >= 6 && password.length() <= 12 && password.matches(".*\\d.*") && // 至少包含一个数字 password.matches(".*[a-zA-Z].*"); // 至少包含一个字母 } }