mac
2024-01-04 e01efd770fcf79505e854965b16352bff0992910
app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
@@ -2,32 +2,31 @@
import androidx.appcompat.content.res.AppCompatResources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.BaseActivity;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityMeChangePasswordBinding;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlAccountLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.widget.FlashingBoxDialog;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
public class MeChangePasswordActivity extends BaseActivity {
/**
 * 我的-修改密码-界面
 */
public class MeChangePasswordActivity extends CustomBaseActivity {
    private ActivityMeChangePasswordBinding viewBinding;
@@ -39,10 +38,13 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        //初始化
        initView();
        //初始化界面监听器
        initEvent();
    }
    /**
@@ -86,79 +88,84 @@
        viewBinding.homeAffirmTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendChangePassword();
                String oldPsw = viewBinding.meChangePasswordOldIc.mePswEt.getText().toString().replaceAll(" ", "");
                String newPsw = viewBinding.meChangePasswordNewIc.mePswEt.getText().toString().replaceAll(" ", "");
                String affirmPsw = viewBinding.meChangePasswordAffirmIc.mePswEt.getText().toString().replaceAll(" ", "");
                if (!isEditTextPassword(oldPsw, newPsw, affirmPsw)) {
                    return;
                }
                // 二次确认提示框
                ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(_mActivity);
                dialog.setTitle(getString(R.string.loading_title_tip));
                dialog.setContent(_mActivity.getString(R.string.home_password_changed_successfully_log_in));
                dialog.show();
                dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                    @Override
                    public void Confirm() {
                        sendChangePassword(oldPsw, newPsw);
                    }
                });
                dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
                    @Override
                    public void Cancel() {
                        dialog.dismiss();
                    }
                });
            }
        });
    }
    /**
     * 发送更改个人密码指令
     *
     * @param oldPsw 原来密码
     * @param newPsw 新密码
     */
    private void sendChangePassword() {
        String oldPsw = viewBinding.meChangePasswordOldIc.mePswEt.getText().toString().replaceAll(" +", "");
        String newPsw = viewBinding.meChangePasswordNewIc.mePswEt.getText().toString().replaceAll(" +", "");
        String affirmPsw = viewBinding.meChangePasswordAffirmIc.mePswEt.getText().toString().replaceAll(" +", "");
        if (!isEditTextPassword(newPsw, affirmPsw)) {
            tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), getString(R.string.home_login_input_unlike_psw), -1);
            return;
        }
    private void sendChangePassword(String oldPsw, String newPsw) {
        if (UserConfigManage.getInstance().isBAccount()) {
            //B端更改个人密码
            HdlAccountLogic.getInstance().updateBPassword(oldPsw, newPsw, new CloudCallBeak<String>() {
            HdlAccountLogic.getInstance().updatePassword_B(oldPsw, newPsw, new CloudCallBeak<String>() {
                @Override
                public void onSuccess(String str) {
                    tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_succeed), getString(R.string.home_login_pws_reset_succeeded), 0);
//                    HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_pws_reset_succeeded), 0);
                    HDLLinkPMUser.getInstance().logout(0);
                }
                @Override
                public void onFailure(HDLException e) {
                    tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), e.getMsg(), e.getCode());
                    HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
                }
            });
        } else {
            //C端更改个人密码
            HdlAccountLogic.getInstance().updateCPassword(oldPsw, newPsw, new CloudCallBeak<String>() {
            HdlAccountLogic.getInstance().updatePassword_C(oldPsw, newPsw, new CloudCallBeak<String>() {
                @Override
                public void onSuccess(String obj) {
                    tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_succeed), getString(R.string.home_login_pws_reset_succeeded), 0);
                    HDLLinkPMUser.getInstance().logout(0);
                }
                @Override
                public void onFailure(HDLException e) {
                    tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), e.getMsg(), e.getCode());
                    HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
                }
            });
        }
    }
    /**
     * 提示框
     *
     * @param drawable 图标
     * @param msg      信息
     * @param code     状态
     */
    private void tipFlashingBox(Drawable drawable, String msg, int code) {
        HdlThreadLogic.runMainThread(new Runnable() {
            @Override
            public void run() {
                FlashingBoxDialog flashingBoxDialog = new FlashingBoxDialog(_mActivity);
                flashingBoxDialog.setImage(drawable);
                flashingBoxDialog.setContent(msg + "\r\n(" + code + ")");
                flashingBoxDialog.show();
            }
        }, null, null);
    }
    /**
     * 初始化
     */
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF));
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.home_login_change_password);
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C));
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
        viewBinding.meChangePasswordOldIc.mePswTitleTv.setText(R.string.home_login_old_pws);
        viewBinding.meChangePasswordOldIc.mePswEt.setHint(R.string.home_login_input_old_pws);
@@ -188,13 +195,26 @@
    /**
     * 本地校验密码是否正确
     *
     * @param oldPsw    原来密码
     * @param newPsw    新密码
     * @param affirmPsw 再次确认新密码
     * @return 一样返回true,否者false
     */
    private boolean isEditTextPassword(String newPsw, String affirmPsw) {
        //新密码和确认密码不一样
        return newPsw.equals(affirmPsw);
    private boolean isEditTextPassword(String oldPsw, String newPsw, String affirmPsw) {
        if (newPsw.length() < 6 || affirmPsw.length() < 6) {
            HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_least6), -1);
            return false;
        }
        if (!newPsw.equals(affirmPsw)) {
            //新密码和确认密码不一样
            HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_input_unlike_psw), -1);
            return false;
        }
        if (oldPsw.equals(newPsw)) {
            HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_old_password_not_new_password), -1);
            return false;
        }
        return true;
    }