| | |
| | | package com.hdl.photovoltaic.ui.me; |
| | | |
| | | import androidx.appcompat.app.AppCompatActivity; |
| | | import androidx.appcompat.content.res.AppCompatResources; |
| | | |
| | | import android.graphics.drawable.Drawable; |
| | | import android.os.Bundle; |
| | | import android.text.Editable; |
| | | import android.text.TextUtils; |
| | |
| | | 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.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; |
| | | |
| | | public class MeChangePasswordActivity extends BaseActivity implements View.OnClickListener { |
| | | /** |
| | | * 我的-修改密码-界面 |
| | | */ |
| | | public class MeChangePasswordActivity extends BaseActivity { |
| | | |
| | | private ActivityMeChangePasswordBinding viewBinding; |
| | | |
| | |
| | | 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)) { |
| | | tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), getString(R.string.home_login_input_unlike_psw), -1); |
| | | return; |
| | | } |
| | | if (UserConfigManage.getInstance().isBAccount()) { |
| | | //B端更改个人密码 |
| | | HdlAccountLogic.getInstance().updateBPassword(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); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), e.getMsg(), e.getCode()); |
| | | } |
| | | }); |
| | | } else { |
| | | //C端更改个人密码 |
| | | HdlAccountLogic.getInstance().updateCPassword(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); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | tipFlashingBox(AppCompatResources.getDrawable(_mActivity, R.drawable.tip_fail), 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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) { |
| | |
| | | @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) { |
| | | |
| | |
| | | |
| | | @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) { |
| | | |
| | |
| | | |
| | | @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) { |
| | | |
| | |
| | | |
| | | @Override |
| | | public void onTextChanged(CharSequence s, int start, int before, int count) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void afterTextChanged(Editable s) { |
| | | |
| | | isCompleteEnabled(); |
| | | } |
| | | }; |
| | | |