mac
2023-11-03 9e875b253959eff8f6af567308ad804fe69d0a62
app/src/main/java/com/hdl/photovoltaic/ui/me/MeChangePasswordActivity.java
@@ -1,6 +1,5 @@
package com.hdl.photovoltaic.ui.me;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources;
import android.os.Bundle;
@@ -13,11 +12,19 @@
import android.widget.EditText;
import android.widget.ImageView;
import com.hdl.linkpm.sdk.core.exception.HDLException;
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;
public class MeChangePasswordActivity extends BaseActivity implements View.OnClickListener {
/**
 * 我的-修改密码-界面
 */
public class MeChangePasswordActivity extends CustomBaseActivity {
    private ActivityMeChangePasswordBinding viewBinding;
@@ -29,54 +36,146 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        //初始化
        initView();
        //初始化界面监听器
        initEvent();
    }
    /**
     * 初始化界面监听器
     */
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(this);
        viewBinding.meChangePasswordOldIc.mePswEt.addTextChangedListener(textWatcher1);
        viewBinding.meChangePasswordOldIc.mePswHideIv.setOnClickListener(this);
        viewBinding.meChangePasswordNewIc.mePswEt.addTextChangedListener(textWatcher2);
        viewBinding.meChangePasswordNewIc.mePswHideIv.setOnClickListener(this);
        viewBinding.meChangePasswordAffirmIc.mePswEt.addTextChangedListener(textWatcher3);
        viewBinding.meChangePasswordAffirmIc.mePswHideIv.setOnClickListener(this);
        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        //原密码输入框
        viewBinding.meChangePasswordOldIc.mePswEt.addTextChangedListener(oldPswTextWatcher);
        //显示原密码图标
        viewBinding.meChangePasswordOldIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setEditTextStyle(viewBinding.meChangePasswordOldIc.mePswEt, viewBinding.meChangePasswordOldIc.mePswHideIv);
            }
        });
        //新密码输入框
        viewBinding.meChangePasswordNewIc.mePswEt.addTextChangedListener(newPswTextWatcher);
        //显示新密码图标
        viewBinding.meChangePasswordNewIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setEditTextStyle(viewBinding.meChangePasswordNewIc.mePswEt, viewBinding.meChangePasswordNewIc.mePswHideIv);
            }
        });
        //再次输入新密码输入框
        viewBinding.meChangePasswordAffirmIc.mePswEt.addTextChangedListener(confirmPswTextWatcher);
        //显示再次输入新密码图标
        viewBinding.meChangePasswordAffirmIc.mePswHideIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setEditTextStyle(viewBinding.meChangePasswordAffirmIc.mePswEt, viewBinding.meChangePasswordAffirmIc.mePswHideIv);
            }
        });
        //确认修改
        viewBinding.homeAffirmTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendChangePassword();
            }
        });
    }
    /**
     * 发送更改个人密码指令
     */
    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)) {
            HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_input_unlike_psw), -1);
            return;
        }
        if (UserConfigManage.getInstance().isBAccount()) {
            //B端更改个人密码
            HdlAccountLogic.getInstance().updatePassword_B(oldPsw, newPsw, new CloudCallBeak<String>() {
                @Override
                public void onSuccess(String str) {
                    HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_pws_reset_succeeded), 0);
                }
                @Override
                public void onFailure(HDLException e) {
                    HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
                }
            });
        } else {
            //C端更改个人密码
            HdlAccountLogic.getInstance().updatePassword_C(oldPsw, newPsw, new CloudCallBeak<String>() {
                @Override
                public void onSuccess(String obj) {
                    HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_pws_reset_succeeded), 0);
                }
                @Override
                public void onFailure(HDLException e) {
                    HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
                }
            });
        }
    }
    /**
     * 初始化
     */
    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);
        viewBinding.meChangePasswordOldIc.lineV.setVisibility(View.GONE);
        viewBinding.meChangePasswordNewIc.mePswTitleTv.setText(R.string.home_login_new_pws);
        viewBinding.meChangePasswordNewIc.mePswEt.setHint(R.string.home_login_input_new_pws);
        viewBinding.meChangePasswordNewIc.lineV.setVisibility(View.GONE);
        viewBinding.meChangePasswordAffirmIc.mePswTitleTv.setText(R.string.home_login_affirm_psw);
        viewBinding.meChangePasswordAffirmIc.mePswEt.setHint(R.string.home_login_input_affirm_psw);
        viewBinding.meChangePasswordAffirmIc.lineV.setVisibility(View.GONE);
    }
    @Override
    public void onClick(View v) {
        if (v.getId() == viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.getId()) {
            finish();
        } else if (v.getId() == viewBinding.meChangePasswordOldIc.mePswHideIv.getId()) {
            setEditTextStyle(viewBinding.meChangePasswordOldIc.mePswEt, viewBinding.meChangePasswordOldIc.mePswHideIv);
        } else if (v.getId() == viewBinding.meChangePasswordNewIc.mePswHideIv.getId()) {
            setEditTextStyle(viewBinding.meChangePasswordNewIc.mePswEt, viewBinding.meChangePasswordNewIc.mePswHideIv);
        } else if (v.getId() == viewBinding.meChangePasswordAffirmIc.mePswHideIv.getId()) {
            setEditTextStyle(viewBinding.meChangePasswordAffirmIc.mePswEt, viewBinding.meChangePasswordAffirmIc.mePswHideIv);
        }
    /**
     * 校验按钮是否启用
     */
    private void isCompleteEnabled() {
        String oldPsw = viewBinding.meChangePasswordOldIc.mePswEt.getText().toString();
        String newPsw = viewBinding.meChangePasswordNewIc.mePswEt.getText().toString();
        String affirmPsw = viewBinding.meChangePasswordAffirmIc.mePswEt.getText().toString();
        boolean isEnabled = oldPsw.length() > 0 && newPsw.length() > 0 && affirmPsw.length() > 0;
        viewBinding.homeAffirmTv.setEnabled(isEnabled);
    }
    /**
     * 本地校验密码是否正确
     *
     * @param newPsw    新密码
     * @param affirmPsw 再次确认新密码
     * @return 一样返回true,否者false
     */
    private boolean isEditTextPassword(String newPsw, String affirmPsw) {
        //新密码和确认密码不一样
        return newPsw.equals(affirmPsw);
    }
    private void setEditTextStyle(EditText editText, ImageView imageView) {
@@ -99,12 +198,15 @@
    @Override
    protected void onDestroy() {
        super.onDestroy();
        viewBinding.meChangePasswordOldIc.mePswEt.removeTextChangedListener(textWatcher1);
        viewBinding.meChangePasswordNewIc.mePswEt.removeTextChangedListener(textWatcher2);
        viewBinding.meChangePasswordAffirmIc.mePswEt.removeTextChangedListener(textWatcher3);
        viewBinding.meChangePasswordOldIc.mePswEt.removeTextChangedListener(oldPswTextWatcher);
        viewBinding.meChangePasswordNewIc.mePswEt.removeTextChangedListener(newPswTextWatcher);
        viewBinding.meChangePasswordAffirmIc.mePswEt.removeTextChangedListener(confirmPswTextWatcher);
    }
    private final TextWatcher textWatcher1 = new TextWatcher() {
    /**
     * 输入原密码
     */
    private final TextWatcher oldPswTextWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -112,16 +214,18 @@
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }
        @Override
        public void afterTextChanged(Editable s) {
            isCompleteEnabled();
        }
    };
    private final TextWatcher textWatcher2 = new TextWatcher() {
    /**
     * 输入新密码
     */
    private final TextWatcher newPswTextWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -129,16 +233,17 @@
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }
        @Override
        public void afterTextChanged(Editable s) {
            isCompleteEnabled();
        }
    };
    private final TextWatcher textWatcher3 = new TextWatcher() {
    /**
     * 再次确认密码
     */
    private final TextWatcher confirmPswTextWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -146,12 +251,11 @@
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }
        @Override
        public void afterTextChanged(Editable s) {
            isCompleteEnabled();
        }
    };